/* =========================================================================
   Velvet Skin Spa · Sistema visual v2
   Paleta de las piezas impresas del documento: verde bosque, dorado, crema y blanco.
   Motivo propio: el círculo dorado del isologo (líneas que se dibujan y sello giratorio).
   Toda la animación se desactiva con prefers-reduced-motion.
   ========================================================================= */

/* ---------- Tokens ---------- */
:root{
  --verde-bosque:#2E3A31;
  --verde-noche:#26332B;
  --verde-profundo:#1B241E;
  --oliva:#5F6446;
  --oliva-suave:#ECE4D4;
  --crema:#F4F0E8;
  --marfil:#FAF7F1;
  --beige:#E3D7C3;
  --dorado:#C2A26A;
  --dorado-claro:#DBC394;
  --dorado-oscuro:#86683A;
  --blanco:#FFFFFF;

  --bg:var(--crema);
  --bg-alt:var(--verde-bosque);
  --surface:var(--blanco);
  --surface-2:var(--marfil);
  --fg:var(--verde-noche);
  --fg-soft:#5A6457;
  --fg-on-alt:var(--crema);
  --fg-on-alt-soft:#C9CEC1;
  --line:#E4DBCB;
  --line-strong:#D6C9B3;
  --accent:var(--dorado);
  --accent-ink:var(--dorado-oscuro);
  --accent-contrast:#1F2A23;
  --accent-hover-fg:var(--blanco);
  --control-border:#858A7B;
  --error:#A4553E;
  --shadow:0 24px 60px -30px rgba(27,36,30,.45);
  --shadow-soft:0 12px 32px -20px rgba(27,36,30,.35);

  --font-display:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --font-body:"Jost","Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;

  --radius:4px;
  --radius-lg:14px;
  --gutter:clamp(18px,5vw,72px);
  --maxw:1320px;
  --measure:62ch;
  --header-h:84px;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --dur:.9s;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#141B16; --bg-alt:#1E2922; --surface:#1B231D; --surface-2:#212B24;
    --fg:#EFE9DD; --fg-soft:#B8BDAF; --fg-on-alt:#EFE9DD; --fg-on-alt-soft:#C3C8BA;
    --line:#2D3830; --line-strong:#3E4A40; --oliva-suave:#26302A;
    --accent:#CDB07A; --accent-ink:#CDB07A; --accent-contrast:#141B16; --accent-hover-fg:#141B16;
    --control-border:#7E897C; --error:#F0A58C;
    --shadow:0 24px 60px -30px rgba(0,0,0,.7); --shadow-soft:0 12px 32px -20px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#141B16; --bg-alt:#1E2922; --surface:#1B231D; --surface-2:#212B24;
  --fg:#EFE9DD; --fg-soft:#B8BDAF; --fg-on-alt:#EFE9DD; --fg-on-alt-soft:#C3C8BA;
  --line:#2D3830; --line-strong:#3E4A40; --oliva-suave:#26302A;
  --accent:#CDB07A; --accent-ink:#CDB07A; --accent-contrast:#141B16; --accent-hover-fg:#141B16;
  --control-border:#7E897C; --error:#F0A58C;
  --shadow:0 24px 60px -30px rgba(0,0,0,.7); --shadow-soft:0 12px 32px -20px rgba(0,0,0,.6);
  color-scheme:dark;
}

/* Transiciones suaves entre páginas (navegadores compatibles) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .35s var(--ease-io) both}
::view-transition-new(root){animation:vt-in .55s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(14px)}}

/* ---------- Base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font-body);font-weight:300;font-size:16.5px;line-height:1.7;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;
  --t:var(--fg);--t-soft:var(--fg-soft);--t-accent:var(--accent-ink);--rule:var(--line);
}
.on-alt{--t:var(--fg-on-alt);--t-soft:var(--fg-on-alt-soft);--t-accent:var(--accent);--rule:rgba(243,239,230,.16)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.005em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--t-accent)}
p{margin:0}
a{color:inherit}
img,svg,video{max-width:100%}
img{display:block;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--dorado);color:var(--verde-profundo)}
:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.on-alt :focus-visible{outline-color:var(--accent)}
.on-alt .hero-card :focus-visible{outline-color:var(--fg)}
[id]{scroll-margin-top:calc(var(--header-h) + 12px)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:1rem;top:-100px;z-index:200;background:var(--fg);color:var(--bg);padding:.7rem 1.1rem;border-radius:var(--radius);text-decoration:none;font-size:.9rem}
.skip:focus{top:1rem}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-narrow{max-width:900px}
section.block{padding-block:clamp(4.5rem,10vw,8.5rem);position:relative}
.alt-surface{background:var(--surface)}
.alt-ivory{background:var(--surface-2)}
.on-alt{background:var(--bg-alt);color:var(--fg-on-alt)}
.grain{position:relative;isolation:isolate}
.block.on-alt{overflow:clip}
.grain::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Tipografía editorial ---------- */
.eyebrow{font-family:var(--font-body);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:400;color:var(--t-accent);display:inline-flex;align-items:center;gap:.9rem;margin:0;line-height:1.6}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor;flex:none}
.eyebrow .num{font-family:var(--font-display);font-size:1rem;letter-spacing:0;font-style:italic}
h2.eyebrow{font-weight:400}
.display{font-size:clamp(2.9rem,7vw,6.4rem);line-height:.98;letter-spacing:-.02em;font-weight:300}
.section-title{font-size:clamp(2.2rem,4.6vw,3.9rem);margin-top:.9rem;font-weight:400;color:var(--t)}
.sub-title{font-size:clamp(1.6rem,2.8vw,2.2rem);color:var(--t)}
.lede{color:var(--t-soft);max-width:var(--measure);margin-top:1.2rem;font-size:1.08rem}
.script{font-family:var(--font-display);font-style:italic;font-weight:400}
.note{font-size:.78rem;color:var(--t-soft);margin-top:1.4rem}
.head-center{text-align:center;display:flex;flex-direction:column;align-items:center}
.head-center .lede{margin-inline:auto}
.block-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.block-head > div{max-width:720px}

/* ---------- Botones y enlaces ---------- */
.btn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1rem 1.8rem;border-radius:999px;border:1px solid transparent;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:color .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);
}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-2px)}
.btn svg{width:16px;height:16px;flex:none}
.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);box-shadow:0 10px 30px -14px rgba(194,162,106,.7)}
.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--accent-hover-fg)}
.btn-ghost{background:transparent;color:var(--t);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--t)}
.on-alt .btn-ghost,.over-media .btn-ghost{color:var(--fg-on-alt);border-color:rgba(243,239,230,.45)}
.on-alt .btn-ghost:hover,.over-media .btn-ghost:hover{border-color:var(--fg-on-alt);background:rgba(243,239,230,.06)}
.btn-wa{background:#25D366;border-color:#25D366;color:#0B2E1A}
.btn-wa:hover{background:#1EBE5A;border-color:#1EBE5A;color:#0B2E1A}
.btn-ig{background:transparent;color:var(--t);border-color:var(--line-strong)}
.on-alt .btn-ig{color:var(--fg-on-alt);border-color:rgba(243,239,230,.45)}
.btn-social svg{fill:currentColor;width:17px;height:17px}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.4rem}
@media (max-width:400px){.btn{white-space:normal;text-align:center}}

.link{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--t);text-decoration:none;padding-bottom:.35rem;margin-top:1.8rem;
  background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;transition:background-size .5s var(--ease),color .3s}
.link::after{content:"\2192";transition:transform .5s var(--ease)}
.link:hover{background-size:0 1px;color:var(--t-accent)}
.link:hover::after{transform:translateX(6px)}

/* ---------- Barra de progreso ---------- */
.progress{position:fixed;left:0;top:0;height:2px;width:100%;z-index:120;background:linear-gradient(90deg,var(--dorado-oscuro),var(--dorado),var(--dorado-claro));transform-origin:0 50%;transform:scaleX(var(--p,0));pointer-events:none}

/* ---------- Encabezado ---------- */
.topbar{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);transition:background .5s var(--ease),height .5s var(--ease),box-shadow .5s var(--ease),color .5s var(--ease);color:var(--fg)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;height:100%}
.topbar.is-scrolled,.topbar.is-solid{background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 var(--line)}
.topbar.is-scrolled{--header-h:70px}
.topbar.over-media:not(.is-scrolled){color:var(--fg-on-alt)}
.topbar.over-media:not(.is-scrolled) .brand .name small{color:var(--fg-on-alt-soft)}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit;flex:none}
.brand .mono{height:46px;width:auto;transition:height .5s var(--ease)}
.topbar.is-scrolled .brand .mono{height:40px}
.topbar.over-media:not(.is-scrolled) .brand .mono{filter:brightness(1.9) saturate(.7)}
.brand .name{display:flex;flex-direction:column;line-height:1}
.brand .name b{font-family:var(--font-display);font-weight:500;font-size:1.3rem;letter-spacing:.22em}
.brand .name small{font-size:.58rem;letter-spacing:.34em;text-transform:uppercase;color:var(--fg-soft);margin-top:.3rem}
:root[data-theme="dark"] .brand .mono{filter:brightness(1.7) saturate(.8)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .brand .mono{filter:brightness(1.7) saturate(.8)}}

