/* ============================================================
   PrimeHealth — Sistema de diseño
   Lujo discreto clínico: navy carbón · marfil · azul/celeste
   Cambiar la marca = cambiar estas variables.
   (Los nombres --em-* son históricos; los valores son azules.)
   ============================================================ */
:root{
  --ink:#0B131D;            /* superficie oscura (navy profundo) */
  --ink-2:#12202E;          /* tarjeta sobre oscuro */
  --ink-3:#1B2C3D;          /* borde/elevación oscura */
  --bone:#F6F4EF;           /* superficie clara */
  --bone-2:#EFECE4;         /* tarjeta sobre claro */
  --bone-3:#E3E0D6;         /* hairline sobre claro */
  --em-700:#0F4A73;         /* azul profundo — primario */
  --em-500:#2678A8;         /* azul interactivo */
  --em-line:#1D6C9E;        /* línea de gráficos (claro) */
  --sage:#A8CBE2;           /* celeste — acento sobre oscuro */
  --sage-2:#DCE8F0;         /* tinte celeste de tarjetas */
  --tx:#111C26;             /* texto sobre claro */
  --tx-mut:#56646E;         /* texto secundario sobre claro */
  --tx-inv:#F6F4EF;         /* texto sobre oscuro */
  --tx-inv-mut:#9DB2C4;     /* secundario sobre oscuro */
  --hair:rgba(17,28,38,.14);
  --hair-inv:rgba(246,244,239,.16);
  --r-lg:22px; --r-md:14px; --r-sm:9px;
  --font-d:'Fraunces',Georgia,serif;
  --font-b:'Manrope',system-ui,-apple-system,sans-serif;
  --shadow:0 24px 60px -24px rgba(11,19,29,.28);
  --ease:cubic-bezier(.22,.8,.24,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-b);color:var(--tx);background:var(--bone);
  font-size:16.5px;line-height:1.65;font-weight:450;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
::selection{background:var(--em-700);color:var(--bone)}

/* ---------- tipografía ---------- */
h1,h2,h3,.display{font-family:var(--font-d);font-weight:520;letter-spacing:-.015em;line-height:1.08}
.display-xl{font-size:clamp(2.6rem,6.2vw,4.9rem)}
.display-lg{font-size:clamp(2.1rem,4.6vw,3.4rem)}
.display-md{font-size:clamp(1.5rem,2.6vw,2.05rem)}
.serif-i{font-style:italic;font-weight:480}
.overline{
  font-family:var(--font-b);font-size:.78rem;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--em-500);display:flex;align-items:center;gap:.7rem;
}
.overline::before{content:"";width:26px;height:1.5px;background:currentColor;opacity:.8}
.dark .overline{color:var(--sage)}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--tx-mut);font-weight:450;max-width:44rem}
.dark .lead{color:var(--tx-inv-mut)}
.small{font-size:.87rem}.muted{color:var(--tx-mut)}.dark .muted{color:var(--tx-inv-mut)}

