/* GENERADO por generar.py — capa CSS de página heredada de ../pelvix.html. NO editar a mano. */

/* SPARK WELLNESS — portal institucional v2 Norma 60 30 10: */
:root{
  --rojo:        #bd0e31;
  --rojo-oscuro: #97081f;
  --tinte:       #faf4f5;
  --blanco:      #ffffff;
  --negro:       #151114;
  --texto:       #241d1f;
  --texto-2:     #5f5457;
  --linea:       rgba(21,17,20,.14);
  --oro:         #c99a1e;

  --font: var(--voz);   /* WF-B: la voz la da _sistema-spark.css (IBM Plex Sans) */

  --step-0: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);
  --step-1: clamp(1.3rem, 1.15rem + .7vw, 1.65rem);
  --step-2: clamp(1.75rem, 1.45rem + 1.5vw, 2.4rem);
  --step-3: clamp(2.25rem, 1.75rem + 2.5vw, 3.4rem);
  --step-4: clamp(2.8rem, 2rem + 4vw, 4.9rem);

  --space-s: clamp(1rem, .9rem + .5vw, 1.5rem);
  --space-m: clamp(1.8rem, 1.5rem + 1.6vw, 3rem);
  --space-l: clamp(3rem, 2.3rem + 3.2vw, 5rem);
  --space-xl: clamp(4rem, 3rem + 5vw, 7.5rem);

  --container: 1320px; /* fase A */
  --radius: 18px;
  --z-nav: 60;
  --z-header: 50;
  --z-float: 40;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
:root{interpolate-size:allow-keywords}
:focus-visible{outline:2px solid var(--rojo);outline-offset:3px;border-radius:4px}
body{
  -webkit-tap-highlight-color:transparent;
  -webkit-text-size-adjust:100%;
  font-family:var(--font);
  font-size:var(--step-0);
  line-height:1.7;
  color:var(--texto);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--rojo);color:#fff}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{line-height:1.12;text-wrap:balance;font-weight:400;letter-spacing:-.01em}
p{text-wrap:pretty}
a{color:inherit}
em{font-style:normal;color:var(--rojo)}   /* en el cuerpo el énfasis es color, no cursiva */
.manifiesto em,.aclaracion em,.sesion em,.cierre em{color:#fff}
.container{max-width:1320px;margin-inline:auto;padding-inline:1.25rem}
@media(min-width:768px){.container{padding-inline:2.5rem}}
@media(min-width:980px){.container{padding-inline:4rem}} /* fase A: mismo riel que .xpad .wrapmax */
svg{display:block}
.ic{width:1.2em;height:1.2em;flex-shrink:0}

@view-transition{navigation:auto}
header .logo{view-transition-name:spark-logo}
.foto-main{view-transition-name:foto-paciente}
@keyframes vt-out{to{opacity:0;transform:translateY(-12px) scale(.988);filter:blur(10px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(24px) scale(1.006);filter:blur(14px)}}
::view-transition-old(root){animation:vt-out .38s cubic-bezier(.4,0,.9,1) both}
::view-transition-new(root){animation:vt-in .8s var(--ease-out) .05s both}
::view-transition-group(spark-logo){animation-duration:.65s;animation-timing-function:var(--ease-out)}
::view-transition-group(foto-paciente){animation-duration:.7s;animation-timing-function:var(--ease-out)}
::view-transition-old(foto-paciente),::view-transition-new(foto-paciente){
  height:100%;width:100%;object-fit:cover;overflow:clip;
}

.cta-nota{margin-top:1rem;font-size:.88rem;color:var(--texto-2)}

.precio-consulta{font-size:1.05rem;line-height:1.25;color:var(--texto-2)}

.cierre .cta-nota,.sesion .cta-nota,.aclaracion .cta-nota,.banda .cta-nota{color:#fff}
/* la entrada del hero la gobierna ahora _motion-spark.css (.rv / .rv-clip / .plx) */

/* ---------- cinta de marca (marquee) ---------- */
.cinta{border-block:1px solid var(--linea);padding-block:1rem;overflow:hidden;background:var(--blanco)}
.cinta-track{display:flex;width:max-content;animation:cinta 30s linear infinite}
.cinta-grupo{display:flex;align-items:center;white-space:nowrap}
.cinta-grupo span{
  display:flex;align-items:center;gap:2.2rem;padding-right:2.2rem;
  font-size:.9rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texto-2);
}
.cinta-grupo .sep{width:14px;height:14px;color:var(--rojo)}
@keyframes cinta{to{transform:translateX(-50%)}}
.cinta:hover .cinta-track{animation-play-state:paused}

/* ---------- métricas ---------- */
.metricas{border-bottom:1px solid var(--linea);margin-top:var(--space-m)}
.metricas .container{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,38vw),1fr));
}
.metricas .dato{background:var(--blanco);padding:clamp(1.4rem,3vw,2.2rem) clamp(1rem,2vw,1.8rem);border-left:1px solid var(--linea)}
.metricas .dato:first-child{border-left:none}
@media (max-width: 810px){ .metricas .dato{border-left:none;border-top:1px solid var(--linea)} .metricas .dato:first-child{border-top:none} }
.metricas strong{font-size:clamp(1.9rem,3vw,2.6rem);color:var(--rojo);display:block;line-height:1;font-weight:400}
.metricas span{font-size:.9rem;color:var(--texto-2);display:block;margin-top:.45rem}
.metricas .stars{color:var(--oro);letter-spacing:.08em;font-size:1rem}

/* ---------- programas ---------- */
.programas{padding-block:var(--space-l) var(--space-xl);background:var(--blanco)}
.programas-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem}
.programas-head h2{font-size:var(--step-3);max-width:16ch}
.programas-head p{color:var(--texto-2);max-width:44ch}
.programas ol{list-style:none;margin-top:var(--space-l)}
.prog{
  display:grid;grid-template-columns:minmax(0,1.16fr) minmax(300px,.84fr);
  gap:clamp(1.6rem,4vw,4rem);align-items:center;
  padding-block:clamp(2.2rem,4.5vw,3.4rem);
  border-top:1px solid var(--linea);
}
.prog:last-child{border-bottom:1px solid var(--linea)}
.prog-id{display:flex;align-items:center;gap:1.1rem}
.prog-id .emblema{width:56px;height:56px;color:var(--texto)}
.prog-num{font-size:1.15rem;color:var(--rojo);letter-spacing:.1em}
.prog-cat{letter-spacing:.13em;text-transform:uppercase;font-size:.8rem;color:var(--texto-2);margin-left:auto}
.prog h3{font-size:var(--step-2);margin-top:1.1rem}
.prog-desc{margin-top:.8rem;color:var(--texto-2);max-width:56ch}
.prog-datos{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.prog-datos li{
  border:1px solid var(--linea);border-radius:100px;
  padding:.35rem 1rem;font-size:.88rem;color:var(--texto);
  transition:border-color .3s;
}
.prog:hover .prog-datos li{border-color:rgba(189,14,49,.35)}
.prog-card{
  background:var(--tinte);border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.2rem);
  display:grid;gap:1.2rem;align-content:start;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
}
.prog:hover .prog-card{transform:translateY(-5px);box-shadow:0 26px 50px -30px rgba(21,17,20,.35)}
.prog-card .prog-foto{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;filter:saturate(.88) sepia(.06) contrast(1.02)}
.prog-card .linea-precio{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-top:1px solid var(--linea);padding-top:1.1rem}
.prog-precio{font-size:.88rem;color:var(--texto-2)}
.prog-precio strong{display:block;font-size:1.5rem;color:var(--texto);font-weight:400;margin-top:.15rem;line-height:1.1}
.prog-isapre{font-size:.8rem;color:var(--texto-2);text-align:right;line-height:1.45}
.prog-precio small{display:block;font-size:.76rem;color:var(--texto-2);margin-top:.3rem;max-width:21ch}
.prog-card .btn{justify-self:stretch;padding:.8rem 1.4rem;min-height:46px;font-size:.98rem}
.programas-nota{margin-top:var(--space-m);color:var(--texto-2);font-size:.95rem;max-width:62ch}
.programas-nota .ic{display:inline-block;vertical-align:-3px;margin-right:.45rem}
.programas-nota .ic{color:var(--rojo)}
.nota-link{color:inherit;text-decoration-color:rgba(189,14,49,.5);text-underline-offset:3px}
.nota-link:hover{color:var(--rojo)}
@media (max-width: 900px){
  .prog{grid-template-columns:1fr}
}
@media (max-width: 700px){
  .prog-id{flex-wrap:wrap;gap:.7rem 1rem}
  .prog-id .emblema{width:44px;height:44px}
  .prog-cat{flex-basis:100%;order:4;margin-left:0;margin-top:-.1rem}
  .prog h3{margin-top:.8rem}
  .prog-card{padding:1.25rem}
  .metricas .dato{padding:1.2rem 1rem}
  .cinta-grupo span{font-size:.8rem;gap:1.5rem;padding-right:1.5rem}
  footer .container{gap:2.2rem}
}
@media (max-width: 560px){
  .hero{padding-top:6.2rem}
}

