/* ============ SOFÍA CONEXIÓN · capa de experiencia (Marea · Arcano · Conexión) ============ */
/* ============ SOFÍA CONEXIÓN — capa de efectos compartida (todas las páginas) ============
   Se carga DESPUÉS del CSS de cada página. Cubre:
   1) Botones siempre legibles (sin depender del hover)   2) El agua: olas, luz sobre el agua, ondas
   3) Efectos de interacción (luz que sigue al mouse, brillo en tarjetas, imanes, grano)              */

/* ---------- 1) BOTONES: rellenos y visibles en reposo, sobre cualquier fondo ---------- */
body .btn{
  position:relative;gap:.7em;background:var(--brown-2);color:var(--cream);border:1px solid var(--brown-2);
  opacity:1;visibility:visible;font-weight:500;letter-spacing:.14em;
  box-shadow:0 12px 26px -14px rgba(34,24,16,.7);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}
body .btn::after{content:"→";font-size:1.1em;line-height:1;transition:transform .35s var(--ease)}
body .btn:hover{background:var(--brown-d);border-color:var(--brown-d);color:var(--cream);transform:translateY(-2px);box-shadow:0 18px 30px -14px rgba(34,24,16,.8)}
body .btn:hover::after{transform:translateX(5px)}
/* principal: dorado macizo */
body .btn.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--brown-d)}
body .btn.btn-gold:hover{background:var(--gold-lt);border-color:var(--gold-lt);color:var(--brown-d)}
/* secundario sobre fondos oscuros o fotos: crema macizo */
body .btn.on-dark,body .on-dark .btn{background:var(--cream);border-color:var(--cream);color:var(--brown-d)}
body .btn.on-dark:hover,body .on-dark .btn:hover{background:#fff;border-color:#fff;color:var(--brown-d)}
body .btn.btn-gold.on-dark,body .on-dark .btn.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--brown-d)}
body .btn.btn-gold.on-dark:hover,body .on-dark .btn.btn-gold:hover{background:var(--gold-lt);border-color:var(--gold-lt)}
body .btn-sm{padding:.8em 1.4em}
/* botón del menú: siempre dorado */
body .nav-cta{background:var(--gold);border:1px solid var(--gold);color:var(--brown-d);font-weight:500;padding:.75em 1.4em}
body .nav-cta:hover,body .nav.is-stuck .nav-cta:hover{background:var(--gold-lt);border-color:var(--gold-lt);color:var(--brown-d)}
body .nav.is-stuck .nav-cta{background:var(--gold);border-color:var(--gold);color:var(--brown-d)}
/* enlaces con flecha: subrayado para que se lean como enlaces */
body .link-arrow{border-bottom:1px solid currentColor;padding-bottom:2px;display:inline-block;width:fit-content}
/* los epígrafes de la galería ya no dependen del hover */
body .gtile figcaption{opacity:1;transform:none;background:linear-gradient(transparent,rgba(34,24,16,.82))}
/* botón flotante: píldora con texto siempre visible */
body .fab{width:auto;height:58px;padding:0 1.4rem 0 1.05rem;border-radius:100px;gap:.6rem;opacity:1;transform:none;pointer-events:auto;z-index:130}
body .fab.is-in{animation:none}
body .fab:hover{transform:translateY(-3px)}
body .fab svg{width:28px;height:28px;flex:none}
body .fab .fab-label{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
body .fab::after{border-radius:100px}
@media (max-width:480px){body .fab{height:54px;padding:0 1.15rem 0 .9rem}body .fab svg{width:26px;height:26px}}
/* el indicador de scroll competía con el botón flotante */
.hu-scroll{display:none!important}

/* ---------- 2) EL AGUA ---------- */
.gallery,.footer,.strip,.hu-hero,.phero,.cta-band,.sea-band{position:relative}
.strip,.cta-band,.gallery,.footer,.phero.no-photo{background-color:var(--brown-d)}

.hu-hero-inner,.phero-inner,.strip-inner,.cta-band h2,.cta-band .cta-row,.footer-inner,.footer-base,.sea-band-inner,.gallery .sec-head,.gallery-grid{position:relative;z-index:4}

/* mar dorado de fondo: franja de formación del inicio y bandas de cierre de todas las páginas */
.strip{background:linear-gradient(160deg,rgba(58,43,27,.74),rgba(34,24,16,.9)),url("assets/img/st-sea-gold.webp") center/cover no-repeat;background-color:var(--brown-d)}
.cta-band{overflow:hidden}
.cta-bg{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;z-index:0;will-change:transform}
.cta-veil{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(34,24,16,.82),rgba(58,43,27,.6) 50%,rgba(34,24,16,.86))}
body .hu-hero-inner{padding-bottom:clamp(6rem,15vh,9.5rem)}
body .phero{padding-bottom:clamp(3.4rem,7vw,5.6rem)}
.phero-bg[data-fx-par]{inset:-8% 0;height:116%}

/* banda del mar (portada de "el agua" en el inicio y en Contacto) */
.sea-band{overflow:hidden;color:var(--cream);text-align:center;padding:clamp(6rem,13vw,11rem) clamp(1.2rem,5vw,3rem);background-color:var(--brown-d)}
.sea-band-bg{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;z-index:0;will-change:transform}
.sea-band-veil{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(34,24,16,.6),rgba(46,32,20,.35) 45%,rgba(34,24,16,.75))}
.sea-band-inner{max-width:760px;margin:0 auto}
.sea-band .num{color:var(--gold-lt)}
.sea-band h2{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(2.2rem,6vw,4.2rem);line-height:1.05;margin:.7rem 0 1.1rem;text-wrap:balance;color:var(--cream)}
.sea-band h2 em{color:var(--gold-lt)}
.sea-band p{color:rgba(245,238,222,.92);max-width:56ch;margin:0 auto;font-size:clamp(1rem,1.5vw,1.15rem)}

/* ---------- 3) INTERACCIÓN (estilo Marketinate, en clave Sofía) ---------- */
/* revelado escalonado */
.reveal{transition-delay:var(--rd,0s)}
/* ============ 4) ROTADOR DEL HERO: se lee la palabra completa ============ */
body .hu-rotator{flex-wrap:wrap;row-gap:.15rem}
body .hu-rot-words{display:inline-grid;min-width:0;height:1.6em;overflow:hidden;vertical-align:bottom}
body .hu-rot-words span{position:static;grid-area:1/1;white-space:nowrap}

/* ============ 5) MENOS MOVIMIENTO AL PASAR EL MOUSE ============ */
body .card:hover .card-media img{transform:scale(1.02)}
body .card:hover,body .testi-card:hover,body .consulta:hover,body .eb-bonus:hover,body .facet:hover{transform:translateY(-2px)}
body .facet:hover .facet-ico{transform:none}

