:root[data-product="puracalma"] {
  --accent: #6d72bb;
  --active: #f9d320;
  --bg: #ffffff;
  --home-background-color: #ffffff;
  letter-spacing: 0.5px;
  --letter-spacing-base: 0.5px;
  --blocked-bg: color-mix(in srgb, #0e1925 50%, transparent);
  --blocked-color: #fff;
  --btn-primary-bg: #60d3ba;
  --btn-primary-border: 2px solid;
  --btn-primary-color: #fff;
  --btn-secondary-bg: transparent;
  --btn-secondary-border: 2px solid rgba(96, 211, 186, 0.1);
  --btn-secondary-color: rgba(96, 211, 186, 0.1);
  --card-bg: #ffffff;
  --card-border: 1px solid;
  --card-color: #555555;
  --cfg-bg: color-mix(in srgb, var(--bg) 80%, transparent);
  --cfg-color: var(--color);
  --color: #555555;
  --home-background-color: var(--bg);
  --home-color: var(--color);
  --home-banner-bg: color-mix(in srgb, var(--accent) 88%, #ffffff 12%);
  --home-banner-gradient: linear-gradient(150deg,
      color-mix(in srgb, #6d72bb 85%, #ffffff 8%),
      color-mix(in srgb, #60d3ba 82%, #0a0a0a 6%));
  --home-banner-color: #ffffff;
  --home-branch-title-color: color-mix(in srgb, #1f2937 78%, #6d72bb 12%);
  --home-branch-cta-bg: var(--player-color, #60d3ba);
  --home-branch-cta-color: #ffffff;
  --comments-bg: #fffdf2;
  --comments-color: #60d3ba;
  --comments-textarea-bg: #fff;
  --comments-textarea-border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
  --comments-textarea-color: #60d3ba;
  --content-bg: #ffffff;
  --content-color: #555555;
  --content-element-bg: #60d3ba;
  --content-element-color: #fffdf2;
  --content-overlay-gradient: color-mix(in srgb, var(--content-bg) 100%, transparent) 0%, color-mix(in srgb, var(--content-bg) 5%, transparent) 2%, color-mix(in srgb, var(--content-bg) 0%, transparent) 5%, color-mix(in srgb, var(--content-bg) 0%, transparent) 95%, color-mix(in srgb, var(--content-bg) 5%, transparent) 98%, color-mix(in srgb, var(--content-bg) 100%, transparent) 100%;
  --content-overlay-light-gradient: color-mix(in srgb, var(--content-color) 10%, transparent) 0%, color-mix(in srgb, var(--content-color) 15%, transparent) 100%;
  --daily-bg-color: #60d3ba;
  --daily-btn-bg-color: #fff;
  --daily-btn-color: #60d3ba;
  --daily-color: #fff;
  --error: #bb2124;
  --highlight-bg: var(--accent);
  --highlight-color: #fff;
  --important-btn-bg: color-mix(in srgb, #60d3ba 50%, transparent);
  --important-btn-border: 1px solid color-mix(in srgb, var(--important-btn-color) 50%, transparent);
  --important-btn-border-radius: 50px;
  --important-btn-color: #fff;
  --important-btn-highlight-bg: var(--accent);
  --important-btn-highlight-color: #fff;
  --important-btn-icon: none;
  --important-color: #fff;
  --info: #5bc0de;
  --input-color: var(--color);
  --library-color: #60d3ba;
  --modal-bg: #fffdf2;
  --modal-color: #60d3ba;
  --nav-actions-bg: var(--bg);
  --nav-actions-color: var(--color);
  --nav-bg: color-mix(in srgb, var(--bg) 80%, transparent);
  --nav-color: var(--color);
  --nav-search-bg: #fff;
  --nav-search-color: #60d3ba;
  --nav-ui-color: #60d3ba;
  --nav-update-toast-bg: var(--bg);
  --nav-update-toast-border: 1px solid var(--accent);
  --nav-update-toast-color: var(--color);
  --nav-alt-color: #60d3ba;
  --overlay-gradient: color-mix(in srgb, var(--bg) 100%, transparent) 0, color-mix(in srgb, var(--bg) 30%, transparent) 50%, color-mix(in srgb, var(--bg) 15%, transparent) 65%, color-mix(in srgb, var(--bg) 7.5%, transparent) 75.5%, color-mix(in srgb, var(--bg) 3.7%, transparent) 82.85%, color-mix(in srgb, var(--bg) 1.9%, transparent) 88%, color-mix(in srgb, var(--bg) 0%, transparent) 100%;
  --player-color: #60d3ba;
  --profile-panel-bg: white;
  --profile-panel-color: var(--color);
  --progress-accent-color: #60d3ba;
  --subscription-accent-color: #60d3ba;
  --subscription-badge-bg: #631a86;
  --success: #22bb33;
  --swiper-bg: #fbfbfb;
  --swiper-border: none;
  --toast-bg: #fffdf2;
  --toast-color: #60d3ba;
  --warning: #dd2124;
  /* Font family tokens */
  --font-text: "Coolvetica", sans-serif;
  --font-subtitle: "Coolvetica", sans-serif;
  --font-title: "Coolvetica", sans-serif;
  --font-special: "Coolvetica", sans-serif;
  --font-title-special: "Coolvetica", sans-serif;
  --card-wrapper-large-width: 180px;
  --card-wrapper-large-width-md: 180px;
  --card-wrapper-medium-width: 190px;
  --card-wrapper-medium-width-md: 290px;
  --cards-color: var(--color);
  --cards-background-color: var(--card-bg);
  --radius-lg: 24px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --card-border-color: color-mix(in srgb, var(--accent) 20%, transparent);
  --surface: color-mix(in srgb, var(--bg, #111827) 18%, #ffffff);
  --home-hero-background: linear-gradient(160deg,
      color-mix(in srgb, #6d72bb 80%, #ffffff 10%),
      color-mix(in srgb, #60d3ba 78%, #0a1122 8%));
  --home-hero-border-color: color-mix(in srgb, #60d3ba 45%, #ffffff 35%);
  --home-hero-text-color: #ffffff;
  --home-hero-subtitle-color: color-mix(in srgb, #e9f7f4 82%, #6d72bb 12%);
  --column-card-image-radius: var(--radius-lg);
  --content-surface: #ffffff;
  --nav-bottom-align: flex-start;
  --nav-bottom-border: 1px solid color-mix(in srgb, #000 60%, transparent);
  --nav-bottom-container-background: color-mix(in srgb, var(--bg) 60%, transparent);
  --nav-bottom-container-border: none;
  --nav-bottom-container-margin: 10px auto;
  --nav-bottom-container-padding-inline: 0;
  --nav-bottom-container-radius: 35px;
  --nav-bottom-gap: 0;
  --nav-bottom-height: 58px;
  --nav-bottom-justify: space-evenly;
  --nav-bottom-margin: 10px auto;
  --nav-bottom-padding-block: 0;
  --nav-bottom-padding-inline: 0;
  --nav-bottom-radius: 35px;
  --nav-bottom-shadow: none;
  --nav-bottom-surface: color-mix(in srgb, var(--bg, #111827) 60%, transparent);
  --nav-bottom-icon-filter: brightness(1);
  --nav-bottom-icon-opacity: 1;
  --nav-bottom-label-opacity: 1;
  --nav-bottom-active-color: var(--accent);
  --nav-bottom-text: var(--nav-color, var(--color));
  --nav-bottom-label-size: 0.55rem;
  --nav-bottom-width: 640px;
  --nav-top-bg: color-mix(in srgb, var(--bg, #111827) 70%, transparent);
  --nav-top-color: var(--nav-color, var(--color));
  --menu-version-color: color-mix(in srgb, var(--nav-color, var(--color)) 60%, transparent);

  /* Tabs overrides */
  --tabs-gap: 10px;
  --tabs-padding: 10px 15px;
  --tabs-color: #555555;
  --tabs-border-color: #555555;
  --tabs-bg: transparent;
  --tabs-border: none;
  --tabs-border-bottom: 2px solid transparent;
  --tabs-radius: 0;
  --tabs-font-size: 1rem;
  --tabs-font-weight: 700;
  --tabs-line-height: 1.3;
  --tabs-transition: color 0.36s ease, border-color 0.36s ease;
  --tabs-active-color: var(--btn-primary-bg, #60d3ba);
  --tabs-active-bg: transparent;
  --tabs-active-border: none;
  --tabs-active-border-bottom: 2px solid var(--btn-primary-bg, #60d3ba);

  /* Column card overrides */
  --column-card-padding: 0;
  --column-card-bg: transparent;
  --column-card-border: none;
  --column-card-height: auto;
  --column-card-gap: 6px;
  --column-card-image-width: 140px;
  --column-card-image-height: 140px;
  --column-card-image-radius-left: 12px;
  --column-card-image-radius-right: 0;
  --column-card-description-display: block;

  /* Copy cards (home/category sections) */
  --card-copy-heading-size: 1.125rem;
  --card-copy-heading-weight: 700;
  --copy-cards-section-title-size: 1.25rem;
  --copy-cards-section-title-weight: 700;
  --grid-section-title-size: 1.25rem;
  --grid-section-title-weight: 700;

  /* Copy cards: show full text (no truncate) */
  --copy-cards-copy-display: block;
  --copy-cards-copy-overflow: visible;
  --copy-cards-copy-line-clamp: unset;
  --copy-cards-copy-line-clamp-medium: unset;
  --copy-cards-copy-line-clamp-large: unset;
}

:root[data-product="puracalma"] .cardsTitleMore {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 8px;
}

:root[data-product="puracalma"] .category-pill {
  color: #fff;
}

:root[data-product="puracalma"] [data-copy-cards="true"][data-size="full-screen"][data-aspect="landscape"] .card-cover {
  aspect-ratio: 16 / 9;
  height: clamp(220px, calc((100vw - 32px) * 0.5625), 348px);
  max-height: 348px;
  min-height: 220px;
}

:root[data-product="puracalma"] [data-copy-cards="true"] {
  --card-border: none;
}

:root[data-product="puracalma"] .nav-bottom-wrapper {
  align-items: flex-start;
  box-sizing: border-box;
  justify-content: space-evenly;
  gap: 0;
  margin: 10px auto;
  padding: 0;
  width: min(var(--nav-bottom-width, 620px), calc(100% - 20px));
  max-width: min(var(--nav-bottom-width, 620px), calc(100% - 20px));
  height: 58px;
  bottom: env(safe-area-inset-bottom);
  border-radius: 35px;
  border: 1px solid color-mix(in srgb, white 60%, transparent);
  overflow: visible;
}

:root[data-product="puracalma"] .nav-bottom-inner {
  background: var(--nav-bottom-surface);
  border: var(--nav-bottom-border);
}

:root[data-product="puracalma"] [data-card-states="true"] {
  display: none !important;
}

@media (max-width: 767px) {
  :root[data-product="puracalma"] {
    --nav-bottom-container-border: none;
    --nav-bottom-container-radius: 35px !important;
    --nav-bottom-radius: 35px !important;
    --nav-bottom-border: 1px solid color-mix(in srgb, white 60%, transparent);
    --nav-bottom-shadow: none;
  }

  :root[data-product="puracalma"] .nav-bottom-wrapper {
    border: 1px solid color-mix(in srgb, white 60%, transparent) !important;
    border-radius: 35px !important;
    box-shadow: none !important;
    overflow: hidden;
  }

  :root[data-product="puracalma"] .nav-bottom-inner {
    border: var(--nav-bottom-border) !important;
    border-radius: 35px !important;
    background-color: var(--nav-bottom-surface, var(--nav-bg, transparent)) !important;
    box-shadow: none !important;
  }
}

:root[data-product="puracalma"] .nav-item-wrapper {
  margin: 0;
  height: 52px;
}

:root[data-product="puracalma"] .profile-nav-item .profile-nav-icon {
  background-color: var(--nav-ui-color, #60d3ba);
}

:root[data-product="puracalma"] .profile-nav-item .profile-nav-label {
  color: var(--nav-ui-color, #60d3ba);
}

:root[data-product="puracalma"] .wrapperCopyRow [data-card-copy='true'] {
  background-color: var(--cards-background-color, #ffffff);
}

:root[data-product="puracalma"] .card-inner {
  border-radius: 36px;
}

:root[data-product="puracalma"] .profilePanel h2 {
  display: none;
}

:root[data-product="puracalma"] [class*="profileForm"],
:root[data-product="puracalma"] [class*="preferencesPanel"] {
  background: transparent;
}

:root[data-product="puracalma"] .content-intro-copy {
  background-color: #ffffff;
  border-color: rgba(0, 0, 0, 0.12);
  color: #555555;
}

:root[data-product="puracalma"] body,
:root[data-product="puracalma"] p,
:root[data-product="puracalma"] h1,
:root[data-product="puracalma"] h2,
:root[data-product="puracalma"] h3,
:root[data-product="puracalma"] h4,
:root[data-product="puracalma"] h5,
:root[data-product="puracalma"] h6,
:root[data-product="puracalma"] a,
:root[data-product="puracalma"] button,
:root[data-product="puracalma"] strong,
:root[data-product="puracalma"] span,
:root[data-product="puracalma"] small,
:root[data-product="puracalma"] label,
:root[data-product="puracalma"] input,
:root[data-product="puracalma"] textarea {
  letter-spacing: var(--letter-spacing-base, 0.5px);
}

:root[data-product="puracalma"] h1 {
  font-size: 1.8rem;
  font-weight: lighter;
}

:root[data-product="puracalma"] h2 {
  font-size: 1.66rem;
}

:root[data-product="puracalma"] .tracking-tight,
:root[data-product="puracalma"] .tracking-normal,
:root[data-product="puracalma"] .tracking-wide,
:root[data-product="puracalma"] .tracking-wider,
:root[data-product="puracalma"] .tracking-widest {
  letter-spacing: var(--letter-spacing-base, 0.5px) !important;
}

:root[data-product="puracalma"] {
  --card-copy-heading-size: 15px;
  --card-copy-heading-line-height: 1.3;
  --card-copy-heading-weight: 600;
  --card-copy-paragraph-size: 0.875rem;
  --card-copy-paragraph-line-height: 1.5;
  --slider-dot-color: rgba(0, 0, 0, 0.25);
  --slider-dot-active-color: rgba(0, 0, 0, 0.55);
  --slider-dot-outline-color: rgba(0, 0, 0, 0.45);
  --ambient-btn-color: rgba(96, 96, 96, 0.9);
  --ambient-btn-hover-color: rgba(96, 96, 96, 1);
  --ambient-btn-active-color: rgba(60, 60, 60, 1);
}

[data-product="puracalma"] .cardCopyInner h1,
[data-product="puracalma"] .cardCopyInner h2,
[data-product="puracalma"] .cardCopyInner h3,
[data-product="puracalma"] .cardCopyInner h4,
[data-product="puracalma"] .cardCopyInner h6 {
  font-size: 1rem !important;
  line-height: 1.25;
  font-weight: 600;
}

[data-product="puracalma"] .cardCopyInner h5 {
  font-size: 15px !important;
  line-height: 1.3;
  font-weight: 600;
}

[data-product="puracalma"] .cardCopyInner h1,
[data-product="puracalma"] .cardCopyInner h2,
[data-product="puracalma"] .cardCopyInner h3,
[data-product="puracalma"] .cardCopyInner h4,
[data-product="puracalma"] .cardCopyInner h5,
[data-product="puracalma"] .cardCopyInner h6 {
  font-size: 1rem;
  line-height: 1.25;
}

/* Copy cards: paisaje de Puracalma (landscape) a 620x465 en desktop */
[data-product="puracalma"] .cardCover {
  aspect-ratio: 620 / 465;
  width: 100%;
  max-width: 620px;
}

/* ===== CONTENT PAGE STYLING (Puracalma specific design) ===== */

/* Hero section background - strong blur effect */
:root[data-product="puracalma"] .content-hero-section {
  background: rgba(255, 255, 255, 0.4) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  min-height: min(100vh, 920px);
}

/* Content page intro copy - white card with featured image */
:root[data-product="puracalma"] .content-intro-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 15px;
  box-sizing: border-box;
  margin: 0 auto 10px;
  padding: 0;
  width: calc(100% - 20px);
  max-width: 640px;
  color: #555555;
  background-color: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 36px;
  overflow: hidden;
}

:root[data-product="puracalma"] [data-section-type="grid"][data-section-index="1"] .card-inner {
  border-radius: 0px;
}

@media (min-width: 700px) {
  :root[data-product="puracalma"] .content-intro-copy {
    border-radius: 36px;
  }
}

/* Featured image container in content hero */
:root[data-product="puracalma"] .content-intro-copy .content-hero-image {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding: 15px;
  box-sizing: border-box;
  overflow: hidden;
}

:root[data-product="puracalma"] .content-intro-copy .content-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 36px;
}

/* Play video button (below share/bookmark buttons) */
:root[data-product="puracalma"] .content-hero-play-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 20px;
  background-color: #60d3ba;
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;
  letter-spacing: 0.5px;
}

:root[data-product="puracalma"] .content-hero-play-button:hover {
  background-color: #55c4aa;
  transform: translateY(-1px);
}

:root[data-product="puracalma"] .content-hero-play-button:active {
  transform: translateY(0);
}

:root[data-product="puracalma"] .content-hero-play-button::before {
  content: '';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent #ffffff;
}

/* Content copy section (below image) */
:root[data-product="puracalma"] .content-intro-copy .content-hero-copy {
  padding: 15px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

@media (min-width: 700px) {
  :root[data-product="puracalma"] .content-intro-copy .content-hero-copy {
    padding: 20px;
    gap: 20px;
  }
}

/* Category pills in content hero */
:root[data-product="puracalma"] .content-intro-copy .category-pill,
:root[data-product="puracalma"] .content-intro-copy a[class*="rounded-full"],
:root[data-product="puracalma"] .content-intro-copy span[class*="rounded-full"] {
  background: var(--content-element-bg, #60d3ba) !important;
  color: var(--content-element-color, #fffdf2) !important;
  padding: 4px 8px;
  font-size: 0.75rem;
  font-weight: 500;
}

/* Title styling in content hero */
:root[data-product="puracalma"] .content-intro-copy h1 {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 0;
  color: #555555;
  letter-spacing: 0.5px;
}

/* Description styling in content hero */
:root[data-product="puracalma"] .content-intro-copy p {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #555555;
  opacity: 0.85;
  margin: 0;
  letter-spacing: 0.5px;
}

/* Icon buttons in content hero */
:root[data-product="puracalma"] .content-intro-copy .icon-btn,
:root[data-product="puracalma"] .content-intro-copy .icon-inner {
  background-color: #555555;
}

/* Video fullscreen modal */
:root[data-product="puracalma"] .video-fullscreen-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.95);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

:root[data-product="puracalma"] .video-fullscreen-modal .video-close-button {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background-color: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  color: #ffffff;
  font-size: 1.5rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  z-index: 10000;
}

:root[data-product="puracalma"] .video-fullscreen-modal .video-close-button:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

:root[data-product="puracalma"] .video-fullscreen-modal .video-container {
  width: 100%;
  max-width: 1200px;
  aspect-ratio: 16 / 9;
  background-color: #000;
  border-radius: 8px;
  overflow: hidden;
}

/* Hide section container for Puracalma videos */
:root[data-product="puracalma"] .content-section-hidden {
  display: none !important;
}

/* ===== FIX SWIPER SLIDE WIDTH ===== */
/* 
  Problem: .swiperSlide from CardGrid has width: max-content which makes slide take full available width
  Solution: 
  - For swiper mode with large/medium/small sizes: Use fit-content so slide wraps cardWrapper
  - For full-screen cards: Force width 100% for both slide and cardWrapper
  
  Structure:
  .cards[data-size="..."][data-swiper="true/false"]
    → .wrapper[data-swiper="true/false"]
      → .swiperRow
        → .swiperSlide.swiper-slide
          → .cardWrapper
            → CardCover (a.tile)
*/

/* CASE 1: Regular swiper slides (large/medium/small) - fit content */
:root[data-product="puracalma"] [class*="cards"]:not([data-size="full-screen"]) .swiper-slide {
  width: fit-content !important;
}

/* Small size cards - use small token (105px) */
:root[data-product="puracalma"] [class*="cards"][data-size="small"] .swiper-slide>div[class*="cardWrapper"] {
  width: var(--card-wrapper-small-width, 105px);
  flex-shrink: 0;
}

/* Medium size cards - use medium token (190px for PuraCalma) */
:root[data-product="puracalma"] [class*="cards"][data-size="medium"] .swiper-slide>div[class*="cardWrapper"] {
  width: var(--card-wrapper-medium-width, 190px);
  flex-shrink: 0;
}

/* Large size cards - use large token (180px) */
:root[data-product="puracalma"] [class*="cards"][data-size="large"] .swiper-slide>div[class*="cardWrapper"] {
  width: var(--card-wrapper-large-width, 180px);
  flex-shrink: 0;
}

/* CASE 2: Full-screen cards - force 100% width but respect max-width from base CSS */
:root[data-product="puracalma"] [class*="cards"][data-size="full-screen"] .swiper-slide {
  width: 100% !important;
  /* NO forzar max-width, dejar que use el del CSS base (620px) */
}

:root[data-product="puracalma"] [class*="cards"][data-size="full-screen"] div[class*="cardWrapper"] {
  width: 100% !important;
  /* NO forzar max-width, dejar que use el del CSS base (620px) */
}

:root[data-product="puracalma"] [class*="cards"][data-size="full-screen"] a[class*="tile"] {
  width: 100% !important;
  /* NO forzar max-width, dejar que use el del CSS base */
}

@media (max-width: 767px) {
  :root[data-product="puracalma"] .nav-bottom-wrapper {
    border: 1px solid black !important;
    border-radius: 35px !important;
    box-shadow: none !important;
    overflow: hidden;
  }
}