/* ---------- manifiesto (banda roja) ---------- */
.manifiesto{background:var(--rojo);color:#fff;padding-block:var(--space-xl);position:relative;overflow:clip}
.manifiesto .deco{
  position:absolute;right:-6%;top:-12%;width:min(46vw,560px);height:auto;
  color:#fff;opacity:.09;pointer-events:none;
}
.manifiesto .container{position:relative}
.manifiesto h2{font-size:var(--step-3);max-width:24ch}
.manifiesto .intro{margin-top:1.3rem;max-width:60ch;color:rgba(255,255,255,.92)}
.manifiesto .claves{
  margin-top:var(--space-l);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,80vw),1fr));
  gap:clamp(1.8rem,4vw,3rem);
}
.manifiesto .clave{border-top:1px solid rgba(255,255,255,.35);padding-top:1.2rem}
.manifiesto .clave h3{font-size:var(--step-1)}
.manifiesto .clave p{margin-top:.6rem;color:rgba(255,255,255,.9);font-size:.98rem;max-width:38ch}
.manifiesto .isapre{
  margin-top:var(--space-m);display:inline-flex;align-items:center;gap:.7rem;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);
  border-radius:100px;padding:.55rem 1.3rem;font-size:.95rem;
}

/* ---------- método: 4 pilares ---------- */
.metodo{background:var(--tinte);padding-block:var(--space-xl)}
.metodo h2{font-size:var(--step-3);max-width:22ch}
.metodo > .container > p{margin-top:1.2rem;color:var(--texto-2);max-width:58ch}
.pilares{
  margin-top:var(--space-l);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(228px,80vw),1fr));
  gap:clamp(1.6rem,3vw,2.6rem);
}
.pilar{border-top:1px solid rgba(21,17,20,.2);padding-top:1.4rem}
.pilar .icono{width:40px;height:40px;color:var(--rojo)}
.pilar .sigla{color:var(--rojo);letter-spacing:.16em;font-size:.92rem;margin-top:1rem}
.pilar h3{font-size:var(--step-1);margin-top:.35rem}
.pilar p{margin-top:.6rem;color:var(--texto-2);font-size:.96rem;max-width:36ch}

/* ---------- tecnología ---------- */
.tecno{padding-block:var(--space-xl) var(--space-l);background:var(--blanco)}
.tecno h2{font-size:var(--step-3);max-width:22ch}
.tecno > .container > .intro{margin-top:1.2rem;color:var(--texto-2);max-width:58ch}
.tecno ul{list-style:none;margin-top:var(--space-l)}
.tecno li{
  display:grid;grid-template-columns:52px minmax(200px,.8fr) 1.6fr auto;
  gap:clamp(1rem,2.6vw,2.6rem);align-items:center;
  padding-block:1.9rem;border-top:1px solid var(--linea);
}
.tecno li:last-child{border-bottom:1px solid var(--linea)}
.tecno .icono{width:44px;height:44px;color:var(--rojo)}
.tecno h3{font-size:var(--step-1)}
.tecno h3 span{display:block;font-size:.85rem;color:var(--rojo);letter-spacing:.08em;margin-top:.3rem}
.tecno p{color:var(--texto-2);font-size:.97rem;max-width:50ch}
.tecno .cifra{text-align:right;white-space:nowrap}
.tecno .cifra strong{display:block;font-size:1.6rem;color:var(--rojo);font-weight:400;line-height:1.1}
.tecno .cifra span{font-size:.85rem;color:var(--texto-2)}
@media (max-width: 860px){
  .tecno li{grid-template-columns:44px 1fr;grid-auto-rows:auto;row-gap:.7rem}
  .tecno p{grid-column:1 / -1}
  .tecno .cifra{grid-column:1 / -1;text-align:left}
}

/* ---------- equipo ---------- */
.equipo{padding-block:var(--space-l) var(--space-xl);background:var(--blanco)}
.equipo-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem}
.equipo-head h2{font-size:var(--step-3);max-width:18ch}
.equipo-head p{color:var(--texto-2);max-width:40ch}
.equipo-grid{
  margin-top:var(--space-l);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,40vw),1fr));gap:clamp(1.2rem,2.5vw,2rem);
}
.persona{display:grid;gap:.75rem}
.persona:nth-child(even){margin-top:clamp(1rem,3vw,2.5rem)}
.persona .retrato{overflow:hidden;border-radius:14px}
.persona img{
  aspect-ratio:4/5;object-fit:cover;filter:saturate(.96);
  transition:transform .8s var(--ease-out);
}
.persona:hover img{transform:scale(1.045)}
.persona h3{font-size:1.1rem}
.persona span{display:block;font-size:.88rem;color:var(--rojo);margin-top:.15rem}
.equipo-mas{margin-top:var(--space-m);color:var(--texto-2);font-size:.95rem;max-width:60ch}

/* ---------- aval internacional ---------- */
.aval{background:var(--tinte);padding-block:var(--space-l)}
.aval h2{font-size:var(--step-2);max-width:28ch}
.aval > .container > p{color:var(--texto-2);margin-top:.8rem;max-width:58ch}
.aval-grid{margin-top:var(--space-m);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,85vw),1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.experto{display:grid;grid-template-columns:64px 1fr;gap:1rem;align-items:start}
.experto img{width:64px;height:64px;border-radius:50%;object-fit:cover}
.experto .sin-foto{
  width:64px;height:64px;border-radius:50%;background:var(--blanco);
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;color:var(--rojo);border:1px solid var(--linea);
}
.experto blockquote{font-size:.94rem;color:var(--texto-2);line-height:1.6}
.experto cite{display:block;margin-top:.7rem;font-style:normal;font-size:.88rem;color:var(--texto)}
.experto cite span{display:block;color:var(--texto-2)}

/* ---------- opiniones ---------- */
.opiniones{background:var(--blanco)}
.opiniones-head{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 3rem;justify-content:space-between}
.opiniones-head h2{font-size:var(--step-3);max-width:18ch}
.opiniones-head .google{display:flex;align-items:center;gap:1rem}
.opiniones-head .google img{height:58px;width:auto}
.opiniones-head .google strong{font-size:1.7rem;display:block;line-height:1.1;font-weight:400}
.opiniones-head .google span{font-size:.88rem;color:var(--texto-2)}
.opiniones-cuerpo{
  margin-top:var(--space-l);
  display:grid;grid-template-columns:minmax(250px,320px) 1fr;
  gap:clamp(1.8rem,4vw,3.5rem);align-items:start;
}
.video-card{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--negro);box-shadow:0 30px 60px -30px rgba(21,17,20,.5)}
.video-card img{aspect-ratio:9/16;object-fit:cover;width:100%;opacity:.92}
.video-card video{aspect-ratio:9/16;object-fit:cover;width:100%}
.video-card .play{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:1.1rem;gap:.7rem;
  background:linear-gradient(rgba(21,17,20,0) 40%, rgba(21,17,20,.55));
  color:#fff;border:none;cursor:pointer;font-family:var(--font);font-size:.95rem;letter-spacing:.04em;
}
.video-card .play .aro{
  position:absolute;top:calc(50% - 38px);left:calc(50% - 38px);
  width:76px;height:76px;border-radius:50%;
  background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.7);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(4px);
  transition:transform .4s var(--ease-out), background-color .3s;
}
.video-card .play:hover .aro{transform:scale(1.1);background:var(--rojo);border-color:var(--rojo)}
.video-card .play .ic{width:26px;height:26px;margin-left:3px}
.opiniones-cols{columns:2;column-gap:1.5rem}
.opinion{
  break-inside:avoid;margin-bottom:1.5rem;
  background:var(--tinte);border-radius:var(--radius);
  padding:1.7rem;
}
.opinion{position:relative}
.opinion.destacada::before{content:"\201C";position:absolute;top:.4rem;right:1.4rem;font-size:3.6rem;color:var(--rojo);opacity:.85;line-height:1.4}
.opinion .stars{color:var(--oro);letter-spacing:.12em;font-size:.9rem}
.opinion blockquote{margin-top:.8rem;font-size:.98rem;line-height:1.65}
.opinion.destacada blockquote{font-size:var(--step-1);line-height:1.45}
.opinion cite{display:block;margin-top:1rem;font-style:normal;font-size:.88rem;color:var(--texto-2)}
.opinion cite .tag{display:block;color:var(--rojo);font-size:.8rem;margin-top:.2rem}
@media (max-width: 980px){ .opiniones-cols{columns:1} }
@media (max-width: 760px){
  .opiniones-cuerpo{grid-template-columns:1fr}
  .video-card{max-width:320px}
}