/* ============ 6) JUEGOS DE COLOR CON LA PALETA DE MARCA ============ */
:root{--sand-2:#ead8b0;--sand-3:#f1e3c6;--tan-2:#6b5138;--gold-soft:#e4c98d}
/* bandas de color entre secciones */
.tone-sand{background-color:var(--sand-2)}
.tone-tan{background-color:var(--tan-2);color:var(--cream)}
.tone-tan .num{color:var(--gold-lt)}
.tone-tan .sec-title{color:var(--cream)}
.tone-tan .sec-title em{background-image:linear-gradient(100deg,var(--gold-lt) 0%,var(--gold-lt) 38%,#fff6dc 50%,var(--gold-lt) 62%,var(--gold-lt) 100%)}
.tone-tan .lede,.tone-tan .prose p,.tone-tan .checks li{color:rgba(245,238,222,.92)}
.tone-tan .checks li::before{color:var(--gold-lt)}
/* tarjetas: papel, arena y marron alternados */
.cards .card:nth-child(3n+2){background:linear-gradient(165deg,var(--sand-3),#e8d4ab);border-color:rgba(168,121,47,.28)}
.cards .card:nth-child(3n){background:linear-gradient(165deg,var(--brown-2),var(--brown-d));border-color:var(--brown-2)}
.cards .card:nth-child(3n) h3{color:var(--cream)}
.cards .card:nth-child(3n) p{color:rgba(245,238,222,.86)}
.cards .card:nth-child(3n) .card-n,.cards .card:nth-child(3n) .link-arrow{color:var(--gold-lt)}
.steps .step:nth-child(2n){background:var(--sand-3)}
.steps .step:nth-child(3n) b{color:var(--tan)}
/* testimonios: 2 columnas y cuatro tonos */
.testi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.testi-card:nth-child(4n+2){background:var(--sand-3);border-color:rgba(168,121,47,.25)}
.testi-card:nth-child(4n+3){background:linear-gradient(165deg,var(--brown-2),var(--brown-d));border-color:var(--brown-2)}
.testi-card:nth-child(4n+3) blockquote{color:var(--cream)}
.testi-card:nth-child(4n+3) figcaption{color:var(--sand)}
.testi-card:nth-child(4n+3) .q-mark{color:var(--gold-lt)}
.testi-card:nth-child(4n){background:linear-gradient(165deg,var(--gold-soft),#cfa966);border-color:#b98d43}
.testi-card:nth-child(4n) blockquote{color:var(--brown-d)}
.testi-card:nth-child(4n) figcaption{color:var(--brown-3)}
.testi-card:nth-child(4n) .q-mark{color:var(--brown-3)}
/* fotos: bloque de color desplazado, siempre quieto */
.split-media{box-shadow:16px 16px 0 -2px var(--sand-lt)}
.split.rev .split-media{box-shadow:-16px 16px 0 -2px var(--gold-soft)}
.about-portrait{box-shadow:16px 16px 0 -2px var(--sand-lt)}
/* etiquetas en tonos */
.strip-facts .fact:nth-child(1){background:var(--gold);border-color:var(--gold);color:var(--brown-d)}
.strip-facts .fact:nth-child(1) b,.strip-facts .fact:nth-child(2) b{color:var(--brown-d)}
.strip-facts .fact:nth-child(2){background:var(--sand-lt);border-color:var(--sand-lt);color:var(--brown-d)}
.eb-pills .eb-pill:nth-child(1){background:var(--sand-3)}
.eb-pills .eb-pill:nth-child(2){background:var(--sand-lt)}
.eb-pills .eb-pill:nth-child(3){background:var(--gold-soft)}

/* inicio: las 9 puertas en una composicion de tonos */
.universe-grid .facet:nth-child(2),.universe-grid .facet:nth-child(6){background:linear-gradient(165deg,var(--sand-3),#e6d0a6);border-color:rgba(168,121,47,.28)}
.universe-grid .facet:nth-child(4){background:linear-gradient(165deg,var(--tan),var(--tan-2));border-color:var(--tan-2)}
.universe-grid .facet:nth-child(7){background:linear-gradient(165deg,var(--brown-2),var(--brown-d));border-color:var(--brown-2)}
.universe-grid .facet:nth-child(8){background:linear-gradient(165deg,#e8cf95,#c9a25e);border-color:#b98d43}
.universe-grid .facet:nth-child(4) h3,.universe-grid .facet:nth-child(7) h3{color:var(--cream)}
.universe-grid .facet:nth-child(4) p,.universe-grid .facet:nth-child(7) p{color:rgba(245,238,222,.88)}
.universe-grid .facet:nth-child(4) .facet-n,.universe-grid .facet:nth-child(4) .facet-ico,.universe-grid .facet:nth-child(4) .link-arrow,
.universe-grid .facet:nth-child(7) .facet-n,.universe-grid .facet:nth-child(7) .facet-ico,.universe-grid .facet:nth-child(7) .link-arrow{color:var(--gold-lt)}
.universe-grid .facet:nth-child(8) h3,.universe-grid .facet:nth-child(8) p,.universe-grid .facet:nth-child(8) .facet-n,
.universe-grid .facet:nth-child(8) .facet-ico,.universe-grid .facet:nth-child(8) .link-arrow{color:var(--brown-d)}
/* inicio: consultas, testimonios y cierre con color */
.consulta:nth-child(2){background:linear-gradient(165deg,var(--sand-3),#e8d4ab);border-color:rgba(168,121,47,.28)}
.consulta:nth-child(3){background:linear-gradient(165deg,var(--brown-2),var(--brown-d));border-color:var(--brown-2)}
.consulta:nth-child(3) h3{color:var(--cream)}
.consulta:nth-child(3) p{color:rgba(245,238,222,.86)}
.consulta:nth-child(3) .c-meta{color:var(--gold-lt)}
.testi{background-color:var(--tan-2)}
.testi .num{color:var(--gold-lt)}
.testi .sec-title{color:var(--cream)}
.testi .sec-title em{background-image:linear-gradient(100deg,var(--gold-lt) 0%,var(--gold-lt) 38%,#fff6dc 50%,var(--gold-lt) 62%,var(--gold-lt) 100%)}
.testi-foot{color:rgba(245,238,222,.9)}
.testi-foot a{color:var(--gold-lt);border-bottom-color:var(--gold-lt)}
.connect{background-color:var(--sand-2)}
@media (max-width:900px){
  .testi-grid{grid-template-columns:1fr}
  .split-media,.about-portrait{box-shadow:10px 10px 0 -2px var(--sand-lt)}
  .split.rev .split-media{box-shadow:-10px 10px 0 -2px var(--gold-soft)}
}

/* ============ 7) TESTIMONIOS DEL INICIO: a sangre y con ola propia ============ */
.testi{position:relative;max-width:none;margin:0;overflow:hidden}
.testi .sec-head,.testi .testi-grid,.testi .testi-foot{max-width:1180px;margin-left:auto;margin-right:auto}
.testi-grid{margin-top:1.6rem}

/* ============ 8) enlaces y numeros legibles sobre cada tono ============ */
.facet .link-arrow,.card .link-arrow,.consulta .link-arrow{color:#8a5f1a}
.universe-grid .facet:nth-child(2) .link-arrow,.universe-grid .facet:nth-child(6) .link-arrow,
.universe-grid .facet:nth-child(2) .facet-n,.universe-grid .facet:nth-child(6) .facet-n{color:var(--brown-3)}
.universe-grid .facet:nth-child(4) .link-arrow,.universe-grid .facet:nth-child(4) .facet-n{color:var(--cream)}
.cards .card:nth-child(3n+2) .link-arrow,.cards .card:nth-child(3n+2) .card-n{color:var(--brown-3)}
.testi-card:nth-child(4n+2) .q-mark{color:var(--brown-3)}
.testi-card .q-mark{color:var(--tan)}

/* =====================================================================
   FASE 2 · SISTEMA VISUAL — tokens (del oro metálico del logo, sin abusar del dorado)
   ===================================================================== */
:root{
  --taupe:#8c7a66; --brown-deep:#221810;
  --sea:#5f8a8b; --sea-dark:#2f5556;
  --gold-metal:linear-gradient(100deg,#a8792f 0%,#c9a25e 34%,#f3dea6 50%,#c9a25e 66%,#a8792f 100%);
  --gold-metal-lt:linear-gradient(100deg,#ddbf82 0%,#ddbf82 38%,#fff6dc 50%,#ddbf82 62%,#ddbf82 100%);
  --marea:14s;
}

/* =====================================================================
   FASE 3 · SISTEMA DE MOVIMIENTO — un solo lenguaje, todo pausable
   ===================================================================== */
/* Movimiento: OFF → la página queda completa pero quieta */
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{
  animation:none!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
html.tab-hidden *,html.tab-hidden *::before,html.tab-hidden *::after{animation-play-state:paused!important}
.hu-scroll,.hu-particles,.hu-orbit{display:none!important}

/* control de movimiento */
.motion-toggle{display:inline-flex;align-items:center;gap:.6rem;background:none;border:1px solid currentColor;color:inherit;
  font:500 .68rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:.7em 1.1em;cursor:pointer;opacity:.9;border-radius:100px}
.motion-toggle::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(194,149,78,.25)}
html[data-motion="off"] .motion-toggle::before{background:transparent;border:1px solid currentColor;box-shadow:none}
.motion-toggle:hover{opacity:1}
.motion-toggle:focus-visible,.nav a:focus-visible,.btn:focus-visible,.fab:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.footer-base .motion-toggle{margin-left:auto}

/* barra "nivel del agua" (progreso de lectura), sin glow */
.fx-level{position:fixed;left:0;top:0;height:2px;width:100%;z-index:140;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);background:var(--gold-metal)}

/* revelado escalonado */
.reveal{transition-delay:var(--rd,0s)}

/* título dorado: brillo metálico UNA sola vez cuando aparece (antes: 9 animaciones infinitas) */
@supports (-webkit-background-clip:text) or (background-clip:text){
  .sec-title em,.hu-title .accent,.connect-title em,.cta-band h2 em,.phero h1 em,.sea-band h2 em{
    background:var(--gold-metal);background-size:260% 100%;background-position:100% 0;
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
  .on-dark .sec-title em,.strip .sec-title em,.gallery .sec-title em,.hu-title .accent,.cta-band h2 em,.phero h1 em,.sea-band h2 em,.tone-tan .sec-title em,.testi .sec-title em{background-image:var(--gold-metal-lt)}
  .is-in em,.is-in.sec-title em,.entered .hu-title .accent{animation:glintOnce 2.6s cubic-bezier(.3,.6,.25,1) .5s 1 both}
}
@keyframes glintOnce{from{background-position:100% 0}to{background-position:0 0}}

/* =====================================================================
   FASE 4 · AGUA — una presencia por escena
   ===================================================================== */
.gallery,.footer,.strip,.hu-hero,.phero,.cta-band,.sea-band{position:relative}
[data-water]{position:relative}
/* luz sobre el agua: 2 texturas repetibles que derivan por transform (GPU, sin JS por cuadro) */
.water-lit{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;opacity:.36}
.water-lit i{position:absolute;inset:-512px;background-repeat:repeat;will-change:transform;animation-play-state:paused}
.water-lit i:nth-child(1){background-image:url("assets/img/water-a.webp");background-size:512px 512px;animation:waterA 90s linear infinite paused}
.water-lit i:nth-child(2){background-image:url("assets/img/water-b.webp");background-size:384px 384px;animation:waterB 64s linear infinite paused;opacity:.8}
.is-live>.water-lit i:nth-child(n){animation-play-state:running}
@keyframes waterA{to{transform:translate3d(512px,512px,0)}}
@keyframes waterB{to{transform:translate3d(-384px,384px,0)}}
@media (max-width:760px){.water-lit{opacity:.3}.water-lit i:nth-child(2){display:none}}

/* olas al borde de las secciones: 3 crestas, sólo la delantera se mueve y sólo si se ve */
.sea-edge{position:absolute;left:0;right:0;height:clamp(54px,8vw,116px);line-height:0;pointer-events:none;z-index:3;overflow:hidden}
.sea-edge.bottom{bottom:-1px}
.sea-edge.top{top:-1px;transform:scaleY(-1)}
.sea-edge svg{width:100%;height:100%;display:block}
.sea-edge .wg1{opacity:.32;transform:translateX(-380px)}
.sea-edge .wg2{opacity:.6;transform:translateX(-860px)}
.sea-edge .wg3{opacity:1;animation:seaDrift calc(var(--marea)*2) linear infinite;animation-play-state:paused;will-change:transform}
.sea-edge.is-live .wg3{animation-play-state:running}
@keyframes seaDrift{to{transform:translateX(-1440px)}}

/* ondas al tocar (el canvas se crea recién al primer toque) */
.ripple-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.hu-hero-inner,.phero-inner,.strip-inner,.cta-band h2,.cta-band .cta-row,.footer-inner,.footer-base,.sea-band-inner,.gallery .sec-head,.gallery-grid{position:relative;z-index:4}

/* hero: respiración lenta de la foto (antes 1.04→1.14 en 22 s), sólo si el hero se ve */
body .hu-hero-bg{animation:huBreath calc(var(--marea)*3) ease-in-out infinite alternate;animation-play-state:paused}
.hu-hero.is-live .hu-hero-bg{animation-play-state:running}
@keyframes huBreath{from{transform:scaleX(-1) scale(1.03)}to{transform:scaleX(-1) scale(1.08)}}
/* marquesina: sólo corre visible */
.marquee-track{animation-play-state:paused;animation-duration:70s}
.marquee.is-live .marquee-track{animation-play-state:running}

/* espiral-firma del hero: se dibuja una vez */
.hu-spiral{position:absolute;z-index:2;top:14%;right:7%;width:min(28vw,320px);aspect-ratio:1;pointer-events:none;color:var(--gold-lt);opacity:.7}
.hu-spiral svg{width:100%;height:100%;overflow:visible}
.hu-spiral path{fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.hu-hero.entered .hu-spiral path{animation:spiralDraw 3.4s cubic-bezier(.4,.1,.2,1) .5s forwards}
@keyframes spiralDraw{to{stroke-dashoffset:0}}
html[data-motion="off"] .hu-spiral path{stroke-dashoffset:0}
@media (max-width:720px){.hu-spiral{display:none}}

/* estados vacíos: presencia mínima de agua */
.empty{position:relative;overflow:hidden}
.empty::before{content:"";display:block;height:14px;width:120px;margin:0 auto 1.3rem;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='14'><path d='M0 8 Q10 0 20 8 T40 8' fill='none' stroke='%23a8792f' stroke-width='1.2'/></svg>") repeat-x center/40px 14px;opacity:.7}

/* =====================================================================
   FASE 5 · ARCANO — la tirada de las 9 puertas: reverso → giro → arcano → quieta
   ===================================================================== */
.tirada-wait .facet::before{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;opacity:1;
  background:url("assets/img/spiral.webp") center/34% auto no-repeat,linear-gradient(160deg,var(--brown-2),var(--brown-deep));
  outline:1px solid rgba(221,191,130,.55);outline-offset:-12px}
.tirada-wait .facet.is-flip{animation:cardFlip .95s 1}
.tirada-wait .facet.is-flip::before{animation:backHide .95s steps(1,end) forwards}
@keyframes cardFlip{
  0%{transform:perspective(1100px) rotateY(0);animation-timing-function:cubic-bezier(.5,0,.75,.6)}
  50%{transform:perspective(1100px) rotateY(90deg)}
  50.01%{transform:perspective(1100px) rotateY(-90deg);animation-timing-function:cubic-bezier(.2,.5,.3,1)}
  100%{transform:perspective(1100px) rotateY(0)}}
@keyframes backHide{0%,49.9%{opacity:1}50%,100%{opacity:0}}
@media (max-width:760px){.tirada-wait .facet.is-flip,.tirada-wait .facet.is-flip::before{animation-duration:.8s}}
body .facet:hover{transform:translateY(-3px)}

/* =====================================================================
   FASE 6 · NAVEGACIÓN — transparente → crema translúcida; se oculta al bajar
   ===================================================================== */
.nav{transition:background .5s var(--ease),box-shadow .5s var(--ease),transform .55s var(--ease)}
.nav.is-hidden:not(.is-open){transform:translateY(-105%)}
.brand{display:flex;align-items:center;gap:.6rem}
.brand-mark{width:34px;height:auto;flex:none;display:block}
/* enlace activo: línea fina de agua */
.nav-links a::after,.nav.is-stuck .nav-links a::after{height:5px;bottom:-6px;background-color:transparent!important;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='5'><path d='M0 3 Q4 0 8 3 T16 3' fill='none' stroke='%23ddbf82' stroke-width='1'/></svg>");
  background-repeat:repeat-x;background-size:16px 5px;transition:width .6s var(--ease)}
.nav.is-stuck .nav-links a::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='5'><path d='M0 3 Q4 0 8 3 T16 3' fill='none' stroke='%23a8792f' stroke-width='1'/></svg>")}
.nav-links a.active::after{width:100%}

/* menú móvil: se abre como una onda desde el botón */
@media (max-width:980px){
  .nav-links{display:none!important}.nav-burger{display:flex!important}.nav-cta{display:none}
  .nav-drawer,.nav.is-open .nav-drawer{display:flex!important}
  .nav-drawer{position:fixed;left:0;right:0;top:0;height:100vh;height:100dvh;z-index:-1;overflow-y:auto;
    padding:calc(var(--nav-h) + 1rem) 0 2.6rem;justify-content:flex-start;background:var(--brown-deep);
    clip-path:circle(0% at calc(100% - 38px) 37px);visibility:hidden;
    transition:clip-path .85s cubic-bezier(.65,.02,.25,1),visibility 0s linear .85s}
  .nav.is-open .nav-drawer{clip-path:circle(150% at calc(100% - 38px) 37px);visibility:visible;transition-delay:0s}
  .nav-drawer a{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease);font-family:var(--serif);font-style:italic;
    font-size:1.5rem;letter-spacing:.01em;text-transform:none;border-bottom:1px solid var(--gline)}
  .nav.is-open .nav-drawer a{opacity:1;transform:none}
  .nav.is-open .nav-drawer a:nth-child(1){transition-delay:.25s}.nav.is-open .nav-drawer a:nth-child(2){transition-delay:.3s}
  .nav.is-open .nav-drawer a:nth-child(3){transition-delay:.35s}.nav.is-open .nav-drawer a:nth-child(4){transition-delay:.4s}
  .nav.is-open .nav-drawer a:nth-child(5){transition-delay:.45s}.nav.is-open .nav-drawer a:nth-child(6){transition-delay:.5s}
  .nav.is-open .nav-drawer a:nth-child(n+7){transition-delay:.55s}
  .nav-drawer .motion-toggle{margin:1.4rem clamp(1.1rem,4vw,2.4rem) 0;color:var(--cream);align-self:flex-start}
  .nav.is-open{background:transparent!important;backdrop-filter:none!important;box-shadow:none!important}
  .nav.is-open .brand{color:var(--cream)}
  .nav.is-open .nav-burger span{background:var(--cream)!important}
  .nav.is-open .nav-burger span:first-child{transform:translateY(3.25px) rotate(45deg)}
  .nav.is-open .nav-burger span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
}

/* =====================================================================
   FASE 6b · TRANSICIÓN ENTRE PÁGINAS — una ola cubre y la nueva emerge (View Transitions)
   ===================================================================== */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:vtOut .55s cubic-bezier(.4,0,.6,1) both}
  ::view-transition-new(root){animation:vtIn .75s cubic-bezier(.3,.5,.25,1) both;z-index:2}
  @keyframes vtOut{to{opacity:.55;transform:translateY(-1.5%)}}
  @keyframes vtIn{from{clip-path:ellipse(85% 0% at 50% 108%)}to{clip-path:ellipse(180% 150% at 50% 108%)}}
}
html[data-motion="off"]::view-transition-group(*),html[data-motion="off"]::view-transition-old(*),html[data-motion="off"]::view-transition-new(*){animation:none!important}

/* =====================================================================
   FORMULARIOS — la línea de foco se dibuja
   ===================================================================== */
.form>div{position:relative}
.form>div::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold-dk);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease);pointer-events:none}
.form>div:focus-within::after{transform:scaleX(1)}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--gold-dk)}
.form .btn.is-sending{pointer-events:none;opacity:.85}
.form .btn.is-sending::after{content:"";width:.9em;height:.9em;border-radius:50%;border:1.5px solid currentColor;animation:ringOut 1.1s ease-out infinite}
@keyframes ringOut{from{transform:scale(.4);opacity:.9}to{transform:scale(1.5);opacity:0}}
.form-msg{transition:opacity .6s var(--ease)}

/* =====================================================================
   FOTOS: hover casi imperceptible · botones: +2 px y flecha +5 px (nada más)
   ===================================================================== */
body .card:hover,body .testi-card:hover,body .consulta:hover,body .eb-bonus:hover,body .eb-week:hover,body .eb-pillar:hover{transform:translateY(-2px)}
body .card:hover .card-media img{transform:scale(1.02)}
/* respiración suave del CTA principal (no pulso) */
.hu-hero-cta .btn-gold,.cta-band .btn-gold{animation:ctaBreath calc(var(--marea)/2.5) ease-in-out infinite}
@keyframes ctaBreath{0%,100%{box-shadow:0 12px 26px -14px rgba(34,24,16,.7)}50%{box-shadow:0 16px 34px -12px rgba(194,149,78,.4)}}
.fab::after{display:none!important}
.hu-hero:not(.is-live) .btn-gold,.cta-band:not(.is-live) .btn-gold{animation-play-state:paused}

/* estrellitas del manifiesto: quietas (exceso de estrellas flotando) */
.celeste,.hu-orbit::before{animation:none!important}
/* la luz del agua nunca cae sobre rostros: en portadas con retrato sólo baña el tercio inferior (el mar) */
.water-lit{opacity:.3}
.hu-hero .water-lit,.phero .water-lit{-webkit-mask-image:linear-gradient(to top,#000 0,#000 22%,transparent 46%);mask-image:linear-gradient(to top,#000 0,#000 22%,transparent 46%)}

/* el botón flotante se aparta cuando el menú está abierto */
html:has(.nav.is-open) .fab{opacity:0;pointer-events:none}

/* firma: el logo en el pie (quieto, sin animación) */
.footer-logo{display:block;width:min(260px,64vw);height:auto;margin:0 0 1rem;opacity:.96}

/* pasos (Asesorías, etc.): una línea metálica se dibuja por encima al revelarse */
.steps .step{position:relative}
.steps .step::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--gold-metal);transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--ease) .25s}
.steps .step.is-in::before,.steps.is-in .step::before{transform:scaleX(1)}

/* =====================================================================
   NUEVO BRANDING · tablero "Sofía Conexión"
   Dorado #D4AF37 · Terracota #C97B56 · Arena #EFE7D9 · Azul profundo #2E4A5B · Verde oliva #556B5B · Gris suave #A7A7A7
   Tipografías: Playfair Display + Montserrat · iconografía línea dorada (sol, luna, estrella, ola, loto, montaña, globo)
   ===================================================================== */
:root{
  --serif:'Playfair Display',Georgia,serif; --sans:'Montserrat',system-ui,sans-serif;
  --dorado:#D4AF37; --terracota:#C97B56; --terracota-d:#a85f3d; --arena:#EFE7D9;
  --azul:#2E4A5B; --azul-d:#1f3240; --oliva:#556B5B; --gris:#A7A7A7;
  --gold:#D4AF37; --cream-2:#EFE7D9;
}
body{font-size:15.5px;line-height:1.72}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- tipografía: Playfair pide menos cuerpo y menos peso que Cormorant ---- */
.sec-title,.sea-band h2,.cta-band h2,.connect-title{font-weight:400;font-size:clamp(1.9rem,4.4vw,3.2rem);line-height:1.14;letter-spacing:-.005em}
.phero h1{font-weight:400;font-size:clamp(2.3rem,6vw,4.2rem);line-height:1.08;letter-spacing:-.01em}
.intro-text{font-size:clamp(1.35rem,3vw,2.2rem);line-height:1.42;font-weight:400}
.facet h3,.card h3,.consulta h3,.card.dark h3{font-weight:500;font-size:1.45rem}
.testi-card blockquote{font-size:1.12rem}
.brand{font-size:1.2rem}
.footer-tag{max-width:38ch}
.eb-hero-title,.eb-close-title,.eb-offer-title{font-weight:400}
.eb-hero-title{font-size:clamp(2.2rem,5vw,3.9rem);line-height:1.1}
.eb-close-title,.eb-offer-title{font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:1.15}
.marquee-track{font-size:1.25rem}
.about-sign{font-size:1.6rem}
.nav-links a{font-size:.7rem;letter-spacing:.1em}

/* ---- botones: píldora, azul profundo / dorado (siempre visibles) ---- */
body .btn,body .nav-cta{border-radius:999px}
body .btn{background:var(--azul);border-color:var(--azul);color:var(--cream);overflow:hidden;font-weight:500;letter-spacing:.12em}
body .btn:hover{background:var(--azul-d);border-color:var(--azul-d)}
body .btn.btn-gold{background:var(--dorado);border-color:var(--dorado);color:#241a0e}
body .btn.btn-gold:hover{background:#e2c25a;border-color:#e2c25a}
body .btn.on-dark,body .on-dark .btn{background:var(--cream);border-color:var(--cream);color:var(--azul-d)}
body .btn.btn-gold.on-dark,body .on-dark .btn.btn-gold{background:var(--dorado);border-color:var(--dorado);color:#241a0e}
body .nav-cta{background:var(--dorado);border-color:var(--dorado);color:#241a0e}
/* destello de luz que cruza el botón al pasar (variación de luz, no movimiento) */
body .btn::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.34) 50%,transparent 62%);transform:translateX(-130%);transition:transform .9s var(--ease)}
body .btn:hover::before{transform:translateX(130%)}

/* ---- superficies "noche": azul profundo (el mar) en vez de marrón ---- */
.strip,.cta-band,.gallery,.footer,.phero.no-photo,.marquee{background-color:var(--azul-d)}
.footer,.gallery{background-image:linear-gradient(165deg,var(--azul),var(--azul-d))}
.marquee{border-color:rgba(245,238,222,.14)}
.strip{background-image:linear-gradient(160deg,rgba(46,74,91,.78),rgba(31,50,64,.94)),url("assets/img/st-sea-gold.webp");background-size:cover;background-position:center}
.cta-veil{background:linear-gradient(180deg,rgba(31,50,64,.84),rgba(46,74,91,.58) 50%,rgba(31,50,64,.9))}
.sea-band-veil{background:linear-gradient(180deg,rgba(31,50,64,.62),rgba(46,74,91,.3) 45%,rgba(31,50,64,.78))}
.phero-veil{background:linear-gradient(180deg,rgba(31,50,64,.62),rgba(31,50,64,.32) 55%,rgba(31,50,64,.78))}
.hu-veil{background:radial-gradient(120% 80% at 30% 30%,rgba(31,50,64,.12),transparent 55%),
  linear-gradient(180deg,rgba(31,50,64,.55) 0%,rgba(31,50,64,.1) 30%,rgba(31,50,64,.32) 66%,rgba(31,50,64,.84) 100%)}
/* verde oliva y terracota en los juegos de color */
.testi{background-color:var(--oliva)}
.tone-tan{background-color:var(--oliva)}
.cards .card:nth-child(3n){background:linear-gradient(165deg,var(--terracota-d),#8f4d30);border-color:var(--terracota-d)}
.cards .card:nth-child(3n) .card-n,.cards .card:nth-child(3n) .link-arrow{color:#f6dcc9}
.universe-grid .facet:nth-child(4){background:linear-gradient(165deg,var(--oliva),#43574a);border-color:var(--oliva)}
.universe-grid .facet:nth-child(7){background:linear-gradient(165deg,var(--azul),var(--azul-d));border-color:var(--azul)}
.universe-grid .facet:nth-child(3n+2):nth-child(-n+3){border-color:rgba(201,123,86,.35)}
.consulta:nth-child(3){background:linear-gradient(165deg,var(--azul),var(--azul-d));border-color:var(--azul)}
.testi-card:nth-child(4n+3){background:linear-gradient(165deg,var(--azul),var(--azul-d));border-color:var(--azul)}
.steps .step:nth-child(3n) b{color:var(--terracota-d)}
.connect{background-color:var(--arena)}

/* =====================================================================
   ICONOGRAFÍA (se dibuja al aparecer)
   ===================================================================== */
.ico{width:1.6em;height:1.6em;display:inline-block;flex:none;color:var(--gold)}
.ico[data-draw] path,.ico[data-draw] circle,.ico[data-draw] rect{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.7s cubic-bezier(.4,.1,.2,1)}
.ico[data-draw].is-drawn path,.ico[data-draw].is-drawn circle,.ico[data-draw].is-drawn rect{stroke-dashoffset:0}
.star-div{display:flex;align-items:center;gap:.9rem;margin:1.5rem 0;color:var(--gold-lt)}
.star-div i{display:block;height:1px;width:clamp(70px,14vw,160px);background:linear-gradient(90deg,transparent,currentColor);transform:scaleX(0);transform-origin:right;transition:transform 1.3s var(--ease) .25s}
.star-div i:last-child{background:linear-gradient(90deg,currentColor,transparent);transform-origin:left}
.star-div.is-in i,.is-in .star-div i{transform:scaleX(1)}
.star-div .ico{width:22px;height:22px;stroke-width:1.6}
.star-div.center{justify-content:center}
.star-div.is-in .ico-star,.is-in .star-div .ico-star{animation:starTurn 1.5s cubic-bezier(.3,.6,.25,1) .3s both}
@keyframes starTurn{from{transform:rotate(-100deg) scale(.3);opacity:0}to{transform:none;opacity:1}}
.marquee-track .m-star{display:inline-flex;align-items:center}
.marquee-track .m-star .ico{width:1.05em;height:1.05em;color:var(--gold-lt)}
.divider::before,.divider::after{transform:scaleX(0);transition:transform 1.3s var(--ease) .2s}
.divider::before{transform-origin:right}.divider::after{transform-origin:left}
.divider.is-in::before,.divider.is-in::after{transform:scaleX(1)}

/* =====================================================================
   HERO NUEVO · logo + "Reconectá con vos."
   ===================================================================== */
.hu-logo{display:block;width:min(390px,70vw);height:auto;margin:0 0 1.2rem -.8rem}
.hu-hero:not(.entered) .hu-logo{clip-path:circle(0% at 30% 42%)}
.hu-hero.entered .hu-logo{animation:logoIn 1.7s cubic-bezier(.3,.6,.25,1) .1s both}
@keyframes logoIn{from{clip-path:circle(0% at 30% 42%)}to{clip-path:circle(130% at 30% 42%)}}
body .hu-title{font-style:normal;font-weight:400;font-size:clamp(2.7rem,8.2vw,6.4rem);line-height:1.04;letter-spacing:-.012em;margin:.2rem 0 .3rem}
.hu-title .accent{font-style:italic}
.hu-lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.6vw,2rem);color:var(--cream);margin:.2rem 0 0;max-width:24ch;line-height:1.3}
.hu-hero .star-div{margin:1.3rem 0 1.1rem}
body .hu-rotator{font-size:clamp(.72rem,1.2vw,.9rem);letter-spacing:.2em;margin-top:.2rem}
body .hu-hero-cta{margin-top:1.6rem}
body .hu-hero-inner{padding-bottom:clamp(6.5rem,15vh,9.5rem)}
/* reflejo de sol que cruza el mar (sólo el tercio inferior) */
.hu-veil::after{content:"";position:absolute;left:-35%;right:-35%;bottom:6%;height:36%;pointer-events:none;
  background:linear-gradient(100deg,transparent 30%,rgba(255,226,160,.2) 47%,rgba(255,244,214,.3) 52%,transparent 70%);
  transform:translateX(-32%);animation:sunSweep calc(var(--marea)*1.7) ease-in-out infinite alternate;animation-play-state:paused}
.hu-hero.is-live .hu-veil::after{animation-play-state:running}
@keyframes sunSweep{to{transform:translateX(32%)}}

/* =====================================================================
   FRASE · "La vida que querés comienza cuando te elegís"
   ===================================================================== */
.frase{position:relative;overflow:hidden;text-align:center;padding:clamp(5rem,12vw,9rem) clamp(1.2rem,5vw,3rem);background:linear-gradient(180deg,var(--arena),#e6d9bf)}
.frase::before{content:"";position:absolute;inset:-20% -30%;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,rgba(255,250,235,.55) 50%,transparent 60%);transform:translateX(-30%);
  animation:lightSweep calc(var(--marea)*1.8) ease-in-out infinite alternate;animation-play-state:paused}
.frase.is-live::before{animation-play-state:running}
@keyframes lightSweep{to{transform:translateX(30%)}}
.frase .star-div{justify-content:center;color:var(--gold-dk)}
.frase p{position:relative;font-family:var(--serif);font-style:italic;font-size:clamp(1.9rem,4.8vw,3.6rem);line-height:1.22;max-width:22ch;margin:0 auto;color:var(--ink);text-wrap:balance}
.frase p em{color:var(--terracota-d)}
.frase .ico-big{width:clamp(34px,5vw,48px);height:clamp(34px,5vw,48px);color:var(--gold-dk);margin:0 auto 1.2rem;display:block}
.w{display:inline-block;opacity:0;transform:translateY(.55em);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*75ms)}
[data-words].is-in .w{opacity:1;transform:none}

/* =====================================================================
   MÁS MOVIMIENTO (siempre lento, siempre pausable con "Movimiento OFF")
   ===================================================================== */
/* imágenes: se abren con el scroll (donde el navegador lo permite) */
@supports (animation-timeline:view()){
  .split-media img,.about-portrait img,.gtile img,.eb-gtile img,.card-media img{animation:imgOpen linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  @keyframes imgOpen{from{clip-path:inset(14% 10% 14% 10% round 18px);opacity:.4}to{clip-path:inset(0 0 0 0 round 0);opacity:1}}
}
/* tarjetas: entran con un pequeño desfase lateral alternado */
.cards .card.reveal:nth-child(odd),.testi-card.reveal:nth-child(odd){transform:translate(-14px,30px)}
.cards .card.reveal:nth-child(even),.testi-card.reveal:nth-child(even){transform:translate(14px,30px)}
.cards .card.reveal.is-in,.testi-card.reveal.is-in{transform:none}
/* números de arcano y etiquetas: subrayado que se dibuja */
.num.reveal::after,.eyebrow.reveal::after{content:"";display:block;height:1px;width:0;margin-top:.55rem;background:currentColor;opacity:.55;transition:width 1.2s var(--ease) .4s}
.num.reveal.is-in::after,.eyebrow.reveal.is-in::after{width:44px}
.sec-head .num.reveal::after{margin-left:auto;margin-right:auto}
/* respiración muy suave de los íconos grandes */
.ico-breathe{animation:icoBreathe calc(var(--marea)/1.4) ease-in-out infinite}
@keyframes icoBreathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* =====================================================================
   PÁGINA DE CONTACTO
   ===================================================================== */
.contact{position:relative;overflow:hidden;padding:clamp(3rem,7vw,6rem) clamp(1.1rem,5vw,3rem) clamp(4rem,9vw,7rem);background:linear-gradient(180deg,var(--cream),var(--arena))}
.contact-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(1.3rem,3vw,2.4rem);align-items:start}
.c-card{position:relative;background:var(--paper);border:1px solid rgba(168,121,47,.22);border-radius:24px;padding:clamp(1.6rem,3.6vw,3rem);box-shadow:0 34px 70px -44px rgba(46,74,91,.55)}
.c-card h2{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.15;margin:.5rem 0 .6rem;color:var(--ink)}
.c-card h2 em{color:var(--terracota-d)}
.c-lead{color:var(--ink-soft);max-width:52ch;margin-bottom:1.9rem}
.c-form{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.5rem}
.c-field{position:relative;min-width:0}
.c-field.full,.c-actions{grid-column:1/-1}
.c-field label,.c-label{display:block;font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.15rem}
.c-field input,.c-field textarea{width:100%;border:0;border-bottom:1px solid rgba(46,34,22,.22);background:transparent;border-radius:0;padding:.7em 0;font:inherit;font-size:1rem;color:var(--ink);transition:border-color .4s}
.c-field textarea{min-height:130px;resize:vertical;line-height:1.6}
.c-field input::placeholder,.c-field textarea::placeholder{color:var(--ink-mute);opacity:.7}
.c-field::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--dorado),var(--terracota));transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease);pointer-events:none}
.c-field:focus-within::after{transform:scaleX(1)}
.c-field input:focus,.c-field textarea:focus{outline:none;border-bottom-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.55rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.chip span{display:inline-block;padding:.62em 1.15em;border:1px solid rgba(46,34,22,.22);border-radius:999px;font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft);background:rgba(255,255,255,.4);transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease)}
.chip:hover span{border-color:var(--gold-dk);transform:translateY(-2px)}
.chip input:checked+span{background:var(--azul);color:var(--cream);border-color:var(--azul)}
.chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.c-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:.4rem}
.c-actions .form-msg{margin:0;min-height:0}
.c-hint{font-size:.8rem;color:var(--ink-mute)}
.c-side{display:flex;flex-direction:column;gap:.9rem}
.c-link{display:flex;align-items:center;gap:1.1rem;padding:1.05rem 1.3rem;background:var(--paper);border:1px solid rgba(168,121,47,.22);border-radius:20px;color:var(--ink);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease)}
.c-link:hover{transform:translateY(-2px);box-shadow:0 22px 40px -28px rgba(46,74,91,.6);border-color:var(--gold-dk)}
.c-ico{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--azul);color:var(--gold-lt)}
.c-ico .ico{width:26px;height:26px;color:inherit}
.c-txt{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.c-txt b{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.25rem}
.c-txt span{font-size:.86rem;color:var(--ink-soft);overflow-wrap:anywhere}
.c-go{margin-left:auto;font-size:1.2rem;color:var(--gold-dk);transition:transform .4s var(--ease)}
.c-link:hover .c-go{transform:translateX(5px)}
.c-link.main{background:linear-gradient(135deg,#d9b544,#c99a3a);border-color:transparent;color:#241a0e}
.c-link.main .c-ico{background:#241a0e;color:var(--dorado)}
.c-link.main .c-txt span,.c-link.main .c-go{color:#3b2a12}
.c-note{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--azul),var(--azul-d));color:var(--cream);border-radius:24px;padding:clamp(1.5rem,3vw,2.1rem)}
.c-note>*{position:relative;z-index:4}
.c-note .ico{width:34px;height:34px;color:var(--gold-lt)}
.c-note h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.5rem;margin:.6rem 0 .3rem}
.c-note p{color:rgba(245,238,222,.86);font-size:.92rem}
.c-steps{list-style:none;margin:1.3rem 0 0;padding:1.2rem 0 0;border-top:1px solid rgba(245,238,222,.18);display:grid;gap:.85rem;counter-reset:s}
.c-steps li{display:flex;gap:.9rem;align-items:flex-start;font-size:.9rem;color:rgba(245,238,222,.92);counter-increment:s}
.c-steps li::before{content:counter(s);flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--gold-lt);color:var(--gold-lt);font-family:var(--serif);font-style:italic;font-size:.9rem;line-height:1}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}.c-form{grid-template-columns:1fr}}

/* redes en el pie */
.foot-social{display:flex;gap:.7rem;margin-top:1.1rem}
.foot-social a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(245,238,222,.28);color:var(--gold-lt);transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
.foot-social a:hover{background:var(--gold-lt);color:var(--azul-d);transform:translateY(-2px)}
.foot-social .ico{width:22px;height:22px;color:inherit}

/* hero: el logo ya firma la portada → el nombre del menú aparece recién al bajar */
html:has(.hu-hero) .nav:not(.is-stuck) .brand{opacity:0;pointer-events:none}
.brand{transition:opacity .5s var(--ease),color .4s var(--ease)}
.hu-logo{width:min(330px,60vw)}
.hu-lead{max-width:none}
@media (max-height:720px){.hu-logo{width:210px;margin-bottom:.6rem}body .hu-title{font-size:clamp(2.4rem,6.6vw,4.6rem)}.hu-hero .star-div{margin:.8rem 0}body .hu-hero-inner{padding-bottom:5.6rem}}
.phero-veil{background:linear-gradient(180deg,rgba(31,50,64,.5),rgba(31,50,64,.14) 55%,rgba(31,50,64,.66))}

/* =====================================================================
   CURSOR-ANILLO + SONIDO AMBIENTE
   ===================================================================== */
.cursor-ring{position:fixed;left:-17px;top:-17px;width:34px;height:34px;border-radius:50%;z-index:9998;pointer-events:none;opacity:0;
  border:1.5px solid rgba(212,175,55,.95);box-shadow:0 0 0 1px rgba(31,50,64,.26);
  transition:opacity .35s var(--ease),width .35s var(--ease),height .35s var(--ease),left .35s var(--ease),top .35s var(--ease),background .35s var(--ease),border-color .35s var(--ease);will-change:transform}
.cursor-ring.is-on{opacity:1}
.cursor-ring.is-link{left:-27px;top:-27px;width:54px;height:54px;background:rgba(212,175,55,.16)}
.cursor-ring.is-field{left:-9px;top:-9px;width:18px;height:18px;border-color:rgba(168,121,47,.9)}
.cursor-ring.is-down{left:-12px;top:-12px;width:24px;height:24px}
html[data-motion="off"] .cursor-ring{display:none}
@media (hover:none),(pointer:coarse){.cursor-ring{display:none}}

.sound-toggle{position:fixed;left:clamp(.8rem,2vw,1.4rem);bottom:clamp(.8rem,2vw,1.4rem);z-index:130;display:inline-flex;align-items:center;gap:.6rem;
  height:48px;padding:0 1.1rem 0 .9rem;border-radius:999px;cursor:pointer;
  background:rgba(31,50,64,.9);color:var(--cream);border:1px solid rgba(212,175,55,.55);backdrop-filter:blur(8px);
  font:500 .68rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:background .4s var(--ease),transform .4s var(--ease)}
.sound-toggle:hover{transform:translateY(-2px);background:rgba(31,50,64,.98)}
.sound-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sound-toggle svg{width:24px;height:24px;color:var(--gold-lt);flex:none}
.sound-toggle:not(.is-on) svg{opacity:.55}
.sound-toggle.is-on svg path{animation:sndWave 2.4s ease-in-out infinite}
.sound-toggle.is-on svg path:nth-child(2){animation-delay:.3s}.sound-toggle.is-on svg path:nth-child(3){animation-delay:.6s}
@keyframes sndWave{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
.sound-in-menu svg{width:20px;height:20px}
.sound-in-menu::before{display:none}
.sound-toggle.hint{animation:sndHint 2.6s ease-in-out 3}
@keyframes sndHint{0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.5)}50%{box-shadow:0 0 0 10px rgba(212,175,55,0)}}
html:has(.nav.is-open) .sound-toggle{opacity:0;pointer-events:none}
@media (max-width:480px){.sound-toggle{height:44px;padding:0 .9rem 0 .75rem}.sound-toggle .snd-txt{font-size:.62rem}}

/* =====================================================================
   MÓVIL / iPHONE — táctil, notch, barra inferior, rendimiento
   ===================================================================== */
html{-webkit-tap-highlight-color:transparent}
a,button,summary,label,input,select,textarea,.chip,.facet,.card{touch-action:manipulation}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
/* zonas seguras (notch / isla / barra de inicio) */
.nav{padding-top:env(safe-area-inset-top)}
.nav-inner{padding-left:max(clamp(1.1rem,4vw,2.4rem),env(safe-area-inset-left));padding-right:max(clamp(1.1rem,4vw,2.4rem),env(safe-area-inset-right))}
body .fab{right:max(clamp(1rem,3vw,1.8rem),env(safe-area-inset-right));bottom:max(clamp(1rem,3vw,1.8rem),calc(env(safe-area-inset-bottom) + .6rem))}
.sound-toggle{left:max(clamp(.8rem,2vw,1.4rem),env(safe-area-inset-left));bottom:max(clamp(.8rem,2vw,1.4rem),calc(env(safe-area-inset-bottom) + .6rem))}
.eb-sticky{padding-bottom:calc(.8rem + env(safe-area-inset-bottom))}
.footer-base{padding-bottom:calc(1.2rem + env(safe-area-inset-bottom))}
.nav-drawer{padding-bottom:calc(2.6rem + env(safe-area-inset-bottom))}
/* el hover no se "pega" en pantallas táctiles */
@media (hover:none){
  body .btn:hover::before{transform:translateX(-130%)}
  body .btn:hover,.card:hover,.facet:hover,.testi-card:hover,.consulta:hover,.c-link:hover,.chip:hover span,.foot-social a:hover,.fab:hover,.sound-toggle:hover,.eb-bonus:hover,.eb-week:hover,.eb-pillar:hover{transform:none!important}
  .facet:hover{box-shadow:none}
}
/* fondo "fixed" no funciona en iOS (agranda y tira la imagen) */
@media (max-width:1024px),(hover:none){.strip,.eb-final,[class*="ritual"]{background-attachment:scroll!important}}

@media (max-width:760px){
  body{font-size:15px;line-height:1.68}
  /* campos de 16 px: iOS no hace zoom al enfocar */
  input,select,textarea,.c-field input,.c-field textarea{font-size:16px}
  /* áreas táctiles de 44 px */
  .nav-burger{padding:13px 10px;margin-right:-6px}
  .motion-toggle,.sound-in-menu{min-height:44px}
  .chip span{padding:.78em 1.15em}
  .footer-col a{display:inline-block;padding:.5rem 0}
  .link-arrow{padding:.5rem 0}
  .btn,.nav-cta{min-height:48px}
  .foot-social a{width:46px;height:46px}
  /* sonido: sólo el ícono, para no pelear con el botón de WhatsApp */
  .sound-toggle{width:48px;height:48px;padding:0;justify-content:center}
  .sound-toggle .snd-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sound-toggle.hint .snd-txt{position:static;width:auto;height:auto;clip:auto}
  .sound-toggle.hint{width:auto;padding:0 1rem 0 .8rem}
  /* composición más limpia */
  .sec-title,.sea-band h2,.cta-band h2{font-size:clamp(1.75rem,8.2vw,2.35rem)}
  .phero h1{font-size:clamp(2.1rem,10vw,2.9rem)}
  body .hu-title{font-size:clamp(2.5rem,13.4vw,3.6rem)}
  .hu-logo{width:min(250px,64vw);margin-bottom:.7rem}
  .hu-lead{font-size:1.2rem}
  body .hu-hero-inner{padding-bottom:calc(5.4rem + env(safe-area-inset-bottom))}
  .hu-hero-cta{gap:.6rem}.hu-hero-cta .btn{flex:1 1 100%}
  .sec-head{margin-bottom:1.8rem}
  .universe,.about,.gallery,.testi,.consultas,.connect,.frase,.pad{padding-top:3.4rem;padding-bottom:3.4rem}
  .frase{padding-top:4.2rem;padding-bottom:4.2rem}
  .marquee{padding:.8rem 0}.marquee-track{font-size:1.05rem}
  /* ahorro de GPU/batería */
  .sea-edge{height:clamp(40px,9vw,64px)}
  .water-lit{opacity:.24}
  .hu-veil::after,.frase::before{display:none}
  body .hu-hero-bg{animation:none;transform:scaleX(-1) scale(1.03)}
  .footer,.gallery,.strip,.cta-band{background-attachment:scroll}
  .nav.is-stuck{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .cta-band .btn-gold,.hu-hero-cta .btn-gold{animation:none}
  .strip{background-image:linear-gradient(160deg,rgba(46,74,91,.78),rgba(31,50,64,.94)),url("assets/img/st-sea-gold-m.webp")}
  /* las cartas de las 9 puertas: una por una, más ágil */
  .universe-grid{gap:.9rem}
}
@media (max-width:380px){
  body .hu-title{font-size:2.35rem}
  .nav-inner{gap:.6rem}.brand{font-size:1.05rem}.brand-mark{width:28px}
  .c-card{padding:1.35rem}
}
@media (max-height:520px) and (orientation:landscape){.hu-hero{min-height:auto;padding-top:5rem}.hu-logo{display:none}}

/* =====================================================================
   CURSO · temario en 4 módulos (19 clases)
   ===================================================================== */
.eb-syllabus{max-width:980px}
.eb-syl-note{text-align:center;color:var(--ink-soft);font-size:.9rem;letter-spacing:.04em;margin-top:.4rem}
.eb-mod{margin-top:clamp(2rem,5vw,3.2rem)}
.eb-mod-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem 1rem;padding-bottom:.9rem;border-bottom:1px solid rgba(168,121,47,.45);position:relative}
.eb-mod-head::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--gold-metal);transition:width 1.4s var(--ease) .3s}
.eb-mod-head.is-in::after{width:min(180px,40%)}
.eb-mod-tag{font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--terracota-d)}
.eb-mod-head h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.3rem,2.6vw,1.75rem);color:var(--ink);flex:1 1 auto}
.eb-mod-count{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.eb-mod .eb-syllabus-list{margin-top:.4rem}
.eb-syl-item{align-items:center;padding:.95rem 0}
.eb-syl-n{color:var(--gold-dk);min-width:2.4ch}
.eb-syl-item h3{line-height:1.3}
.eb-soon{display:inline-block;margin-left:.5rem;padding:.2em .7em;border-radius:999px;font:500 .6rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--terracota-d);border:1px solid var(--terracota);vertical-align:middle;white-space:nowrap}
.about-portrait{border-radius:0}
/* portadas con fotos nítidas y detalladas: velo más firme + sombra suave para que el texto se lea siempre */
.phero-veil{background:linear-gradient(180deg,rgba(31,50,64,.62),rgba(31,50,64,.42) 50%,rgba(31,50,64,.8))}
.phero h1,.phero .phero-inner>p,.phero .eyebrow,.phero .crumbs{text-shadow:0 2px 20px rgba(16,26,34,.6)}
/* contraste AA en tarjetas terracota */
.cards .card:nth-child(3n) p,.cards .card:nth-child(3n) li{color:rgba(255,248,236,.96)}