.nav{display:flex;align-items:center;gap:.2rem}
.nav-list{display:flex;align-items:center;gap:.2rem;list-style:none;margin:0;padding:0}
.nav-item{position:relative}
.nav-link{display:inline-flex;align-items:center;gap:.35rem;padding:.6rem .85rem;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;text-decoration:none;color:inherit;background:none;border:0;cursor:pointer;position:relative}
.nav-link::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.3rem;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after,.nav-item.is-current > .nav-link::after{transform:scaleX(1);transform-origin:left}
.nav-link .caret{width:9px;height:9px;transition:transform .4s var(--ease)}
.nav-item.is-open .caret{transform:rotate(180deg)}
.dropdown{position:absolute;top:calc(100% + 10px);left:50%;min-width:300px;padding:.7rem;border-radius:var(--radius-lg);background:var(--surface);color:var(--fg);box-shadow:var(--shadow);border:1px solid var(--line);
  opacity:0;visibility:hidden;transform:translate(-50%,10px);transition:opacity .35s var(--ease),transform .45s var(--ease),visibility 0s .45s;list-style:none;margin:0}
.dropdown::before{content:"";position:absolute;inset:-12px 0 auto 0;height:12px}
.nav-item.is-open > .dropdown{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .35s var(--ease),transform .45s var(--ease),visibility 0s}
.dropdown a{display:grid;grid-template-columns:52px minmax(0,1fr);gap:.2rem 1rem;align-items:center;padding:.65rem;border-radius:10px;text-decoration:none;transition:background .3s}
.dropdown a:hover,.dropdown a:focus-visible{background:var(--surface-2)}
.dropdown img{grid-row:1 / span 2;width:52px;height:52px;object-fit:cover;border-radius:50%}
.dropdown b{font-family:var(--font-display);font-size:1.15rem;font-weight:500;line-height:1.1}
.dropdown small{font-size:.78rem;color:var(--fg-soft);line-height:1.35}
.dropdown a[aria-current="page"] b{color:var(--accent-ink)}
.nav-cta{margin-left:.8rem;padding:.8rem 1.4rem;font-size:.7rem}
.menu-toggle{display:none;width:48px;height:48px;border-radius:50%;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;place-items:center;position:relative;z-index:3;opacity:.9}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{display:block;width:18px;height:1px;background:currentColor;transition:transform .5s var(--ease),opacity .3s}
.menu-toggle span{position:relative}
.menu-toggle span::before,.menu-toggle span::after{content:"";position:absolute;left:0}
.menu-toggle span::before{top:-6px}.menu-toggle span::after{top:6px}
.menu-toggle[aria-expanded="true"] span{background:transparent}
.menu-toggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.nav-social{display:none}
@media (max-width:1180px){
  .menu-toggle{display:grid}
  .nav{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:calc(var(--header-h) + 1rem) var(--gutter) 2rem;background:var(--verde-profundo);color:var(--fg-on-alt);overflow-y:auto;
    clip-path:circle(0% at calc(100% - var(--gutter) - 24px) calc(var(--header-h) / 2));transition:clip-path .8s var(--ease-io),visibility 0s .8s;visibility:hidden}
  .nav.is-open{clip-path:circle(150% at calc(100% - var(--gutter) - 24px) calc(var(--header-h) / 2));visibility:visible;transition:clip-path .8s var(--ease-io),visibility 0s}
  html:not(.js) .nav{position:static;clip-path:none;visibility:visible;background:none;color:inherit;padding:0}
  .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .nav-item{border-bottom:1px solid rgba(243,239,230,.12);opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
  .nav.is-open .nav-item{opacity:1;transform:none}
  .nav.is-open .nav-item:nth-child(2){transition-delay:.06s}.nav.is-open .nav-item:nth-child(3){transition-delay:.12s}.nav.is-open .nav-item:nth-child(4){transition-delay:.18s}.nav.is-open .nav-item:nth-child(5){transition-delay:.24s}.nav.is-open .nav-item:nth-child(6){transition-delay:.3s}
  .nav-link{font-family:var(--font-display);font-size:1.9rem;letter-spacing:0;text-transform:none;padding:.9rem 0;width:100%;justify-content:space-between}
  .nav-link::after{display:none}
  .nav-link .caret{width:14px;height:14px}
  .dropdown{position:static;transform:none;opacity:1;visibility:visible;min-width:0;background:none;border:0;box-shadow:none;padding:0 0 1rem;color:var(--fg-on-alt);display:none;transition:none}
  .nav-item.is-open > .dropdown{display:block;transform:none}
  .dropdown a:hover,.dropdown a:focus-visible{background:rgba(243,239,230,.06)}
  .dropdown small{color:var(--fg-on-alt-soft)}
  .nav-cta{margin:1.6rem 0 0;align-self:flex-start}
  .nav-social{display:flex;gap:.6rem;margin-top:1.4rem}
}

/* ---------- Hero de portada ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--fg-on-alt);overflow:hidden;background:var(--verde-profundo)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero-media img{animation:kenburns 18s var(--ease) both}
@keyframes kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(20,28,22,.7),rgba(20,28,22,0) 170px),
  linear-gradient(90deg,rgba(20,28,22,.86) 0%,rgba(20,28,22,.62) 38%,rgba(20,28,22,.12) 70%,rgba(20,28,22,.05) 100%),
  linear-gradient(0deg,rgba(20,28,22,.75) 0%,rgba(20,28,22,0) 40%)}
.hero .wrap{position:relative;z-index:1;padding-top:calc(var(--header-h) + 3rem);padding-bottom:clamp(3rem,8vh,6rem)}
.hero-inner{max-width:760px}
.hero h1{font-size:clamp(3.1rem,8.2vw,7.4rem);font-weight:300;line-height:.95;letter-spacing:-.025em;margin-top:1.4rem}
.hero h1 em{color:var(--dorado-claro);font-weight:300}
.hero .slogan{font-family:var(--font-display);font-style:italic;font-size:clamp(1.3rem,2.3vw,1.85rem);color:var(--fg-on-alt-soft);margin-top:1.4rem}
.hero .intro{color:var(--fg-on-alt-soft);max-width:54ch;margin-top:1.2rem;font-size:1.05rem}
.hero-meta{display:flex;flex-wrap:wrap;gap:1.4rem 3rem;margin-top:3rem;padding-top:1.6rem;border-top:1px solid rgba(243,239,230,.18);max-width:760px}
.hero-meta div{display:flex;flex-direction:column}
.hero-meta b{font-family:var(--font-display);font-size:2.2rem;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}
.hero-meta span{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-on-alt-soft);margin-top:.4rem}
.line-mask{display:block;overflow:hidden;padding-bottom:.06em}
.line-mask > span{display:block;transform:translateY(105%);animation:line-up 1.2s var(--ease) forwards}
.line-mask:nth-child(2) > span{animation-delay:.12s}.line-mask:nth-child(3) > span{animation-delay:.24s}
@keyframes line-up{to{transform:none}}
.fade-in{opacity:0;animation:fade-up 1.1s var(--ease) forwards}
.fade-in.d1{animation-delay:.35s}.fade-in.d2{animation-delay:.5s}.fade-in.d3{animation-delay:.65s}.fade-in.d4{animation-delay:.8s}
@keyframes fade-up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.scroll-cue{position:absolute;right:var(--gutter);bottom:2.2rem;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.8rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--fg-on-alt-soft);text-decoration:none;writing-mode:vertical-rl}
.scroll-cue::after{content:"";width:1px;height:64px;background:linear-gradient(var(--dorado),transparent);animation:cue 2.4s var(--ease-io) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-badge{position:absolute;right:calc(var(--gutter) + 4rem);top:calc(var(--header-h) + 3rem);z-index:1}
.video-toggle{position:absolute;left:var(--gutter);bottom:1.2rem;z-index:2;display:inline-flex;align-items:center;gap:.5rem;background:rgba(20,28,22,.45);border:1px solid rgba(243,239,230,.3);color:var(--fg-on-alt);border-radius:999px;padding:.4rem .9rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(6px)}
@media (max-width:760px){
  .hero{align-items:flex-end;min-height:100svh}
  .hero-media::after{background:linear-gradient(0deg,rgba(20,28,22,.92) 0%,rgba(20,28,22,.55) 55%,rgba(20,28,22,.25) 100%)}
  .hero-badge,.scroll-cue{display:none}
}

/* Sello circular giratorio con el slogan (motivo del isologo) */
.seal{width:150px;height:150px;position:relative;display:grid;place-items:center;color:var(--dorado-claro)}
.seal svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 28s linear infinite}
.seal text{font-family:var(--font-body);font-size:10.5px;letter-spacing:3.4px;text-transform:uppercase;fill:currentColor}
.seal .seal-core{width:56px;height:56px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center}
.seal .seal-core img{width:36px;height:auto;filter:brightness(1.9) saturate(.6)}
@keyframes spin{to{transform:rotate(360deg)}}