/* ---------- FAQ ---------- */
.faq{background:var(--blanco);border-top:1px solid var(--linea)}
.faq .container{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.faq h2{font-size:var(--step-3);max-width:14ch}
.faq .faq-intro{margin-top:1rem;color:var(--texto-2);max-width:34ch}
.faq .faq-wsp{margin-top:var(--space-m);font-size:.95rem;color:var(--texto-2)}
.faq .faq-wsp a{color:var(--rojo)}
.faq details{border-top:1px solid var(--linea)}
.faq details:last-child{border-bottom:1px solid var(--linea)}
.faq summary{
  cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding-block:1.3rem;font-size:1.05rem;
  transition:color .25s;
}
.faq summary:hover{color:var(--rojo)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";font-size:1.5rem;color:var(--rojo);
  transition:transform .35s var(--ease-out);flex-shrink:0;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details::details-content{
  opacity:0;block-size:0;overflow:clip;
  transition:block-size .45s var(--ease-out), opacity .35s var(--ease-out), content-visibility .45s allow-discrete;
}
.faq details[open]::details-content{opacity:1;block-size:auto}
.faq details p{padding-bottom:1.4rem;color:var(--texto-2);font-size:.97rem;max-width:58ch}
@media (max-width: 860px){ .faq .container{grid-template-columns:1fr} }

/* ---------- ubicación ---------- */
.ubicacion{background:var(--tinte);padding-block:var(--space-xl)}
.ubicacion .container{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.ubicacion h2{font-size:var(--step-3);max-width:16ch}
.ubicacion .mapa{
  position:relative;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 30px 60px -32px rgba(21,17,20,.35);
  line-height:0;
}
.mapa-fallback{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;
  background:var(--blanco);color:var(--texto-2);text-align:center;line-height:1.6;font-size:.95rem;
}
.mapa-fallback .ic{width:30px;height:30px;color:var(--rojo)}
.mapa-fallback b{color:var(--texto);font-weight:400}
.ubicacion .mapa iframe{position:relative;z-index:1}
.ubicacion .mapa iframe{width:100%;height:clamp(320px,40vw,430px);border:0;filter:saturate(.85) contrast(1.02)}
.ubicacion ul{list-style:none;margin-top:var(--space-m);display:grid;gap:1.2rem}
.ubicacion li{display:grid;grid-template-columns:26px 1fr;gap:1rem;align-items:start}
.ubicacion li .ic{width:22px;height:22px;color:var(--rojo);margin-top:.2rem}
.ubicacion li b{font-weight:400}
.ubicacion li span{display:block;color:var(--texto-2);font-size:.95rem}
.ubicacion .btn{margin-top:var(--space-s)}
@media (max-width: 900px){ .ubicacion .container{grid-template-columns:1fr} }

/* ---------- cierre (banda roja + 3 pasos) ---------- */
.cierre{background:var(--rojo);color:#fff;position:relative;overflow:clip}
.cierre .deco{
  position:absolute;right:-6%;top:-14%;width:min(42vw,500px);height:auto;
  color:#fff;opacity:.06;pointer-events:none;
}
.cierre .container{position:relative}
.cierre h2{font-size:var(--step-3);max-width:20ch}
.cierre .intro{margin-top:1.2rem;color:rgba(255,255,255,.92);max-width:52ch}
.pasos{list-style:none;counter-reset:paso;margin-top:var(--space-l);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,80vw),1fr));gap:clamp(1.8rem,4vw,3rem)}
.pasos li{counter-increment:paso;border-top:1px solid rgba(255,255,255,.35);padding-top:1.2rem}
.pasos li::before{
  content:counter(paso, decimal-leading-zero);
  font-size:1.9rem;color:rgba(255,255,255,.7);display:block;line-height:1;
}
.pasos h3{font-size:var(--step-1);margin-top:.7rem}
.pasos p{margin-top:.5rem;color:rgba(255,255,255,.9);font-size:.96rem;max-width:36ch}
.cierre-ctas{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:var(--space-l)}
.cierre .dato{margin-top:1.4rem;font-size:.9rem;color:rgba(255,255,255,.85)}

/* ---------- footer (el 10% negro) ---------- */
footer{background:var(--negro);color:rgba(255,255,255,.72);padding-block:var(--space-l) var(--space-m)}
footer .container{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:clamp(2rem,5vw,4rem)}
footer img.logo-f{height:50px;width:auto;filter:brightness(0) invert(1);opacity:.95}
footer h3{font-size:.85rem;color:#fff;margin-bottom:.9rem;letter-spacing:.12em;text-transform:uppercase}
footer p, footer li{font-size:.93rem;line-height:1.7}
footer ul{list-style:none}
footer a{color:rgba(255,255,255,.85);text-decoration:none;transition:color .25s}
footer a:hover{color:#fff}
footer .ig{display:inline-block;width:15px;height:15px;vertical-align:-2px;margin-right:.45rem}
footer .partners{
  grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:1.4rem 2.6rem;
  margin-top:var(--space-s);padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.16);
}
footer .partners-label{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5)}
footer .partners img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:.62;transition:opacity .25s;display:block}
footer .partners a[aria-label="InBody Chile"] img{height:17px}
footer .partners a[aria-label="PelviX"] img{height:20px}
footer .partners a[aria-label="CDM Medical"] img{height:30px}
footer .partners a:hover img{opacity:1}
footer .legal{
  grid-column:1 / -1;margin-top:var(--space-s);padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.16);
  font-size:.82rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;
}
/* carruseles con scroll-snap en móvil: el borde asomado invita a deslizar */
@media (max-width: 700px){
  .equipo .container{position:relative}
  .equipo .container::after{
    content:"";position:absolute;top:0;bottom:0;right:0;width:44px;pointer-events:none;
    background:linear-gradient(90deg, rgba(255,255,255,0), var(--blanco));
  }
  .equipo-grid{
    display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:1rem;
    margin-inline:calc(-1 * clamp(1.25rem,4vw,2.5rem));
    padding-inline:clamp(1.25rem,4vw,2.5rem);
    scrollbar-width:none;
  }
  .equipo-grid::-webkit-scrollbar{display:none}
  .persona{flex:0 0 62%;scroll-snap-align:center}
  .persona:nth-child(even){margin-top:0}
}
@media (max-width: 760px){
  .opiniones-cuerpo{position:relative}
  .opiniones-cuerpo::after{
    content:"";position:absolute;bottom:0;right:0;height:52%;width:44px;pointer-events:none;
    background:linear-gradient(90deg, rgba(255,255,255,0), var(--blanco));
  }
  .opiniones-cols{
    columns:auto;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:1rem;
    margin-inline:calc(-1 * clamp(1.25rem,4vw,2.5rem));
    padding-inline:clamp(1.25rem,4vw,2.5rem);
    scrollbar-width:none;
  }
  .opiniones-cols::-webkit-scrollbar{display:none}
  .opinion{flex:0 0 84%;scroll-snap-align:center;margin-bottom:.4rem}
}

@media (max-width: 900px){ footer .container{grid-template-columns:1fr 1fr} }
@media (max-width: 560px){ footer .container{grid-template-columns:1fr} }

/* el sistema de reveals vive en _motion-spark.css — contrato .rv / .rv-clip / .rv-grupo */

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .cinta-track{animation:none}
  .chip-flotante .punto{animation:none}
  header::after{animation:none;transform:scaleX(0)}
  .barra-movil,header nav,header nav a,header nav .nav-extra,header nav .progmenu{transition:none}
  .faq details::details-content{transition:none}
  ::view-transition-old(root),::view-transition-new(root),
  ::view-transition-group(spark-logo),::view-transition-group(foto-paciente){animation:none}
}

/* barra de acción inferior (solo móvil): CTA siempre al alcance del pulgar */
.barra-movil{
  display:none;position:fixed;inset-inline:0;bottom:0;z-index:calc(var(--z-header) - 5);
  padding:.6rem clamp(1rem,4vw,1.5rem) calc(.6rem + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.95);backdrop-filter:blur(14px);
  border-top:1px solid var(--linea);
  gap:.6rem;align-items:center;
  transform:translateY(110%);
  transition:transform .45s var(--ease-out);
}
.barra-movil.visible{transform:none}
body.nav-abierta .barra-movil{transform:translateY(110%)}
.barra-movil .pill{flex:1;padding:.85rem 1rem;min-height:48px;font-size:1rem}
.barra-movil .btn-tel{
  flex:0 0 48px;width:48px;height:48px;border-radius:50%;
  border:1.5px solid rgba(21,17,20,.28);
  display:flex;align-items:center;justify-content:center;color:var(--texto);
}
.barra-movil .btn-tel svg{width:20px;height:20px}
/* botón flotante whatsapp */
.wsp-float{
  position:fixed;right:1.2rem;bottom:1.2rem;z-index:var(--z-float);
  width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -6px rgb(0 0 0 / .35);
  transition:transform .3s var(--ease-out);
}
.wsp-float:hover{transform:scale(1.08)}
.wsp-float svg{width:30px;height:30px;fill:#fff}
@media (max-width: 900px){
  .barra-movil{display:flex}
  .wsp-float{display:none}
}

/* ============ estilos propios del funnel Eleven PelviX™ ============ */
.espejo{background:var(--tinte)}
.espejo-head{max-width:60ch}
/* 19-ago: foto del espejo como banda bajo la cabecera (mismo patrón que fatburner #espejo).
   Antes iba en una grilla de dos columnas: la foto 4:5 medía 475px contra 133px de texto y
   dejaba ~340px de aire muerto a los lados del párrafo. */
.espejo-foto-cab{margin:var(--space-m) 0 0;max-width:640px}
.espejo-foto-cab img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:50% 42%;border-radius:var(--r-media);display:block}
.espejo-head h2{font-size:var(--step-3)}
.espejo-head p{color:var(--texto-2);margin-top:1rem}
.espejo ol{list-style:none;display:grid;gap:clamp(1.8rem,4vw,3rem);margin-top:var(--space-l);max-width:56rem}
.espejo .frase{
  font-size:var(--step-2);line-height:1.25;text-wrap:balance;
  color:rgba(36,29,31,.72);transition:color 1s var(--ease-out);
}
.espejo li.lit .frase{color:var(--texto)}
.espejo .eco{
  margin-top:.6rem;max-width:52ch;color:var(--texto-2);font-size:.97rem;
  opacity:0;transform:translateY(8px);
  transition:opacity .9s var(--ease-out) .15s, transform .9s var(--ease-out) .15s;
}
.espejo li.lit .eco{opacity:1;transform:none}
.espejo-cierre{margin-top:var(--space-l);font-size:var(--step-1);color:var(--texto);max-width:46ch;line-height:1.45}
.espejo-cierre em{color:var(--rojo)}
@media (prefers-reduced-motion: reduce){
  .espejo .frase{color:var(--texto);transition:none}
  .espejo .eco{opacity:1;transform:none;transition:none}
}