/* ---------- layout ---------- */
.container{width:min(1180px,92vw);margin-inline:auto}
section{padding:clamp(4.5rem,9vw,8rem) 0;position:relative}
.dark{background:var(--ink);color:var(--tx-inv)}
.tint{background:var(--sage-2)}
.sec-head{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:clamp(2.2rem,5vw,3.6rem);max-width:52rem}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.02rem 1.9rem;border-radius:999px;font-weight:700;font-size:.98rem;
  letter-spacing:.01em;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .25s;
  will-change:transform;white-space:nowrap;
}
.btn svg{width:15px;height:15px;flex:none}
.btn-primary{background:var(--em-700);color:var(--bone)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(15,74,115,.55);background:var(--em-500)}
.btn-light{background:var(--bone);color:var(--ink)}
.btn-light:hover{transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(0,0,0,.5)}
.btn-ghost{border:1.5px solid var(--hair);color:var(--tx);padding:.95rem 1.7rem}
.btn-ghost:hover{border-color:var(--em-700);color:var(--em-700)}
.dark .btn-ghost{border-color:var(--hair-inv);color:var(--tx-inv)}
.dark .btn-ghost:hover{border-color:var(--sage);color:var(--sage)}
.btn-wa{background:#0E6B4F;color:#fff}
.btn-wa:hover{transform:translateY(-2px);background:#128C64;box-shadow:0 16px 34px -14px rgba(14,107,79,.55)}

/* ---------- nav ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:60;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  background:rgba(11,19,29,.62);border-bottom:1px solid rgba(246,244,239,.08);
  transition:background .3s;
}
.nav.solid{background:rgba(11,19,29,.9)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{display:flex;align-items:center;gap:.65rem;color:var(--bone);font-family:var(--font-d);font-size:1.32rem;font-weight:600;letter-spacing:-.01em}
.logo svg{width:30px;height:30px}
.nav-links{display:flex;gap:2rem;align-items:center}
.nav-links a{color:var(--tx-inv-mut);font-size:.92rem;font-weight:600;transition:color .2s}
.nav-links a:hover{color:var(--bone)}
.nav-cta{display:flex;align-items:center;gap:1rem}
.lang-toggle{
  display:flex;border:1px solid var(--hair-inv);border-radius:999px;overflow:hidden;font-size:.78rem;font-weight:800;
}
.lang-toggle button{padding:.42rem .8rem;color:var(--tx-inv-mut);letter-spacing:.06em}
.lang-toggle button.on{background:var(--bone);color:var(--ink)}
.nav .btn{padding:.68rem 1.35rem;font-size:.88rem}
.burger{display:none;flex-direction:column;gap:5px;padding:.5rem}
.burger span{width:22px;height:2px;background:var(--bone);border-radius:2px;transition:.3s}

/* ---------- hero ---------- */
.hero{
  min-height:min(100svh,940px);display:flex;flex-direction:column;justify-content:flex-end;
  padding:9.5rem 0 0;overflow:hidden;isolation:isolate;
}
.hero-bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-bg video,.hero-bg .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-bg::after{ /* viñeta + legibilidad */
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 78% 10%,rgba(38,120,168,.16),transparent 55%),
    linear-gradient(180deg,rgba(11,19,29,.55) 0%,rgba(11,19,29,.25) 40%,rgba(11,19,29,.92) 100%);
}
.grain::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-in{display:flex;flex-direction:column;gap:2rem;padding-bottom:3.2rem}
.hero h1{color:var(--bone);max-width:15ch}
.hero h1 em{font-style:italic;color:var(--sage)}
.hero .lead{color:var(--tx-inv-mut);max-width:39rem}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.hero-note{font-size:.8rem;color:var(--tx-inv-mut);max-width:34rem}
.trust{
  border-top:1px solid var(--hair-inv);
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
  padding:1.6rem 0 1.9rem;
}
.trust div{display:flex;flex-direction:column;gap:.15rem}
.trust b{font-size:1.02rem;color:var(--bone);font-weight:800}
.trust span{font-size:.8rem;color:var(--tx-inv-mut)}

/* ---------- empatía ---------- */
.empathy{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.pain{display:flex;flex-direction:column;gap:0}
.pain li{
  list-style:none;display:flex;gap:1rem;align-items:flex-start;
  padding:1.15rem 0;border-bottom:1px solid var(--hair);font-weight:550;font-size:1.04rem;
}
.pain li:first-child{border-top:1px solid var(--hair)}
.pain .ico{flex:none;width:26px;height:26px;border-radius:50%;background:var(--sage-2);display:grid;place-items:center;margin-top:.15rem}
.pain .ico svg{width:12px;height:12px;stroke:var(--em-700)}
.empathy-turn{margin-top:2rem;padding-left:1.4rem;border-left:3px solid var(--em-700);font-family:var(--font-d);font-size:1.35rem;line-height:1.35;font-style:italic}

/* ---------- método ---------- */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--hair-inv);border:1px solid var(--hair-inv);border-radius:var(--r-lg);overflow:hidden}
.step{background:var(--ink);padding:2rem 1.5rem 2.4rem;display:flex;flex-direction:column;gap:1rem;transition:background .3s}
.step:hover{background:var(--ink-2)}
.step .num{font-family:var(--font-d);font-size:2.2rem;color:var(--sage);font-weight:480}
.step h3{font-size:1.12rem;color:var(--bone);font-family:var(--font-b);font-weight:800;letter-spacing:0}
.step p{font-size:.9rem;color:var(--tx-inv-mut);line-height:1.6}
.method-note{margin-top:2rem;display:flex;gap:.8rem;align-items:center;color:var(--tx-inv-mut);font-size:.9rem}