/* Círculo dorado que se dibuja (decoración) */
.ring{position:absolute;pointer-events:none;color:var(--accent);opacity:.55}
.ring circle{fill:none;stroke:currentColor;stroke-width:.6;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 2.6s var(--ease)}
.ring.is-visible circle{stroke-dashoffset:0}

/* ---------- Cinta en movimiento ---------- */
.marquee{overflow:hidden;background:var(--verde-profundo);color:var(--fg-on-alt);border-block:1px solid rgba(243,239,230,.08)}
.marquee-track{display:flex;width:max-content;animation:marquee 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee ul{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:1.2rem 0}
.marquee li{font-family:var(--font-display);font-size:clamp(1.3rem,2.4vw,1.9rem);font-style:italic;padding-inline:1.6rem;display:flex;align-items:center;gap:3.2rem;white-space:nowrap}
.marquee li::after{content:"";width:7px;height:7px;border-radius:50%;border:1px solid var(--dorado);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Revelado al hacer scroll ---------- */
.js [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal="fade"]{transform:none}
.js [data-reveal="left"]{transform:translateX(-40px)}
.js [data-reveal="right"]{transform:translateX(40px)}
.js [data-reveal="zoom"]{transform:scale(.94)}
.js [data-reveal].is-visible{opacity:1;transform:none}
/* La máscara se aplica a lo que hay DENTRO del bloque: si se recorta el bloque observado, el navegador nunca detecta que entró en pantalla */
.js [data-reveal="mask"]{opacity:1;transform:none}
.js [data-reveal="mask"] > *{clip-path:inset(-12% -12% 112% -12%);transition:clip-path 1.4s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal="mask"].is-visible > *{clip-path:inset(-12% -12% -12% -12%)}
.js [data-reveal="mask"] img{transform:scale(1.18);transition:transform 1.8s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal="mask"].is-visible img{transform:scale(1)}

/* ---------- Media con parallax ---------- */
.media{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--beige)}
.media img{width:100%;height:100%;object-fit:cover}
[data-parallax] img{will-change:transform;transform:translate3d(0,var(--py,0px),0) scale(1.12)}
.media-round{border-radius:999px 999px var(--radius) var(--radius)}
.media-circle{border-radius:50%}
.media-frame{position:relative}
.media-frame::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1px solid var(--accent);border-radius:inherit;z-index:-1;opacity:.6}
.caption{font-size:.74rem;color:var(--t-soft);margin-top:.7rem;letter-spacing:.04em}

/* ---------- Intro editorial (split) ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.4rem,7vw,7rem);align-items:center}
.split.reverse > :first-child{order:2}
.split-media{position:relative}
.split-media .media{aspect-ratio:4/5}
.split-media .media-small{position:absolute;width:44%;aspect-ratio:1;right:-8%;bottom:-10%;border:8px solid var(--bg);box-shadow:var(--shadow)}
.split-media .seal{position:absolute;left:-60px;top:12%;color:var(--accent-ink)}
.split-media .seal .seal-core img{filter:none}
@media (max-width:900px){
  .split{grid-template-columns:minmax(0,1fr)}
  .split.reverse > :first-child{order:0}
  .split-media .media-small{right:0;bottom:-8%}
  .split-media .seal{left:auto;right:6%;top:-60px;width:120px;height:120px}
}
.signature{font-family:var(--font-display);font-style:italic;font-size:1.5rem;color:var(--t-accent);margin-top:1.8rem}
.checklist{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:.9rem}
.checklist li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.8rem;align-items:start;color:var(--t-soft)}
.checklist li::before{content:"";width:16px;height:16px;margin-top:.35rem;border-radius:50%;border:1px solid var(--accent);background:radial-gradient(circle,var(--accent) 0 3px,transparent 4px)}
.checklist b{color:var(--t);font-weight:400}

/* ---------- Áreas (tarjetas grandes) ---------- */
.areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);margin-top:3.4rem}
.area-card{position:relative;display:block;aspect-ratio:3/4.2;border-radius:var(--radius-lg);overflow:hidden;color:var(--fg-on-alt);text-decoration:none;isolation:isolate;background:var(--verde-profundo)}
.area-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter 1s var(--ease)}
.area-card::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(20,28,22,.92) 6%,rgba(20,28,22,.35) 52%,rgba(20,28,22,.05) 80%);transition:opacity .8s var(--ease)}
.area-card .area-body{position:absolute;inset:auto 0 0 0;z-index:1;padding:clamp(1.4rem,2.6vw,2.2rem)}
.area-card .num{font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--dorado-claro)}
.area-card h3{font-size:clamp(2rem,3.2vw,2.8rem);font-weight:400;margin-top:.3rem}
.area-card p{color:var(--fg-on-alt-soft);font-size:.95rem;max-height:0;opacity:0;overflow:hidden;transition:max-height .8s var(--ease),opacity .6s var(--ease),margin .6s var(--ease)}
.area-card .area-cta{display:inline-flex;align-items:center;gap:.6rem;margin-top:1rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.area-card .area-cta::after{content:"";width:28px;height:1px;background:var(--dorado);transition:width .6s var(--ease)}
.area-card .count{background:rgba(20,28,22,.55);position:absolute;top:1.4rem;right:1.4rem;z-index:1;width:64px;height:64px;border-radius:50%;border:1px solid rgba(243,239,230,.45);display:grid;place-items:center;text-align:center;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.2;backdrop-filter:blur(4px)}
.area-card .count b{display:block;font-family:var(--font-display);font-size:1.4rem;letter-spacing:0;font-weight:400}
.area-card:hover img,.area-card:focus-visible img{transform:scale(1.07)}
.area-card:hover p,.area-card:focus-visible p{max-height:9em;opacity:1;margin-top:.6rem}
.area-card:hover .area-cta::after{width:56px}
@media (hover:none){.area-card p{max-height:none;opacity:1;margin-top:.6rem}}
@media (max-width:900px){.areas{grid-template-columns:1fr}.area-card{aspect-ratio:4/4.4}}

/* ---------- Contadores ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-block:1px solid var(--rule)}
.stat{padding:2.4rem 1.2rem;text-align:center;border-left:1px solid var(--rule)}
.stat:first-child{border-left:0}
.stat b{display:block;font-family:var(--font-display);font-size:clamp(2.8rem,5vw,4.4rem);font-weight:300;line-height:1;color:var(--t);font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:.7rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--t-soft)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--rule)}}

/* ---------- Carrusel de rituales ---------- */
.carousel{position:relative;margin-top:3rem}
.carousel-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,30%);gap:1.4rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:1.4rem;scrollbar-width:thin;scrollbar-color:var(--accent) transparent;cursor:grab;overscroll-behavior-x:contain}
.carousel-track.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.carousel-track > *{scroll-snap-align:start}
.carousel-nav{display:flex;gap:.6rem}
.carousel-nav button{width:54px;height:54px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--t);cursor:pointer;display:grid;place-items:center;transition:background .4s var(--ease),color .4s,border-color .4s,transform .4s var(--ease)}
.carousel-nav button:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);transform:scale(1.05)}
.carousel-nav button:disabled{opacity:.35;cursor:default;transform:none;background:transparent;color:var(--t)}
.on-alt .carousel-nav button{border-color:rgba(243,239,230,.35)}
.ritual-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;user-select:none}
.ritual-card .media{aspect-ratio:4/5;border-radius:var(--radius-lg)}
.ritual-card .media img{transition:transform 1.4s var(--ease);pointer-events:none}
.ritual-card:hover .media img{transform:scale(1.06)}
.ritual-card .tag{position:absolute;left:1rem;top:1rem;background:rgba(20,28,22,.6);color:var(--fg-on-alt);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;padding:.4rem .7rem;border-radius:999px;backdrop-filter:blur(6px)}
.ritual-card h3{font-size:1.9rem;margin-top:1.2rem;color:var(--t)}
.ritual-card p{color:var(--t-soft);font-size:.94rem;margin-top:.5rem}
.ritual-card .meta-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--rule)}
.ritual-card .meta-row span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--t-soft)}
.ritual-card .meta-row b{font-family:var(--font-display);font-size:1.45rem;font-weight:400;color:var(--t)}
@media (max-width:760px){.carousel-track{grid-auto-columns:82%}}