.martes{padding-block:var(--space-xl) var(--space-l);background:var(--blanco)}
.martes .container{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.martes h2{font-size:var(--step-3);max-width:16ch}
.martes .relato{margin-top:var(--space-s);display:grid;gap:1.1rem;color:var(--texto-2);max-width:58ch}
.martes .relato .giro{color:var(--texto);font-size:var(--step-1);line-height:1.45;margin-top:.5rem}
.martes .video-card{max-width:340px;margin-inline:auto}
.martes figcaption{text-align:center;margin-top:1rem;font-size:.9rem;color:var(--texto-2);max-width:36ch;margin-inline:auto}
@media (max-width: 900px){ .martes .container{grid-template-columns:1fr} }

.origen{background:var(--tinte)}
.origen-head{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center;max-width:none}
.origen-head > div{max-width:62ch}
.origen-figura{background:var(--negro);border-radius:var(--radius);padding:clamp(1.2rem,2.5vw,2rem);box-shadow:0 20px 45px -30px rgba(21,17,20,.35)}
/* la gráfica trae etiquetas blancas pensadas para fondo oscuro: la tarjeta va en tinta */
.origen-figura img{width:100%;height:auto}
.origen-figura figcaption{margin-top:.8rem;font-size:.88rem;color:rgba(244,240,236,.75);max-width:44ch}
@media (max-width: 860px){ .origen-head{grid-template-columns:1fr} }
.origen-head h2{font-size:var(--step-3)}
.origen-head p{margin-top:1rem;color:var(--texto-2)}
.aristas{margin-top:var(--space-l)}
.arista{
  display:grid;grid-template-columns:minmax(200px,.9fr) 2fr minmax(180px,1fr);
  gap:clamp(1.5rem,4vw,3rem);align-items:baseline;
  padding-block:clamp(1.6rem,3vw,2.4rem);
  border-top:1px solid rgba(21,17,20,.18);
}
.arista:last-child{border-bottom:1px solid rgba(21,17,20,.18)}
.arista h3{font-size:var(--step-2)}
.arista h3 span{display:block;font-size:.8rem;color:var(--rojo);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.4rem}
.arista p{color:var(--texto-2);max-width:48ch}
.arista .mide{font-size:.9rem;color:var(--texto)}
.arista .mide b{display:block;font-weight:400;color:var(--rojo);font-size:.8rem;letter-spacing:.06em;margin-bottom:.3rem}
@media (max-width: 900px){ .arista{grid-template-columns:1fr;gap:.8rem} }

.aclaracion{background:var(--rojo);color:#fff;position:relative;overflow:clip}
.aclaracion .container{position:relative}
.aclaracion h2{font-size:var(--step-3);max-width:22ch}
.aclaracion .intro{margin-top:1.2rem;max-width:58ch;color:rgba(255,255,255,.92)}
.versus{
  margin-top:var(--space-m);display:grid;grid-template-columns:1fr 1fr;
  border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(255,255,255,.3);
}
.versus > div{padding:clamp(1.6rem,3.5vw,2.6rem)}
.versus .estetico{background:rgba(0,0,0,.14)}
.versus .funcional{background:var(--blanco);color:var(--texto)}
.versus h3{font-size:var(--step-1);margin-bottom:.8rem}
.versus p{font-size:.98rem;line-height:1.6}
.versus .estetico p{color:rgba(255,255,255,.88)}
.versus .funcional p{color:var(--texto-2)}
.versus .veredicto{margin-top:1.2rem;font-size:1.05rem}
.versus .funcional .veredicto{color:var(--rojo)}
@media (max-width: 760px){ .versus{grid-template-columns:1fr} }

.metodo-px{background:var(--blanco)}
.metodo-px .kicker{color:var(--rojo);letter-spacing:.14em;text-transform:uppercase;font-size:.85rem}
.metodo-px h2{font-size:var(--step-3);margin-top:.7rem;max-width:24ch}
.metodo-px .intro{margin-top:1rem;color:var(--texto-2);max-width:56ch}
.metodo-nota{margin-top:1rem;max-width:56ch;color:var(--texto-2)}
.metodo-cuerpo{
  margin-top:var(--space-l);
  display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.metodo-cuerpo figure img{border-radius:var(--radius);box-shadow:0 30px 60px -28px rgba(21,17,20,.35);aspect-ratio:4/3;object-fit:cover;width:100%}
.metodo-cuerpo figcaption{margin-top:.9rem;font-size:.9rem;color:var(--texto-2);max-width:44ch}
.claims{display:grid;gap:1.5rem}
.claims h3{font-size:var(--step-1)}
.claims .claim p{color:var(--texto-2);margin-top:.3rem;max-width:52ch}
.cifras{
  display:flex;flex-wrap:wrap;gap:clamp(1.4rem,3vw,2.6rem);
  margin-top:.4rem;padding-top:1.4rem;border-top:1px solid var(--linea);
}
.cifras strong{font-size:1.9rem;color:var(--rojo);display:block;line-height:1;font-weight:400}
.cifras span{font-size:.85rem;color:var(--texto-2)}
.cta-metodo{margin-top:1.6rem;justify-self:start}
@media (max-width: 900px){ .metodo-cuerpo{grid-template-columns:1fr} }

.ruta{padding-block:var(--space-l) var(--space-xl);background:var(--blanco)}
.ruta h3{font-size:var(--step-2);max-width:26ch}
.ruta ol{list-style:none;counter-reset:paso;margin-top:var(--space-m)}
.ruta li{
  counter-increment:paso;
  display:grid;grid-template-columns:4.2rem 1fr auto;gap:clamp(1rem,3vw,2.5rem);
  align-items:baseline;
  padding-block:1.5rem;border-top:1px solid var(--linea);
}
.ruta li:last-child{border-bottom:1px solid var(--linea)}
.ruta li::before{
  content:counter(paso, decimal-leading-zero);
  font-size:1.7rem;color:var(--rojo);
}
.ruta li h4{font-size:1.15rem}
.ruta li p{color:var(--texto-2);font-size:.96rem;max-width:56ch;margin-top:.25rem}
.ruta .precio{white-space:nowrap;font-size:1.02rem}
.ruta .precio small{display:block;color:var(--texto-2);font-size:.8rem;text-align:right}
@media (max-width: 760px){
  .ruta li{grid-template-columns:3rem 1fr}
  .ruta .precio{grid-column:2;text-align:left}
  .ruta .precio small{text-align:left}
}

.sesion{background:var(--rojo);color:#fff;padding-block:var(--space-xl);position:relative;overflow:clip}
.sesion .container{position:relative}
.sesion-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.sesion h2{font-size:var(--step-3);max-width:15ch}
.sesion .sesion-intro{margin-top:1.2rem;color:rgba(255,255,255,.92);max-width:46ch}
.sesion-detalle{margin-top:1rem;color:var(--texto-2);max-width:48ch;font-size:.98rem}
.sesion .sesion-detalle{color:rgba(255,255,255,.92)}
.sesion .abono{margin-top:var(--space-m);font-size:var(--step-1);line-height:1.45;max-width:38ch}
.reembolso{margin-top:var(--space-m)}
.reembolso h3{font-size:1rem;letter-spacing:.06em;color:rgba(255,255,255,.9);margin-bottom:.8rem}
.reembolso table{width:100%;border-collapse:collapse;font-size:.95rem}
.reembolso td{padding:.65rem 0;border-top:1px solid rgba(255,255,255,.3)}
.reembolso td:last-child{text-align:right}
.reembolso .nota{font-size:.82rem;color:rgba(255,255,255,.75);margin-top:.7rem;max-width:52ch}
.sesion-foto{margin-top:var(--space-m);width:min(420px,100%);aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:0 26px 55px -25px rgba(0,0,0,.35)}
.oferta{
  background:var(--blanco);color:var(--texto);
  border-radius:var(--radius);padding:clamp(1.8rem,4vw,2.8rem);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.45);
}
.oferta .precio-linea{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap}
.oferta .precio-gr{font-size:clamp(2.4rem,5vw,3.4rem);color:var(--rojo);line-height:1}
.oferta .precio-ref{color:var(--texto-2);text-decoration:line-through;font-size:1.05rem}
.oferta .badge{
  display:inline-block;background:var(--tinte);border:1px solid rgba(189,14,49,.3);
  color:var(--rojo);font-size:.82rem;
  padding:.3rem .8rem;border-radius:100px;margin-top:.8rem;
}
.oferta ul{list-style:none;margin-top:1.5rem;display:grid;gap:1rem}
.oferta li{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:baseline}
.oferta li .ic{color:var(--rojo);width:1em;height:1em}
.oferta li p{grid-column:2;font-size:.88rem;color:var(--texto-2);margin-top:.1rem}
.oferta li .valor{color:var(--texto-2);font-size:.9rem;white-space:nowrap}
.oferta .pill{width:100%;margin-top:1.7rem;padding-block:1.1rem;font-size:1.06rem}
.oferta .condiciones{margin-top:1.1rem;font-size:.82rem;color:var(--texto-2);text-align:center;text-wrap:balance}

/* (destello de llegada retirado: los CTA ya no anclan a la tarjeta) */

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

.incluye{background:var(--blanco);padding-block:var(--space-xl) var(--space-l)}
.incluye-head{max-width:52ch}
.incluye-head h2{font-size:var(--step-3);margin-top:.7rem;max-width:20ch}
.incluye-grid{
  margin-top:var(--space-l);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,90vw),1fr));
  gap:clamp(1.6rem,4vw,3rem);
}
.cap{border-top:1px solid var(--linea);padding-top:1.5rem}
.cap .cap-ic{width:60px;height:auto;color:var(--rojo)}