/* ---------- incluye + precio ---------- */
.include{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4.5vw,4rem);align-items:start}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2rem}
.checks li{list-style:none;display:flex;gap:.8rem;padding:.72rem 0;align-items:flex-start;font-weight:550;font-size:.99rem}
.checks .ck{flex:none;width:22px;height:22px;border-radius:7px;background:var(--em-700);display:grid;place-items:center;margin-top:.2rem}
.checks .ck svg{width:11px;height:11px;stroke:var(--bone);stroke-width:3}
.price-card{
  background:var(--ink);color:var(--tx-inv);border-radius:var(--r-lg);
  padding:2.6rem 2.4rem;box-shadow:var(--shadow);position:sticky;top:100px;
}
.price-card .tagp{font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--sage)}
.price-big{font-family:var(--font-d);font-size:3.4rem;line-height:1;margin:.9rem 0 .2rem}
.price-big sup{font-size:1.4rem;top:-1.4rem;position:relative}
.price-sub{color:var(--tx-inv-mut);font-size:.95rem}
.price-card hr{border:0;border-top:1px solid var(--hair-inv);margin:1.6rem 0}
.price-rows{display:flex;flex-direction:column;gap:.85rem;font-size:.93rem}
.price-rows div{display:flex;justify-content:space-between;gap:1rem}
.price-rows span{color:var(--tx-inv-mut)}
.price-rows b{white-space:nowrap;font-weight:800}
.price-card .btn{width:100%;margin-top:1.7rem}
.honest{
  margin-top:1.4rem;font-size:.8rem;color:var(--tx-inv-mut);line-height:1.55;
  padding:.95rem 1.1rem;border:1px dashed var(--hair-inv);border-radius:var(--r-sm);
}