/* ---------- Banda de cita con imagen ---------- */
.quote-band{position:relative;min-height:70vh;display:grid;place-items:center;text-align:center;color:var(--fg-on-alt);overflow:hidden;background:var(--verde-profundo)}
.quote-band .bg{position:absolute;inset:-12% 0;z-index:0}
.quote-band .bg img{width:100%;height:100%;object-fit:cover;opacity:.55}
.quote-band::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(20,28,22,.35),rgba(20,28,22,.85))}
.quote-band .wrap{position:relative;z-index:1;max-width:1000px}
.quote-band blockquote{margin:1.6rem 0 0;font-family:var(--font-display);font-weight:300;font-size:clamp(2rem,4.6vw,3.8rem);line-height:1.15;font-style:italic}
.quote-band blockquote em{color:var(--dorado-claro)}
.quote-band cite{display:block;margin-top:1.6rem;font-style:normal;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-on-alt-soft)}

/* ---------- Recorrido (pasos de la experiencia) ---------- */
.journey{list-style:none;margin:3.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;position:relative;counter-reset:paso}
.journey::before{content:"";position:absolute;left:0;right:0;top:32px;height:1px;background:var(--rule)}
.journey .line-fill{position:absolute;left:0;top:32px;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 2.4s var(--ease)}
.journey.is-visible .line-fill{transform:scaleX(1)}
.journey li{position:relative;counter-increment:paso}
.journey li::before{content:counter(paso,decimal-leading-zero);display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--bg);border:1px solid var(--accent);font-family:var(--font-display);font-size:1.4rem;color:var(--t-accent);position:relative;z-index:1}
.on-alt .journey li::before,.alt-surface .journey li::before{background:inherit}
.alt-surface .journey li::before{background:var(--surface)}
.on-alt .journey li::before{background:var(--bg-alt)}
.journey h3{font-size:1.5rem;margin-top:1.4rem;color:var(--t)}
.journey p{color:var(--t-soft);font-size:.94rem;margin-top:.6rem}
@media (max-width:900px){.journey{grid-template-columns:1fr 1fr}.journey::before,.journey .line-fill{display:none}}
@media (max-width:560px){.journey{grid-template-columns:1fr}}

/* ---------- Espacios ---------- */
.spaces{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.2rem;margin-top:3.2rem}
.space{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:340px;color:var(--fg-on-alt);background:var(--verde-profundo);isolation:isolate}
.space:nth-child(1){grid-column:span 4;min-height:460px}
.space:nth-child(2){grid-column:span 2}
.space:nth-child(3),.space:nth-child(4),.space:nth-child(5){grid-column:span 2}
.space img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.space::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,28,22,.9) 0%,rgba(20,28,22,.15) 60%)}
.space:hover img{transform:scale(1.06)}
.space .space-body{position:absolute;inset:auto 0 0 0;z-index:1;padding:1.6rem}
.space h3{font-size:1.7rem}
.space p{color:var(--fg-on-alt-soft);font-size:.92rem;margin-top:.4rem;max-width:46ch}
@media (max-width:900px){.spaces{grid-template-columns:1fr}.space:nth-child(n){grid-column:auto;min-height:300px}}

/* ---------- Bioseguridad ---------- */
.bio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:3rem}
.bio-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;display:flex;flex-direction:column;gap:.9rem;transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .6s}
.bio-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--accent)}
.bio-card .ico{width:54px;height:54px;border-radius:50%;border:1px solid var(--accent);display:grid;place-items:center;color:var(--accent-ink)}
.bio-card .ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.bio-card h3{font-size:1.5rem}
.bio-card ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.bio-card li{color:var(--fg-soft);font-size:.93rem;padding-left:1.1rem;position:relative}
.bio-card li::before{content:"";position:absolute;left:0;top:.7em;width:5px;height:5px;border-radius:50%;background:var(--accent)}
@media (max-width:900px){.bio-grid{grid-template-columns:1fr}}
.emergency{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:center}
.emergency ol{list-style:none;margin:2rem 0 0;padding:0;counter-reset:em;display:grid;gap:1rem}
.emergency li{counter-increment:em;display:grid;grid-template-columns:48px minmax(0,1fr);gap:1rem;align-items:center}
.emergency li::before{content:counter(em);width:48px;height:48px;border-radius:50%;border:1px solid var(--accent);display:grid;place-items:center;font-family:var(--font-display);font-size:1.3rem;color:var(--t-accent)}
@media (max-width:900px){.emergency{grid-template-columns:1fr}}

/* ---------- Equipo ---------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:2rem;margin-top:3rem;max-width:760px}
.member figure{margin:0;aspect-ratio:4/5;border-radius:999px 999px var(--radius-lg) var(--radius-lg);overflow:hidden;background:var(--beige);box-shadow:var(--shadow-soft)}
.member img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.member:hover img{transform:scale(1.05)}
.member h3,.member h4{font-size:1.8rem;margin-top:1.3rem;color:var(--t)}
.member p{color:var(--t-accent);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-top:.4rem}

/* ---------- Encabezado de subpágina ---------- */
.page-hero{position:relative;min-height:clamp(440px,68vh,640px);display:flex;align-items:flex-end;color:var(--fg-on-alt);overflow:hidden;background:var(--verde-profundo)}
.page-hero .bg{position:absolute;inset:-8% 0 -8% 0;z-index:0}
.page-hero .bg img{width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,28,22,.72),rgba(20,28,22,0) 170px),linear-gradient(90deg,rgba(20,28,22,.88) 0%,rgba(20,28,22,.55) 50%,rgba(20,28,22,.25) 100%),linear-gradient(0deg,rgba(20,28,22,.6),transparent 50%)}
.page-hero .wrap{position:relative;z-index:1;padding-top:calc(var(--header-h) + 3rem);padding-bottom:clamp(2.8rem,7vh,4.6rem)}
.page-hero h1{font-size:clamp(2.8rem,6.6vw,5.6rem);font-weight:300;line-height:1;letter-spacing:-.02em;margin-top:1.2rem;max-width:18ch}
.page-hero h1 em{color:var(--dorado-claro)}
.page-hero .lede{color:var(--fg-on-alt-soft);max-width:60ch}
.crumbs{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-on-alt-soft)}
.crumbs a{color:var(--fg-on-alt-soft);text-decoration:none}
.crumbs a:hover{color:var(--fg-on-alt)}
.crumbs [aria-hidden]{opacity:.5}
.page-hero .ring{right:-120px;top:-140px;width:560px;height:560px;color:var(--dorado);opacity:.35}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.chips a{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--fg-on-alt);border:1px solid rgba(243,239,230,.32);border-radius:999px;padding:.5rem .95rem;transition:border-color .3s,color .3s,background .3s;backdrop-filter:blur(4px)}
.chips a:hover{border-color:var(--dorado);color:var(--dorado-claro)}

