/* Pedi-Spa · ficha podológica
   Escenario partido: columna de lectura sobre papel + escenario fijo con el dedo dibujado. */

@font-face{
  font-family:"Hanken Grotesk";
  src:url("../assets/fonts/hanken-grotesk-latin.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("../assets/fonts/hanken-grotesk-italic-latin.woff2") format("woff2");
  font-weight:100 900; font-style:italic; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ink-hover:#2A3854;
  --paper:#F4F5F2;
  --paper-2:#E8EBE6;
  --white:#FFFFFF;
  --ink:#142033;
  --ink-2:#3B465C;
  --red:#C8302A;
  --on-ink:#F4F5F2;
  --on-ink-2:#BFC8D8;

  --font:"Hanken Grotesk","Segoe UI",system-ui,-apple-system,sans-serif;
  --t-xs:0.875rem;                          /* 14px notas */
  --t-s:1.0625rem;                          /* 17px texto */
  --t-m:clamp(1.25rem,1.1rem + .6vw,1.625rem);   /* 20–26 */
  --t-l:clamp(2rem,1.5rem + 1.6vw,2.75rem);      /* 32–44 */
  --t-xl:clamp(2.75rem,1.6rem + 4.2vw,5.25rem);  /* 44–84 */
  --t-fig:clamp(2.75rem,1.9rem + 3.2vw,4.75rem);  /* cifras 44–76 */

  --m:clamp(16px,3.2vw,48px);
  --gap-section:clamp(88px,9vw,152px);
  --measure:62ch;

  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.76,0,.24,1);
  --t-press:140ms; --t-hover:180ms; --t-ui:240ms; --t-reveal:800ms;
  color-scheme:light;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font); font-size:var(--t-s); line-height:1.55; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,video,svg{ display:block; max-width:100%; height:auto; }
figure{ margin:0; }
a{ color:inherit; text-underline-offset:.22em; text-decoration-thickness:.08em; }
h1,h2,h3,h4{ margin:0; font-weight:800; line-height:1.05; letter-spacing:-.02em; text-wrap:balance; }
p{ margin:0; text-wrap:pretty; }
ul{ margin:0; padding:0; list-style:none; }
em{ font-style:normal; }
::selection{ background:var(--ink); color:var(--on-ink); }
:focus-visible{ outline:3px solid var(--red); outline-offset:3px; }
html{ scrollbar-color:var(--ink-2) var(--paper-2); }

.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.container{ width:100%; }

/* ---------- botones ---------- */
.btn,.btn-wa,.nav__cta,.price-card__cta,.btn-gold,.btn-ghost,.svc__link{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  min-height:52px; padding:.85em 1.4em; border:0; border-radius:0;
  background:var(--ink); color:var(--on-ink); text-decoration:none;
  font:700 var(--t-s)/1.1 var(--font); letter-spacing:0; cursor:pointer;
  transition:background-color var(--t-hover) ease, transform var(--t-press) var(--ease-out);
}
.btn svg,.btn-wa svg,.nav__cta svg{ width:20px; height:20px; flex:none; }
.btn:hover,.btn-wa:hover,.nav__cta:hover,.price-card__cta:hover{ background:var(--ink-hover); }
.btn:active,.btn-wa:active,.nav__cta:active,.price-card__cta:active{ transform:translateY(1px) scale(.985); }
.btn--paper{ background:var(--on-ink); color:var(--ink); }
.btn--paper:hover{ background:var(--white); color:var(--ink); }
.link{ font-weight:700; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:.12em; transition:color var(--t-hover) ease; }
.link:hover{ color:var(--red); }

/* ---------- barra superior ---------- */
.nav{ background:var(--ink); color:var(--on-ink); position:relative; z-index:20; }
.nav > .container:not(.nav__wrap){ padding:0; }
.nav__wrap,.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px var(--m); min-height:68px; }
.nav__brand,.nav__logo{ display:flex; align-items:baseline; gap:12px; color:var(--on-ink); text-decoration:none; font-weight:800; font-size:var(--t-m); letter-spacing:-.01em; }
.nav__brand span,.nav__logo small{ display:block; font-weight:600; font-size:var(--t-xs); color:var(--on-ink-2); letter-spacing:0; }
.nav__brand > div{ display:flex; flex-direction:column; gap:2px; line-height:1.1; }
.nav__logo-img{ display:none; }
.nav__cta{ min-height:44px; padding:.6em 1.1em; background:var(--on-ink); color:var(--ink); font-size:var(--t-xs); white-space:nowrap; flex:none; }
.nav__cta:hover{ background:var(--white); color:var(--ink); }

/* ---------- escenario partido ---------- */
.stage-page{ position:relative; }
.read{ --lp:var(--m); --rp:var(--m); padding:0 var(--rp) 0 var(--lp); min-width:0; }
.bleed,.stats-strip,.domicilio-card,.highlight-box,.cta-band > .container{ margin-left:calc(var(--lp) * -1); margin-right:calc(var(--rp) * -1); }
.stage{ background:var(--white); }

@media (min-width:1024px){
  .stage-page{ display:grid; grid-template-columns:minmax(0,52fr) minmax(0,48fr); align-items:start; }
  .read{ --rp:clamp(40px,5vw,88px); }
  .stage{ position:sticky; top:0; height:100svh; min-height:640px; display:flex; flex-direction:column; justify-content:center; padding:32px clamp(28px,3.4vw,56px); }
}