.cap h3{font-size:var(--step-1);margin-top:1.1rem}
.cap p{margin-top:.7rem;color:var(--texto-2);max-width:46ch}

.ficha{background:var(--tinte)}
.ficha .kicker{margin-bottom:var(--space-s)}
.specs{display:flex;flex-direction:column;max-width:56rem}
.spec{
  display:grid;grid-template-columns:1fr auto;gap:.3rem 1.5rem;align-items:baseline;
  padding-block:1.05rem;border-top:1px solid var(--linea);
}
.spec:last-child{border-bottom:1px solid var(--linea)}
.spec .sv{
  font-family:var(--dato);font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--rojo);line-height:1.1;
}
.spec .sk{
  font-family:var(--dato);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--texto-2);text-align:right;
}
.spec .sk .stars{color:var(--oro);letter-spacing:.08em}
@media (max-width:520px){
  .spec{grid-template-columns:1fr}
  .spec .sk{text-align:left}
}

/* PARCHE NEKO v1 — alinea una página v1 (60 30 10) al sistema */

/* ── 1. COLOR — hueso cálido + roles de index ───────────────── */
:root{
  --blanco:#f4f0ec;              /* fondo de sección (era #fff) */
  --panel:#fdfbf8;               /* NUEVO · superficie de componente (R1) */
  --tinte:#eae5dd;               /* neutro stone — NO rosa (marca unisex) */
  --texto:#221713;
  --texto-2:#6b5f5a;
  --negro:#221713;               /* bandas oscuras = tinta, no negro puro */
  --linea:rgba(34,23,19,.13);
  --oro:#8f6d12;                 /* AA sobre hueso */

  /* ── 2. TIPOGRAFÍA — escala de index (dh2 40→68 · dh3 32→44) */
  --step-2: clamp(2rem, 1.6rem + 2vw, 2.75rem);
  --step-3: clamp(2.5rem, 1.9rem + 3vw, 3.5rem); /* fase B: tope 56px = .dh2 de programa */

  /* ── 3. AIRE — separador de sección de index (100 → 200) */
  --space-xl: clamp(100px, 12vw, 180px);

  /* ── 4. GEOMETRÍA — escala 4·8·12·16·24·32·40·48·full */
  --radius:24px;                 /* card (era 18) */
  --r-media:40px;                /* fotos y video */
  --r-full:999px;

  /* ── 5. CONTROLES */
  --ctl-md:48px;
  --ctl-lg:60px;

  /* ── 6. FUENTE DE DATO (eyebrows, fichas, etiquetas) */
  --dato:ui-monospace,"SF Mono",Menlo,"Cascadia Mono","Roboto Mono",monospace;
}

/* modo oscuro — index lo tiene y estas páginas no: sin esto la web se parte */

/* ── R1 · superficies de componente NO son fondo de sección ── */
.metricas .dato,
.versus .funcional,
.experto .sin-foto,
.faq .nota,
.tabla-bio,
.incluye li{ background:var(--panel); }

.progmenu-panel,
.chip-flotante,
.hero-chip{ background:var(--panel); }
.barra-movil{ background:color-mix(in srgb, var(--blanco) 95%, transparent); }
@supports not (background:color-mix(in srgb, red 50%, blue)){
  .barra-movil{ background:var(--blanco); }
}

/* ── R2 · degradados con blanco hardcodeado → hueso ────────── */
.equipo .container::after,
.opiniones-cuerpo::after{
  background:linear-gradient(90deg, rgba(244,240,236,0), var(--blanco));
}
@media(prefers-color-scheme:dark){
  .equipo .container::after,
  .opiniones-cuerpo::after{
    background:linear-gradient(90deg, rgba(25,19,17,0), var(--blanco));
  }
}

/* ── 7. HEADER — 56/104 sticky que respira, como index ─────── */
header{
  position:sticky; top:0;
  height:56px; padding-block:0;
}
header::before{ background:color-mix(in srgb, var(--blanco) 94%, transparent); }
@supports not (background:color-mix(in srgb, red 50%, blue)){
  header::before{ background:var(--blanco); }
}
.logo img{ height:32px; }
@media(min-width:980px){
  header{ height:104px; }
  .logo img{ height:44px; }
}
/* anclas: nunca más un destino tapado por el header */
/* anclas: scroll-margin lo fija _sistema-spark.css (fase A) */

.hero{ padding-top:clamp(2rem, 4vh, 3rem); }

.btn{
  line-height:1.15;
  min-height:var(--ctl-md);
  border-radius:var(--r-full);
  transition:background-color .3s var(--ease-out), color .3s var(--ease-out),
             border-color .3s var(--ease-out), transform .15s var(--ease-out);
}
@media(min-width:980px){
  .hero-ctas .btn, .cierre .btn{ min-height:var(--ctl-lg); }
}
/* el CTA del header nunca bajo el mínimo táctil */
header .btn{ min-height:44px; padding:.6rem 1.2rem; }

/* ── R4 · fotos con radio de MEDIA, no de tarjeta ──────────── */
.tecno-foto,
.video-card,
.ubicacion-foto,
.espejo-foto img,
.banda-foto img,
.origen-figura,
.sesion-foto,
figure img,
.mapa{ border-radius:var(--r-media); }
.persona .retrato{ border-radius:var(--r-media); }

.foto-main,
.hero-visual .marco::before{ border-radius:var(--r-media); }

/* ── 8. EYEBROW — mono discreto, un solo tracking (no carmín) ─ */
.hero-kicker,
.seccion-kicker,
.eyebrow,
.kicker{
  font-family:var(--dato);
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--texto-2);
}

/* ── R5 · ritmo simétrico → lo asumió el sistema (fase B, 19-ago): .sec / .sec-flow
   con los tokens --sec-pad / --sec-pad-flow. Esta regla agrupada se retiró porque
   ganaba por orden a las clases de ritmo. ── */

.cierre{ background:var(--rojo); color:#fff; }

/* ── 9. MOTION — hover de color calmo (.3s), como index ────── */
a, .btn, .card, .dato, .persona{ transition-duration:.3s; }

@media(prefers-reduced-motion:reduce){
  *{ transition:none!important; animation:none!important; }
}

.f-pronto{opacity:.55}

/* FASE 1 COMPRESIÓN — auditoría de tres agentes, ago 2026. */

@media (max-width:700px){
  :root{ --space-xl:52px; --space-l:36px; --space-m:24px }
  .hero{padding-top:24px}
}

@media (max-width:700px){
  .specs{display:grid;grid-template-columns:1fr 1fr;column-gap:1.4rem;max-width:100%}
  .spec:nth-child(n+5){display:none}
  .spec{padding-block:.85rem}
}
@media (max-width:900px){
  .ficha .sesion-detalle{display:none}
  .ficha .sesion-foto{display:none}
}

@media (max-width:700px){
  .martes .video-card{max-width:250px}
}

.espejo .frase{font-size:1.4rem;line-height:1.35}
.espejo ol{gap:1.25rem}
.arista h3{font-size:1.35rem}
.faq summary{padding-block:.8rem;font-size:1rem}
.inv-bloque h2{font-size:var(--step-3)}
@media (max-width:700px){
  .origen-figura{padding:1rem}
}

.spec .sv{color:var(--texto)}
.spec .sv[data-destacar]{color:var(--rojo)} /* fase A: el énfasis se declara en el dato, no por posición */
.espejo em,.martes em,.origen em,.metodo-px em{color:inherit}

.origen-figura{border-radius:24px}
.origen-figura img{border-radius:16px}
.widget-frame iframe{border-radius:16px}
.agenda-eyebrow{font-family:var(--dato);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-2)}
.agenda-eyebrow b{color:var(--rojo)}
.arista h3 span{font-family:var(--dato);font-size:13px;letter-spacing:.14em;color:var(--texto-2)}

/* FASE 2 componentes de las fusiones (auditoría de tres */