/* ---------- Portafolio ---------- */
.menu-section{background:var(--surface)}
.portfolio-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.2rem;margin-top:2.6rem;border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:.2rem;flex-wrap:wrap}
.tab{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:1rem 1.2rem;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-soft);cursor:pointer;transition:color .3s,border-color .3s}
.tab:hover{color:var(--fg)}
.tab[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--accent-ink)}
.tab .tab-count{font-family:var(--font-display);font-style:italic;letter-spacing:0;margin-left:.3rem;color:var(--accent-ink)}
.search{position:relative;margin-bottom:.8rem;min-width:min(100%,280px)}
.search input{width:100%;border:0;border-bottom:1px solid var(--control-border);background:transparent;padding:.7rem .2rem .7rem 1.8rem;font-size:.95rem}
.search input:focus-visible{outline:none;border-bottom-color:var(--fg)}
.search svg{position:absolute;left:0;top:50%;transform:translateY(-50%);width:16px;height:16px;fill:none;stroke:var(--fg-soft);stroke-width:1.5}
.search-empty{padding:2rem 0;color:var(--fg-soft)}
.menu-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:0 3.4rem;margin-top:.6rem}
.menu-group{grid-column:1 / -1;padding:2.6rem 0 .6rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem 1.6rem;align-items:center}
.menu-group img{grid-row:1 / span 2;width:84px;height:84px;border-radius:50%;object-fit:cover}
.menu-group:first-child{padding-top:1.6rem}
.menu-group h3{font-size:2rem;font-weight:400}
.menu-group p{color:var(--fg-soft);font-size:.92rem}
.menu-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1.4rem;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:baseline;position:relative;transition:padding .5s var(--ease)}
.menu-item::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.menu-item:hover::before{transform:scaleX(1)}
.menu-item :is(h3,h4){font-size:1.45rem;font-weight:500;color:var(--fg)}
.menu-item :is(h3,h4) a{text-decoration:none}
.menu-item :is(h3,h4) a:hover{color:var(--accent-ink)}
.menu-item .desc{grid-column:1;color:var(--fg-soft);font-size:.92rem;max-width:56ch}
.menu-item .meta{grid-column:1;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-top:.3rem}
.menu-item .price{grid-column:2;grid-row:1 / span 3;font-family:var(--font-display);font-size:1.6rem;font-variant-numeric:tabular-nums;white-space:nowrap;align-self:start;text-align:right}
.menu-item .price small{display:block;font-family:var(--font-body);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-soft)}
.menu-item .actions-row{grid-column:1;display:flex;gap:1.4rem;margin-top:.5rem}
.menu-book{background:none;border:0;padding:0;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.menu-book:hover{color:var(--accent-ink)}
.menu-foot{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;color:var(--fg-soft)}

/* ---------- Detalle de servicio ---------- */
.service-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.service-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);margin-top:2.2rem}
.service-facts div{padding:1.4rem 1rem 1.4rem 0}
.service-facts div + div{border-left:1px solid var(--line);padding-left:1.2rem}
.service-facts span{display:block;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-soft)}
.service-facts b{display:block;font-family:var(--font-display);font-size:1.9rem;font-weight:400;margin-top:.3rem;line-height:1.1}
.service-aside{position:sticky;top:calc(var(--header-h) + 1.5rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.4rem,3vw,2.2rem);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:1rem}
.service-aside h2{font-size:1.8rem}
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin-top:2.6rem}
.related a{display:flex;flex-direction:column;gap:.4rem;text-decoration:none;padding:1.4rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);transition:transform .5s var(--ease),border-color .5s,box-shadow .5s}
.related a:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:var(--shadow-soft)}
.related b{font-family:var(--font-display);font-size:1.35rem;font-weight:500}
.related span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-soft)}
@media (max-width:900px){.service-detail{grid-template-columns:1fr}.service-aside{position:static}.related{grid-template-columns:1fr}}

/* ---------- Galería y visor ---------- */
.gallery{columns:3 280px;column-gap:1.2rem;margin-top:3rem}
.gallery figure{margin:0 0 1.2rem;break-inside:avoid;position:relative;border-radius:var(--radius-lg);overflow:hidden;cursor:zoom-in;background:var(--beige)}
.gallery button{all:unset;display:block;cursor:zoom-in;width:100%}
.gallery button:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.gallery img{width:100%;transition:transform 1.2s var(--ease)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{pointer-events:none;position:absolute;inset:auto 0 0 0;padding:1rem 1.2rem;color:var(--fg-on-alt);font-size:.82rem;background:linear-gradient(0deg,rgba(20,28,22,.8),transparent);opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.gallery figure:hover figcaption,.gallery button:focus-visible + figcaption{opacity:1;transform:none}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(14,19,15,.94);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:2rem;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility 0s .4s}
.lightbox.is-open{opacity:1;visibility:visible;transition:opacity .4s var(--ease),visibility 0s}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:1rem;max-height:100%}
.lightbox img{max-height:80vh;width:auto;border-radius:var(--radius);transform:scale(.96);transition:transform .5s var(--ease)}
.lightbox.is-open img{transform:none}
.lightbox figcaption{color:var(--fg-on-alt-soft);font-size:.9rem;text-align:center}
.lightbox button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(243,239,230,.4);background:transparent;color:var(--fg-on-alt);cursor:pointer;display:grid;place-items:center;font-size:1.3rem}
.lightbox .lb-close{position:absolute;top:1.2rem;right:1.2rem}
@media (max-width:640px){.lightbox{grid-template-columns:1fr;padding:4rem 1rem}.lightbox .lb-prev,.lightbox .lb-next{position:absolute;bottom:1.2rem}.lightbox .lb-prev{left:1.2rem}.lightbox .lb-next{right:1.2rem}}

/* ---------- Preguntas frecuentes ---------- */
.faq-layout{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.faq-nav{position:sticky;top:calc(var(--header-h) + 1.5rem);display:flex;flex-direction:column;gap:.4rem}
.faq-nav a{font-family:var(--font-display);font-size:1.4rem;text-decoration:none;color:var(--fg-soft);padding:.3rem 0;transition:color .3s,padding .4s var(--ease)}
.faq-nav a:hover,.faq-nav a.is-active{color:var(--fg);padding-left:.6rem}
.faq-group + .faq-group{margin-top:3.2rem}
.faq-group h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:1rem}
.faq{border-top:1px solid var(--line)}
.faq:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:1rem;align-items:center;padding:1.4rem 0;font-family:var(--font-display);font-size:1.35rem;line-height:1.25}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:
  linear-gradient(var(--fg),var(--fg)) center/12px 1px no-repeat,linear-gradient(var(--fg),var(--fg)) center/1px 12px no-repeat;transition:transform .5s var(--ease),background-color .4s,border-color .4s}
.faq[open] summary::after{transform:rotate(135deg);border-color:var(--accent);background-color:var(--oliva-suave)}
.faq .faq-body{overflow:hidden}
.faq .faq-body p{color:var(--fg-soft);padding:0 3rem 1.6rem 0;max-width:68ch}
.faq .faq-body a{color:var(--fg)}
@media (max-width:900px){.faq-layout{grid-template-columns:1fr}.faq-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:.4rem 1.2rem}.faq-nav a{font-size:1.1rem}}

/* ---------- Instagram / QR ---------- */
.ig-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(1.6rem,4vw,3.4rem);align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.4rem,3vw,2.4rem)}
.ig-band img.qr{width:150px;border-radius:12px}
.ig-band h2{font-size:clamp(1.8rem,3vw,2.5rem)}
.ig-band p{color:var(--fg-soft);margin-top:.5rem}
@media (max-width:760px){.ig-band{grid-template-columns:1fr;justify-items:start}}
.ig-qr{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.2rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1rem}
.ig-qr img{width:150px;border-radius:12px}
.ig-qr p{font-size:.92rem;color:var(--fg-soft);overflow-wrap:anywhere}
.ig-qr p + p{margin-top:.4rem}
.ig-qr a{color:var(--fg)}
@media (max-width:400px){.ig-qr{grid-template-columns:1fr;justify-items:start}}

/* ---------- Banda de llamado a la acción ---------- */
.cta-band{position:relative;overflow:hidden;color:var(--fg-on-alt);background:var(--verde-profundo)}
.cta-band .bg{position:absolute;inset:-10% 0;z-index:0}
.cta-band .bg img{width:100%;height:100%;object-fit:cover;opacity:.4}
.cta-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,28,22,.92),rgba(20,28,22,.55))}
.cta-band .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;padding-block:clamp(4rem,9vw,7rem)}
.cta-band h2{font-size:clamp(2.2rem,4.6vw,3.8rem);font-weight:300}
.cta-band h2 em{color:var(--dorado-claro)}
.cta-band p{color:var(--fg-on-alt-soft);max-width:56ch;margin-top:1rem}
@media (max-width:760px){.cta-band .wrap{grid-template-columns:1fr}}