/* ---------- calculadora / quiz ---------- */
.quiz-wrap{
  background:var(--bone);border:1px solid var(--bone-3);border-radius:var(--r-lg);
  box-shadow:var(--shadow);overflow:hidden;max-width:880px;margin-inline:auto;
}
.quiz-top{display:flex;justify-content:space-between;align-items:center;padding:1.3rem 2rem;border-bottom:1px solid var(--hair)}
.quiz-top .qt{font-weight:800;font-size:.9rem;letter-spacing:.05em}
.qprog{flex:1;max-width:280px;height:4px;border-radius:99px;background:var(--bone-3);margin-left:1.5rem;overflow:hidden}
.qprog i{display:block;height:100%;width:0%;background:var(--em-700);border-radius:99px;transition:width .45s var(--ease)}
.qstep{padding:clamp(1.8rem,4vw,3rem);display:none;animation:qin .45s var(--ease)}
.qstep.on{display:block}
@keyframes qin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.qq{font-family:var(--font-d);font-size:clamp(1.35rem,2.4vw,1.8rem);margin-bottom:.4rem}
.qhint{color:var(--tx-mut);font-size:.9rem;margin-bottom:1.6rem}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem}
.opt{
  border:1.5px solid var(--bone-3);border-radius:var(--r-md);padding:1.25rem 1.2rem;
  display:flex;flex-direction:column;gap:.3rem;text-align:left;transition:.25s var(--ease);background:#fff9;
}
.opt:hover{border-color:var(--em-500);transform:translateY(-2px)}
.opt.sel{border-color:var(--em-700);background:var(--sage-2);box-shadow:0 10px 26px -14px rgba(15,74,115,.4)}
.opt b{font-size:1.02rem;font-weight:800}
.opt span{font-size:.83rem;color:var(--tx-mut)}
.opt .pct{font-size:.76rem;font-weight:800;color:var(--em-700);letter-spacing:.06em;text-transform:uppercase}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}
.field label{display:block;font-size:.8rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--tx-mut);margin-bottom:.45rem}
.field input{
  width:100%;padding:.95rem 1.05rem;border:1.5px solid var(--bone-3);border-radius:var(--r-sm);
  font:inherit;background:#fff;color:var(--tx);transition:border .2s;
}
.field input:focus{outline:none;border-color:var(--em-700)}
.field .unit{font-size:.78rem;color:var(--tx-mut);margin-top:.3rem;display:block}
.commit{display:flex;gap:.6rem;margin-top:.4rem}
.commit button{
  flex:1;padding:1rem 0;border:1.5px solid var(--bone-3);border-radius:var(--r-sm);
  font-weight:800;font-size:1.05rem;transition:.2s;background:#fff9;
}
.commit button:hover{border-color:var(--em-500)}
.commit button.sel{background:var(--em-700);border-color:var(--em-700);color:var(--bone)}
.commit-lab{display:flex;justify-content:space-between;font-size:.78rem;color:var(--tx-mut);margin-top:.5rem}
.qnav{display:flex;justify-content:space-between;align-items:center;margin-top:2.2rem;gap:1rem}
.qback{color:var(--tx-mut);font-weight:700;font-size:.9rem;display:inline-flex;align-items:center;gap:.4rem}
.qback:hover{color:var(--tx)}
.qerr{color:#A33B2E;font-size:.85rem;font-weight:600;display:none;margin-top:1rem}
.qerr.on{display:block}

/* resultado parcial */
.partial{padding:clamp(1.8rem,4vw,3rem)}
.partial-hero{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}
.partial-kg{font-family:var(--font-d);font-size:clamp(2.6rem,6vw,4rem);line-height:1;color:var(--em-700)}
.partial-kg small{font-size:.45em;font-weight:600}
.partial-meta{display:flex;gap:2.2rem;flex-wrap:wrap;margin:1.5rem 0;padding:1.1rem 0;border-block:1px solid var(--hair)}
.partial-meta div b{display:block;font-size:1.25rem;font-family:var(--font-d)}
.partial-meta div span{font-size:.78rem;color:var(--tx-mut);letter-spacing:.04em;text-transform:uppercase;font-weight:700}
.gate{
  background:var(--ink);color:var(--tx-inv);border-radius:var(--r-md);
  padding:1.9rem 1.8rem;margin-top:1.6rem;
}
.gate h4{font-family:var(--font-d);font-size:1.35rem;margin-bottom:.3rem}
.gate p{font-size:.88rem;color:var(--tx-inv-mut);margin-bottom:1.3rem}
.gate .fields input{background:var(--ink-2);border-color:var(--ink-3);color:var(--tx-inv)}
.gate .fields input::placeholder{color:var(--tx-inv-mut)}
.gate .fields label{color:var(--tx-inv-mut)}
.gate-terms{display:flex;gap:.7rem;align-items:flex-start;margin:1.2rem 0;font-size:.8rem;color:var(--tx-inv-mut)}
.gate-terms input{width:17px;height:17px;margin-top:.15rem;accent-color:var(--em-500);flex:none}
.gate-terms a{text-decoration:underline;color:var(--sage)}
.gate .btn{width:100%}
.gate-priv{font-size:.72rem;color:var(--tx-inv-mut);margin-top:.9rem;text-align:center}

/* ---------- social proof ---------- */
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.proof-card{
  background:#fff;border:1px solid var(--bone-3);border-radius:var(--r-lg);
  padding:1.8rem 1.7rem;display:flex;flex-direction:column;gap:1.1rem;position:relative;
}
.proof-tag{
  position:absolute;top:1.15rem;right:1.15rem;font-size:.62rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tx-mut);border:1px solid var(--bone-3);border-radius:99px;padding:.28rem .6rem;
}
.stars{color:var(--em-700);letter-spacing:.12em;font-size:.95rem}
.proof-head b{font-size:1.05rem}
.proof-head span{display:block;font-size:.8rem;color:var(--tx-mut)}
.ptable{width:100%;border-collapse:collapse;font-size:.88rem}
.ptable th{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-mut);font-weight:800;text-align:right;padding:.45rem 0;border-bottom:1.5px solid var(--bone-3)}
.ptable th:first-child,.ptable td:first-child{text-align:left}
.ptable td{padding:.5rem 0;border-bottom:1px solid var(--hair);text-align:right;font-variant-numeric:tabular-nums}
.ptable tr:last-child td{border-bottom:0}
.ptable .dlt{color:var(--em-700);font-weight:800}
.proof-quote{font-size:.9rem;font-style:italic;color:var(--tx-mut);border-left:2.5px solid var(--sage-2);padding-left:.9rem}
.video-wrap{
  margin-top:2.6rem;border-radius:var(--r-lg);overflow:hidden;position:relative;aspect-ratio:21/8;
  background:linear-gradient(120deg,var(--ink),#14222E 55%,#0E2A44);display:grid;place-items:center;color:var(--tx-inv);
}
.video-wrap .play{
  width:74px;height:74px;border-radius:50%;background:var(--bone);display:grid;place-items:center;
  transition:transform .3s var(--ease);box-shadow:0 20px 50px -12px rgba(0,0,0,.55);
}
.video-wrap .play:hover{transform:scale(1.07)}
.video-wrap .play svg{width:22px;height:22px;fill:var(--ink);margin-left:3px}
.video-cap{position:absolute;left:1.6rem;bottom:1.3rem;font-size:.85rem;color:var(--tx-inv-mut)}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.portrait{
  border-radius:var(--r-lg);aspect-ratio:4/5;overflow:hidden;position:relative;
  background:linear-gradient(160deg,#16222E,#0E2A44 60%,#0F4A73);box-shadow:var(--shadow);
}
.portrait .ph-label{position:absolute;inset:auto 0 0 0;padding:1.2rem 1.5rem;color:var(--tx-inv-mut);font-size:.8rem;background:linear-gradient(transparent,rgba(11,19,29,.85))}
.cred-list{display:flex;flex-direction:column;gap:.85rem;margin-top:1.8rem}
.cred-list li{list-style:none;display:flex;gap:.85rem;align-items:flex-start;font-weight:550}
.cred-list .ck{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--em-700);display:grid;place-items:center;margin-top:.2rem}
.cred-list .ck svg{width:10px;height:10px;stroke:var(--em-700);stroke-width:3}

/* ---------- ubicación ---------- */
.loc{display:grid;grid-template-columns:1.05fr .95fr;gap:1.4rem;align-items:stretch}
.map-card{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--bone-3);min-height:420px;position:relative;background:var(--bone-2)}
.map-card iframe{width:100%;height:100%;border:0;position:absolute;inset:0;filter:grayscale(.9) sepia(.12) contrast(.98)}
.loc-side{display:flex;flex-direction:column;gap:1.4rem}
.loc-info{background:#fff;border:1px solid var(--bone-3);border-radius:var(--r-lg);padding:1.7rem 1.6rem;display:flex;flex-direction:column;gap:.7rem}
.loc-info b{font-size:1.05rem}
.loc-row{display:flex;gap:.8rem;align-items:center;font-size:.92rem;color:var(--tx-mut)}
.loc-row svg{width:16px;height:16px;stroke:var(--em-700);flex:none}
.carousel{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem;flex:1}
.carousel::-webkit-scrollbar{height:6px}
.carousel::-webkit-scrollbar-thumb{background:var(--bone-3);border-radius:99px}
.shot{
  flex:0 0 240px;aspect-ratio:4/3;border-radius:var(--r-md);scroll-snap-align:start;
  display:grid;place-items:center;color:var(--tx-inv-mut);font-size:.8rem;text-align:center;padding:1rem;
  background:linear-gradient(150deg,#16222E,#12304A);
}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto}
.faq details{border-bottom:1px solid var(--hair)}
.faq details:first-of-type{border-top:1px solid var(--hair)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;
  padding:1.35rem 0;font-weight:700;font-size:1.06rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--hair);display:grid;place-items:center;transition:.3s var(--ease)}