/* ---------- héroe (columna de lectura) ---------- */
.hero{ padding-block:clamp(40px,6vw,88px) clamp(56px,7vw,104px); display:flex; flex-direction:column; gap:20px; }
.hero__left{ display:flex; flex-direction:column; gap:20px; }
.urgency-badge{ order:4; display:flex; gap:10px; align-items:baseline; font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.urgency-dot{ width:10px; height:10px; background:var(--red); flex:none; transform:translateY(-1px); }
.hero__lead,.hero__text .sub{ font-weight:600; font-size:var(--t-m); color:var(--ink-2); line-height:1.3; max-width:30ch; letter-spacing:-.01em; }
.hero__h1,.hero h1{ order:-1; display:block; font-weight:800; line-height:1; letter-spacing:-.03em; max-width:none; --cap:var(--t-xl); }


.hero__sub,.hero__text .subtitle{ font-size:var(--t-s); max-width:52ch; color:var(--ink); }
.hero__actions,.hero__cta{ display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; margin-top:4px; }
.btn-outline{ display:inline-flex; align-items:center; gap:.5em; min-height:44px; font-weight:700; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:.12em; }
.btn-outline svg{ width:16px; height:16px; }
.btn-outline:hover{ color:var(--red); }
.hero__trust{ display:flex; flex-wrap:wrap; gap:10px 24px; order:5; }
.hero__trust-badge,.hero__trust > div{ display:flex; align-items:center; gap:10px; font-weight:600; font-size:var(--t-xs); }
.hero__trust-badge::before,.hero__trust > div::before{ content:""; width:12px; height:12px; background:var(--ink); flex:none; }
.hero__trust svg{ display:none; }
.zones-grid{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; } /* repite las zonas de la línea de arriba; queda para lectores de pantalla */
.zone-pill{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.zone-pill::before{ content:""; width:8px; height:8px; background:var(--red); }
.zone-pill svg{ display:none; }
.hero__right,.hero__media{ order:7; margin-top:16px; background:var(--ink); }
.hero__media video,.hero__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (max-width:1023.98px){
  .hero__left{ display:contents; }
  .hero__h1{ order:1; } .hero__lead{ order:2; } .ficha-peek{ order:3; } .hero__sub{ order:4; } .hero__actions{ order:5; } .hero__media{ order:6; margin-top:4px; } .urgency-badge{ order:7; } .hero__trust{ order:8; } .zones-grid{ order:9; }
  .hero__media video{ aspect-ratio:16/10; }
  .hero__lead{ font-size:var(--t-s); }
}

/* ---------- encabezados de sección ---------- */
.section,.section-sm,.map-section,.cta-band{ padding-block:var(--gap-section) 0; }
.section-header{ display:flex; flex-direction:column; gap:14px; margin-bottom:40px; container-type:inline-size; }
.section-header .section-sub,.section-header .section-lead{ max-width:56ch; }
.section-header--center{ text-align:left; margin-inline:0; }
.section-sub{ order:2; font-weight:600; font-size:var(--t-m); color:var(--ink-2); letter-spacing:-.01em; line-height:1.3; }
.section-sub::before{ content:none; }
.section-h2{ order:1; }
.section-h2 em{ color:inherit; }
.section-lead{ order:3; font-size:var(--t-s); max-width:56ch; }

/* ---------- cifras ---------- */

.stats-strip .container{ padding:0; }
.stats-strip__inner{ display:grid; grid-template-columns:1fr; background:var(--white); }
.stat-item{ display:flex; flex-direction:row-reverse; align-items:center; justify-content:space-between; gap:18px; padding:16px var(--rp) 16px var(--lp); min-height:0; }
.stat-item:nth-child(even),.stats__item:nth-child(even){ background:var(--paper-2); }
.stat-item:nth-child(odd),.stats__item:nth-child(odd){ padding-left:var(--lp); }
.stat-item__num{ font-weight:800; font-size:var(--t-m); line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; text-align:right; }
.stat-item__label{ display:flex; align-items:center; gap:14px; font-weight:700; font-size:var(--t-s); line-height:1.25; }
.stat-item__label::before,.stats__item span::before{ content:""; flex:none; width:14px; height:14px; background:var(--ink); }


/* ---------- servicios como lista de ficha ---------- */
.services-compact{ display:grid; grid-template-columns:1fr; background:var(--white); padding:clamp(20px,3vw,40px); gap:0; }
@media (min-width:640px){ .services-compact{ grid-template-columns:1fr 1fr; column-gap:40px; } }
.service-pill{ display:grid; grid-template-columns:20px 1fr; gap:14px; padding:14px 0; align-items:start; }
.service-pill::before{ content:""; width:16px; height:16px; margin-top:4px; background:var(--ink); }
.service-pill:nth-child(2)::before,.service-pill:nth-child(8)::before{ background:var(--red); }
.service-pill__icon,.feature-icon,.price-card__icon,.cobertura-card__icon,.map-detail__icon,.domicilio-card > div:last-child:not(:first-child){ display:none !important; }
.service-pill__text strong{ display:block; font-size:var(--t-s); font-weight:700; line-height:1.25; }
.service-pill__text span{ display:block; font-size:var(--t-xs); color:var(--ink-2); margin-top:2px; }

/* ---------- tarifas: cuatro campos sin hueco ---------- */
.pricing-grid{ display:grid; grid-template-columns:1fr; margin-left:calc(var(--lp) * -1); margin-right:calc(var(--rp) * -1); }
@media (min-width:640px){ .pricing-grid{ grid-template-columns:1fr 1fr; margin-inline:0; } }
.price-card{ position:relative; display:flex; flex-direction:column; gap:12px; padding:clamp(24px,3vw,36px); min-height:320px; background:var(--white); color:var(--ink); }
.price-card:nth-child(2){ background:var(--ink); color:var(--on-ink); }
.price-card:nth-child(3){ background:var(--paper-2); }
.price-card:nth-child(4){ background:var(--white); }
.price-card__badge{ order:1; font-weight:600; font-size:var(--t-xs); opacity:.9; margin-top:-6px; }
.price-card__name{ order:0; }
.price-card__desc{ order:2; }
.price-card__footer{ order:3; }
.price-card__name{ font-weight:800; font-size:var(--t-m); line-height:1.1; letter-spacing:-.015em; }
.price-card__desc{ font-size:var(--t-xs); line-height:1.5; max-width:38ch; }
.price-card__footer{ margin-top:auto; display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; }
.price-card__price{ font-weight:800; font-size:min(var(--t-fig), 19cqi); line-height:.95; letter-spacing:-.035em; font-variant-numeric:tabular-nums; display:flex; flex-direction:column; gap:6px; }
.price-card__price small,.price-card__price span + small{ font-size:var(--t-xs); font-weight:600; letter-spacing:0; }
.price-card__price span{ font-size:var(--t-m) !important; letter-spacing:-.01em; }
.price-card__cta{ min-height:44px; padding:.6em 1em; background:var(--ink); color:var(--on-ink); font-size:var(--t-xs); }
.price-card:nth-child(2) .price-card__cta{ background:var(--on-ink); color:var(--ink); }
.price-card:nth-child(2) .price-card__cta:hover{ background:var(--white); color:var(--ink); }
.price-card__cta svg{ width:16px; height:16px; }
.pricing-note{ margin-top:24px; font-size:var(--t-s); max-width:56ch; }
.pricing-note a{ font-weight:700; text-decoration-color:var(--red); text-decoration-thickness:.12em; }

/* tarifas de la landing de uñas (h3 por tarjeta) */
.card-grid{ display:grid; grid-template-columns:1fr; margin-left:calc(var(--lp) * -1); margin-right:calc(var(--rp) * -1); }
@media (min-width:640px){ .card-grid{ grid-template-columns:1fr 1fr; margin-inline:0; } }
.feature-card{ display:flex; flex-direction:column; gap:12px; padding:clamp(24px,3vw,36px); background:var(--white); }
.feature-card h3{ line-height:1.1; letter-spacing:-.015em; }
.feature-card p{ font-size:var(--t-xs); max-width:40ch; }
.card-grid .feature-card.price-card:nth-child(2){ background:var(--ink); color:var(--on-ink); }
.card-grid .feature-card.price-card:nth-child(3){ background:var(--paper-2); }
.card-grid .feature-card.price-card:nth-child(4){ background:var(--white); }
.feature-card .price{ font-weight:800 !important; font-size:var(--t-fig) !important; line-height:.95 !important; letter-spacing:-.035em; color:inherit !important; font-variant-numeric:tabular-nums; margin:0 !important; }
.feature-card .price span{ color:inherit !important; opacity:.85; letter-spacing:0; font-size:var(--t-xs); font-weight:600; }
.feature-card .price{ display:flex; flex-direction:column; gap:6px; font-size:min(var(--t-fig), 19cqi) !important; }
.feature-card .price--text{ font-size:var(--t-m) !important; letter-spacing:-.01em; }
.card-grid--3 .feature-card:not(.price-card){ background:var(--white); }

/* ---------- campo azul noche ---------- */
.section-sm{ padding-block:var(--gap-section) 0; }
.domicilio-card,.highlight-box{ background:var(--ink); color:var(--on-ink); padding:clamp(32px,5vw,64px) var(--rp) clamp(32px,5vw,64px) var(--lp); display:block; }
.domicilio-card h3,.highlight-box h3{ }

.domicilio-card p,.highlight-box p{ margin-top:18px; max-width:52ch; color:var(--on-ink); }
.domicilio-card .btn-wa{ margin-top:28px; background:var(--on-ink); color:var(--ink); }
.domicilio-card .btn-wa:hover{ background:var(--white); color:var(--ink); }


/* ---------- por qué (split) ---------- */
.split{ display:grid; gap:32px; }
.split__visual{ background:var(--paper-2); }
.split__visual img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
@container (min-width:880px){ .split{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:start; } }
.read .split__visual{ order:-1; } /* en la columna de lectura la foto abre el bloque */
.benefit-list{ display:grid; gap:18px; }
.benefit-item{ display:grid; grid-template-columns:28px 1fr; gap:14px; align-items:start; }
.benefit-check{ width:22px; height:22px; background:var(--ink); color:var(--on-ink); display:grid; place-items:center; margin-top:2px; }
.benefit-check svg{ width:14px; height:14px; }
.benefit-item p{ font-size:var(--t-s); }
.benefit-item strong{ font-weight:800; }

/* ---------- tabla comparativa ---------- */
.compare-table{ width:100%; border-collapse:collapse; font-size:var(--t-xs); background:var(--white); }
.compare-table th,.compare-table td{ text-align:left; padding:14px 16px; vertical-align:top; }
.compare-table thead th{ background:var(--ink); color:var(--on-ink); font-weight:700; }
.compare-table tbody tr:nth-child(even){ background:var(--paper); }
.compare-table .col-us{ font-weight:700; }
.compare-table .col-them{ color:var(--ink-2); }
.compare-table thead .col-them{ color:var(--on-ink-2); }
.compare-table .check-green{ color:var(--ink); } .compare-table .cross-red{ color:var(--red); }
.table-scroll,.compare-wrap{ overflow-x:auto; }

/* ---------- propuesta de valor (h4) ---------- */
.vp-grid,.card-grid--4{ display:grid; gap:0; background:var(--white); }
@media (min-width:640px){ .vp-grid,.card-grid--4{ grid-template-columns:1fr 1fr; } }
.vp-card{ padding:clamp(22px,3vw,32px); display:flex; flex-direction:column; gap:10px; background:transparent; }
.vp-card:nth-child(1),.vp-card:nth-child(4){ background:var(--paper-2); }
.vp-card h4{ }
.vp-card p{ font-size:var(--t-xs); }
.emo{ display:none; }

/* ---------- pasos ---------- */
.steps,.process-steps{ display:grid; gap:0; counter-reset:none; }
@media (min-width:640px){ .steps,.process-steps{ grid-template-columns:1fr 1fr; } }
.step,.process-step{ padding:clamp(22px,3vw,32px); background:var(--white); display:flex; flex-direction:column; gap:10px; }
.step:nth-child(2),.step:nth-child(3){ background:var(--paper-2); }
.step__num,.process-step__num{ font-weight:800; font-size:var(--t-l); line-height:1; color:var(--red); }
.step h4,.process-step h4{ }
.step p{ font-size:var(--t-xs); }

/* ---------- reseñas (5,0 en Google) ---------- */
.testimonials{ display:block; }
.testimonials--google .testimonial-card,.testimonial-card{ background:var(--white); padding:clamp(28px,4vw,48px); display:grid; gap:14px; text-align:left; max-width:none; }
.testimonial-stars{ color:var(--red); }
.testimonial-google__score{ font-weight:800; font-size:var(--t-fig); line-height:.9; letter-spacing:-.04em; color:var(--ink); margin:0; }
.testimonial-google__text{ font-size:var(--t-s); color:var(--ink); max-width:52ch; margin:0; }
.testimonial-google__link{ font-weight:700; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:.12em; min-height:44px; display:inline-flex; align-items:center; }
.testimonial-google__link:hover{ color:var(--red); }

/* ---------- preguntas como texto de lectura ---------- */
.faq-list{ display:grid; gap:28px; max-width:64ch; }
.faq-item{ display:grid; gap:6px; }
.faq-question{ font-weight:800; font-size:var(--t-s); line-height:1.35; color:var(--ink); }
.faq-question .faq-icon,.faq-icon{ display:none; }
.faq-answer{ display:block !important; max-height:none !important; opacity:1 !important; padding:0 !important; font-size:var(--t-s); color:var(--ink); }

/* ---------- llamado final ---------- */
.cta-band{ padding-block:var(--gap-section) 0; }
.cta-band > .container{ background:var(--ink); color:var(--on-ink); padding:clamp(40px,6vw,80px) var(--rp) clamp(40px,6vw,80px) var(--lp); }

.cta-band__h2{ }
.cta-band__h2 em{ color:inherit !important; font-style:normal !important; }

.cta-band__sub{ margin-top:18px; max-width:52ch; }
.cta-band__actions{ margin-top:28px; display:flex; flex-wrap:wrap; gap:12px; }
.cta-band .btn-wa{ background:var(--on-ink); color:var(--ink); }
.cta-band .btn-wa:hover{ background:var(--white); color:var(--ink); }

/* ---------- cobertura y mapa ---------- */
.map-grid{ display:grid; gap:0; }
@media (min-width:640px){ .map-grid{ grid-template-columns:1fr 1fr; } }
.cobertura-card{ background:var(--white); padding:clamp(24px,3.4vw,40px); display:flex; flex-direction:column; gap:14px; }
.cobertura-card__sub{ order:2; font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.cobertura-card h3{ order:1; }
.cobertura-card h3 em{ color:inherit; }
.cobertura-card p{ order:3; font-size:var(--t-xs); }
.cobertura-zonas{ order:4; display:flex; flex-wrap:wrap; gap:6px 18px; font-weight:600; font-size:var(--t-xs); }
.cobertura-zonas li{ display:inline-flex; align-items:center; gap:8px; }
.cobertura-zonas li::before{ content:""; width:8px; height:8px; background:var(--red); }
.cobertura-card .btn-wa,.cobertura-card__cta{ order:5; align-self:flex-start; margin-top:6px; }
.map-info{ background:var(--paper-2); padding:clamp(24px,3.4vw,40px); display:flex; flex-direction:column; gap:18px; }
.map-info h3{ }

.map-info h3 em{ color:inherit !important; font-style:normal !important; }
.map-detail{ display:grid; gap:2px; }
.map-detail__text p{ font-size:var(--t-xs); color:var(--ink-2); font-weight:600; }
.map-detail__text strong{ font-weight:700; font-size:var(--t-s); }
.map-detail__text strong br{ display:block; }
.map-frame{ grid-column:1 / -1; background:var(--paper-2); }
.map-frame iframe{ display:block; width:100%; height:360px; border:0; }

/* ---------- pie ---------- */
.footer-lp,.footer{ padding:clamp(56px,7vw,96px) var(--m) calc(32px + env(safe-area-inset-bottom,0px)); color:var(--ink-2); font-size:var(--t-xs); background:var(--paper); }
.footer-lp__inner{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px 32px; align-items:baseline; }
.footer-lp__brand{ color:var(--ink); font-weight:800; font-size:var(--t-m); display:flex; flex-direction:column; gap:4px; }
.footer-lp__brand span{ font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.footer-lp__links{ display:flex; flex-wrap:wrap; gap:8px 24px; }
.footer-lp__links a{ color:var(--ink); font-weight:600; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
.footer-lp__links a:hover{ color:var(--red); text-decoration:underline; }
.footer-lp__bottom{ margin-top:20px; }

/* ---------- escenario: diagrama y calculadora ---------- */
.stage__sheet{ display:flex; flex-direction:column; gap:20px; width:100%; max-width:560px; margin-inline:auto; }
.stage__head{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-weight:800; font-size:var(--t-s); }
.stage__head span{ font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.diagram{ position:relative; width:100%; height:clamp(240px,46svh,520px); }
.diagram{ container-type:size; }
.diagram__fit{ position:relative; width:min(100cqw, 100cqh * 410 / 446); aspect-ratio:410 / 446; margin-inline:auto; }
.diagram__fit svg{ position:absolute; inset:0; width:100%; height:100%; }
.diagram .state{ opacity:0; transition:opacity 260ms ease; }
.diagram[data-state="canales"] .state--canales,
.diagram[data-state="una"] .state--una,
.diagram[data-state="planta"] .state--planta{ opacity:1; transition:opacity 700ms ease 280ms; }
.diagram .canal{ fill:none; stroke:var(--red); stroke-width:16; stroke-linecap:round; opacity:.22; transition:opacity var(--t-ui) ease, stroke-width var(--t-ui) var(--ease-out); }
.diagram .canal.is-on{ opacity:1; }
.diagram .note{ font-family:var(--font); font-style:italic; font-weight:600; font-size:22px; fill:var(--red); }
.diagram .lead{ stroke:var(--red); stroke-width:4; stroke-linecap:round; fill:none; }
.diagram .canal-hit{ position:absolute; width:18%; height:34%; top:29%; border:0; background:transparent; cursor:pointer; padding:0; }
.diagram .canal-hit--l{ left:14%; } .diagram .canal-hit--r{ left:63%; }
.diagram .canal-hit:focus-visible{ outline:3px solid var(--red); outline-offset:-3px; }

.calc{ display:grid; gap:14px; }
.calc fieldset{ border:0; margin:0; padding:0; display:grid; gap:8px; }
.calc legend{ font-weight:700; font-size:var(--t-xs); color:var(--ink-2); padding:0; margin-bottom:6px; }
.calc .opts{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.calc .opt{ position:relative; }
.calc .opt input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.calc .opt span{ position:relative; display:flex; flex-direction:column; gap:2px; min-height:50px; justify-content:center; padding:10px 14px 10px 42px; background:var(--paper); font-weight:700; font-size:var(--t-xs); line-height:1.2; transition:background-color var(--t-hover) ease, color var(--t-hover) ease; }
.calc .opt span::before{ content:""; position:absolute; left:14px; top:50%; width:16px; height:16px; margin-top:-8px; background:#C3C9D3; transition:background-color var(--t-ui) ease, transform var(--t-ui) var(--ease-out); }
.calc .opt input:checked + span::before{ background:var(--red); transform:scale(1.12); }
.calc .opt span small{ font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.calc .opt input:checked + span{ background:var(--white); color:var(--ink); outline:3px solid var(--ink); outline-offset:-3px; }
.calc .opt input:focus-visible + span{ outline:3px solid var(--red); outline-offset:2px; }
.calc .opt:hover span{ background:var(--paper-2); }
.calc .opt input:checked:hover + span{ background:var(--white); }
.calc__total{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-top:4px; }
.calc__total span{ font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.calc__total output{ font-weight:800; font-size:var(--t-l); letter-spacing:-.035em; font-variant-numeric:tabular-nums; line-height:1; }
.calc .btn{ width:100%; min-height:56px; }
.stage__foot{ font-size:var(--t-xs); color:var(--ink-2); font-weight:600; }
.stage__foot a{ color:var(--ink); }

/* teléfono: el escenario es una hoja que sube desde la barra inferior */
@media (max-width:1023.98px){
  .js .stage{ position:fixed; left:0; right:0; bottom:0; z-index:40; max-height:calc(100svh - 76px); overflow:auto; padding:20px var(--m) calc(96px + env(safe-area-inset-bottom,0px)); transform:translateY(105%); transition:transform 420ms var(--ease-in-out); border-top:8px solid var(--ink); }
  .js .stage.is-open{ transform:none; }
  .js .stage .diagram{ max-width:340px; margin-inline:auto; }
  .no-js .stage,.stage{ padding:40px var(--m) 56px; }
}
.wa-float,.whatsapp-float{ display:none !important; }

/* ---------- aviso de domicilio (no modal) ---------- */
.aviso-domicilio{ position:fixed; left:max(16px,env(safe-area-inset-left,0px)); bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:60; width:min(340px, calc(100vw - 32px)); opacity:0; transform:translateY(12px); transition:opacity 300ms ease, transform 420ms var(--ease-out); pointer-events:none; }
@media (min-width:1024px){ .aviso-domicilio{ bottom:24px; } }
.aviso-domicilio.is-visible{ opacity:1; transform:none; pointer-events:auto; }
.aviso-domicilio[hidden]{ display:none; }
.aviso-domicilio__card{ background:var(--ink); color:var(--on-ink); padding:18px 48px 16px 18px; position:relative; display:grid; gap:6px; }
.aviso-domicilio p{ color:var(--on-ink-2); }
.aviso-domicilio__icon{ display:none; }
.aviso-domicilio__sub{ font-weight:600; font-size:var(--t-xs); color:var(--ink-2); order:2; }
.aviso-domicilio h3{ line-height:1.2; letter-spacing:-.01em; }
.aviso-domicilio h3 em{ color:inherit; }
.aviso-domicilio p{ font-size:var(--t-xs); }
.aviso-domicilio__close{ position:absolute; top:4px; right:4px; width:44px; height:44px; display:grid; place-items:center; border:0; background:transparent; color:var(--on-ink); cursor:pointer; }
.aviso-domicilio__bar{ height:4px; background:var(--ink-hover); margin-top:6px; overflow:hidden; }
.aviso-domicilio__bar span{ display:block; height:100%; width:100%; background:var(--on-ink); transform-origin:left; }
.aviso-domicilio.is-visible .aviso-domicilio__bar span{ animation:avisoCuenta 3s linear forwards; }
@keyframes avisoCuenta{ to{ transform:scaleX(0); } }

/* ---------- movimiento ---------- */
.js [data-rise]{ opacity:.3; transform:translateY(16px); } /* entra desde un estado ya visible */
.js [data-rise].in{ opacity:1; transform:none; transition:opacity 700ms var(--ease-expo), transform 900ms var(--ease-expo); transition-delay:var(--d,0ms); }
.hero__media video{ transform-origin:50% 50%; }
.split__visual img,.svc__media img{ transition:transform 1.2s var(--ease-out); }
.split__visual:hover img,.svc__media:hover img{ transform:scale(1.03); }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js [data-rise]{ opacity:1 !important; transform:none !important; transition:none !important; }
  .diagram .state{ transition:none; }
  .js .stage{ transition:none; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* =================== index =================== */
.topbar{ background:var(--ink); color:var(--on-ink-2); font-size:var(--t-xs); }
.topbar__inner{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 24px; padding:10px var(--m) 0; }
.topbar__group{ display:flex; flex-wrap:wrap; gap:6px 20px; }
.topbar svg{ display:none; }
.topbar a{ color:var(--on-ink); font-weight:600; text-decoration:none; }
.topbar a:hover{ text-decoration:underline; }
.nav__logo b{ display:flex; flex-direction:column; gap:2px; line-height:1.1; font-weight:800; }
.menu{ display:flex; align-items:center; gap:4px 22px; }
.menu > li > a:not(.nav__cta){ display:inline-flex; align-items:center; min-height:44px; color:var(--on-ink); text-decoration:none; font-weight:600; font-size:var(--t-xs); }
.menu > li > a:not(.nav__cta):hover{ text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:.14em; }
.dropdown{ position:relative; }
.submenu{ position:absolute; top:100%; left:-14px; min-width:240px; background:var(--ink); padding:8px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity var(--t-ui) ease, transform var(--t-ui) var(--ease-out), visibility var(--t-ui); z-index:30; }
.dropdown:hover .submenu,.dropdown:focus-within .submenu{ opacity:1; visibility:visible; transform:none; }
@media (min-width:980.02px){
  .submenu{ display:none; }
  .dropdown:hover .submenu,.dropdown:focus-within .submenu{ display:block; animation:subIn var(--t-ui) var(--ease-out); }
}
@keyframes subIn{ from{ opacity:0; transform:translateY(6px); } }
.submenu a{ display:flex; align-items:center; min-height:44px; padding:0 12px; color:var(--on-ink); text-decoration:none; font-weight:600; font-size:var(--t-xs); }
.submenu a:hover{ background:var(--ink-hover); color:var(--white); }
.burger{ display:none; width:48px; height:48px; border:0; background:transparent; cursor:pointer; flex-direction:column; justify-content:center; align-items:center; gap:6px; }
.burger span{ display:block; width:24px; height:3px; background:var(--on-ink); }
@media (max-width:980px){
  .burger{ display:flex; }
  .menu{ position:fixed; top:0; right:0; bottom:0; width:min(86vw,360px); flex-direction:column; align-items:stretch; gap:0; background:var(--ink); padding:84px 24px 32px; transform:translateX(100%); transition:transform 360ms var(--ease-in-out); overflow-y:auto; z-index:45; }
  .menu.open{ transform:none; }
  .menu > li > a:not(.nav__cta){ font-size:var(--t-s); min-height:52px; }
  .submenu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; background:transparent; padding:0 0 8px 14px; display:none; min-width:0; }
  .dropdown.expanded .submenu{ display:block; }
  .submenu a{ color:var(--on-ink-2); }
  .submenu a:hover{ background:transparent; color:var(--on-ink); }
  .menu .nav__cta{ margin-top:16px; }
  .burger{ position:relative; z-index:46; }
}
.hero__text{ display:flex; flex-direction:column; gap:18px; }
.hero__text .sub{ order:2; font-size:var(--t-s); font-weight:600; color:var(--ink-2); }
.hero__text h1{ order:1; line-height:.98; letter-spacing:-.035em; }
.hero__text .subtitle{ order:3; font-weight:700; font-size:var(--t-m); line-height:1.25; max-width:30ch; }
.hero__text .tagline{ order:4; font-style:normal; font-weight:600; color:var(--ink); max-width:46ch; }
.hero__text .hero__cta{ order:5; }
.hero__text .hero__trust{ order:6; }
.btn-ghost{ background:transparent; color:var(--ink); text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:.12em; padding-inline:4px; }
.btn-ghost:hover{ background:transparent; color:var(--red); }
.hero__media .hero__frame{ position:relative; }
.hero__badge{ position:absolute; left:0; bottom:0; background:var(--ink); color:var(--on-ink); padding:14px 18px; display:grid; gap:2px; }
.hero__badge b{ font-size:var(--t-l); line-height:1; letter-spacing:-.03em; }
.hero__badge span{ font-size:var(--t-xs); font-weight:600; color:var(--on-ink-2); }
.hero__media{ background:transparent; position:relative; }
.hero__frame video{ width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--ink); }
.stats > .container{ padding:0; }
.stats{ margin-left:calc(var(--lp) * -1); margin-right:calc(var(--rp) * -1); }
.stats__inner{ display:grid; grid-template-columns:1fr; background:var(--white); }
.stats__item{ display:flex; flex-direction:row-reverse; align-items:center; justify-content:space-between; gap:18px; padding:16px var(--rp) 16px var(--lp); }
.stats__item b{ font-weight:800; font-size:var(--t-m); line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; text-align:right; }
.stats__item span{ display:flex; align-items:center; gap:14px; font-weight:700; font-size:var(--t-s); line-height:1.25; }
.shead{ display:flex; flex-direction:column; gap:14px; margin-bottom:40px; container-type:inline-size; }
.shead h2{ order:1; }
.shead .sub{ order:2; font-weight:600; font-size:var(--t-m); color:var(--ink-2); line-height:1.3; }
.shead p{ order:3; max-width:56ch; }
.svc{ display:grid; gap:0; margin-top:48px; background:var(--white); }
.svc + .svc{ margin-top:24px; }
.svc__panel{ padding:clamp(24px,3vw,40px); display:flex; flex-direction:column; gap:14px; }
.svc__num{ display:none; }
.svc__tag{ order:2; font-weight:600; font-size:var(--t-xs); color:var(--ink-2); }
.svc__panel h2{ order:1; line-height:1.1; letter-spacing:-.015em; }
.svc__panel h2 a{ text-decoration:none; }
.svc__panel h2 a:hover{ color:var(--red); }
.svc__panel p{ order:3; font-size:var(--t-s); max-width:52ch; }
.svc__link{ order:4; align-self:flex-start; min-height:48px; font-size:var(--t-xs); }
.svc__link svg{ width:18px; height:18px; }
.svc__media .frame img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (min-width:640px){
  .svc{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .svc:nth-of-type(odd) .svc__media{ order:2; }
  .svc__media .frame,.svc__media .frame img{ height:100%; }
  .svc__media .frame img{ aspect-ratio:auto; min-height:320px; }
}
.svc:nth-of-type(3){ background:var(--ink); color:var(--on-ink); }
.svc:nth-of-type(3) .svc__tag{ color:var(--on-ink-2); }
.svc:nth-of-type(3) .svc__link{ background:var(--on-ink); color:var(--ink); }
.svc:nth-of-type(3) .svc__link:hover{ background:var(--white); color:var(--ink); }
.section--paper{ background:transparent; }
.why{ display:grid; gap:0; background:var(--white); }
.why__card{ display:grid; grid-template-columns:22px 1fr; column-gap:16px; row-gap:6px; padding:22px clamp(20px,3vw,32px); }
.why__card:nth-child(2){ background:var(--paper-2); }
.why__card::before{ content:""; grid-row:1 / span 2; width:16px; height:16px; margin-top:6px; background:var(--ink); }
.why__ico{ display:none; }
.why__card h3{ line-height:1.15; letter-spacing:-.015em; }
.why__card p{ grid-column:2; font-size:var(--t-s); max-width:52ch; }
.map__frame{ background:var(--paper-2); }
.map__frame iframe{ display:block; width:100%; height:380px; border:0; }
.map__addr{ margin-top:20px; display:flex; flex-direction:column; gap:4px; max-width:56ch; }
.map__addr strong{ font-size:var(--t-m); line-height:1.2; }
.cta{ padding-block:var(--gap-section) 0; }
.cta > .container{ background:var(--ink); color:var(--on-ink); margin-left:calc(var(--lp) * -1); margin-right:calc(var(--rp) * -1); padding:clamp(40px,6vw,80px) var(--rp) clamp(40px,6vw,80px) var(--lp); display:flex; flex-direction:column; gap:18px; }
.cta .sub{ order:2; font-weight:600; color:var(--on-ink-2); font-size:var(--t-s); }
.cta .big{ order:1; font-weight:800; font-size:max(1.5rem, min(var(--t-l), calc(100cqi * 3.25 / 50))); line-height:1.05; letter-spacing:-.025em; }
.cta .big em{ color:inherit; }
.cta p{ order:3; max-width:52ch; }
.cta .hero__cta{ order:4; }
.cta .btn-gold{ background:var(--on-ink); color:var(--ink); }
.cta .btn-gold:hover{ background:var(--white); color:var(--ink); }
.cta .btn-ghost{ color:var(--on-ink); }
.cta .btn-ghost:hover{ color:var(--white); }
.footer{ padding-inline:var(--m); }
.footer__grid{ display:grid; gap:32px; grid-template-columns:1fr; }
@media (min-width:768px){ .footer__grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.footer__brand p{ font-style:normal; color:var(--ink-2); margin-bottom:8px; max-width:36ch; }
.footer h4{ color:var(--ink); margin-bottom:10px; letter-spacing:-.01em; }
.footer li{ font-size:var(--t-xs); }
.footer li a{ color:var(--ink); text-decoration:none; font-weight:600; min-height:36px; display:inline-flex; align-items:center; }
.footer li a:hover{ color:var(--red); text-decoration:underline; }
.footer__contact li{ display:block; padding:6px 0; }
.footer__contact svg{ display:none; }
.footer__bottom{ margin-top:40px; display:grid; gap:4px; }
.stage--static{ position:relative; }
@media (max-width:1023.98px){
  .js .stage.stage--static{ position:static; transform:none; max-height:none; padding:48px var(--m) 56px; z-index:auto; box-shadow:none; }
}
.compare-table .ico{ display:inline-block; vertical-align:-3px; margin-right:6px; }

/* ---------- titulares que siempre caben en dos líneas ---------- */
.read,.price-card,.feature-card,.svc__panel,.cobertura-card,.map-info,.vp-card,.step,.why__card,.domicilio-card,.highlight-box,.cta-band > .container,.cta > .container,.testimonial-card,.aviso-domicilio__card,.footer__grid > div,.stage__sheet{ container-type:inline-size; }
h1,h2,h3,h4{ font-size:max(1.125rem, min(var(--cap,var(--t-l)), calc(100cqi * var(--k,3.6) / var(--n,20)))); text-wrap:balance; }
.hero__h1,.hero__text h1{ --k:4; }
h1 br,h2 br,h3 br,h4 br{ display:none; }
h1 em,h2 em,h3 em,h4 em{ font-style:normal; color:inherit !important; }
.price-card__name,.feature-card h3,.svc__panel h2,.cobertura-card h3,.map-info h3,.vp-card h4,.step h4,.why__card h3,.aviso-domicilio h3{ --cap:var(--t-m); }
.domicilio-card h3,.highlight-box h3,.cta-band__h2{ --cap:var(--t-l); }
.footer h4{ --cap:var(--t-s); }

/* ---------- barra superior en teléfono ---------- */
.nav__calc,.nav__wa{ display:none; }
@media (max-width:1023.98px){
  .nav{ position:sticky; top:0; }
  body::before{ content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:10; background:var(--ink); }
  .nav__inner{ gap:8px; padding-block:10px; min-height:64px; }
  .nav__brand{ min-width:0; }
  .nav__calc{ display:inline-flex; align-items:center; min-height:44px; padding:0 14px; margin-left:auto; border:0; border-radius:0; background:var(--ink-hover); color:var(--on-ink); font:700 var(--t-xs)/1 var(--font); cursor:pointer; }
  .nav__calc[aria-expanded="true"]{ background:var(--on-ink); color:var(--ink); }
  .nav__cta{ padding:.6em .9em; }
  .no-js .nav__calc{ display:none; }
  .nav__wa{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; margin-left:auto; color:var(--on-ink); }
  .nav__wa svg{ width:24px; height:24px; }
  .js .stage:not(.stage--static){ padding-bottom:calc(32px + env(safe-area-inset-bottom,0px)); }
}
@media (max-width:599.98px){
  .nav__brand > div span{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
}

/* ---------- fotos de banda ---------- */
.band{ margin:32px calc(var(--rp) * -1) 0 calc(var(--lp) * -1); background:var(--paper-2); }
.band img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.band--in{ margin:32px 0 0; }
.band--in img{ aspect-ratio:3/2; }
@media (min-width:640px){ .band img{ aspect-ratio:21/9; } }

/* ---------- cifras en teléfono: una por renglón ---------- */
@media (max-width:639.98px){
  .stats-strip__inner,.stats__inner{ grid-template-columns:1fr; }
  .stat-item__num,.stats__item b{ font-size:var(--t-m); }
}

@media (min-width:1024px){
  .stage{ padding:0; justify-content:flex-start; }
  .stage__sheet{ max-width:none; height:100%; gap:0; }
  .stage__head{ padding:24px clamp(24px,3vw,48px) 0; }
  .stage .diagram{ flex:1 1 auto; height:auto; min-height:0; margin:8px 0 0; }
  .stage .calc{ padding:12px clamp(24px,3vw,48px) 0; gap:10px; }
  .stage .stage__foot{ padding:12px clamp(24px,3vw,48px) 20px; }
  .stage--static .btn{ margin:16px clamp(24px,3vw,48px) 0; width:auto; }
}
.calc .opts-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.calc .opts-row fieldset .opts{ grid-template-columns:1fr 1fr; }
@media (max-width:1023.98px){ .calc .opts-row{ grid-template-columns:1fr; } }

.split > div:not(.split__visual),.hero__left,.hero__text,.cobertura-card,.map-info{ container-type:inline-size; }
@media (min-width:1024px){
  .stage .calc{ grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"opts opts" "total btn"; align-items:end; column-gap:16px; row-gap:12px; }
  .stage .calc .opts-row{ grid-area:opts; grid-template-columns:1fr 1fr; gap:12px; }
  .stage .calc__total{ grid-area:total; display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:0; }
  .stage .calc > .btn{ grid-area:btn; width:auto; padding-inline:1.4em; }
  .stage .calc .opt span{ min-height:48px; padding:8px 12px 8px 40px; }
  .stage__head{ padding-top:18px; }
  .stage .stage__foot{ padding-top:10px; padding-bottom:16px; }
}
@media (min-width:1024px){
  .stage__sheet{ position:relative; }
  .stage__head{ position:absolute; top:0; left:0; right:0; z-index:2; padding:18px clamp(24px,3vw,48px) 0; }
  .stage .diagram{ margin-top:0; }
}

/* ---------- ficha en el primer pantallazo del teléfono ---------- */
.ficha-peek{ display:none; }
@media (max-width:1023.98px){
  .js .ficha-peek,a.ficha-peek{ display:grid; grid-template-columns:minmax(0,46fr) minmax(0,54fr); align-items:center; gap:14px; width:100%; padding:14px 16px 14px 8px; border:0; border-radius:0; background:var(--white); color:var(--ink); font:inherit; text-align:left; text-decoration:none; cursor:pointer; transition:background-color var(--t-hover) ease; }
  .ficha-peek:hover{ background:#FBFBFA; }
  .ficha-peek:focus-visible{ outline:3px solid var(--red); outline-offset:2px; }
  .ficha-peek__toe{ width:100%; height:auto; max-height:230px; }
  .ficha-peek__txt{ display:grid; gap:10px; min-width:0; }
  .ficha-peek__txt b{ font-weight:800; font-size:var(--t-m); line-height:1.1; letter-spacing:-.015em; }
  .ficha-peek__row{ display:grid; gap:0; font-weight:700; font-size:var(--t-xs); line-height:1.25; }
  .ficha-peek__row i{ font-style:italic; font-weight:600; color:var(--red); }
  .ficha-peek__go{ justify-self:start; display:inline-flex; align-items:center; min-height:44px; padding:0 14px; background:var(--ink); color:var(--on-ink); font-weight:700; font-size:var(--t-xs); line-height:1.15; }
  .hero__text .ficha-peek{ order:4; } .hero__text .tagline{ order:5; } .hero__text .hero__cta{ order:6; } .hero__text .hero__trust{ order:7; }
}

/* ---------- h1 de la landing principal: el servicio en grande ---------- */
.hero__h1--split{ font-size:max(18px, min(22px, calc(100cqi * .0615)), calc(100cqi * .043)) !important; line-height:1.08; }
.hero__h1--split em{ font-size:calc(100cqi * .089); line-height:.95; letter-spacing:-.04em; }
.hero__h1--split br{ display:inline; }

/* ---------- datos del héroe: un solo campo de ficha ---------- */
.urgency-badge{ background:var(--white); padding:14px 16px 2px; margin-bottom:-20px; color:var(--ink); font-weight:700; }
.urgency-dot{ background:var(--ink); }
.hero__trust{ display:block; background:var(--white); padding:2px 16px 14px 36px; font-weight:600; font-size:var(--t-xs); color:var(--ink-2); line-height:1.5; }
.hero__text .hero__trust,.hero__trust:first-child{ padding-left:16px; padding-top:14px; }
.hero__trust .hero__trust-badge,.hero__trust > div{ display:inline; font-weight:600; font-size:var(--t-xs); }
.hero__trust-badge::before,.hero__trust > div::before{ content:none; }
.hero__trust .hero__trust-badge + .hero__trust-badge::before,.hero__trust > div + div::before{ content:" · "; display:inline; width:auto; height:auto; background:none; }

/* ---------- el video de prueba no pasa de su tamaño real ---------- */
.hero__media{ max-width:540px; }

/* ---------- el canal se traza al marcarlo ---------- */
.diagram .canal{ stroke-dasharray:1; stroke-dashoffset:0; }
.diagram .canal.is-on{ animation:canalTrazo 700ms var(--ease-out) both; }
@keyframes canalTrazo{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion:reduce){ .diagram .canal.is-on{ animation:none; } }

/* ---------- escritorio: cabecera fija y escenario debajo ---------- */
@media (min-width:1024px){
  :root{ --nav-h:72px; --topbar-h:36px; }
  .topbar{ height:var(--topbar-h); }
  .topbar__inner{ height:100%; padding-block:0; align-items:center; }
  .nav{ position:sticky; top:0; z-index:50; }
  .nav__inner,.nav__wrap{ height:var(--nav-h); min-height:0; padding-block:0; }
  .stage{ top:var(--nav-h); height:calc(100svh - var(--nav-h) - var(--top-h, 0px)); min-height:600px; }
  .stage--static{ position:sticky; --top-h:var(--topbar-h, 0px); }
  .stage .calc .opts-row{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .stage .calc .opts-row fieldset .opts{ grid-template-columns:1fr 1fr; }
  .stage .calc .opt span{ flex-direction:row; align-items:center; justify-content:space-between; gap:10px; min-height:46px; }
}

/* escritorio: el dibujo ocupa el escenario entero y la calculadora se apoya encima de la base del dedo */
@media (min-width:1024px){
  .stage__sheet{ justify-content:flex-end; }
  .stage .diagram{ position:absolute; inset:0; height:auto; margin:0; }
  .stage .calc,.stage .stage__foot,.stage--static .btn{ position:relative; z-index:1; }
  .stage .calc,.stage .stage__foot{ background:var(--white); }
  .stage .calc{ padding-top:16px; }
}

/* ---------- franja de garantías (particular) ---------- */
.sp-bar{ margin-left:calc(var(--lp) * -1); margin-right:calc(var(--rp) * -1); background:var(--ink); color:var(--on-ink); }
.sp-bar .container{ padding:0; }
.sp-bar__inner{ display:grid; grid-template-columns:minmax(0,1fr); gap:4px 28px; padding:24px var(--rp) 24px var(--lp); }
@container (min-width:560px){ .sp-bar__inner{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.sp-item{ display:flex; align-items:center; gap:12px; padding:8px 0; font-weight:700; font-size:var(--t-s); line-height:1.25; }
.sp-item svg{ flex:none; width:24px; height:24px; padding:4px; background:var(--on-ink); color:var(--ink); stroke-width:3.4; }

/* un bloque sin título propio: la etiqueta hace de entrada visual (no es encabezado, la jerarquía no cambia) */
.shead .sub:only-child{ font-size:var(--t-l); font-weight:800; color:var(--ink); letter-spacing:-.025em; line-height:1.05; }
/* paneles que sangran hasta los bordes de la columna */
.cta-band > .container,.cta > .container{ width:auto; max-width:none; }

/* cifras: renglones de ficha */
.stats-strip__inner,.stats__inner{ gap:0; }

/* foto nítida arriba en pantallas medianas; el video real queda para el teléfono */
.hero__still{ display:none; }
@media (min-width:768px){
  .hero__media video,.hero__frame video{ display:none; }
  .hero__still{ display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; background:var(--paper-2); }
}

/* flecha dibujada para el carácter "→" que vive dentro de un párrafo */
.arr{ display:inline-block; width:.95em; height:.95em; vertical-align:-.12em; font-size:inherit; color:transparent; overflow:hidden;
  background:no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7' fill='none' stroke='%23142033' stroke-width='2.4'/%3E%3C/svg%3E"); }

/* calculadora: nombre arriba, precio debajo; nada se parte */
.calc .opt span small{ white-space:nowrap; }
@media (min-width:1024px){
  .stage .calc .opt span{ flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; min-height:54px; }
}
@media (max-width:1023.98px){
  .calc fieldset:first-of-type .opts{ grid-template-columns:1fr; }
}

/* textos de tarjeta a 16px (público con adultos mayores) */
.price-card__desc,.feature-card p,.vp-card p,.step p,.process-step p,.cobertura-card p,.testimonial-card p,.aviso-domicilio p,.why__card p,.service-pill__text span{ font-size:1rem; }

/* ---------- nota de domicilio: banda fija al final, ya no flota ---------- */
.aviso-domicilio--nota{ position:static; width:auto; opacity:1; transform:none; pointer-events:auto; transition:none; }
.aviso-domicilio--nota .aviso-domicilio__card{ padding:28px var(--m) calc(32px + env(safe-area-inset-bottom,0px)); display:grid; gap:8px; }
.aviso-domicilio--nota h3{ --cap:var(--t-m); }
.aviso-domicilio--nota p{ max-width:60ch; }

/* la nota de domicilio se ve antes del pie de página (el orden del documento no cambia) */
body:has(> .aviso-domicilio--nota){ display:flex; flex-direction:column; min-height:100vh; }
body:has(> .aviso-domicilio--nota) > .aviso-domicilio--nota{ order:1; }
body:has(> .aviso-domicilio--nota) > .footer-lp{ order:2; }

/* entradas distintas según lo que entra: fotos que se asientan (siempre visibles), renglones y campos que suben a distinto ritmo */
.js .band img,.js .split__visual img{ transform:scale(1.07); transition:transform 1400ms var(--ease-expo); }
.js .band.settled img,.js .split__visual.settled img{ transform:none; }
.js .price-card[data-rise],.js .feature-card[data-rise],.js .step[data-rise],.js .vp-card[data-rise]{ transform:translateY(36px); }
.js .price-card[data-rise].in,.js .feature-card[data-rise].in,.js .step[data-rise].in,.js .vp-card[data-rise].in{ transition:opacity 600ms var(--ease-expo), transform 1100ms var(--ease-expo); transition-delay:var(--d,0ms); }
@media (prefers-reduced-motion:reduce){ .js .band img,.js .split__visual img{ transform:none; transition:none; } }

/* la foto se asienta dentro de su propio marco */
.band,.split__visual{ overflow:hidden; }