/* ---------- Tarjetas genéricas / misión ---------- */
.mv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1.4rem;margin-top:3rem}
.mv article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.6rem,3vw,2.4rem);display:flex;flex-direction:column;gap:1rem;position:relative;overflow:hidden}
.mv article::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;border:1px solid var(--accent);opacity:.35}
.mv h3{font-size:2rem}
.mv p{color:var(--fg-soft)}
.values{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:0 2.6rem;counter-reset:valor}
.values li{counter-increment:valor;display:grid;grid-template-columns:3rem minmax(0,1fr);align-content:start;gap:.3rem 1rem;padding:1.4rem 0;border-top:1px solid var(--line)}
.values li::before{content:counter(valor,decimal-leading-zero);font-family:var(--font-display);font-size:1.6rem;font-style:italic;color:var(--accent-ink);grid-row:1 / span 2;line-height:1.1}
.values :is(h3,h4){font-size:1.35rem}
.values p{color:var(--fg-soft);font-size:.93rem}
.quality{background:var(--oliva-suave);border-radius:var(--radius-lg);padding:clamp(1.6rem,3vw,2.8rem);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1.4rem 3rem}
.quality :is(h2,h3){font-size:clamp(1.9rem,3.4vw,2.6rem);margin-top:.6rem}
.quality .q-body{display:flex;flex-direction:column;gap:.9rem;color:var(--fg-soft);font-size:.96rem}
.quality .q-body b{font-weight:500;color:var(--fg)}
.quality .eyebrow,.confirm .eyebrow{color:var(--fg-soft)}
@media (max-width:860px){.quality{grid-template-columns:1fr}}
.objetivo-general{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.35;max-width:46ch;margin-top:1.4rem;padding-left:1.6rem;border-left:2px solid var(--accent)}
.objetivos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:1.4rem;margin-top:1.8rem}
.objetivos article{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;display:flex;flex-direction:column;gap:.6rem}
.objetivos small{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.objetivos h4{font-size:1.6rem}
.objetivos p{color:var(--fg-soft);font-size:.95rem}
.isologo{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;margin-top:2.4rem}
.isologo figure{margin:0;background:#FFFFFF;border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.4rem,4vw,2.8rem);display:grid;place-items:center;position:sticky;top:calc(var(--header-h) + 1.5rem)}
.isologo figure img{width:min(100%,320px)}
.meaning{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:0 2rem}
.meaning li{padding:1rem 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.25rem}
.meaning b{font-family:var(--font-display);font-size:1.35rem;font-weight:500}
.meaning small{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.meaning span{color:var(--fg-soft);font-size:.92rem}
@media (max-width:860px){.isologo{grid-template-columns:1fr}.isologo figure{position:static}}
.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1.2rem;margin-top:2.2rem}
.swatch{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.swatch i{display:block;height:130px;border-bottom:1px solid var(--line);box-shadow:inset 0 0 0 1px #8E9384}
.swatch div{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.4rem}
.swatch b{font-family:var(--font-display);font-size:1.45rem;font-weight:500}
.swatch span{color:var(--fg-soft);font-size:.92rem}
.org{list-style:none;margin:2.4rem 0 0;padding:0;display:flex;flex-direction:column;align-items:center}
.org-level{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;position:relative;padding-top:1.6rem;width:100%}
.org-level:first-child{padding-top:0}
.org-level:not(:first-child)::before{content:"";position:absolute;top:0;left:50%;width:1px;height:1.6rem;background:var(--accent)}
.org-group{border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.6rem 1.2rem 1.2rem;margin-top:1.6rem;max-width:860px;background:var(--bg)}
.org-group::before{top:-1.6rem!important}
.org-group small{position:absolute;top:.8rem;left:50%;transform:translateX(-50%);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);white-space:nowrap}
.org-box{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-width:180px;padding:.9rem 1.2rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.org-top{background:var(--bg-alt);color:var(--fg-on-alt);border-color:var(--bg-alt)}
@media (max-width:480px){.org-box{min-width:0;flex:1 1 140px}}
.rights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:1.4rem 3rem;margin-top:2.4rem}
.rights-grid h3{font-size:1.8rem;margin-bottom:.4rem}
.rights-list{list-style:none;margin:0;padding:0;counter-reset:item}
.rights-list li{counter-increment:item;display:grid;grid-template-columns:2rem minmax(0,1fr);align-content:start;gap:.1rem .6rem;padding:.9rem 0;border-top:1px solid var(--line)}
.rights-list li::before{content:counter(item);font-family:var(--font-display);font-size:1.3rem;color:var(--accent-ink);grid-row:1 / span 2;line-height:1.2}
.rights-list b{font-weight:500;font-size:.96rem}
.rights-list span{color:var(--fg-soft);font-size:.9rem}
.data-policy{margin-top:2.6rem;padding:clamp(1.2rem,3vw,2rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:.8rem;max-width:880px}
.data-policy p{color:var(--fg-soft);font-size:.95rem}
.doc-block{padding-block:clamp(3.4rem,7vw,5.6rem)}

/* ---------- Contacto ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.contact-info{display:flex;flex-direction:column;gap:1.4rem}
.contact-media{display:flex;flex-direction:column;gap:1.4rem}
.info-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.info-list li{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding:1rem 0;border-top:1px solid var(--line);font-size:.98rem}
.info-list li:first-child{border-top:0}
.info-list li > span:first-child{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-soft);padding-top:.3rem}
.info-list b{font-weight:400;overflow-wrap:anywhere}
.info-list a{text-decoration:none;overflow-wrap:anywhere}
.info-list a:hover{color:var(--accent-ink)}
.copy-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.copy-btn{background:none;border:1px solid var(--line-strong);border-radius:999px;padding:.25rem .75rem;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--fg-soft)}
.copy-btn:hover{border-color:var(--fg);color:var(--fg)}
.facade{margin:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--beige)}
.facade img{width:100%;aspect-ratio:657/535;object-fit:cover}
.facade figcaption{font-size:.78rem;color:var(--fg-soft);padding:.6rem .2rem 0;background:var(--bg)}
.map{border:0;width:100%;aspect-ratio:16/10;border-radius:var(--radius-lg);filter:grayscale(.3) sepia(.12)}
.social{display:flex;gap:.7rem;flex-wrap:wrap}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* ---------- Formularios ---------- */
.booking .wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.booking aside{display:flex;flex-direction:column;gap:1.6rem;position:sticky;top:calc(var(--header-h) + 1.5rem)}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.4rem,3vw,2.6rem);display:flex;flex-direction:column;gap:1.6rem;min-width:0;box-shadow:var(--shadow)}
.form-card :is(h2,h3){font-size:2rem}
.form-card .form-intro{color:var(--fg-soft);font-size:.92rem;margin-top:-.8rem}
fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:.8rem}
legend{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);padding:0;margin-bottom:.6rem;display:flex;gap:.7rem;align-items:center}
legend::before{content:attr(data-n);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--accent);font-family:var(--font-display);font-size:1rem;color:var(--fg);letter-spacing:0}
legend:not([data-n])::before{content:none}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.8rem}
.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.field label,.field .lbl{font-size:.78rem;color:var(--fg-soft)}
.field input,.field select,.field textarea{width:100%;background:var(--surface-2);border:1px solid var(--control-border);border-radius:var(--radius);padding:.8rem .95rem;font-size:.95rem;font-weight:300;transition:border-color .3s,box-shadow .3s}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-color:var(--fg)}
.field textarea{min-height:96px;resize:vertical}
.field-hint{font-size:.78rem;color:var(--fg-soft)}
.check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:start;font-size:.86rem;color:var(--fg-soft);cursor:pointer}
.check input{width:18px;height:18px;margin:.15rem 0 0;accent-color:var(--verde-bosque);cursor:pointer}
.check a{color:var(--fg)}
.check-box{background:var(--oliva-suave);border-radius:var(--radius);padding:.8rem .9rem}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.5rem}
.slot{background:var(--surface-2);border:1px solid var(--control-border);border-radius:999px;padding:.6rem .4rem;font-size:.86rem;cursor:pointer;font-variant-numeric:tabular-nums;transition:border-color .3s,background .3s,color .3s,transform .3s var(--ease)}
.slot:hover{border-color:var(--fg);transform:translateY(-1px)}
.slot[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.slot-hint{font-size:.8rem;color:var(--fg-soft)}
.summary{border-top:1px solid var(--line);padding-top:1.2rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:flex-end;justify-content:space-between}
.summary dl{margin:0;display:grid;grid-template-columns:auto auto;gap:.25rem 1rem;font-size:.9rem}
.summary dt{color:var(--fg-soft)}
.summary dd{margin:0;font-weight:400;font-variant-numeric:tabular-nums}
.summary .total{font-family:var(--font-display);font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.summary .total small{display:block;font-family:var(--font-body);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-soft);margin-bottom:.3rem}
.summary .promo-note{flex-basis:100%;font-size:.82rem;color:var(--fg-soft)}
.form-error{color:var(--error);font-size:.86rem;min-height:1.2em}
[aria-invalid="true"]{border-color:var(--error)!important}
.confirm{grid-column:2;background:var(--oliva-suave);border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column;gap:.9rem}
.confirm h3{font-size:2rem}
.confirm .code{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.1em}
.confirm p{color:var(--fg-soft);font-size:.95rem}
.confirm .actions{margin-top:.4rem}
.promo-box{background:var(--oliva-suave);border-radius:var(--radius);padding:1rem 1.1rem;font-size:.92rem;color:var(--fg-soft)}
.promo-box b{font-weight:500;color:var(--fg)}
.booking aside .link{margin-top:0}
.pqrsf{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.6rem,5vw,4rem);align-items:start}
.pqrsf .form-card{box-shadow:none;background:var(--bg)}
.pqrsf-types{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.92rem;color:var(--fg-soft)}
.pqrsf-types b{font-weight:500;color:var(--fg)}
@media (max-width:900px){.booking .wrap,.pqrsf{grid-template-columns:1fr}.booking aside{position:static}.confirm{grid-column:auto}}