.faq summary .pm svg{width:11px;height:11px;stroke:currentColor;stroke-width:2.5;transition:.3s var(--ease)}
.faq details[open] .pm{background:var(--em-700);border-color:var(--em-700);color:var(--bone)}
.faq details[open] .pm svg{transform:rotate(45deg)}
.faq .ans{padding:0 0 1.5rem;color:var(--tx-mut);max-width:60ch}

/* ---------- booking ---------- */
.book{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.book-side{position:sticky;top:100px;display:flex;flex-direction:column;gap:1.5rem}
.book-alt{display:flex;flex-direction:column;gap:.9rem;padding-top:1.6rem;border-top:1px solid var(--hair-inv)}
.book-alt a{display:inline-flex;align-items:center;gap:.7rem;color:var(--tx-inv-mut);font-weight:600;font-size:.95rem;transition:color .2s}
.book-alt a:hover{color:var(--bone)}
.book-alt svg{width:17px;height:17px;stroke:var(--sage)}
.cal-holder{
  background:var(--bone);border-radius:var(--r-lg);min-height:640px;overflow:hidden;box-shadow:var(--shadow);
  display:flex;align-items:stretch;justify-content:center;
}
.cal-holder .calendly-inline-widget{width:100%;min-height:640px}
.cal-fallback{align-self:center;text-align:center;padding:3rem 2.5rem;display:flex;flex-direction:column;gap:1.1rem;align-items:center;max-width:430px}
.cal-fallback .pricepill{font-family:var(--font-d);font-size:2.6rem;color:var(--em-700)}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--tx-inv-mut);padding:3.5rem 0 2.5rem;border-top:1px solid var(--hair-inv)}
.foot{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:flex-start}
.foot .logo{font-size:1.15rem}
.foot-col{display:flex;flex-direction:column;gap:.55rem;font-size:.88rem}
.foot-col b{color:var(--bone);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.foot-col a:hover{color:var(--bone)}
.foot-legal{margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--hair-inv);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.76rem}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .steps{grid-template-columns:repeat(2,1fr)}
  .step:last-child{grid-column:1/-1}
  .proof-grid{grid-template-columns:1fr 1fr}
  .trust{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .empathy>*,.include>*,.about>*,.loc>*,.book>*,.hero-grid>*,.loc-side>*{min-width:0;max-width:100%}
  .nav-links{display:none}
  .burger{display:flex}
  .nav-links.open{
    display:flex;position:fixed;inset:74px 0 auto 0;flex-direction:column;gap:0;
    background:rgba(11,19,29,.98);padding:1rem 4vw 2rem;border-bottom:1px solid var(--hair-inv);
  }
  .nav-links.open a{padding:1rem 0;border-bottom:1px solid rgba(246,244,239,.07);font-size:1.05rem}
  .empathy,.include,.about,.loc,.book{grid-template-columns:1fr}
  .price-card,.book-side{position:static}
  .proof-grid{grid-template-columns:1fr}
  .checks{grid-template-columns:1fr}
  .video-wrap{aspect-ratio:16/9}
}
@media (max-width:520px){
  .trust{grid-template-columns:1fr 1fr;gap:1rem}
  .hero{padding-top:7.5rem}
  .nav .btn-light{display:none}
  .opts{grid-template-columns:1fr}
  .commit button{padding:.85rem 0}
  .quiz-top{padding:1.1rem 1.3rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}

/* ============================================================
   Componentes batch 2 — hero media, comparativa de métodos,
   antes/después, sección post-21, booking, quiz con imágenes
   ============================================================ */

/* logo con país */
.logo .pe{
  font-family:var(--font-b);font-size:.46em;font-weight:800;letter-spacing:.22em;
  color:var(--sage);margin-left:.4rem;align-self:flex-start;margin-top:.35em;
}

/* hero en dos columnas: texto + video */
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,4vw,4rem);align-items:center;padding-bottom:3.2rem}
.hero-copy{display:flex;flex-direction:column;gap:2rem}
.hero-media{
  position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/4.7;
  max-height:560px;width:100%;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);
  border:1px solid rgba(246,244,239,.12);isolation:isolate;
}
.hero-media video,.hero-media .hm-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media .hm-overlay{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;
  padding:1.4rem 1.5rem;background:linear-gradient(180deg,rgba(11,19,29,.1),rgba(11,19,29,.05) 55%,rgba(11,19,29,.72));
}
.hm-tag{align-self:flex-start;font-size:.68rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--bone);border:1px solid rgba(246,244,239,.35);border-radius:99px;padding:.35rem .8rem;backdrop-filter:blur(4px)}
.hm-bottom{display:flex;align-items:center;gap:1rem}
.hm-play{
  flex:none;width:60px;height:60px;border-radius:50%;background:var(--bone);display:grid;place-items:center;
  transition:transform .3s var(--ease);box-shadow:0 18px 40px -10px rgba(0,0,0,.55);
}
.hm-play:hover{transform:scale(1.08)}
.hm-play svg{width:19px;height:19px;fill:var(--ink);margin-left:3px}
.hm-cap{font-size:.85rem;color:var(--bone);font-weight:600;line-height:1.4}
.hm-cap span{display:block;font-size:.72rem;color:var(--tx-inv-mut);font-weight:600}