/* remate del espejo (ex-sección "martes") */
.espejo-martes{margin-top:var(--space-m);max-width:56ch}
.espejo-martes p{color:var(--texto-2);line-height:1.55}
.espejo-martes .giro{margin-top:.9rem;color:var(--texto);font-size:var(--step-1);line-height:1.4}
/* foto del "otro martes" (render R07, 19-ago): texto + figura en ≥900, apilado abajo */
.espejo-martes{max-width:none;display:grid;grid-template-columns:1fr;gap:1.8rem;align-items:center}
@media(min-width:900px){.espejo-martes{grid-template-columns:minmax(0,56ch) minmax(260px,380px);gap:3.5rem}}
.espejo-martes .martes-txt{max-width:56ch}
.espejo-foto{margin:0;max-width:380px}
.espejo-foto img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.espejo-foto figcaption{margin-top:.7rem;font-size:.85rem;color:var(--texto-2);max-width:36ch}
.lnk-salida{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;color:var(--rojo);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.lnk-salida svg{width:16px;height:16px}
.lnk-salida:hover{color:var(--rojo-oscuro)}

/* caps dentro de método (ex-sección "incluye") */
.claims-caps{display:grid;gap:1.1rem;margin-block:1.3rem}
.claims-caps .cap{display:grid;grid-template-columns:44px 1fr;gap:.4rem 1rem;align-items:start}
.claims-caps .cap-ic{width:44px;height:auto;color:var(--rojo);grid-row:span 2}
.claims-caps h3{font-size:1.05rem;margin:0}
.claims-caps p{grid-column:2;font-size:.92rem;color:var(--texto-2);line-height:1.5}

/* aval compacto dentro de método (ex-sección "aval") */
.aval-mini{margin-top:var(--space-m);border-top:1px solid var(--linea);padding-top:var(--space-m)}
.aval-mini-head{font-family:var(--voz);font-size:14px;letter-spacing:0;text-transform:none;color:var(--texto-2);margin-bottom:1.2rem;max-width:70ch;line-height:1.5}
.aval-mini-grid{display:grid;gap:1.4rem}
@media(min-width:900px){.aval-mini-grid{grid-template-columns:1fr 1fr;gap:2.5rem}}
.aval-mini .experto{display:grid;grid-template-columns:104px 1fr;gap:1.4rem;align-items:start;background:var(--panel);border:1px solid var(--linea);border-radius:var(--r-card,24px);padding:1.4rem 1.5rem}
.aval-mini .experto img{width:104px;height:130px;object-fit:cover;object-position:50% 20%;border-radius:var(--r-m,16px)}
@media(max-width:560px){.aval-mini .experto{grid-template-columns:72px 1fr;gap:1rem}.aval-mini .experto img{width:72px;height:90px}}
.aval-mini blockquote{font-size:.95rem;color:var(--texto-2);line-height:1.5;margin:0}
.aval-mini cite{display:block;font-style:normal;margin-top:.5rem;font-size:.9rem}
.aval-mini cite span{display:block;color:var(--texto-2);font-size:.8rem}

/* rostros junto al calendario (ex-sección "equipo") */
.agenda-equipo{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-top:1.1rem}
.caritas{display:flex;flex:0 0 auto}
.caritas img{flex:none}
.caritas img{width:44px;height:44px;object-fit:cover;object-position:50% 15%;border-radius:50%;border:2px solid var(--blanco);margin-left:-10px}
.caritas img:first-child{margin-left:0}
.agenda-equipo p{font-size:.9rem;color:var(--texto-2);max-width:34ch;text-align:left;margin:0}

/* testimonio 71s dentro de opiniones */
.video-71{margin-top:0}
.video-71 .video-card{max-width:320px}
@media(max-width:760px){.video-71 .video-card{max-width:260px;margin-inline:auto}}
.video-71 figcaption{text-align:center;margin-top:.8rem;font-size:.88rem;color:var(--texto-2);max-width:38ch;margin-inline:auto}

.inversion{margin-top:1rem;max-width:46rem}
.inversion .fila{display:flex;justify-content:space-between;gap:1.5rem;align-items:baseline;padding-block:1rem;border-top:1px solid var(--linea)}
.inversion .fila:last-child{border-bottom:1px solid var(--linea)}
.inversion .fila b{font-weight:400;max-width:36ch}
.inversion .fila b small{display:block;color:var(--texto-2);font-size:.85rem;margin-top:.25rem;font-weight:400}
.inversion .precio{white-space:nowrap;font-size:1.05rem;color:var(--rojo)}
.inversion .precio.precio-consulta{font-size:.92rem;color:var(--texto-2);white-space:normal;text-align:right;max-width:18ch}
@media (max-width:700px){
  .inversion .fila{flex-direction:column;align-items:flex-start;gap:.35rem}
  .inversion .precio.precio-consulta{text-align:left;max-width:none}
}

/* ancla de precio bajo el CTA del hero */
.hero-precio{margin-top:.8rem;font-size:.92rem;color:var(--texto-2)}
.hero-precio b{color:var(--rojo);font-weight:400}

.hero{
  padding-block:clamp(7rem,14vh,10rem) clamp(3rem,6vw,5rem);
  overflow:clip;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:clamp(2.5rem,6vw,5rem);
  align-items:center;
}
@media(max-width:899px){
  .hero-grid{ grid-template-columns:1fr; gap:2.5rem; }
}

.hero-copy{ display:flex; flex-direction:column; align-items:flex-start; }
.hero-title{ max-width:14ch; margin-top:.5rem; }
.hero-title em{ font-style:italic; }
.hero-sub{ color:var(--suave); max-width:46ch; margin-top:1rem; }
.hero-acciones{ margin-top:1.6rem; }
.hero-precio{ margin-top:1rem; font-size:.95rem; color:var(--suave); }
.hero-precio b{ color:var(--tinta); font-weight:500; }
.hero-mini{ margin-top:.6rem; font-size:.92rem; color:var(--suave); }
.hero-mini a{
  color:inherit; text-decoration:underline;
  text-decoration-color:var(--linea); text-underline-offset:3px;
  transition:color .2s var(--ease);
}
.hero-mini a:hover{ color:var(--carmin); }

.hero-visual{ position:relative; margin-inline:clamp(0rem,2vw,1rem); }
.hero-visual .marco{
  position:relative; border-radius:var(--r-hero); overflow:hidden; background:var(--panel);
}
.hero-visual .marco>img{ width:100%; height:auto; object-fit:cover; border-radius:inherit; }
/* nombre de view-transition compartido con las otras páginas que enlazan esta misma foto */
.foto-main{ view-transition-name:foto-paciente; }

.chip-flotante{
  position:absolute; left:clamp(1rem,3vw,1.8rem); bottom:clamp(1rem,3vw,1.8rem);
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--panel); border:1px solid var(--linea); border-radius:var(--r-full);
  padding:.6rem 1.1rem; font-size:.85rem; color:var(--tinta);
  box-shadow:0 18px 40px -20px rgba(34,23,19,.35);
}
.chip-flotante .punto{ width:7px; height:7px; border-radius:50%; background:var(--carmin); flex:none; }
.chip-flotante b{ font-weight:500; }

@media(max-width:479px){ .hero-mini{ font-size:.85rem; } }

/* ---------- anulaciones de reduced-motion por componente ----------
   _motion-spark.css ya trae su propio @media(prefers-reduced-motion:
   reduce) con el estado final de .rv/.rv-clip/.rv-grupo/.lmask, pero
   ese archivo va ANTES de esta hoja en la cascada (_sistema-spark →
   _motion-spark → la hoja de la página página → _header-spark → …): cualquier
   regla de layout que esta página agregue sobre esos mismos
   selectores, con igual o mayor especificidad, podría pisarlo. Se
   repite acá, DESPUÉS del motor, para que el estado final quede
   garantizado pase lo que pase en el resto de esta hoja: siempre
   visible, nunca oculto ni a medio recorrer. */
@media(prefers-reduced-motion:reduce){
  .rv,.js .rv,.js .rv.in{ opacity:1!important; transform:none!important; }
  .js .rv-clip>img,.js .rv-clip.in>img{ clip-path:none!important; transform:none!important; }
  .js .rv-grupo>*,.js .rv-grupo.in>*{ opacity:1!important; transform:none!important; transition-delay:0s!important; }
  .lmask .w i{ transform:none!important; transition:none!important; }
  .plx{ transform:none!important; }
}
/* sin JS: html no lleva la clase .js (la pone _header-spark.js/_motion-spark.js
   de forma síncrona apenas cargan), y todos los selectores de animación del
   motor están calzados bajo «.js …» — la regla base de .rv/.rv-clip/.rv-grupo
   /.lmask (sin ese prefijo) ya es opacidad 1 y sin transform. No hace falta
   una anulación aparte acá: es una propiedad del motor, no algo que esta
   página tenga que repetir; se deja la nota para que quede trazado el porqué. */

/* ---------- scroll-margin-top de las anclas de esta página ----------
   _sistema-spark.css ya trae `[id]{scroll-margin-top:72px}` (114px en
   ≥980 con el header). Estas anclas necesitan 5.5rem exactos: el
   selector por id (#espejo…) gana por especificidad al atributo [id]
   sin necesitar !important. */
/* (fase A) anclas: manda [id] de _sistema-spark.css; la lista por id se retiró */


.hora{padding-block:0;background:transparent;position:relative;z-index:1}
.hora .inner{max-width:620px;margin-inline:auto}
.hora img{width:100%;height:auto;border-radius:var(--r-card);aspect-ratio:4/3;object-fit:cover}
.hora-cab{margin-top:2rem;display:flex;align-items:center;gap:1.4rem}
.anillo60{width:84px;height:84px;flex:none}
@media(max-width:767px){.anillo60{width:68px;height:68px}.hora-cab{gap:1rem}}
.an-track{fill:none;stroke:var(--linea);stroke-width:3}
.an-arco{fill:none;stroke:var(--carmin);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.9s var(--e-expo) .25s}
.hora-cab.in .an-arco{stroke-dashoffset:0}
.an-num{font-family:var(--voz);font-weight:300;font-size:24px;fill:var(--tinta);text-anchor:middle;font-variant-numeric:tabular-nums}
.an-min{font-family:var(--voz);font-weight:500;font-size:8px;letter-spacing:1px;fill:var(--suave);text-anchor:middle}
html:not(.js) .an-arco{stroke-dashoffset:0}
.hora ul{margin-top:1.8rem;list-style:none;display:flex;flex-direction:column;gap:1rem}
/* la lista entra al ritmo del arco: un punto cada ~12 minutos */
/* 20-ago · arranque suave: cascada con tope (.45 s); antes el 5.º ítem esperaba 1,2 s */
.js .hora li.rv:nth-child(2){transition-delay:.12s}.js .hora li.rv:nth-child(3){transition-delay:.24s}.js .hora li.rv:nth-child(4){transition-delay:.36s}.js .hora li.rv:nth-child(5){transition-delay:.45s}
.hora li{display:flex;align-items:baseline;gap:1rem}
.hora li .sq{width:11px;height:11px;border-radius:2px;background:var(--carmin);flex:none;transform:translateY(1px)}