/* ---------- Pie de página ---------- */
footer.site{background:var(--verde-profundo);color:var(--fg-on-alt);padding-block:clamp(4rem,8vw,6rem) 2rem;position:relative;overflow:hidden}
footer.site .footer-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:2.4rem}
footer.site :is(h2,h5){font-family:var(--font-body);line-height:1.6;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;margin:0 0 1.1rem;font-weight:400;color:var(--dorado-claro)}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;font-size:.94rem}
footer.site li{overflow-wrap:anywhere;color:var(--fg-on-alt-soft)}
footer.site a{text-decoration:none;color:var(--fg-on-alt);background:linear-gradient(var(--dorado),var(--dorado)) left bottom/0 1px no-repeat;transition:background-size .5s var(--ease),color .3s}
footer.site a:hover{background-size:100% 1px;color:var(--dorado-claro)}
.footer-logo{display:inline-block;background:var(--crema)!important;padding:1rem;border-radius:var(--radius-lg)}
.footer-logo img{width:150px}
.footer-claim{font-family:var(--font-display);font-style:italic;font-size:1.6rem;color:var(--fg-on-alt-soft);margin-top:1.4rem;max-width:22ch}
.footer-big{font-family:var(--font-display);font-weight:300;font-size:clamp(4rem,15vw,14rem);line-height:.8;letter-spacing:-.03em;color:rgba(243,239,230,.06);margin-top:3rem;white-space:nowrap;user-select:none}
footer.site .legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1.4rem;padding-top:1.6rem;margin-top:1rem;border-top:1px solid rgba(243,239,230,.14);font-size:.76rem;color:var(--fg-on-alt-soft)}
footer.site .legal a{color:var(--fg-on-alt-soft);text-decoration:underline;text-underline-offset:3px;background:none}
@media (max-width:860px){footer.site .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}footer.site .footer-top > :first-child{grid-column:1 / -1}}

/* ---------- Flotantes ---------- */
.icon-link{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:999px;border:1px solid currentColor;color:inherit;opacity:.85;transition:opacity .3s,border-color .3s,transform .3s var(--ease)}
.icon-link:hover{opacity:1;transform:translateY(-2px)}
.icon-link svg{width:17px;height:17px;fill:currentColor}
.wa-float{position:fixed;right:1.2rem;bottom:calc(1.2rem + env(safe-area-inset-bottom,0px));z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 14px 34px -10px rgba(0,0,0,.45);transition:transform .4s var(--ease)}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:pulse 2.6s var(--ease) infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
.wa-float:hover{transform:scale(1.07)}
.wa-float svg{width:30px;height:30px;fill:currentColor}
.to-top{position:fixed;right:1.2rem;bottom:calc(5.6rem + env(safe-area-inset-bottom,0px));z-index:89;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);display:grid;place-items:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s .4s;box-shadow:var(--shadow-soft)}
.to-top.is-visible{opacity:1;visibility:visible;transform:none;transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s}
.to-top svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.toast{position:fixed;left:50%;bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(20px);background:var(--fg);color:var(--bg);padding:.8rem 1.3rem;border-radius:999px;font-size:.86rem;z-index:300;opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.toast.show{opacity:1;transform:translateX(-50%)}

/* ---------- Sin JavaScript ---------- */
html:not(.js) .menu-toggle{display:none}
@media (max-width:1180px){
  html:not(.js) .topbar{position:static;height:auto;background:var(--bg);color:var(--fg)}
  html:not(.js) .topbar .wrap{flex-wrap:wrap;height:auto;padding-block:.8rem}
  html:not(.js) .nav-list{flex-direction:row;flex-wrap:wrap}
  html:not(.js) .nav-item{opacity:1;transform:none;border:0}
  html:not(.js) .nav-link{font-family:var(--font-body);font-size:.74rem;padding:.4rem .6rem;text-transform:uppercase;letter-spacing:.16em}
  html:not(.js) .dropdown{display:none}
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .carousel-track{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
  .js [data-reveal] > *{clip-path:none!important}
  .js [data-reveal] img{transform:none!important}
  .line-mask > span{transform:none}
  .fade-in{opacity:1}
  .hero-media img{transform:none}
  [data-parallax] img{transform:none!important}
  .marquee-track{transform:none}
  .ring circle{stroke-dashoffset:0}
  @view-transition{navigation:none}
}

/* =========================================================================
   Piezas de las páginas nuevas (v2.1)
   ========================================================================= */
/* Datos rápidos en la portada de cada área */
.hero-facts{display:flex;flex-wrap:wrap;gap:.6rem 2.4rem;margin-top:1.8rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-on-alt-soft)}
.hero-facts b{font-family:var(--font-display);font-size:1.7rem;letter-spacing:0;font-weight:400;color:var(--fg-on-alt);text-transform:none;margin-right:.35rem}
.page-hero .actions{margin-top:1.8rem}

/* Grupos de fichas en las páginas de área */
.area-group + .area-group{margin-top:clamp(3.4rem,7vw,5.6rem)}
.area-group-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.6rem,4vw,3.4rem);align-items:center;margin-bottom:1rem}
.area-group-head .media{aspect-ratio:16/10;border-radius:var(--radius-lg)}
.area-group-head .media img{transition:transform 1.6s var(--ease)}
.area-group:hover .area-group-head .media img{transform:scale(1.04)}
.area-group .menu-item{scroll-margin-top:calc(var(--header-h) + 1.5rem)}
.area-group .menu-item:target{background:linear-gradient(90deg,var(--oliva-suave),transparent);padding-inline:1rem;border-radius:var(--radius)}
@media (max-width:760px){.area-group-head{grid-template-columns:1fr}}
.areas-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.areas-2{grid-template-columns:1fr}}

/* Cifras en 2 x 2 */
.stats-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stats-2 .stat:nth-child(3){border-left:0}
.stats-2 .stat:nth-child(n+3){border-top:1px solid var(--rule)}

/* Tres niveles del slogan */
.levels-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin-top:3rem}
.levels-3 article{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.8rem,3vw,2.6rem);display:flex;flex-direction:column;gap:.7rem;transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .6s}
.levels-3 article:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--accent)}
.levels-3 .lv-num{position:absolute;right:1.2rem;top:.2rem;font-family:var(--font-display);font-size:6rem;font-weight:300;line-height:1;color:var(--accent);opacity:.22}
.levels-3 small{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
.levels-3 h3{font-size:2.2rem;font-weight:400}
.levels-3 p{color:var(--fg-soft);font-size:.95rem}
@media (max-width:900px){.levels-3{grid-template-columns:1fr}}

/* Plano interactivo */
.floorplan{position:relative;margin:3rem auto 0;max-width:1100px;background:#fff;border-radius:var(--radius-lg);padding:clamp(.6rem,1.6vw,1.2rem);box-shadow:var(--shadow)}
.floorplan > img{width:100%;height:auto;border-radius:var(--radius)}
.floorplan figcaption{font-size:.74rem;color:#5A6457;margin-top:.6rem;text-align:center}
.hotspot{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;border:0;padding:0;cursor:pointer;background:var(--dorado);box-shadow:0 0 0 4px rgba(194,162,106,.35);z-index:2;transition:transform .4s var(--ease),background .3s}
.hotspot::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--dorado);animation:pulse 2.8s var(--ease) infinite}
.hotspot::after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--verde-profundo)}
.hotspot.interno{background:#fff;box-shadow:0 0 0 2px var(--dorado-oscuro)}
.hotspot.interno::before{display:none}
.hotspot.interno::after{background:var(--dorado)}
.hotspot:hover,.hotspot:focus-visible,.hotspot.is-open{transform:scale(1.18);background:var(--verde-bosque)}
.hotspot:focus-visible{outline:2px solid var(--verde-profundo);outline-offset:4px}
.hs-card{position:absolute;z-index:3;transform:translate(-50%,calc(-100% - 22px)) scale(.96);width:min(240px,60vw);background:var(--verde-profundo);color:var(--fg-on-alt);border-radius:var(--radius-lg);padding:.9rem 1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.25rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s .3s}
.hs-card b{font-family:var(--font-display);font-size:1.2rem;font-weight:500;color:var(--dorado-claro)}
.hs-card span{font-size:.84rem;color:var(--fg-on-alt-soft);line-height:1.45}
.hs-card::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:inherit;transform:translateX(-50%) rotate(45deg)}
.hotspot:hover + .hs-card,.hotspot:focus-visible + .hs-card,.hotspot.is-open + .hs-card{opacity:1;visibility:visible;transform:translate(-50%,calc(-100% - 22px));transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s}
@media (max-width:640px){.hotspot{width:22px;height:22px;margin:-11px 0 0 -11px}.hotspot::after{inset:7px}}