/* comparativa: métodos incompletos vs método completo */
.compare{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.6rem}
.cmp{
  border:1px solid var(--hair);border-radius:var(--r-md);padding:1.5rem 1.2rem 1.3rem;
  display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center;background:#FFFDF9AA;
}
.cmp.win{border:1.5px solid var(--em-700);background:var(--sage-2);box-shadow:0 18px 40px -22px rgba(15,74,115,.45)}
.cmp svg{width:110px;height:110px}
.cmp b{font-size:.95rem;font-weight:800}
.cmp .st{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#A3543C}
.cmp.win .st{color:var(--em-700)}
.cmp p{font-size:.8rem;color:var(--tx-mut);line-height:1.5}
.cmp-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;justify-content:center;margin-top:1.6rem;font-size:.78rem;font-weight:700;color:var(--tx-mut)}
.cmp-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--em-line);margin-right:.45rem}

/* casos de éxito: fotos antes/después */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.ba > div{
  aspect-ratio:3/3.6;border-radius:12px;border:1.5px dashed var(--bone-3);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;
  background:var(--bone-2);color:var(--tx-mut);text-align:center;padding:.6rem;
}
.ba b{font-size:.72rem;letter-spacing:.16em;color:var(--em-700)}
.ba span{font-size:.62rem;line-height:1.4}
.ba svg{width:22px;height:22px;stroke:var(--tx-mut);opacity:.7;margin-bottom:.2rem}