/* ---------- ajustes propios de pelvix.html: el anillo vive dentro de .cap, no de una sección .hora ---------- */
.metodo-px .cap-anillo{display:flex;flex-direction:column}
.metodo-px .hora-anillo{padding-block:0}
.metodo-px .hora-anillo .hora-cab{margin-top:0}
.metodo-px .hora-anillo ul{margin-top:1.2rem;margin-bottom:1rem}

/* ---------- estado sin JS: todo visible, anillo lleno, lista sin cascada ---------- */
html:not(.js) .hora-cab{opacity:1;transform:none}
html:not(.js) .hora li{opacity:1;transform:none}

/* ---------- prefers-reduced-motion: anillo COMPLETO, lista visible, sin cascada ---------- */
@media (prefers-reduced-motion: reduce){
  .an-arco{stroke-dashoffset:0;transition:none}
  .hora-cab{opacity:1;transform:none}
  .hora li{opacity:1;transform:none;transition:none}
}



/* ============ WF-B · migración al sistema Neko-Spark (18-ago-2026) ============ */
/* la tipografía, los tokens y el reset los da _sistema-spark.css; el header,
   los botones, el menú móvil y las transiciones son partials enlazados. Aquí
   solo queda lo propio de pelvix.html. */

/* 28-ago: Questrial no tiene cursiva (a diferencia de Newsreader) — el <em> en
   titulares vuelve al criterio general del sistema: color, no cursiva. */
.h1 em,.dh2 em,.dh3 em{font-style:normal;color:var(--carmin)}
/* el H1 vuelve a la escala serif del sistema: .h1 gana a la vieja .hero h1.
   Se recorta un punto la escala de ≥980 para que el CTA del hero no caiga
   fuera de pantalla en 1440x800 (el aire Neko se mantiene). */
.hero .h1{max-width:15ch}
@media(min-width:980px){
  .hero .h1{font-size:clamp(60px,5.4vw,80px);line-height:1.02;max-width:15ch}
  .dh2{font-size:clamp(44px,4vw,56px);line-height:1.12} /* fase B: H2 de página de programa < H1 */
  .hero{padding-block:clamp(3rem,6vh,4.5rem) clamp(3rem,6vw,5rem)}
}
/* barra móvil: botón del sistema, no el .btn heredado */
.barra-movil .pill{flex:1;justify-content:center;padding-inline:1.1rem}
/* titulares de sección sin clase heredan la voz; los que sí la llevan, la serif */
.opiniones-head h2,.agenda-head h2{font-family:var(--serif)}

/* #contraindicaciones — sección nueva */
.contraindicaciones{background:var(--tinte);border-top:1px solid var(--linea)}
.contraindicaciones .dh2{max-width:20ch}
.contraindicaciones ul.cols-2{max-width:none;gap:.6rem 3rem}
.contraindicaciones ul{list-style:none;margin-top:1.4rem;display:grid;gap:.65rem;max-width:52ch}
.contraindicaciones li{position:relative;padding-left:1.5rem;color:var(--texto-2);line-height:1.5}
.contraindicaciones li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:2px;background:var(--rojo)}
.contraindicaciones .contra-nota{margin-top:1.3rem;max-width:62ch;color:var(--texto-2);font-size:.95rem}

/* #evidencia — sección propia (antes era el .aval-mini dentro de #metodo) */
.evidencia{background:var(--tinte)}
.evidencia .aval-mini{margin-top:var(--space-m)}
.evidencia .experto>span[aria-hidden]{width:56px;height:56px;border-radius:50%;background:var(--tinte);display:block}
.aval-fuente{margin-top:.45rem;font-size:.8rem}
.aval-fuente a{color:var(--rojo);text-decoration:underline;text-underline-offset:3px}
.evidencia-fabricante{margin-top:var(--space-m);padding-top:var(--space-s);border-top:1px solid var(--linea);max-width:62ch;color:var(--texto-2);font-size:.95rem}

/* enlaces dentro del cuerpo: subrayado discreto (el reset del sistema los deja pelados) */
.arista p a,.claims p a,.faq details p a,.evidencia a{text-decoration:underline;text-underline-offset:3px}

/* sin JS el eco del espejo tiene que estar visible (regla dura: sin JS = todo visible).
   La regla base venía sin el candado html.js, así que se repone aquí. */
html:not(.js) .espejo .eco{opacity:1;transform:none}
html:not(.js) .espejo .frase{color:var(--texto)}

/* ficha: la cifra "hasta 25.000" no es un número solo — no se corta */
.spec .sv{text-wrap:balance}


/* --- #agenda-flow --- */
.agenda-sesion{background:var(--tinte);border-top:1px solid var(--linea)}
.agenda-sesion[hidden]{display:none}
.agenda-head{max-width:640px;margin:0 auto var(--space-m);text-align:center}
.agenda-eyebrow{color:var(--rojo);letter-spacing:.02em;margin-bottom:.5rem}
.agenda-eyebrow b{font-weight:400}
.agenda-head h2{font-size:var(--step-2);margin-bottom:.6rem}
.agenda-lead{color:var(--texto-2)}
.widget-frame{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radius);box-shadow:0 18px 50px -30px rgba(21,17,20,.45);padding:.5rem;max-width:840px;margin:0 auto}
.widget-frame iframe{width:100%;min-height:440px;border:0;display:block;border-radius:calc(var(--radius) - 6px)}
.ag-nav{max-width:840px;margin:var(--space-s) auto 0;display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}
.ag-hint{color:var(--texto-2);font-size:.92rem;max-width:48ch}
@media (max-width:560px){.widget-frame iframe{min-height:640px}}

html.llega-a-agenda{scroll-behavior:auto}

#agendar{display:block}

/* --- #vsl --- */
.vsl{background:var(--tinte)}
.vsl-head{max-width:62ch;margin-bottom:var(--space-m)}
.vsl .dh2{font-size:var(--step-3);max-width:22ch;margin-top:.6rem}
.vsl-lead{margin-top:.9rem;color:var(--texto-2);max-width:56ch}
.vsl-card{max-width:min(940px,100%);margin-inline:auto;display:block;text-decoration:none;color:inherit}
.vsl-card .rv-clip{border-radius:var(--radius);overflow:hidden;position:relative}
.vsl-card .rv-clip img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}
.vsl-card .aro{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--blanco);display:flex;align-items:center;justify-content:center;box-shadow:0 18px 40px -18px rgba(21,17,20,.55)}
.vsl-card .aro svg{width:26px;height:26px;color:var(--rojo)}
.vsl-card:hover .aro{background:var(--rojo);color:var(--blanco)}
.vsl-card:hover .aro svg{color:var(--blanco)}
.vsl-card figcaption{margin-top:1rem;text-align:center;color:var(--texto-2);font-size:.95rem}
.vsl-cta{margin-top:1.4rem;text-align:center}
.vsl-card .rv-clip video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:inherit}
.vsl-card.reproduciendo{cursor:default}
/* 20-ago · arranque suave: mientras el video baja su primer frame, el aro late (estado «cargando») */
.vsl-card.cargando .aro{animation:vsl-late 1s ease-in-out infinite}
@keyframes vsl-late{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(.88);opacity:.7}}
@media(prefers-reduced-motion:reduce){.vsl-card.cargando .aro{animation:none;opacity:.7}}
.vsl-card.reproduciendo:hover .aro{background:var(--blanco)}
@media (max-width:560px){
  .vsl-card .aro{width:64px;height:64px}
  .vsl-card .aro svg{width:22px;height:22px}
}

/* --- cierre --- */
.cierre-cruzados{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:center}
.cierre-cruzados a{color:inherit;text-decoration:underline;text-underline-offset:3px;font-size:.92rem}
.cierre-cruzados a:hover{opacity:.85}
.acepta a{color:var(--rojo,var(--carmin));text-decoration:underline;text-underline-offset:.15em}
.acepta{margin-top:.5rem}
.tyc-link{display:inline-block;margin-top:.35rem;color:var(--rojo,var(--carmin));text-decoration:underline;text-underline-offset:.15em;white-space:nowrap}


/* ── CAMBIO DE IDIOMA ────────────────────────────────────────────────
   Un solo chip que lleva al OTRO idioma, no un par de opciones: con dos
   idiomas el estado actual ya lo dice el contenido de la página, y el par
   no cabía —el botón mide 292 px en una columna de 423 y el control de dos
   se pasaba por 10 px, saltando de línea sobre el CTA.
   Colores derivados de currentColor con color-mix: el header cambia de color
   según la sección que tenga debajo (hd-sobre / hd-oscuro / hd-carmin) y
   cualquier valor fijo quedaría invisible en alguno de esos estados.
   Etiqueta larga/corta con el mismo patrón lbl-l / lbl-s del CTA del header. */
/* .hd-cta no era flex y el chip + el botón se pasaban de la columna (423 px) por
   unos pocos píxeles, saltando de línea encima del CTA. nowrap lo impide: si sobra
   ancho, invade el hueco vacío que hay hacia la navegación, que no molesta a nadie. */
.hd-cta{white-space:nowrap}
.hd-sep{display:inline-block;width:1px;height:19px;vertical-align:middle;margin:0 .55rem 0 .3rem;
  background:color-mix(in srgb,currentColor 22%,transparent)}
