    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --black:       #1A2419;
      --ivory:       #F5F0E8;
      --ivory-dark:  #EDE7DB;
      --gold:        #C8A96E;
      --gold-dark:   #A8883E;
      --sage:        #1F2E1C;
      --sage-light:  #344A32;
      --text-dark:   #1A1A16;
      --border-dark: rgba(200,169,110,0.16);
      --border-light:rgba(26,26,22,0.1);
    }

    html { scroll-behavior: smooth; overscroll-behavior-x: none; }
    body { background: var(--black); color: var(--ivory); font-family: 'Jost', sans-serif; overscroll-behavior-x: none; max-width: 100%; position: relative; }
    /* Textura de grano cálido en fondos oscuros */
    #masajes, #testimonios, #blog, .hero {
      background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KICA8ZmlsdGVyIGlkPSJub2lzZSI+PGZlVHVyYnVsZW5jZSB0eXBlPSJmcmFjdGFsTm9pc2UiIGJhc2VGcmVxdWVuY3k9IjAuNzUiIG51bU9jdGF2ZXM9IjQiIHN0aXRjaFRpbGVzPSJzdGl0Y2giLz48ZmVDb2xvck1hdHJpeCB0eXBlPSJzYXR1cmF0ZSIgdmFsdWVzPSIwIi8+PC9maWx0ZXI+CiAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbHRlcj0idXJsKCNub2lzZSkiIG9wYWNpdHk9IjAuMDQiLz4KPC9zdmc+");
      background-repeat: repeat;
    }
    #porque, #reserva, #contacto-section {
      background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KICA8ZmlsdGVyIGlkPSJub2lzZSI+PGZlVHVyYnVsZW5jZSB0eXBlPSJmcmFjdGFsTm9pc2UiIGJhc2VGcmVxdWVuY3k9IjAuNzUiIG51bU9jdGF2ZXM9IjQiIHN0aXRjaFRpbGVzPSJzdGl0Y2giLz48ZmVDb2xvck1hdHJpeCB0eXBlPSJzYXR1cmF0ZSIgdmFsdWVzPSIwIi8+PC9maWx0ZXI+CiAgPHJlY3Qgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIGZpbHRlcj0idXJsKCNub2lzZSkiIG9wYWNpdHk9IjAuMDQiLz4KPC9zdmc+");
      background-repeat: repeat;
    }

    /* ── TOPBAR ── */
    .topbar {
      position: fixed; top: 0; left: 0; right: 0; z-index: 61;
      display: flex; justify-content: center; align-items: center;
      padding: 0.5rem 2rem;
      padding-top: calc(0.5rem + env(safe-area-inset-top, 0px));
      border-bottom: 1px solid rgba(200,169,110,0.15);
      background: rgba(8,8,6,0.45);
      backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      max-height: 60px;
      overflow: hidden;
      transition: max-height 0.45s ease, padding 0.45s ease, opacity 0.35s ease;
    }
    body:has(nav.scrolled) .topbar {
      max-height: 0;
      padding-top: 0;
      padding-bottom: 0;
      opacity: 0;
      pointer-events: none;
    }
    body:has(.mobile-menu.open) .topbar {
      max-height: 0;
      padding-top: 0;
      padding-bottom: 0;
      opacity: 0;
      pointer-events: none;
    }
    body:has(.mobile-menu.open) nav {
      top: env(safe-area-inset-top, 0px);
      background: transparent !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      box-shadow: none !important;
      border-bottom: none !important;
    }
    .topbar p {
      font-family: 'Jost', sans-serif; font-weight: 300; font-size: 0.62rem;
      letter-spacing: 0.24em; text-transform: uppercase; color: rgba(245,240,232,0.62);
    }
    .topbar p span { color: rgba(200,169,110,0.75); margin: 0 0.7em; }

    /* ── NAV ── */
    nav {
      position: fixed; top: calc(1.9rem + env(safe-area-inset-top, 0px)); left: 0; right: 0; z-index: 61;
      display: flex; justify-content: space-between; align-items: center;
      padding: 1.2rem 3.5rem;
      background: transparent;
      transition: background 0.4s ease, backdrop-filter 0.4s ease,
                  padding 0.4s ease, top 0.4s ease, border-bottom 0.4s ease,
                  box-shadow 0.4s ease;
    }
    nav .nav__logo, nav .nav__links a, nav .nav__cta {
      text-shadow: 0 1px 10px rgba(0,0,0,0.55);
    }
    nav.scrolled {
      top: env(safe-area-inset-top, 0px);
      background: rgba(17,21,13,0.94);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(200,169,110,0.12);
      box-shadow: 0 12px 32px -12px rgba(0,0,0,0.5);
      padding: 0.9rem 3.5rem;
    }
    nav.scrolled .nav__logo, nav.scrolled .nav__links a, nav.scrolled .nav__cta {
      text-shadow: none;
    }
    .nav__brand { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; }
    .nav__symbol { width: 30px; height: 30px; object-fit: contain; opacity: 0.9; transition: opacity .3s; }
    .nav__brand:hover .nav__symbol { opacity: 1; }
    .nav__logo {
      font-family: 'Cormorant Garamond', serif; font-weight: 400;
      font-size: 1.15rem; letter-spacing: 0.26em; text-transform: uppercase;
      color: var(--ivory); opacity: 0.95;
      transition: opacity .35s ease, max-width .38s ease;
      max-width: 160px; overflow: hidden; white-space: nowrap;
    }
    .nav__brand:hover .nav__logo { opacity: 1; }

    /* ── MENÚ ABIERTO: logo centrado, texto oculto (CSS puro con :has) ── */
    @media (max-width: 1200px) {
      nav:has(.nav__burger.open) { justify-content: center; }
      nav:has(.nav__burger.open) .nav__brand { gap: 0; }
      nav:has(.nav__burger.open) .nav__logo { opacity: 0; max-width: 0; transition: opacity .28s ease, max-width .28s ease; }
      nav:has(.nav__burger.open) .nav__burger { position: absolute; right: 1.5rem; }
    }
    .nav__links { list-style: none; display: flex; gap: 1.8rem; align-items: center; }

    /* ── BOTÓN HAMBURGUESA (solo móvil) ── */
    .nav__burger {
      display: none;
      position: relative;
      width: 28px; height: 22px;
      flex-direction: column; justify-content: space-between;
      background: none; border: none; cursor: pointer; padding: 0; z-index: 60;
    }
    .nav__burger span {
      display: block; width: 100%; height: 1.5px;
      background: var(--ivory); opacity: 0.9;
      transition: transform .35s ease, opacity .25s ease;
    }
    .nav__burger.open span:nth-child(1) { transform: translateY(9.5px) rotate(45deg); }
    .nav__burger.open span:nth-child(2) { opacity: 0; }
    .nav__burger.open span:nth-child(3) { transform: translateY(-9.5px) rotate(-45deg); }

    /* ── PANEL MENÚ MÓVIL ── */
    .mobile-menu {
      position: fixed; inset: 0; z-index: 55;
      background: rgba(26,36,25,0.98);
      backdrop-filter: blur(20px);
      display: flex; flex-direction: column;
      align-items: center; justify-content: flex-start;
      gap: 2rem;
      padding-top: calc(5.5rem + env(safe-area-inset-top, 0px)); padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
      overflow: hidden;
      opacity: 0; visibility: hidden;
      transform: translateY(-12px);
      transition: opacity .35s ease, visibility .35s ease, transform .35s ease;
    }
    .mobile-menu.open { opacity: 1; visibility: visible; transform: translateY(0); }
    .mobile-menu__links { list-style: none; text-align: center; display: flex; flex-direction: column; gap: clamp(1.6rem, 2.5vh, 1.7rem); }
    .mobile-menu__links a {
      font-family: 'Cormorant Garamond', serif; font-weight: 300;
      font-size: clamp(1.3rem, 3.8vh, 1.9rem); letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--ivory); text-decoration: none; opacity: 0.9;
      transition: color .3s, opacity .3s;
    }
    .mobile-menu__links a:hover { color: var(--gold); opacity: 1; }
    .mobile-menu__cta {
      margin-top: 0;
      padding: 0.9rem 2.6rem;
      border: 1px solid rgba(200,169,110,0.5);
      font-family: 'Jost', sans-serif; font-weight: 500;
      font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--gold); text-decoration: none;
      transition: background .3s, color .3s;
    }
    .mobile-menu__cta:hover { background: var(--gold); color: var(--black); }
    .nav__links a {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.64rem; letter-spacing: 0.18em; text-transform: uppercase;
      color: var(--ivory); opacity: 0.85; text-decoration: none;
      transition: opacity .3s, color .3s;
    }
    .nav__links a:hover, .nav__links a.active { opacity: 1; color: var(--gold); }
    .nav__cta {
      padding: 0.52rem 1.4rem !important;
      border: 1px solid rgba(200,169,110,0.45) !important;
      color: var(--gold) !important; opacity: 0.95 !important;
      transition: background .3s !important;
    }
    .nav__cta:hover { background: var(--gold) !important; color: var(--black) !important; opacity: 1 !important; }

    /* ── HERO ── */
    .hero {
      position: relative; width: 100%;
      min-height: 100vh; min-height: 100lvh;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center; overflow: hidden;
    }
    @supports (-webkit-touch-callout: none) {
      .hero { min-height: calc(100lvh + 60px); }
    }
    /* Modificador para HEROES DE PÁGINA AUXILIAR (no homepage): ~68% del alto
       de pantalla en vez de fullscreen, para llegar antes al contenido.
       Úsalo en cualquier subpágina nueva: class="hero hero--aux" */
    .hero--aux { min-height: 65vh; min-height: 65lvh; justify-content: flex-start; padding-top: 17rem; }
    .hero--aux .hero__content { margin-top: 0; }
    @supports (-webkit-touch-callout: none) {
      .hero--aux { min-height: calc(65lvh + 40px); }
    }
    @media (max-width:600px) {
      .hero--aux { min-height: 60vh; min-height: 60lvh; }
    }
    .hero__video-fallback { position: absolute; inset: 0; background: linear-gradient(160deg,#283A28 0%,#1A2419 40%,#344A32 100%); will-change: transform; }
    .hero__bg-img {
      position: absolute; inset:0; width:100%; height:100%;
      object-fit:cover; filter:brightness(0.64) saturate(0.82);
      animation: kenBurns 30s ease-in-out infinite alternate;
      transform-origin: 60% 40%;
      will-change: transform;
    }
    @keyframes kenBurns {
      0%   { transform: scale(1)    translate(0, 0); }
      100% { transform: scale(1.05) translate(-0.6%, -0.4%); }
    }
    @media (prefers-reduced-motion: reduce) {
      .hero__bg-img { animation: none; }
    }
    .hero__overlay { position: absolute; inset:0; background: rgba(8,8,6,0.36); }
    .hero__vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center,transparent 44%,rgba(4,4,3,0.56) 100%); pointer-events:none; }
    .hero__content { position:relative; z-index:2; text-align:center; display:flex; flex-direction:column; align-items:center; user-select:none; }
    .hero__eyebrow { font-family:'Jost',sans-serif; font-weight:500; font-size:0.7rem; text-transform:uppercase; color:var(--gold); opacity:1; margin-bottom:0.75rem; }
    .hero__eyebrow .ls { letter-spacing:0.3em; margin-right:-0.3em; display:inline-block; }
    .hero__symbol { width:clamp(58px,7vw,86px); height:clamp(58px,7vw,86px); object-fit:contain; margin-bottom:1.4rem; }
    .hero__name-top { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2.6rem,6vw,5rem); line-height:1; color:var(--ivory); text-transform:uppercase; }
    .hero__name-top .ls { letter-spacing:0.22em; margin-right:-0.22em; display:inline-block; }
    .hero__divider { width:clamp(70px,16vw,180px); height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:0.4rem 0 0.4rem; opacity:0.85; }
    .hero__name-bottom { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2.6rem,6vw,5rem); line-height:1; color:var(--ivory); text-transform:uppercase; }
    .hero__name-bottom .ls { letter-spacing:0.22em; margin-right:-0.22em; display:inline-block; }
    .hero__tagline { margin-top:1.6rem; max-width:600px; font-family:'Cormorant Garamond',serif; font-weight:400; font-style:italic; font-size:clamp(1.2rem,2.6vw,1.7rem); letter-spacing:0.01em; text-transform:none; color:var(--ivory); opacity:0.95; line-height:1.4; }
    .hero__tagline .ls { display:inline-block; }
    .hero__btns { margin-top:3rem; display:flex; gap:1.2rem; flex-wrap:wrap; justify-content:center; }

    /* ── BOTONES ── */
    .btn-primary { padding:0.9rem 2.4rem; background:var(--gold); font-family:'Jost',sans-serif; font-weight:600; font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--black); text-decoration:none; transition:opacity .3s; display:inline-block; }
    .btn-primary:hover { opacity:0.82; }
    .btn-ghost { padding:0.9rem 2.4rem; border:1.5px solid rgba(245,240,232,0.70); font-family:'Jost',sans-serif; font-weight:500; font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--ivory); opacity:1; text-decoration:none; transition:border-color .3s, opacity .3s, color .3s, background .3s; display:inline-block; }
    .btn-ghost:hover { border-color:var(--gold); color:var(--gold); opacity:1; }
    .btn-ghost--dark { border-color:rgba(26,26,22,0.25); color:var(--text-dark); opacity:0.6; }
    .btn-ghost--dark:hover { border-color:var(--gold-dark); color:var(--gold-dark); opacity:1; }
    .btn-primary--dark { background:var(--text-dark); color:var(--ivory); }
    .btn-primary--dark:hover { opacity:0.82; }

    /* ── UTILIDADES ── */
    .eyebrow { font-family:'Jost',sans-serif; font-weight:400; font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase; margin-bottom:1.1rem; display:block; }
    .eyebrow--light { color:var(--gold); font-size:0.85rem; font-weight:600; letter-spacing:0.24em; }
    .eyebrow--dark  { color:#C8A96E; letter-spacing:0.24em; font-weight:600; font-size:0.85rem; }
    .section-title { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2.1rem,4vw,3.4rem); line-height:1.22; }
    .section-title--light { color:var(--ivory); }
    .section-title--dark  { color:#12100C; font-size:clamp(2.6rem,4.4vw,3.9rem); font-weight:300; }
    .section-title em { font-style:italic; }
    .section-title--light em { color:var(--gold); }
    .section-title--dark  em { color:#A07828; }
    .section-symbol { width:30px; height:30px; object-fit:contain; display:block; margin:0 auto 1.2rem; }
    .gold-line { width:40px; height:1px; background:var(--gold); opacity:0.5; margin:1.5rem 0; }
    .gold-line--dark { background:#A07828; opacity:0.8; width:50px; height:1.5px; }

    /* ══ SOBRE — FONDO MARFIL + PATRÓN ══ */
    #sobre {
      position: relative;
      background-color: #EDE6D8;
      padding: 8rem 3.5rem 4rem;
    }
    .sobre-grid { display:grid; grid-template-columns:1fr 1fr; gap:7rem; max-width:1100px; margin:0 auto; align-items:center; }
    .sobre-text p { font-family:'Jost',sans-serif; font-weight:400; font-size:1.12rem; line-height:1.85; color:#1A1612; margin-bottom:1.4rem; }
    .sobre-text p strong { color:var(--text-dark); font-weight:400; }
    .sobre-quote { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(1.02rem,1.4vw,1.18rem); line-height:1.65; color:#12100C; margin-top:2.4rem; margin-bottom:0.8rem; border-left:2px solid rgba(160,120,40,0.4); padding-left:1.3rem; }
    .sobre-quote-author { font-family:'Jost',sans-serif; font-weight:500; font-size:0.92rem; letter-spacing:0.08em; color:#5C3A08; margin-bottom:2rem; }
    .sobre-img-wrap { position:relative; overflow:hidden; }
    .sobre-img-wrap::before { display:none; }
    .sobre-img-wrap::after {
      content: '';
      position: absolute; left: 0; right: 0; bottom: 0;
      height: 9%;
      background: linear-gradient(to bottom, rgba(237,230,216,0) 0%, rgba(237,230,216,0.7) 55%, rgba(237,230,216,1) 75%, rgba(237,230,216,1) 100%);
      pointer-events: none;
    }
    .sobre-img-wrap img { width:100%; display:block; filter:saturate(0.8) brightness(0.95); border-radius:2px; box-shadow: 8px 12px 40px rgba(20,14,6,0.18); }

    /* ══ MASAJES — FONDO NEGRO ══ */
    #masajes {
      background: transparent;
      padding:8rem 3.5rem;
      position: relative;
    }
    .masajes-header { text-align:center; max-width:680px; margin:0 auto 6rem; }
    .masajes-grid {
      display:grid; grid-template-columns:repeat(3,1fr);
      gap:2.6rem; max-width:1180px; margin:0 auto;
    }
    /* ── MASAJES CARDS — rediseño premium ── */
    .masaje-card {
      position: relative;
      display: block;
      aspect-ratio: 3/4;
      overflow: hidden;
      border-radius: 14px;
      border: 1px solid rgba(200,169,110,0.42);
      box-shadow:
        0 8px 28px rgba(0,0,0,0.52),
        0 0 38px rgba(200,169,110,0.09);
      outline: none;
      text-decoration: none;
      -webkit-tap-highlight-color: transparent;
      transition: transform .4s ease, box-shadow .4s ease;
      isolation: isolate;
    }
    .masaje-card:hover, .masaje-card:focus, .masaje-card:active {
      transform: translateY(-5px);
      box-shadow:
        0 18px 50px rgba(0,0,0,0.62),
        0 0 55px rgba(200,169,110,0.17);
      outline: none;
      text-decoration: none;
    }

    /* Foto a sangre — cubre todo la card */
    .masaje-card__img-wrap {
      position: absolute; inset: 0;
      overflow: hidden;
      border-radius: 14px;
    }
    .masaje-card__img-wrap img {
      display: block;
      width: 100%; height: 100%; object-fit: cover;
      filter: brightness(0.92);
      transform: scale(1.02);
      backface-visibility: hidden;
      will-change: transform;
      transition: transform 1s cubic-bezier(0.16,1,0.3,1), filter .6s ease;
    }
    .masaje-card:hover .masaje-card__img-wrap img,
    .masaje-card:focus .masaje-card__img-wrap img {
      transform: scale(1.08);
      filter: brightness(1.0);
    }

    /* Capas decorativas desactivadas — foto natural */
    .masaje-card__img-wrap::before,
    .masaje-card__img-wrap::after { display: none; }

    /* Canto dorado — eliminado */
    .masaje-card__corner { display: none; }
    .masaje-card:hover .masaje-card__corner,
    .masaje-card:focus .masaje-card__corner { display: none; }

    /* Degradado inferior para legibilidad del texto */
    .masaje-card__scrim {
      position: absolute; left: 0; right: 0; bottom: 0;
      height: 70%;
      background: linear-gradient(
        to top,
        rgba(0,0,0,0.75) 0%,
        rgba(0,0,0,0.35) 35%,
        rgba(0,0,0,0) 70%
      );
      pointer-events: none;
      border-radius: 0 0 14px 14px;
    }

    /* Texto superpuesto sobre la foto */
    .masaje-card__body {
      position: absolute; left: 0; right: 0; bottom: 0;
      padding: 1.5rem 1.5rem 1.7rem;
      border-radius: 0 0 14px 14px;
    }
    .masaje-card__name {
      font-family: 'Cormorant Garamond', serif; font-weight: 400;
      font-size: 1.95rem; color: #ffffff; margin-bottom: 0.35rem; line-height: 1.15;
      text-shadow: 0 2px 22px rgba(0,0,0,0.85), 0 1px 5px rgba(0,0,0,0.7);
    }
    .masaje-card__desc {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.95rem; letter-spacing: 0.03em; color: rgba(200,169,110,0.92);
      margin-bottom: 1rem;
      text-shadow: 0 1px 8px rgba(0,0,0,0.7);
    }

    /* Precios — sin recuadros, sobre degradado */
    .masaje-card__prices {
      display: flex;
      gap: 2rem;
      padding-top: 0.9rem;
      justify-content: center;
    }
    .masaje-card__prices--two-col { gap: 3rem; }
    .price-col {
      display: flex; flex-direction: column; align-items: center;
      text-align: center;
    }
    .price-col__dur {
      font-family: 'Jost', sans-serif; font-weight: 500;
      font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase;
      color: rgba(245,240,232,0.65); margin-bottom: 0.28rem;
    }
    .price-col__amount {
      font-family: 'Cormorant Garamond', serif; font-weight: 300;
      font-size: 2rem; color: #F5F0E8; letter-spacing: 0.01em; line-height: 1;
    }
    .masajes-footer { text-align:center; margin-top:4rem; }

    /* ── Separador con logo — compartido entre páginas ── */
    .sep-logo {
      --sep-spacing: 1.5rem;
      display: flex;
      align-items: center;
      gap: 1rem;
      padding: 0.2rem 2rem;
      max-width: 420px;
      margin: var(--sep-spacing) auto;
    }
    .sep-logo::before,
    .sep-logo::after { content: ''; flex: 1; height: 1px; }
    .sep-logo::before { background: linear-gradient(to right, transparent, rgba(200,169,110,0.35)); }
    .sep-logo::after  { background: linear-gradient(to left,  transparent, rgba(200,169,110,0.35)); }
    .sep-logo img { width: 26px; height: 26px; opacity: 0.45; flex-shrink: 0; object-fit: contain; }

    /* Cabecera de sección centrada — reutilizable */
    .section-header-centered { text-align: center; max-width: 700px; margin: 0 auto 5rem; }

    /* ══ POR QUÉ — FONDO SAGE (VERDE) ══ */
    #porque { background:transparent; padding:8rem 3.5rem; position:relative; }
    .porque-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; max-width:1100px; margin:0 auto; align-items:start; }
    .porque-header p { font-family:'Jost',sans-serif; font-weight:400; font-size:1.05rem; line-height:1.85; color:rgba(245,240,232,0.88); margin-top:1.5rem; }
    .porque-items { display:flex; flex-direction:column; gap:2.5rem; }
    .porque-item { display:flex; gap:1.5rem; align-items:flex-start; }
    .porque-item__num { font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--gold); opacity:0.48; line-height:1; flex-shrink:0; width:2rem; }
    .porque-item h3 { font-family:'Cormorant Garamond',serif; font-weight:400; font-size:1.45rem; color:var(--gold); margin-bottom:0.45rem; }
    .porque-item__title { font-size: 1.15rem; font-weight: 300; }
    .porque-item p { font-family:'Jost',sans-serif; font-weight:400; font-size:1rem; line-height:1.85; color:rgba(245,240,232,0.88); }

    /* ══ GALERÍA ══ */
    #galeria {
      background: transparent;
      padding: 8rem 3.5rem;
      position: relative;
    }
    .galeria-header { text-align:center; max-width:700px; margin:0 auto 5rem; }
    .galeria-grid {
      max-width: 1100px; margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      grid-template-rows: auto;
      gap: 0.5rem;
    }
    /* Layout asimétrico — foto grande izq, dos pequeñas der, luego tres iguales */
    .gal-item { overflow:hidden; position:relative; cursor:pointer; }
    .gal-item img {
      width:100%; height:100%; object-fit:cover;
      filter: brightness(0.82) saturate(0.7);
      transition: transform .7s cubic-bezier(.16,1,.3,1), filter .7s ease;
      display:block;
    }
    .gal-item:hover img { transform:scale(1.06); filter:brightness(0.95) saturate(0.9); }
    .gal-item__overlay {
      position:absolute; inset:0;
      background: rgba(26,36,25,0);
      transition: background .4s;
      display:flex; align-items:center; justify-content:center;
    }
    .gal-item:hover .gal-item__overlay { background: rgba(26,36,25,0.25); }
    .gal-item__icon {
      opacity:0; transform:scale(0.8);
      transition: opacity .4s, transform .4s cubic-bezier(.16,1,.3,1);
      color:var(--ivory); font-family:'Cormorant Garamond',serif;
      font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase;
    }
    .gal-item:hover .gal-item__icon { opacity:1; transform:scale(1); }

    /* Disposición asimétrica */
    .gal-item--a { grid-column: span 7; grid-row: span 2; aspect-ratio:unset; height:420px; }
    .gal-item--b { grid-column: span 5; height:205px; }
    .gal-item--c { grid-column: span 5; height:205px; }
    .gal-item--d { grid-column: span 4; height:280px; }
    .gal-item--e { grid-column: span 4; height:280px; }
    .gal-item--f { grid-column: span 4; height:280px; }

    .galeria-footer { text-align:center; margin-top:3rem; }

    /* Lightbox */
    .lightbox {
      position:fixed; inset:0; z-index:100;
      background:rgba(8,8,6,0.96);
      backdrop-filter:blur(8px);
      display:flex; align-items:center; justify-content:center;
      opacity:0; pointer-events:none;
      transition: opacity .4s;
    }
    .lightbox.open { opacity:1; pointer-events:all; }
    .lightbox img {
      max-width:90vw; max-height:88vh;
      object-fit:contain;
      transform:scale(0.94);
      transition:transform .4s cubic-bezier(.16,1,.3,1);
    }
    .lightbox.open img { transform:scale(1); }
    .lightbox__close {
      position:absolute; top:2rem; right:2.5rem;
      background:none; border:none; cursor:pointer;
      font-family:'Jost',sans-serif; font-weight:200;
      font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase;
      color:rgba(245,240,232,0.5); transition:color .3s;
    }
    .lightbox__close:hover { color:var(--gold); }
    .lightbox__caption {
      position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
      font-family:'Jost',sans-serif; font-weight:200;
      font-size:0.6rem; letter-spacing:0.25em; text-transform:uppercase;
      color:rgba(245,240,232,0.35);
    }

    @media (max-width:900px) {
      #galeria { padding:5.5rem 1.5rem; }
      .galeria-grid {
        grid-template-columns: 1fr 1fr;
        gap:0.4rem;
      }
      .gal-item--a { grid-column:span 2; height:240px; }
      .gal-item--b, .gal-item--c { grid-column:span 1; height:160px; }
      .gal-item--d, .gal-item--e, .gal-item--f { grid-column:span 1; height:160px; }
      .gal-item--f { grid-column:span 2; }
    }

    /* ══════════════════════════════════════════════════════
       TARJETAS REGALO — BOLSA FLOTANTE ENTRE VERDE Y CREMA
       La bolsa "cruza" la frontera entre el fondo oscuro
       (extensión natural del body) y la zona crema inferior.
       ══════════════════════════════════════════════════════ */

    #regalo { padding: 0; }

    /* ── Zona oscura: transparente para que se vea el árbol de fondo ── */
    .regalo-stage {
      background: transparent;
      width: 100%;
      display: flex;
      justify-content: center;
      align-items: flex-start;
      padding-top: 1.5rem;
      position: relative;
      overflow: visible;
    }

    /* Halo dorado sutil detrás de la bolsa */
    .regalo-stage::before {
      content: '';
      position: absolute;
      top: 62%; left: 50%;
      transform: translate(-50%, -50%);
      width: min(520px, 100vw); height: min(520px, 100vw);
      background: radial-gradient(ellipse at center,
        rgba(200,169,110,0.18) 0%,
        rgba(200,169,110,0.06) 45%,
        transparent 70%);
      pointer-events: none;
      z-index: 0;
    }

    /* ── La bolsa: flota cruzando la frontera ── */
    .regalo-bolsa-img {
      position: relative;
      z-index: 5;
      width: 84%;
      max-width: 340px;
      display: block;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: -230px;
      filter:
        drop-shadow(0 44px 60px rgba(0,0,0,0.72))
        drop-shadow(0 6px 20px rgba(200,169,110,0.16));
    }

    /* ── Zona crema: eyebrow + título + texto + CTA ── */
    .regalo-content {
      background: #E6DFD0;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 248px 2rem 5.5rem;
      position: relative;
      z-index: 1;
    }

    .regalo-desc {
      font-family: 'Jost', sans-serif;
      font-weight: 400;
      font-size: 1.08rem;
      line-height: 1.85;
      color: #3A3020;
      max-width: 440px;
    }

    /* ── Página de tarjetas: estilos de grid y cards ── */
    .regalo-header { text-align:center; max-width:600px; margin:0 auto 5rem; }
    .regalo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:1100px; margin:0 auto; }
    .regalo-card { padding:3rem 2.4rem; display:flex; flex-direction:column; background:rgba(255,255,255,0.6); border-radius:3px; box-shadow:0 4px 24px rgba(20,14,6,0.1); transition:background .3s, box-shadow .3s; }
    .regalo-card:hover { background:rgba(255,255,255,0.85); box-shadow:0 8px 36px rgba(20,14,6,0.16); }
    .regalo-card__price { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:3.2rem; color:#A07828; line-height:1; margin-bottom:1rem; }
    .regalo-card__price sup { font-size:1.2rem; vertical-align:super; }
    .regalo-card__name { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:1.5rem; color:#12100C; margin-bottom:1rem; }
    .regalo-card__duration { display:inline-block; font-family:'Jost',sans-serif; font-weight:500; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:#5C3A08; background:rgba(160,120,40,0.09); padding:0.4rem 0.85rem; border-radius:30px; margin-bottom:1.6rem; }
    .regalo-card__desc { font-family:'Jost',sans-serif; font-weight:400; font-size:0.88rem; line-height:1.9; color:#2A2318; flex:1; }
    .regalo-card__cta { display:inline-block; margin-top:2rem; padding:0.8rem 1.8rem; border:1px solid rgba(160,120,40,0.4); font-family:'Jost',sans-serif; font-weight:300; font-size:0.6rem; letter-spacing:0.25em; text-transform:uppercase; color:#12100C; text-decoration:none; text-align:center; transition:background .3s, border-color .3s, color .3s; }
    .regalo-card__cta:hover { background:#12100C; color:var(--ivory); border-color:#12100C; }
    .regalo-notes { display:flex; gap:2.6rem; justify-content:center; margin-top:3.5rem; flex-wrap:wrap; }
    .regalo-note { font-family:'Jost',sans-serif; font-weight:500; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:rgba(26,26,22,0.7); text-align:center; }
    .regalo-note::before { content:'—'; color:var(--gold-dark); margin-right:0.5em; opacity:0.8; }
    @media (max-width:600px) {
      .regalo-notes { flex-direction:column; gap:0.9rem; margin-top:2.6rem; }
    }

    /* ── CTA con peso visual ── */
    .regalo-cta {
      display:inline-flex; align-items:center; gap:1.2rem;
      margin-top:2.4rem;
      padding:1.05rem 1.6rem 1.05rem 1.05rem;
      background:var(--text-dark); border-radius:3px;
      text-decoration:none; position:relative; overflow:hidden;
      box-shadow:0 14px 32px -10px rgba(18,16,12,0.4);
      transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
    }
    .regalo-cta:hover { transform:translateY(-3px); box-shadow:0 20px 42px -10px rgba(18,16,12,0.5); }
    .regalo-cta__icon { width:46px; height:46px; flex-shrink:0; border-radius:50%; background:rgba(200,169,110,0.16); display:flex; align-items:center; justify-content:center; }
    .regalo-cta__icon svg { width:20px; height:20px; fill:var(--gold); }
    .regalo-cta__text { display:flex; flex-direction:column; }
    .regalo-cta__label { font-family:'Jost',sans-serif; font-weight:500; font-size:0.8rem; letter-spacing:0.05em; color:var(--ivory); }
    .regalo-cta__sub { font-family:'Jost',sans-serif; font-weight:300; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(245,240,232,0.5); margin-top:0.2rem; }
    .regalo-cta__arrow { margin-left:0.3rem; color:var(--gold); font-size:0.95rem; transition:transform .35s; }
    .regalo-cta:hover .regalo-cta__arrow { transform:translateX(5px); }

    /* ── Desktop ── */
    @media (min-width:900px) {
      .regalo-bolsa-img {
        width: 42%;
        max-width: 380px;
        margin-bottom: -255px;
      }
      .regalo-content {
        padding-top: 275px;
        padding-left: 3.5rem;
        padding-right: 3.5rem;
        padding-bottom: 7rem;
      }
    }
    @media (max-width:600px) {
      .regalo-cta { padding:0.95rem 1.3rem 0.95rem 0.9rem; gap:1rem; }
      .regalo-cta__icon { width:40px; height:40px; }
    }

    /* ══ BLOG ══ */
    #blog { background: transparent; padding:8rem 2.5rem; position: relative; }
    .blog-header { text-align:center; max-width:700px; margin:0 auto 5rem; position:relative; z-index:1; }
    .blog-grid {
      display:grid; grid-template-columns:repeat(3,1fr);
      gap:2rem; max-width:1320px; margin:0 auto;
      position:relative; z-index:1;
    }
    .blog-card {
      display:flex; flex-direction:column;
      border:1px solid var(--border-dark);
      border-radius: 6px;
      overflow:hidden; transition:border-color .4s;
      text-decoration:none;
    }
    .blog-card:hover { border-color:rgba(200,169,110,0.35); }
    .blog-card__img-wrap { position:relative; overflow:hidden; aspect-ratio:3/2; }
    .blog-card__img-wrap img {
      width:100%; height:100%; object-fit:cover;
      filter:brightness(0.78) saturate(0.7);
      transition:transform .6s ease, filter .6s ease;
    }
    .blog-card:hover .blog-card__img-wrap img { transform:scale(1.05); filter:brightness(0.9) saturate(0.85); }
    .blog-card__img-overlay { display:none; }
    .blog-card__cat {
      position:absolute; bottom:1.1rem; left:1.2rem;
      font-family:'Jost',sans-serif; font-weight:300;
      font-size:0.62rem; letter-spacing:0.22em; text-transform:uppercase;
      color:var(--gold);
      background: rgba(10,16,9,0.55);
      padding: 0.28rem 0.65rem;
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
    }
    .blog-card__body {
      padding:1.6rem 1.8rem 2rem; display:flex; flex-direction:column; flex:1;
      background: rgba(245,240,232,0.07);
      backdrop-filter: blur(5px);
      -webkit-backdrop-filter: blur(5px);
    }
    .blog-card__date {
      font-family:'Jost',sans-serif; font-weight:300;
      font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase;
      color:rgba(245,240,232,0.60); margin-bottom:0.8rem;
    }
    .blog-card__title {
      font-family:'Cormorant Garamond',serif; font-weight:300;
      font-size:1.25rem; color:var(--ivory); line-height:1.3; margin-bottom:0.9rem;
      transition:color .3s;
    }
    .blog-card:hover .blog-card__title { color:var(--gold); }
    .blog-card__excerpt {
      font-family:'Jost',sans-serif; font-weight:300;
      font-size:0.98rem; line-height:1.75; color:rgba(245,240,232,0.88);
      flex:1; margin-bottom:1.4rem;
      display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
      line-clamp: 3;
    }
    .blog-card__read {
      font-family:'Jost',sans-serif; font-weight:400;
      font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
      color:var(--gold); opacity:0.82; transition:opacity .3s;
      margin-top:auto;
    }
    .blog-card:hover .blog-card__read { opacity:1; }
    .blog-footer { text-align:center; margin-top:4rem; position:relative; z-index:1; }

    @media (max-width:900px) {
      .blog-grid { grid-template-columns:1fr; }
    }

    /* ══ TESTIMONIOS — EDITORIAL ══ */
    #testimonios { background: transparent; padding:8rem 3.5rem; position: relative; }
    .testimonios-header { text-align:center; max-width:680px; margin:0 auto 2.5rem; position:relative; z-index:1; }

    /* Rating — elemento de confianza prominente */
    .rating-row { display:inline-flex; align-items:center; gap:1.4rem; margin-top:2.8rem; }
    .rating-score { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(3.8rem,8vw,5.5rem); color:var(--gold); line-height:1; letter-spacing:-0.02em; }
    .rating-meta { text-align:left; }
    .stars { color:var(--gold); font-size:0.85rem; letter-spacing:0.18em; }
    .rating-label { font-family:'Jost',sans-serif; font-weight:300; font-size:0.65rem; letter-spacing:0.18em; text-transform:uppercase; color:rgba(245,240,232,0.65); margin-top:0.3rem; }

    /* Grid editorial — sin caja exterior, solo separadores verticales finos */
    .testimonios-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0 4rem; max-width:1100px; margin:0 auto; position:relative; z-index:1; }
    .testimonio { padding:4rem 0; }

    /* Estrellas individuales — ocultas (redundantes con el 5.0 del header) */
    .testimonio__stars { display:none; }

    /* Comilla decorativa — bloque sobre el texto */
    .testimonio__quote::before { content:'\201C'; display:block; font-family:'Cormorant Garamond',serif; font-style:normal; font-size:4rem; line-height:0.8; color:var(--gold); opacity:0.32; margin-bottom:1.4rem; }
    .testimonio__quote { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.42rem; line-height:1.72; color:rgba(245,240,232,0.88); margin-bottom:2.4rem; }
    .testimonio__author { font-family:'Jost',sans-serif; font-weight:400; font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase; color:rgba(245,240,232,0.78); }
    .testimonio__location { font-family:'Jost',sans-serif; font-weight:300; font-size:0.62rem; letter-spacing:0.18em; color:rgba(245,240,232,0.68); margin-top:0.25rem; }

    .testimonios-cta { text-align:center; margin-top:4rem; position:relative; z-index:1; }
    .testimonios-cta a {
      display:inline-flex; align-items:center; gap:0.7rem;
      padding:1.05rem 2.4rem;
      border:1px solid rgba(200,169,110,0.38);
      font-family:'Jost',sans-serif; font-weight:300;
      font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase;
      color:var(--gold); opacity:0.9; text-decoration:none;
      transition:opacity .3s, border-color .3s, background .3s;
    }
    .testimonios-cta a::before { content:'★'; font-size:0.7rem; opacity:0.8; }
    .testimonios-cta a:hover { opacity:1; border-color:var(--gold); background:rgba(200,169,110,0.06); }

    /* ── NAVEGACIÓN CARRUSEL (solo visible en móvil) ── */
    .testimonios-nav { display:none; justify-content:center; gap:0.7rem; margin-top:2.2rem; position:relative; z-index:1; }
    .tn-dot { width:28px; height:2px; background:rgba(200,169,110,0.28); border:none; cursor:pointer; padding:0; transition:background .35s, width .35s; }
    .tn-dot--active { background:var(--gold); width:44px; }

    @keyframes tFadeIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }

    /* ══ CONTACTO ══ */
    #contacto-section {
      background: transparent;
      padding: 9rem 3.5rem;
      position: relative;
      overflow: hidden;
    }
    /* Logo fantasma de fondo */
    .contacto-inner {
      max-width: 1100px; margin: 0 auto;
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 5rem; align-items: start; position: relative; z-index: 1;
    }
    .contacto-left { display:flex; flex-direction:column; }
    .contacto-address {
      margin-top: 2rem;
    }
    .contacto-address a {
      display: flex; align-items: center; gap: 1rem;
      text-decoration: none;
      padding: 1.1rem 0;
      border-bottom: 1px solid var(--border-dark);
      transition: border-color .3s;
    }
    .contacto-address a:first-child { border-top: 1px solid var(--border-dark); }
    .contacto-address a:hover { border-color: rgba(200,169,110,0.35); }
    .contacto-address a:hover .ca-label { color: var(--gold); }
    .ca-icon {
      width: 36px; height: 36px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      border: 1px solid var(--border-dark);
      transition: border-color .3s, background .3s;
    }
    .contacto-address a:hover .ca-icon {
      border-color: rgba(200,169,110,0.4);
      background: rgba(200,169,110,0.06);
    }
    .ca-icon svg { width: 15px; height: 15px; fill: var(--gold); opacity: 0.82; }
    .contacto-address a:hover .ca-icon svg { opacity: 1; }
    .ca-text { flex: 1; }
    .ca-hint {
      font-family: 'Jost', sans-serif; font-weight: 300;
      font-size: 0.55rem; letter-spacing: 0.28em; text-transform: uppercase;
      color: rgba(245,240,232,0.70); margin-bottom: 0.2rem;
    }
    .ca-label {
      font-family: 'Jost', sans-serif; font-weight: 300;
      font-size: 1rem; letter-spacing: 0.06em;
      color: var(--ivory); opacity: 1;
      transition: color .3s;
    }
    .ca-arrow {
      font-family: 'Jost', sans-serif; font-weight: 200;
      font-size: 0.7rem; color: var(--gold); opacity: 0.3;
      transition: opacity .3s, transform .3s;
    }
    .contacto-address a:hover .ca-arrow { opacity: 0.9; transform: translateX(4px); }

    /* Botones principales CTA */
    .contacto-right { display: flex; flex-direction: column; gap: 1rem; }
    .cta-btn {
      display: flex; align-items: center; gap: 1.4rem;
      padding: 1.6rem 2rem;
      text-decoration: none;
      border: 1px solid var(--border-dark);
      background: rgba(245,240,232,0.03);
      transition: background .35s, border-color .35s;
      position: relative; overflow: hidden;
    }
    .cta-btn::before {
      content: ''; position: absolute; inset: 0;
      background: var(--gold); transform: scaleX(0);
      transform-origin: left; transition: transform .4s cubic-bezier(.16,1,.3,1);
    }
    .cta-btn:hover::before { transform: scaleX(1); }
    .cta-btn:hover .cta-btn__icon,
    .cta-btn:hover .cta-btn__label,
    .cta-btn:hover .cta-btn__sub { color: var(--black) !important; }
    .cta-btn:hover .cta-btn__icon svg { fill: var(--black) !important; }
    .cta-btn--wa { border-color: rgba(200,169,110,0.38); }
    .cta-btn--tel { border-color: rgba(200,169,110,0.24); }
    .cta-btn--reserva {
      background: var(--gold); border-color: var(--gold);
    }
    .cta-btn--reserva::before { background: #E8C47E; }
    .cta-btn--reserva .cta-btn__label,
    .cta-btn--reserva .cta-btn__sub { color: var(--black) !important; }
    .cta-btn--reserva .cta-btn__icon svg { fill: var(--black) !important; }
    .cta-btn__icon {
      width: 42px; height: 42px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      position: relative; z-index: 1;
      background: rgba(200,169,110,0.10);
      border-radius: 50%;
      transition: background .35s;
    }
    .cta-btn:hover .cta-btn__icon { background: rgba(26,36,25,0.12); }
    .cta-btn__icon svg { width: 22px; height: 22px; fill: var(--gold); transition: fill .35s; }
    .cta-btn__text { position: relative; z-index: 1; }
    /* Chevron — indicador visual de acción */
    .cta-btn::after {
      content: '›';
      position: absolute; right: 1.6rem; top: 50%;
      transform: translateY(-50%);
      font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; line-height: 1;
      color: var(--gold); opacity: 0.42;
      z-index: 1;
      transition: opacity .35s, color .35s, transform .35s;
      pointer-events: none;
    }
    .cta-btn:hover::after {
      color: var(--black); opacity: 0.55;
      transform: translateY(-50%) translateX(4px);
    }
    .cta-btn:active::after { transform: translateY(-50%) translateX(2px); }
    .cta-btn--reserva::after { color: var(--black); opacity: 0.45; }
    .cta-btn--reserva:hover::after { color: var(--black); opacity: 0.65; }
    /* Feedback táctil inmediato en móvil */
    .cta-btn:active { background: rgba(200,169,110,0.13) !important; }
    .cta-btn--reserva:active { background: #DCC086 !important; }
    .cta-btn__label {
      font-family: 'Cormorant Garamond', serif; font-weight: 400;
      font-size: 1.42rem; color: var(--ivory); display: block;
      transition: color .35s;
    }
    .cta-btn__sub {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.64rem; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(245,240,232,0.88); display: block; margin-top: 0.15rem;
      transition: color .35s;
    }
    .cta-btn--reserva .cta-btn__label { color: #0C0A07 !important; }
    .cta-btn--reserva .cta-btn__sub { color: rgba(12,10,7,0.95) !important; }
    .contacto-horario {
      margin-top: 1rem;
      padding: 1.4rem 1.8rem;
      border: 1px solid rgba(200,169,110,0.15);
      background: rgba(255,255,255,0.032);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
    }
    .contacto-horario h4 {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--gold); opacity: 0.9; margin-bottom: 1rem;
    }
    .horario-row {
      display: flex; justify-content: space-between;
      padding: 0.45rem 0; border-bottom: 1px solid rgba(200,169,110,0.07);
    }
    .horario-row:last-child { border-bottom: none; }
    .horario-row span {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 1rem; color: rgba(245,240,232,0.82); letter-spacing: 0.03em;
    }
    .horario-row span:last-child { color: var(--ivory); font-weight: 400; }


    /* ══ FOOTER — VERDE PROFUNDO ══ */
    footer {
      background: rgba(9,15,8,0.95);
      border-top: 1px solid rgba(200,169,110,0.30);
      padding: 4rem 3.5rem;
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; max-width:1100px; margin:0 auto 4rem; position:relative; z-index:1; }
    .footer-brand__symbol { width:48px; height:48px; object-fit:contain; opacity:0.55; margin-bottom:1.2rem; }
    .footer-brand__name { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:1.2rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--ivory); opacity:0.6; display:block; margin-bottom:1.1rem; }
    .footer-brand__desc { font-family:'Jost',sans-serif; font-weight:300; font-size:0.95rem; line-height:1.9; color:rgba(245,240,232,0.65); max-width:255px; }
    .footer-contact { margin-top:1.4rem; }
    .footer-contact a { display:block; font-family:'Jost',sans-serif; font-weight:400; font-size:0.78rem; color:var(--gold); opacity:0.8; text-decoration:none; line-height:2.3; letter-spacing:0.05em; transition:opacity .3s; }
    .footer-contact a:hover { opacity:1; }
    .footer-col h4 { font-family:'Jost',sans-serif; font-weight:500; font-size:0.65rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); opacity:0.85; margin-bottom:1.5rem; }
    .footer-col ul { list-style:none; }
    .footer-col ul li { margin-bottom:0.75rem; }
    .footer-col ul li a { font-family:'Jost',sans-serif; font-weight:300; font-size:0.76rem; letter-spacing:0.04em; color:rgba(245,240,232,0.6); text-decoration:none; transition:color .3s; }
    .footer-col ul li a:hover { color:var(--ivory); }
    .footer-col ul li a.no-link { cursor: default; pointer-events: none; }
    .footer-bottom { max-width:1100px; margin:0 auto; padding-top:2rem; border-top:1px solid var(--border-dark); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; position:relative; z-index:1; }
    .footer-bottom p { font-family:'Jost',sans-serif; font-weight:300; font-size:0.68rem; letter-spacing:0.1em; color:rgba(245,240,232,0.45); }
    .footer-social { display:flex; gap:1.5rem; }
    .footer-social a { font-family:'Jost',sans-serif; font-weight:400; font-size:0.65rem; letter-spacing:0.15em; text-transform:uppercase; color:rgba(200,169,110,0.65); text-decoration:none; transition:color .3s; }
    .footer-social a:hover { color:var(--gold); }

    /* ── ANIMACIONES ── */
    .fade-up { opacity:0; transform:translateY(20px); animation:fadeUp 1.1s cubic-bezier(0.16,1,0.3,1) forwards; }
    .fade-up:nth-child(1){animation-delay:.15s} .fade-up:nth-child(2){animation-delay:.3s}
    .fade-up:nth-child(3){animation-delay:.48s} .fade-up:nth-child(4){animation-delay:.65s}
    .fade-up:nth-child(5){animation-delay:.82s} .fade-up:nth-child(6){animation-delay:.98s}
    @keyframes fadeUp { to { opacity:1; transform:translateY(0); } }
    @media (prefers-reduced-motion:reduce) { .fade-up{animation:none;opacity:1;transform:none} }

    /* ── RESPONSIVE ── */
    @media (max-width:900px) {
      .contacto-inner { grid-template-columns:1fr; gap:3rem; }

      /* Reordenar: CTAs primero, info de contacto segundo */
      .contacto-right { order: -1; }
      .contacto-left  { order:  1; }
      /* Reservar online encabeza los CTAs */
      .cta-btn--reserva { order: -1; }

      /* Info de contacto en segundo plano visual */
      .contacto-address a { padding: 0.8rem 0; }
      .ca-label { font-size: 0.88rem; opacity: 0.75; }
      .ca-hint  { font-size: 0.5rem; }

      /* CTA buttons más impactantes en móvil */
      .cta-btn { padding: 1.5rem 1.6rem; gap: 1.2rem; border-width: 1.5px; }
      .cta-btn--wa  { border-color: rgba(200,169,110,0.48); background: rgba(200,169,110,0.04); }
      .cta-btn--tel { border-color: rgba(200,169,110,0.32); background: rgba(200,169,110,0.025); }
      .cta-btn__label { font-size: 1.15rem; }
      .cta-btn__sub   { font-size: 0.62rem; }
      .cta-btn__icon  { width: 46px; height: 46px; }

      nav { padding:1.4rem 2rem; }
      #sobre,#masajes,#porque,#testimonios,#contacto-section,#reserva,#como-funciona,#tarjetas,#faq-regalo,#cta-regalo { padding:5.5rem 2rem; }
      #regalo { padding: 0; } /* el regalo tiene su propio sistema de spacing */
      .sobre-grid,.porque-grid { grid-template-columns:1fr; gap:3rem; }
      .masajes-grid,.regalo-grid { grid-template-columns:1fr; }
      .regalo-card { border-right:none; border-bottom:1px solid var(--border-dark); }
      .masaje-card:last-child,.regalo-card:last-child { border-bottom:none; }

      /* Testimonios — crossfade suave: todos apilados, solo cambia la opacidad */
      .testimonios-grid { grid-template-columns:1fr; border:none; }
      .testimonio { grid-column:1; grid-row:1; display:block !important; opacity:0; pointer-events:none; transition:opacity 0.7s ease; padding:3.2rem 0 1.2rem; border-right:none; border-bottom:none; }
      .testimonio--active { opacity:1; pointer-events:auto; }
      .testimonios-nav { display:flex; margin-top:0.8rem; }
      .footer-grid { grid-template-columns:1fr 1fr; gap:2.5rem; }
    }
    @media (max-width:1200px) {
      .nav__links { display:none; }
      .nav__burger { display:flex; }
    }
    @media (max-width:600px) {
      .topbar__hours { display:none; }
      .footer-grid { grid-template-columns:1fr; }
      .hero__btns { flex-direction:column; align-items:center; }
      .hero__content { padding:0 1.5rem; margin-top:2.5rem; }
      .hero--aux { padding-top: 9.5rem; }
      footer { padding:4rem 2rem 2rem; }
      footer { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
      .masaje-card__name { font-size: 2.2rem; }
    }

    /* ══════════════════════════════════════════════════════
       PÁGINA AUXILIAR: TARJETAS REGALO (/tarjetas-regalo.html)
       Componentes nuevos — heredan los tokens de :root y el
       mismo lenguaje visual que el resto del sitio.
       ══════════════════════════════════════════════════════ */

    /* Título y subtítulo para hero de página auxiliar (frase larga,
       a diferencia de .hero__name-top/bottom que parten "Baan"/"Pho") */
    .hero__title-aux {
      font-family:'Cormorant Garamond',serif; font-weight:300;
      font-size:clamp(2.5rem,5.2vw,4.4rem); line-height:1.18;
      color:var(--ivory); text-align:center;
    }
    .hero__title-aux em { font-style:italic; color:var(--gold); }
    .hero__subtitle-aux {
      margin-top:1.3rem; max-width:520px;
      font-family:'Jost',sans-serif; font-weight:300;
      font-size:clamp(0.95rem,1.4vw,1.1rem); line-height:1.7;
      color:rgba(245,240,232,0.78); text-align:center;
    }
    .gold-line-animated {
      width:100%; height:1px;
      background:linear-gradient(90deg,transparent,var(--gold),transparent);
      transform:scaleX(0); transform-origin:left;
      animation: lineGrow 1.2s cubic-bezier(.16,1,.3,1) .9s forwards;
    }
    @keyframes lineGrow { to { transform:scaleX(1); } }
    @media (prefers-reduced-motion:reduce) { .gold-line-animated { animation:none; transform:scaleX(1); } }

    /* Tarjeta destacada ("más elegida") dentro de .regalo-card */
    .regalo-card { position:relative; }
    .regalo-card--featured {
      background:rgba(255,255,255,0.85);
      border:1px solid rgba(160,120,40,0.45);
      box-shadow:0 10px 40px rgba(20,14,6,0.16);
    }
    .regalo-card__tag {
      position:absolute; top:-1px; right:1.6rem;
      background:#12100C; color:var(--ivory);
      font-family:'Jost',sans-serif; font-weight:500;
      font-size:0.55rem; letter-spacing:0.2em; text-transform:uppercase;
      padding:0.45rem 0.9rem;
    }
    /* Línea de "beneficio principal" dentro de la tarjeta */
    .regalo-card__benefit {
      display:flex; align-items:flex-start; gap:0.6rem;
      margin-top:1.5rem; padding-top:1.2rem;
      border-top:1px solid rgba(160,120,40,0.25);
      font-family:'Jost',sans-serif; font-weight:500;
      font-size:0.74rem; line-height:1.5; color:#5C3A08;
    }
    .regalo-card__benefit svg { width:14px; height:14px; fill:#A07828; flex-shrink:0; margin-top:0.2em; }

    /* ── PASOS / EXPLICACIÓN — reutiliza .porque-grid íntegramente ── */
    #como-funciona { background:transparent; padding:8rem 3.5rem; position:relative; }
    /* Ajustes propios de esta página: texto más legible y menos
       hueco entre el título y los puntos (sin tocar #porque de la home) */
    #como-funciona .porque-header { margin-bottom: 0.5rem; }
    #como-funciona .porque-item__num { width:1.8rem; }
    #como-funciona .porque-item h3 {
      font-size:1.32rem; opacity:1;
    }
    #como-funciona .porque-item p {
      font-size:0.96rem; line-height:1.8; color:rgba(245,240,232,0.72);
    }
    @media (max-width:600px) {
      #como-funciona .porque-header p { display:none; }
      #como-funciona .porque-grid { gap:2.2rem; }
      #como-funciona .porque-items { gap:2rem; }
      #como-funciona .porque-item { gap:1rem; }
      #como-funciona .porque-item__num { width:1.5rem; font-size:1.7rem; }
    }

    /* ── TARJETAS DISPONIBLES — mismo fondo marfil que #regalo ── */
    #tarjetas { background-color:#E6DFD0; padding:8rem 3.5rem; }

    /* ── FAQ ── */
    #faq-regalo { background:transparent; padding:8rem 3.5rem; position:relative; border-top:1px solid var(--border-dark); }
    .faq-inner { max-width:780px; margin:0 auto; position:relative; z-index:1; }
    .faq-header { text-align:center; margin-bottom:4rem; }
    .faq-list { display:flex; flex-direction:column; }
    .faq-item { border-top:1px solid var(--border-dark); overflow:hidden; }
    .faq-item:last-child { border-bottom:1px solid var(--border-dark); }
    .faq-question {
      width:100%; background:none; border:none; cursor:pointer;
      display:flex; justify-content:space-between; align-items:center;
      padding:1.6rem 0; gap:2rem; text-align:left;
      overflow: visible;
    }
    .faq-question__text {
      font-family:'Cormorant Garamond',serif; font-weight:300;
      font-size:1.15rem; color:var(--ivory); transition:color .3s;
    }
    .faq-item.open .faq-question__text { color:var(--gold); }
    .faq-question__icon {
      flex-shrink:0; width:28px; height:28px;
      border:1px solid var(--border-dark);
      display:flex; align-items:center; justify-content:center;
      transition:border-color .3s, transform .4s cubic-bezier(.16,1,.3,1), background .3s;
      transform-origin: center center;
    }
    .faq-item.open .faq-question__icon { border-color:var(--gold); background:rgba(200,169,110,0.08); transform:rotate(45deg); }
    .faq-question__icon svg { width:12px; height:12px; fill:var(--gold); opacity:0.55; transition:opacity .3s; }
    .faq-item.open .faq-question__icon svg { opacity:1; }
    .faq-answer { max-height:0; overflow:hidden; transition:max-height .55s cubic-bezier(.16,1,.3,1); }
    .faq-item.open .faq-answer { max-height:380px; }
    .faq-answer__inner { padding:0 0 1.8rem; }
    .faq-answer p { font-family:'Jost',sans-serif; font-weight:300; font-size:0.95rem; line-height:1.95; color:rgba(245,240,232,0.72); }

    /* ── CTA FINAL ── */
    #cta-regalo { padding:8rem 3.5rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1.7rem; position:relative; }
    #cta-regalo h2 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(2.1rem,4vw,3.3rem); color:var(--ivory); line-height:1.22; }
    #cta-regalo h2 em { font-style:italic; color:var(--gold); }
    #cta-regalo .cta-section__eyebrow { font-family:'Jost',sans-serif; font-weight:500; font-size:0.75rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); }
    #cta-regalo .cta-section__sub { font-family:'Jost',sans-serif; font-weight:300; font-size:0.98rem; line-height:1.85; color:rgba(245,240,232,0.65); max-width:420px; }
    .cta-btns { display:flex; gap:1.2rem; flex-wrap:wrap; justify-content:center; }

    /* ── Fade-in al hacer scroll (solo se usa en esta página) ── */
    .fade-in-scroll { opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
    .fade-in-scroll.visible { opacity:1; transform:translateY(0); }
    .fade-in-scroll.delay-1 { transition-delay:.15s; }
    .fade-in-scroll.delay-2 { transition-delay:.3s; }
    @media (prefers-reduced-motion:reduce) { .fade-in-scroll { opacity:1; transform:none; transition:none; } }

    @media (max-width:900px) {
      .regalo-card__tag { right:1.2rem; }
    }

    /* Utilidad reservada para cuando una futura página auxiliar
       use un hero de fondo claro: añade class="page--light-hero"
       al body para que el nav (pensado para heroes oscuros) se
       lea bien sobre fondo claro mientras no se haya hecho scroll. */
    body.page--light-hero nav:not(.scrolled) {
      background: rgba(245,240,232,0.92);
      backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid var(--border-dark);
    }
    body.page--light-hero nav:not(.scrolled) .nav__logo,
    body.page--light-hero nav:not(.scrolled) .nav__links a,
    body.page--light-hero nav:not(.scrolled) .nav__cta {
      color: var(--text-dark) !important; text-shadow: none !important; opacity:0.85;
    }
    body.page--light-hero nav:not(.scrolled) .nav__links a:hover,
    body.page--light-hero nav:not(.scrolled) .nav__links a.active { color:#A07828 !important; opacity:1; }
    body.page--light-hero nav:not(.scrolled) .nav__symbol { filter:none; }
    body.page--light-hero nav:not(.scrolled) .nav__burger span { background: var(--text-dark); }


    /* ══ ÁRBOL BODHI — FONDO GLOBAL CON PARALLAX (index.html) ══ */
    #tree-bg {
      position: fixed;
      top: 0; left: 0;
      width: 100vw; height: 100vh;
      z-index: -10;
      pointer-events: none;
      overflow: hidden;
      max-width: 100vw;
    }
    #tree-bg img {
      position: absolute;
      top: 0; right: 0;
      height: 300vh;
      width: auto;
      max-width: none;
      will-change: transform;
      filter: saturate(0.85) brightness(0.6);
      transform: translateY(0px);
    }
    @media (max-width: 699px) {
      #tree-bg img { height: 180vh; }
    }
    #tree-bg::after {
      content: '';
      position: absolute; inset: 0;
      background: rgba(26,36,25,0.95);
    }

    /* ══ TRAMA TAILANDESA — FONDO GLOBAL FIJO (páginas auxiliares) ══ */
    #trama-bg {
      position: fixed;
      inset: 0;
      z-index: -10;
      pointer-events: none;
      background-image: url('../img/trama-masaje.svg');
      background-repeat: repeat;
      background-size: 750px 750px;
      opacity: 0.015;
    }

    /* ── EFECTO SCROLL TARJETAS — eliminado (JS removido) ── */


    /* ══════════════════════════════════════════════════
       COOKIE CONSENT — BANNER + PANEL DE GESTIÓN
       ══════════════════════════════════════════════════ */

    /* ── Banner ── */
    .cookie-banner {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      z-index: 150;
      background: rgba(13, 18, 12, 0.97);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      border-top: 1px solid rgba(200,169,110,0.18);
      padding: 1.3rem 3.5rem;
      transform: translateY(100%);
      transition: transform 0.55s cubic-bezier(0.16,1,0.3,1);
      will-change: transform;
    }
    .cookie-banner.visible { transform: translateY(0); }

    /* ── Layout desktop: fila (texto | botones) ── */
    .cookie-banner__inner {
      max-width: 1100px; margin: 0 auto;
      display: flex; align-items: center; gap: 3rem;
    }
    .cookie-banner__text { flex: 1; min-width: 0; }
    .cookie-banner__title {
      font-family: 'Cormorant Garamond', serif; font-weight: 300;
      font-size: 1.05rem; letter-spacing: 0.06em; color: var(--ivory);
      margin-bottom: 0.2rem;
    }
    .cookie-banner__desc {
      font-family: 'Jost', sans-serif; font-weight: 300;
      font-size: 0.76rem; line-height: 1.65; color: rgba(245,240,232,0.52);
    }
    .cookie-banner__desc a {
      color: rgba(200,169,110,0.7); text-decoration: underline;
      text-decoration-color: rgba(200,169,110,0.25);
      transition: color .3s, text-decoration-color .3s;
    }
    .cookie-banner__desc a:hover { color: var(--gold); text-decoration-color: rgba(200,169,110,0.6); }
    .cookie-banner__actions { display: flex; gap: 0.65rem; flex-shrink: 0; align-items: center; }

    /* ── Layout móvil: columna (texto encima, botones debajo) ── */
    @media (max-width: 900px) {
      .cookie-banner {
        padding: 1.2rem 1.4rem 85px; /* 85px fijo: justo por encima de la barra de Safari */
        background: rgba(13, 18, 12, 0.99); /* sólido en móvil: evita el parpadeo de backdrop-filter al hacer scroll */
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        -webkit-backface-visibility: hidden; /* fuerza capa GPU, evita flicker en iOS */
        backface-visibility: hidden;
      }
      .cookie-banner__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0.8rem;
      }
      .cookie-banner__text {
        flex: none; /* altura natural, sin grow */
      }
      .cookie-banner__desc { font-size: 0.73rem; line-height: 1.5; }
      .cookie-banner__actions {
        display: flex;
        gap: 0.4rem;
      }
    }

    /* ── Botones compartidos banner/panel ── */
    .cookie-btn {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.61rem; letter-spacing: 0.18em; text-transform: uppercase;
      cursor: pointer; padding: 0.65rem 1.3rem;
      transition: background .28s, color .28s, border-color .28s;
      white-space: nowrap; display: inline-flex; align-items: center;
    }
    .cookie-btn--ghost {
      background: transparent; border: 1px solid rgba(245,240,232,0.18);
      color: rgba(245,240,232,0.45);
    }
    .cookie-btn--ghost:hover { border-color: rgba(245,240,232,0.38); color: rgba(245,240,232,0.8); }
    .cookie-btn--outline {
      background: transparent; border: 1px solid rgba(200,169,110,0.35);
      color: rgba(200,169,110,0.75);
    }
    .cookie-btn--outline:hover { border-color: var(--gold); color: var(--gold); }
    .cookie-btn--fill { background: var(--gold); border: 1px solid var(--gold); color: #0E1410; }
    .cookie-btn--fill:hover { background: #D4B87A; border-color: #D4B87A; }

    /* Botones en móvil: ocupan el ancho disponible a partes iguales */
    @media (max-width: 900px) {
      .cookie-banner__actions .cookie-btn {
        flex: 1;
        justify-content: center;
        font-size: 0.56rem;
        letter-spacing: 0.07em;
        padding: 0.62rem 0.3rem;
      }
    }

    /* ── Overlay ── */
    .cookie-overlay {
      position: fixed; inset: 0; z-index: 148;
      background: rgba(0,0,0,0.52);
      opacity: 0; visibility: hidden;
      transition: opacity .4s ease, visibility .4s ease;
    }
    .cookie-overlay.visible { opacity: 1; visibility: visible; }

    /* ── Panel de gestión ── */

    /* ════════════════════════════════════════════════════
       MENÚ FLOTANTE MÓVIL
       Solo visible en móvil (< 901px).
       Inyectado por scripts.js en todas las páginas excepto legales.
    ════════════════════════════════════════════════════ */
    .baan-float {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      height: 90px;
      z-index: 999;
      display: none;
    }
    .baan-float.visible {
      display: block;
      animation: floatIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    }
    @keyframes floatIn {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @media (min-width: 901px) { .baan-float { display: none !important; } }

    .baan-float__btn {
      position: absolute;
      display: flex;
      align-items: center;
      justify-content: center;
      text-decoration: none;
      -webkit-tap-highlight-color: transparent;
    }
    .baan-float__btn--left,
    .baan-float__btn--right {
      top: 70%;
      transform: translateY(-50%);
      height: 52px;
      width: 60px;
      color: rgba(200,169,110,0.95);
    }
    .baan-float__btn--left  { left: 13%; }
    .baan-float__btn--right { right: 12%; }
    .baan-float__btn--left svg  { width: 28px; height: 28px; display: block; }
    .baan-float__btn--right svg { width: 34px; height: 34px; display: block; }

    .baan-float__btn--center {
      position: absolute;
      left: 50%;
      top: 50px;
      transform: translateX(-50%);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Jost', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      letter-spacing: 0.40em;
      text-transform: uppercase;
      padding-left: 0.40em;
      padding-bottom: 3px;
      color: rgba(200,169,110,0.95);
      border-bottom: 1px solid rgba(200,169,110,0.55);
      text-decoration: none;
      z-index: 10;
      white-space: nowrap;
    }

    .baan-float__svg {
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: min(500px, 100vw);
      height: 90px;
      display: block;
    }

    body.cookie-panel-open .baan-float { opacity: 0; visibility: hidden; pointer-events: none; }

    .cookie-panel {
      position: fixed; bottom: 0; left: 50%;
      transform: translateX(-50%) translateY(100%);
      visibility: hidden;
      pointer-events: none;
      width: 100%; max-width: 640px;
      z-index: 151;
      background: rgba(11,16,10,0.99);
      border: 1px solid rgba(200,169,110,0.16); border-bottom: none;
      max-height: 82vh; overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      transition: transform 0.55s cubic-bezier(0.16,1,0.3,1),
                  visibility 0s linear 0.55s;
      will-change: transform;
    }
    .cookie-panel.visible {
      transform: translateX(-50%) translateY(0);
      visibility: visible;
      pointer-events: auto;
      transition: transform 0.55s cubic-bezier(0.16,1,0.3,1),
                  visibility 0s linear 0s;
    }


    .cookie-panel__inner { padding: 2.2rem 2.5rem 2.5rem; }
    @media (max-width: 520px) { .cookie-panel__inner { padding: 1.8rem 1.4rem 2rem; } }

    .cookie-panel__header { display: flex; flex-direction: column; margin-bottom: 1.8rem; position: relative; }
    .cookie-panel__eyebrow {
      font-family: 'Jost', sans-serif; font-weight: 500;
      font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase;
      color: var(--gold); margin-bottom: 0.5rem; display: block;
    }
    .cookie-panel__title {
      font-family: 'Cormorant Garamond', serif; font-weight: 300;
      font-size: 1.7rem; color: var(--ivory); line-height: 1.15;
    }
    .cookie-panel__close {
      position: absolute; top: 0; right: 0;
      background: none; border: 1px solid rgba(200,169,110,0.18);
      color: rgba(245,240,232,0.45); width: 30px; height: 30px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-size: 0.7rem; line-height: 1;
      transition: border-color .28s, color .28s;
    }
    .cookie-panel__close:hover { border-color: rgba(200,169,110,0.5); color: var(--gold); }

    /* Categorías */
    .cookie-category { padding: 1.3rem 0; border-top: 1px solid rgba(200,169,110,0.1); }
    .cookie-category:last-of-type { border-bottom: 1px solid rgba(200,169,110,0.1); }
    .cookie-category__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; }
    .cookie-category__name {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--ivory); margin-bottom: 0.3rem;
    }
    .cookie-category__desc {
      font-family: 'Jost', sans-serif; font-weight: 300;
      font-size: 0.78rem; line-height: 1.65; color: rgba(245,240,232,0.48);
    }
    .cookie-always-on {
      font-family: 'Jost', sans-serif; font-weight: 400;
      font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase;
      color: rgba(200,169,110,0.55); flex-shrink: 0; padding-top: 2px; white-space: nowrap;
    }

    /* Toggle switch */
    .cookie-toggle {
      flex-shrink: 0; position: relative;
      display: inline-block; width: 40px; height: 22px;
      cursor: pointer; margin-top: 2px;
    }
    .cookie-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
    .cookie-toggle__track {
      position: absolute; inset: 0;
      background: rgba(245,240,232,0.1); border: 1px solid rgba(200,169,110,0.18);
      transition: background .3s, border-color .3s;
    }
    .cookie-toggle__track::before {
      content: ''; position: absolute;
      width: 14px; height: 14px; top: 3px; left: 3px;
      background: rgba(245,240,232,0.35);
      transition: transform .3s cubic-bezier(0.16,1,0.3,1), background .3s;
    }
    .cookie-toggle input:checked + .cookie-toggle__track { background: rgba(200,169,110,0.12); border-color: var(--gold); }
    .cookie-toggle input:checked + .cookie-toggle__track::before { transform: translateX(18px); background: var(--gold); }
    .cookie-toggle input:focus-visible + .cookie-toggle__track { outline: 2px solid var(--gold); outline-offset: 2px; }

    /* Footer del panel */
    .cookie-panel__footer { display: flex; gap: 0.65rem; margin-top: 2rem; justify-content: flex-end; }
    @media (max-width: 420px) {
      .cookie-panel__footer { flex-direction: column-reverse; }
      .cookie-panel__footer .cookie-btn { width: 100%; justify-content: center; }
    }


    @media (prefers-reduced-motion: reduce) {
      .cookie-banner, .cookie-panel, .cookie-overlay { transition: none; }
    }

    /* ══════════════════════════════════════════════════════
       LANDSCAPE MÓVIL — iPhone girado y dispositivos bajos
       Aplica solo cuando height ≤ 500px (landscape real)
       ══════════════════════════════════════════════════════ */
    @media (orientation: landscape) and (max-height: 500px) {

      /* Sobre nosotros: en landscape volver a 2 columnas y foto más compacta */
      .sn-jinda__inner { grid-template-columns: 1fr !important; gap: 2rem !important; padding: 1.5rem 0 !important; }

      /* Árbol Bodhi: ocultar en landscape, nos da problemas de composición */
      #tree-bg { display: none; }

      /* Safe area secciones: mínimo 3.5rem para no reducir secciones
         que ya tenían más padding (testimonios, porque, etc.) */
      section {
        padding-left:  max(env(safe-area-inset-left), 3.5rem) !important;
        padding-right: max(env(safe-area-inset-right), 3.5rem) !important;
      }
      nav, .topbar {
        padding-left:  max(env(safe-area-inset-left), 1.5rem);
        padding-right: max(env(safe-area-inset-right), 1.5rem);
      }
      .mobile-menu {
        padding-left:  max(env(safe-area-inset-left), 1.5rem);
        padding-right: max(env(safe-area-inset-right), 1.5rem);
      }

      /* Hero: reducir altura mínima para no ocupar toda la pantalla */
      .hero { min-height: max(420px, 100svh); }
      .hero--aux { min-height: max(380px, 90svh); padding-top: 7rem; }

      /* Menú móvil: scrollable y compacto */
      .mobile-menu {
        justify-content: flex-start;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-top: 4.5rem;
        gap: 0.8rem;
      }
      .mobile-menu__links { gap: 0.7rem; }
      .mobile-menu__links a { font-size: 1.2rem; }
      .mobile-menu__cta { margin-top: 0.4rem; padding: 0.6rem 2rem; font-size: 0.65rem; }

      /* Nav con menú abierto: no centrar en landscape, dejar a la izquierda */
      nav:has(.nav__burger.open) { justify-content: space-between; }
      nav:has(.nav__burger.open) .nav__logo { opacity: 1 !important; max-width: none !important; }
      nav:has(.nav__burger.open) .nav__brand { gap: 0.8rem; }

      /* Menú flotante: ocultar en landscape — el SVG no escala bien */
      .baan-float { display: none !important; }
    }

    /* ══════════════════════════════════════════════════════
       SELECTOR DE IDIOMA — nav desktop + menú móvil
       ══════════════════════════════════════════════════════ */
    .nav__lang { display:flex; align-items:center; gap:3px; list-style:none; }
    .nav__lang-btn {
      font-family:'Jost',sans-serif; font-size:0.68rem; font-weight:400;
      letter-spacing:0.18em; text-transform:uppercase;
      padding:0.2rem 0.35rem; text-decoration:none;
      color:rgba(245,240,232,0.35);
      transition:color 0.2s;
    }
    .nav__lang-btn--active {
      color:rgba(200,169,110,0.9);
      border-bottom:1px solid rgba(200,169,110,0.6);
      padding-bottom:calc(0.2rem - 1px);
      pointer-events:none;
    }
    .nav__lang-btn:hover:not(.nav__lang-btn--active) { color:rgba(245,240,232,0.65); }
    .nav__lang-sep { color:rgba(200,169,110,0.6); font-size:0.65rem; font-family:'Jost',sans-serif; }

    .mobile-menu__lang {
      display:flex; align-items:center; justify-content:center;
      gap:4px;
      margin-top: auto;
    }
    .mobile-menu__lang-btn {
      font-family:'Jost',sans-serif; font-size:0.85rem; font-weight:600;
      letter-spacing:0.22em; text-transform:uppercase;
      padding:0.28rem 0.45rem; text-decoration:none;
      color:rgba(245,240,232,0.35); transition:color 0.2s;
    }
    .mobile-menu__lang-btn--active {
      color: rgba(245, 240, 232, 0.9);
      border-bottom:1px solid rgba(200,169,110,0.55);
      padding-bottom:calc(0.28rem - 1px);
      pointer-events:none;
    }
    .mobile-menu__lang-sep { color:rgba(200,169,110,0.6); font-size:0.8rem; }