/* sección después de los 21 días */
.after-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:2.6rem}
.after-card{
  background:var(--ink-2);border:1px solid var(--ink-3);border-radius:var(--r-md);
  padding:1.8rem 1.6rem;display:flex;flex-direction:column;gap:.7rem;
}
.after-card .n{font-family:var(--font-d);font-size:1.7rem;color:var(--sage)}
.after-card h3{font-family:var(--font-b);font-size:1.05rem;font-weight:800;color:var(--bone)}
.after-card p{font-size:.89rem;color:var(--tx-inv-mut);line-height:1.6}
.after-video{
  border-radius:var(--r-lg);overflow:hidden;position:relative;aspect-ratio:16/7.2;
  background:linear-gradient(115deg,#14222E,#0E2A44 55%,#0F4A73);display:grid;place-items:center;
  border:1px solid var(--ink-3);
}
.after-video .play{
  width:80px;height:80px;border-radius:50%;background:var(--bone);display:grid;place-items:center;
  transition:transform .3s var(--ease);box-shadow:0 22px 55px -12px rgba(0,0,0,.6);
}
.after-video .play:hover{transform:scale(1.07)}
.after-video .play svg{width:24px;height:24px;fill:var(--ink);margin-left:3px}
.after-video .cap{position:absolute;left:1.6rem;bottom:1.3rem;font-size:.88rem;color:var(--tx-inv-mut)}
.after-video .tag{position:absolute;left:1.6rem;top:1.3rem;font-size:.68rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--bone);border:1px solid rgba(246,244,239,.35);border-radius:99px;padding:.35rem .8rem}

/* booking: aviso de intención (plan) + whatsapp visible */
.book-note{
  display:none;align-items:center;gap:.7rem;background:var(--sage-2);color:var(--tx);
  border-radius:var(--r-sm);padding:.9rem 1.1rem;font-size:.88rem;font-weight:700;
}
.book-note.on{display:flex}
.book-note svg{width:18px;height:18px;stroke:var(--em-700);flex:none}
.btn-wa svg{width:19px;height:19px;fill:#fff;stroke:none}
.cal-fallback .btn-wa{font-size:1.02rem;padding:1.05rem 2rem}

/* quiz: imágenes de contexto en opciones */
.opt-img{
  width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:9px;
  margin-bottom:.55rem;display:none;filter:saturate(.85) contrast(1.02);
}
.opt-img.loaded{display:block}

/* fotos del consultorio con efecto elegante (cuando existan) */
.shot img,.clinic-shot img{
  width:100%;height:100%;object-fit:cover;border-radius:inherit;
  filter:grayscale(.15) saturate(.9) contrast(1.04) brightness(.97);
  transition:filter .4s var(--ease),transform .6s var(--ease);
}
.shot:hover img{filter:none;transform:scale(1.03)}

@media (max-width:1024px){
  .compare{grid-template-columns:1fr 1fr}
  .after-grid{grid-template-columns:1fr}
  .after-video{aspect-ratio:16/9}
}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-media{aspect-ratio:16/10;max-height:340px}
}
@media (max-width:520px){
  .compare{grid-template-columns:1fr}
}

/* fotos reales del centro */
.shot{position:relative;overflow:hidden;padding:0}
.shot-cap{
  position:absolute;left:0;right:0;bottom:0;padding:1.6rem .9rem .7rem;font-size:.72rem;font-weight:700;
  color:var(--tx-inv);background:linear-gradient(transparent,rgba(11,19,29,.82));pointer-events:none;
}

/* ============================================================
   v4 — slideshow automático, nav completa, contacto y footer
   ============================================================ */

/* ---------- slideshow (una sola foto que rota sola) ---------- */
.slideshow{
  position:relative;border-radius:var(--r-md);overflow:hidden;
  background:var(--ink);box-shadow:var(--shadow);
}
.slideshow .slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--ease);
}
.slideshow .slide.on{opacity:1}
.slideshow .slide img{width:100%;height:100%;object-fit:cover}
.slideshow .slide-cap{
  position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.2rem .9rem;
  font-size:.82rem;font-weight:700;color:var(--tx-inv);
  background:linear-gradient(transparent,rgba(11,19,29,.85));
}
.slideshow .dots{
  position:absolute;right:.9rem;bottom:.9rem;display:flex;gap:.4rem;z-index:2;
}
.slideshow .dots button{
  width:7px;height:7px;border-radius:50%;background:rgba(246,244,239,.45);padding:0;
  transition:.3s;border:0;cursor:pointer;
}
.slideshow .dots button.on{background:var(--bone);width:20px;border-radius:99px}
/* ratio del slideshow dentro de la sección ubicación */
.loc-side .slideshow{aspect-ratio:16/10;flex:1;min-height:230px}