@media(max-width:900px){.hd-sep{display:none}}
.idi{display:inline-flex;align-items:center;gap:.45rem;margin-right:.55rem;padding:.42rem .7rem;
  border-radius:999px;font-family:var(--dato);font-size:12px;font-weight:500;letter-spacing:.05em;
  color:currentColor;text-decoration:none;vertical-align:middle;opacity:.8;min-height:34px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 28%,transparent);
  transition:opacity .2s var(--ease),box-shadow .2s var(--ease)}
.idi:hover{opacity:1;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 55%,transparent)}
.idi .fl{width:17px;height:11.3px;border-radius:2px;display:block;flex:none;box-shadow:0 0 0 .5px rgba(0,0,0,.28)}
.idi .idi-s{display:none}
@media(max-width:900px){
  .idi{padding:.38rem .6rem;margin-right:.4rem;gap:.4rem}
  .idi .idi-l{display:none}.idi .idi-s{display:inline}
}
@supports not (background:color-mix(in srgb,red 50%,blue)){
  .idi{box-shadow:inset 0 0 0 1px rgba(128,128,128,.42)}
  .hd-sep{background:rgba(128,128,128,.42)}
}


/* ritmo-v3 (auditoría de espacios 19-ago, OK Arturo): --space-xl 100–180 → 84–150 px (173→144 en 1440):
   el hueco entre contenidos de secciones seguidas pasa de ≈346 a ≈290 px; móvil 100→84. */
:root{--space-xl:clamp(84px,10vw,150px)}
/* hero en móvil/tablet (<980): la regla `.hero{padding-block:clamp(7rem,14vh,10rem)…}` (línea ~1507) pisaba a
   las de 560/700 px y dejaba ~112 px de aire muerto sobre el eyebrow (captura de Arturo 19-ago). Con
   .hero-sec/-56px del header no aplica aquí (la sección no lleva .hero-sec), así que basta un top corto. */
@media(max-width:979px){ .hero{padding-top:clamp(1.1rem,3.5vw,1.8rem)} }
/* foto del hero: el marco no pinta placa clara (si algo desajusta, nunca asoma un marco blanco) y la imagen
   llena exactamente el marco (3:4 fijo, sin altura suelta); radio idéntico en marco e imagen. */
.hero-visual .marco{background:var(--tinte);isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}
.hero-visual .marco>img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:inherit;clip-path:none!important;transform:none!important}


/* == PARCHE MOVIL SPARK · pegado desde _movil-spark.css == */
/* PARCHE MÓVIL SPARK — fuente única, se pega VERBATIM como */

@media (max-width:700px){
  .inversion .fila{
    flex-direction:column; align-items:flex-start; gap:.45rem;
  }
  .inversion .fila b{max-width:none}
  .inversion .precio{white-space:normal}
  /* el precio en palabras deja de imitar a un número: es una nota */
  .inversion .precio.precio-consulta{font-size:1rem;line-height:1.4}
}

@media (max-width:360px){
  header.site{gap:.8rem}
  header.site .pill{padding:.5rem .8rem .5rem 1rem;font-size:14px;gap:.35rem}
  header.site .pill svg{width:16px;height:16px}
}

header.site nav a,
.svc-btn{
  min-height:44px; padding-block:.55rem;
  display:inline-flex; align-items:center;
}

/* el logo: 40 → 44. Es el único camino de vuelta al home desde una
   subpágina y estaba 4 px bajo el mínimo. */
@media (max-width:979px){
  .logo-box{width:44px;height:44px}
}

@media (max-width:900px){
  footer.site .col a,
  footer .col a,
  footer ul li a,
  footer .partners a,
  .f-pronto{
    min-height:44px; display:inline-flex; align-items:center;
    padding-block:.35rem;
  }
}

@media (max-width:900px){
  .faq .wsp a,
  .faq-wsp a,
  .glink,
  .cierre-tel,
  .mono-line a,
  .cta-nota a,
  .perfil-ig,
  .perfil a[href*="instagram"],
  .cierre2 .duda a,
  
  .ubi li b a,
  a[href^="tel:"]{
    min-height:44px; display:inline-flex; align-items:center;
  }
}

@media (max-width:700px){
  .spec .sk,
  .tcard .info .rol,
  .perfil-rol,
  .perfil-badge,
  .banda-kicker,
  .oferta .badge,
  .oferta li .valor,
  .cifras span,
  .mono-line,
  .cta-nota,
  
  .espejo-cta .espejo-nota,
  .vcard .vtag,
  .aval-card .badge,
  .aval-card .fila .ai,
  .paso .pn,
  .banda-cine .pie .meta,
  /* el cierre de dos puertas y el panel de Servicios del home: código
     propio que no cumplía su propio piso. */
  .costura .chip,
  .puerta .pt-num,
  .puerta .pt-desde,
  .svc-card .sc-nm,
  .svc-card .sc-pronto,
  .isapres span,
  footer.site .fk,
  footer.site .legal,
  footer.site .legal span{
    font-size:12.5px;
    letter-spacing:.09em;   /* al achicar, el tracking abierto separa de más */
  }
  .inversion .fila b small,
  .oferta li p,
  .oferta .condiciones,
  .tabla-nota,
  figcaption{
    font-size:14px; line-height:1.55;
  }
}

@media (max-width:900px){
  .mom-metodo figure img,
  .banda-foto img,
  .espejo-foto img,
  .tecno-foto,
  .sesion-foto,
  .origen-figura img{
    max-height:min(78vh,600px);
  }
}

@media (max-width:900px){
  body{padding-bottom:0}
  .cierre,
  .cierre2,
  footer.site{
    padding-bottom:calc(clamp(2rem,7vw,3.5rem) + env(safe-area-inset-bottom,0px));
  }
}

@media (max-width:900px){
  .sesion-grid{gap:2rem}
  .sesion-grid .oferta{order:-1}
  .oferta{padding:1.5rem 1.3rem}
  .oferta ul{margin-top:1.15rem;gap:.85rem}
  .oferta li p{display:none}
  .oferta .btn{margin-top:1.2rem;padding-block:1rem}
  .oferta .condiciones{margin-top:.85rem}

  .oferta li{grid-template-columns:auto 1fr;row-gap:.15rem}
  .oferta li .valor{
    grid-column:2;justify-self:start;white-space:normal;
    font-size:.82rem;letter-spacing:.04em;opacity:.9;
  }
}

.inv-bloque{margin-top:var(--space-l)}
.inv-bloque h2{font-size:var(--step-2);max-width:24ch}
.inv-bloque .inv-lead{margin-top:.9rem;max-width:56ch;color:var(--texto-2)}

.ficha .oferta{margin-top:var(--space-m);max-width:46rem}
.ficha .abono{
  margin-top:var(--space-m);max-width:46rem;
  font-size:1.05rem;line-height:1.5;color:var(--texto);
}
.ficha .sesion-detalle{margin-top:.9rem;max-width:56ch;color:var(--texto-2);font-size:1rem}
.ficha .reembolso-h{
  margin-top:var(--space-m);font-size:.95rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--texto-2);
}

.ficha .sesion-foto{margin-top:var(--space-m);border:0;width:min(46rem,100%)}
/* ─── correcciones WF-C (frente pelvix) ─── */
.hero .hero-nota{margin-top:.7rem;max-width:54ch;font-size:.95rem;line-height:1.45;color:var(--texto-2)}
.metodo-px .def-citable{margin-bottom:.9rem;color:var(--texto)}
.ficha h2#ficha-h{margin:0}
.contraindicaciones .revision-clinica{margin-top:.9rem;font-size:.88rem;color:var(--texto-2)}
.chip-flotante small{display:block;font-size:.68rem;letter-spacing:.04em;opacity:.8;font-weight:400}
/* partners: viven en el footer oscuro — los logos blancos brillan ahí */
.partners{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;align-items:center}
.partners img{height:24px;width:auto;opacity:.75;transition:opacity .15s var(--ease)}
.partners img.inv{filter:invert(1) grayscale(1)}
.partners img:hover{opacity:1}
@media(max-width:560px){
  .agenda-equipo{flex-direction:column;gap:.6rem}
  .agenda-equipo p{text-align:center;max-width:32ch}
}

/* ===== fase B (19-ago) · #inversion en grilla: oferta | foto + notas, y las dos tablas a dos columnas ===== */
.inv-bloque{max-width:none}
.inv-grid{margin-top:var(--space-m);align-items:start}
.inv-grid .oferta{margin-top:0}
.inv-lado .figura img{box-shadow:0 26px 55px -25px rgba(0,0,0,.35)}
.inv-lado .abono{margin-top:1.4rem;font-family:var(--serif);font-size:var(--step-1);line-height:1.4;max-width:40ch}
.inv-lado .sesion-detalle{margin-top:1rem;max-width:44ch}
.inv-tablas{margin-top:var(--space-l);gap:2rem clamp(2rem,5vw,4rem)}
.inversion-sesion .reembolso-h{margin-top:0;margin-bottom:.4rem;font-size:clamp(22px,2.2vw,28px);line-height:1.2;font-family:var(--serif)}
.inversion-sesion .inversion{max-width:none;margin-top:.6rem}
.inversion-sesion .tabla-nota{margin-top:1rem;font-size:.9rem;color:var(--texto-2);max-width:48ch}
@media(max-width:899px){.inv-lado .figura{max-width:420px}}

/* ═══════ RUTA DESPUÉS DE LA SESIÓN DE PRUEBA ═══════
   Portado de mom.html (§rutas): tabs + camino animado con una parada que se
   colapsa. Aquí la bifurcación es una sola: si traes orden médica te saltas la
   evaluación y partes directo en kinesiología. Usa los mismos tokens locales
   que mom (--rojo/--tinte/--texto-2/--radius/--ease-out), que esta página define. */