/* Evacuación */
.evac-media .media{background:#fff;padding:.8rem;border-radius:var(--radius-lg)}
.evac-media .media img{height:auto;object-fit:contain}

/* Mapa bajo demanda (no carga Google Maps hasta que lo pidas) */
.map-click{aspect-ratio:16/10;border-radius:var(--radius-lg);border:1px dashed var(--line-strong);background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;padding:1.4rem;color:var(--fg-soft);font-size:.9rem}
.map-click .btn-ghost{color:var(--fg);border-color:var(--line-strong)}
.map-click.is-loaded{padding:0;border:0;background:none}
.map-click iframe{width:100%;height:100%;border:0;border-radius:var(--radius-lg)}

/* Filtros de la galería y pestañas de intención */
.tab[aria-pressed="true"]{color:var(--fg);border-bottom-color:var(--accent-ink)}
.gallery figure[hidden]{display:none}
.int-panel{margin-top:.6rem}
.js .int-panel:not([hidden]){animation:panelIn .6s var(--ease) both}
@keyframes panelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hs-card.edge-l{transform:translate(-22px,calc(-100% - 22px)) scale(.96)}
.hs-card.edge-r{transform:translate(calc(-100% + 22px),calc(-100% - 22px)) scale(.96)}
.hotspot:hover + .hs-card.edge-l,.hotspot:focus-visible + .hs-card.edge-l,.hotspot.is-open + .hs-card.edge-l{transform:translate(-22px,calc(-100% - 22px))}
.hotspot:hover + .hs-card.edge-r,.hotspot:focus-visible + .hs-card.edge-r,.hotspot.is-open + .hs-card.edge-r{transform:translate(calc(-100% + 22px),calc(-100% - 22px))}
.hs-card.edge-l::after{left:22px}
.hs-card.edge-r::after{left:auto;right:16px;transform:rotate(45deg)}

/* Equipo dentro de una sección a dos columnas: retratos lado a lado */
.split .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.4vw,1.8rem);max-width:none}
@media (max-width:520px){.split .team-grid .member h3{font-size:1.35rem}.split .team-grid .member p{font-size:.62rem;letter-spacing:.12em}}

/* Créditos de fotografía (galería) */
.credits{margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem;font-size:.84rem;color:var(--fg-soft)}
.credits summary{cursor:pointer;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fg);list-style:none;display:inline-flex;gap:.6rem;align-items:center}
.credits summary::-webkit-details-marker{display:none}
.credits summary::after{content:"+";font-size:1rem;color:var(--accent-ink);transition:transform .3s var(--ease)}
.credits[open] summary::after{transform:rotate(45deg)}
.credits ul{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:.5rem 2rem}
.credits li span{display:block;color:var(--fg)}
.credits a{color:var(--accent-ink)}
.credits p{margin-top:1rem;max-width:80ch}

/* Video de ambiente en la banda «Nuestra promesa» */
.quote-band .bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s var(--ease)}
.quote-band .bg video.is-playing{opacity:.62}
.quote-band .video-toggle{left:auto;right:var(--gutter)}

/* Sin JavaScript en escritorio: los desplegables se abren con el cursor o el teclado */
@media (min-width:1181px){
  html:not(.js) .nav-item.has-menu:hover > .dropdown,
  html:not(.js) .nav-item.has-menu:focus-within > .dropdown{opacity:1;visibility:visible;transform:translate(-50%,0)}
}

/* Accesibilidad (revisión v2.1) */
.hero :focus-visible,.page-hero :focus-visible,.cta-band :focus-visible,.quote-band :focus-visible,footer.site :focus-visible,.lightbox :focus-visible,.marquee :focus-visible,.topbar.over-media:not(.is-scrolled) :focus-visible,.topbar.menu-open :focus-visible{outline-color:var(--dorado-claro)}
.area-card{--t-accent:var(--dorado-claro)}
.area-card h3 em{color:var(--dorado-claro)}
.area-card .area-body{display:block}
/* Línea del recorrido dibujada con el propio <ol> (sin elementos extra) */
.journey::after{content:"";position:absolute;left:0;right:0;top:32px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 2.4s var(--ease)}
.journey.is-visible::after{transform:scaleX(1)}
@media (max-width:900px){.journey::after{display:none}}
/* Plano: la ficha se puede recorrer con el cursor y cerrar con Escape */
.hs-card{pointer-events:auto}
.hotspot.is-dismissed + .hs-card{opacity:0!important;visibility:hidden!important}
.hotspot:hover + .hs-card,.hs-card:hover{z-index:4}
.hs-card:hover{opacity:1;visibility:visible;transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s}
.hs-card:not(.edge-l):not(.edge-r):hover{transform:translate(-50%,calc(-100% - 22px))}
.hs-card.edge-l:hover{transform:translate(-22px,calc(-100% - 22px))}
.hs-card.edge-r:hover{transform:translate(calc(-100% + 22px),calc(-100% - 22px))}
/* Cinta: botón para pausar */
.marquee{position:relative}
.marquee.is-paused .marquee-track{animation-play-state:paused}
.marquee-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid rgba(243,239,230,.35);background:rgba(20,28,22,.85);color:var(--fg-on-alt);display:grid;place-items:center;cursor:pointer}
.marquee-toggle svg{width:14px;height:14px;fill:currentColor}
.marquee-toggle .i-play{display:none}
.marquee.is-paused .marquee-toggle .i-play{display:block}
.marquee.is-paused .marquee-toggle .i-pause{display:none}
@media (prefers-reduced-motion: reduce){.marquee-toggle{display:none}}
.area-card .count{width:78px;height:78px;letter-spacing:.08em;font-size:.56rem}
.areas-2 .area-card{aspect-ratio:4/3.3}
@media (max-width:900px){.areas-2 .area-card{aspect-ratio:4/4.4}}

/* Fotos de apoyo en bloques de solo texto */
.side-photo{margin:2.2rem 0 0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;max-width:440px;background:var(--beige);box-shadow:var(--shadow-soft)}
.side-photo img{width:100%;height:100%;object-fit:cover}
.doc-split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(1.6rem,5vw,4.5rem);align-items:center;margin-top:1.4rem}
.doc-split .objetivo-general{margin-top:0}
.doc-split .side-photo{margin:0;max-width:none;aspect-ratio:5/4}
.quality .side-photo{max-width:360px;margin-top:1.6rem}
@media (max-width:900px){.doc-split{grid-template-columns:minmax(0,1fr)}.side-photo{max-width:none;aspect-ratio:16/10}}

/* Ubicación: ilustración limpia antes de cargar Google Maps */
.map-click{position:relative;overflow:hidden;border:1px solid var(--line);background:#ECE5D6;padding:0;display:block;color:var(--verde-noche)}
.map-click .map-art{position:absolute;inset:0;width:100%;height:100%;display:block}
.map-card{position:absolute;left:50%;top:44%;transform:translate(-50%,-100%);display:flex;align-items:center;gap:.8rem;background:#fff;border-radius:999px;padding:.55rem 1.1rem .55rem .55rem;box-shadow:0 14px 30px -14px rgba(27,36,30,.45);white-space:nowrap;max-width:calc(100% - 2rem)}
.map-card::after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.map-pin{width:40px;height:40px;border-radius:50%;background:var(--verde-bosque);display:grid;place-items:center;flex:none}
.map-pin svg{width:20px;height:20px;fill:var(--dorado-claro)}
.map-card b{display:block;font-family:var(--font-display);font-size:1.15rem;font-weight:500;line-height:1.1}
.map-card span{display:block;font-size:.8rem;color:#5A6457;overflow:hidden;text-overflow:ellipsis}
.map-actions{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;padding:1rem 1.1rem;background:linear-gradient(0deg,rgba(255,255,255,.96),rgba(255,255,255,.82));border-top:1px solid rgba(214,201,179,.7)}
.map-actions p{margin:0;font-size:.78rem;color:#5A6457;max-width:34ch}
.map-click .map-actions .btn{color:var(--accent-contrast)}
.map-click.is-loaded .map-art,.map-click.is-loaded .map-card,.map-click.is-loaded .map-actions{display:none}
@media (max-width:520px){.map-card{top:40%}.map-card span{white-space:normal}.map-actions p{max-width:none}}
.map-click{min-height:320px}

/* ---------- Formularios que también se registran en el panel (reservas y PQRSF) ---------- */
/* Campo trampa contra envíos automáticos: fuera de la vista; los lectores de pantalla lo ignoran (aria-hidden en el HTML) */
.hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
/* Horario ya tomado por otra cita confirmada de la misma área */
.slot[aria-disabled="true"]{opacity:.72;background:transparent;border-style:dashed;color:var(--fg-soft);text-decoration:line-through;text-decoration-thickness:1px;cursor:not-allowed}
.slot[aria-disabled="true"]:hover{transform:none;border-color:var(--control-border)}
/* Aviso con el número de radicado de la PQRSF */
.form-ok{margin:0;padding:.8rem 1rem;border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--line-strong);border-left:3px solid var(--accent);color:var(--fg);font-size:.9rem;line-height:1.5}
.form-ok b{font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap}
/* Contacto en celular: la columna única no debe ensancharse con el contenido (evita el desplazamiento horizontal junto al formulario PQRSF) */
@media (max-width:900px){.contact-grid{grid-template-columns:minmax(0,1fr)}}