/* mapa más protagonista en ubicación */
.loc{grid-template-columns:1.35fr .95fr}
.map-card{min-height:480px}

/* ---------- nav: soporte para páginas + activo ---------- */
.nav-links a.on{color:var(--bone)}
.nav-links a.on::after{
  content:"";display:block;height:2px;background:var(--sage);
  border-radius:2px;margin-top:3px;
}
@media (max-width:1120px){
  .nav-links{gap:1.3rem}
  .nav-links a{font-size:.87rem}
}

/* ---------- footer con navegación completa ---------- */
.foot-col a.strong{color:var(--bone);font-weight:700}

/* ============================================================
   PÁGINA DE CONTACTO
   ============================================================ */
.ct-band{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  aspect-ratio:21/8;min-height:300px;margin-top:-2rem;box-shadow:var(--shadow);
}
.ct-band .slideshow{position:absolute;inset:0;border-radius:0;box-shadow:none;aspect-ratio:auto}
.ct-band .ct-band-title{
  position:absolute;left:0;bottom:0;padding:3rem 2.5rem 2rem;z-index:3;
  font-family:var(--font-d);font-size:clamp(1.6rem,3.4vw,2.6rem);color:var(--bone);
  text-shadow:0 2px 24px rgba(11,19,29,.6);
}
.ct-main{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.ct-lead h2{font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.12;margin-bottom:1.2rem}
.ct-lead > p{color:var(--tx-mut);max-width:40ch;margin-bottom:2.2rem}
.ct-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 2rem}
.ct-block b{
  display:block;font-size:.76rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--em-500);margin-bottom:.6rem;
}
.ct-block p,.ct-block a{display:block;font-size:.95rem;color:var(--tx-mut);line-height:1.7}
.ct-block a:hover{color:var(--em-700)}
.ct-social{display:flex;gap:.7rem;margin-top:.3rem}
.ct-social a{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--bone-3);
  display:grid;place-items:center;transition:.25s;
}
.ct-social a:hover{border-color:var(--em-700);background:var(--em-700)}
.ct-social svg{width:16px;height:16px;stroke:var(--tx-mut);fill:none;stroke-width:2}
.ct-social a:hover svg{stroke:var(--bone)}

.ct-form{
  background:var(--bone-2);border-radius:var(--r-lg);padding:clamp(1.8rem,3vw,2.6rem);
}
.ct-form h3{font-family:var(--font-d);font-size:1.5rem;margin-bottom:.4rem}
.ct-form form > p:first-of-type{font-size:.9rem;color:var(--tx-mut);margin-bottom:2rem}

.ct-form .fld{margin-bottom:1.3rem}
.ct-form label{
  display:block;font-size:.74rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tx-mut);margin-bottom:.4rem;
}
.ct-form input,.ct-form select,.ct-form textarea{
  width:100%;border:0;border-bottom:1.5px solid var(--bone-3);background:transparent;
  font:inherit;font-size:.98rem;color:var(--tx);padding:.5rem 0 .7rem;transition:border-color .25s;
}
.ct-form textarea{min-height:90px;resize:vertical}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{
  outline:none;border-bottom-color:var(--em-700);
}
.ct-form .btn{margin-top:.6rem}
.ct-ok{
  display:none;background:var(--sage-2);border-radius:var(--r-md);padding:2rem;text-align:center;
}
.ct-ok.on{display:block}
.ct-err{display:none;color:#A3543C;font-size:.85rem;font-weight:600;margin-top:.8rem}
.ct-err.on{display:block}

.ct-map-full{
  width:100%;height:clamp(320px,42vh,460px);border-radius:var(--r-lg);
  overflow:hidden;border:1px solid var(--bone-3);position:relative;
}
.ct-map-full iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.9) contrast(.97)}

@media (max-width:900px){
  .ct-main{grid-template-columns:1fr}
  .ct-cols{grid-template-columns:1fr 1fr}
  .loc{grid-template-columns:1fr}
  .map-card{min-height:340px}
  .ct-band{aspect-ratio:16/9;margin-top:0}
}
@media (max-width:520px){
  .ct-cols{grid-template-columns:1fr}
}

/* agenda: alto natural cuando no hay widget de Calendly aún */
.cal-holder:has(.cal-fallback){min-height:0}
.cal-holder .cal-fallback{padding:3rem 2.5rem}
