/* Xedra — web pública. Mobile-first (base 360 px). */
:root{
  --coral:#FF5A36; --coral-hover:#FF7556;
  --ink:#15151C; --ink-2:#1F1F28; --ink-3:#2E2E3A; --ink-line:#3A3A47;
  --white:#FFFFFF; --mist:#F4F5F8; --line:#E2E3EA; --line-strong:#C9CAD4;
  --slate-300:#A9AAB6; --slate-400:#8B8C99; --slate-600:#5A5B68;
  --success:#1F7A4D; --success-bg:#E4F3EB;
  --error:#C0362C; --error-bg:#FBE9E7;
  --warning:#8A5A00; --warning-bg:#FFF1C2;
  --radius:16px; --radius-sm:10px; --pill:999px;
  --font:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --container:1200px; --gutter:20px;
  --section-y:clamp(64px,10vw,128px);
  --shadow:0 1px 2px rgba(21,21,28,.06),0 12px 32px -8px rgba(21,21,28,.18);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.55;color:var(--ink);background:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
h1,h2,h3,h4{margin:0;line-height:1.08;letter-spacing:-.03em;font-weight:650;text-wrap:balance}
h1{font-size:clamp(2.6rem,8vw,5rem);letter-spacing:-.045em}
h2{font-size:clamp(2rem,5vw,3.25rem);letter-spacing:-.04em}
h3{font-size:clamp(1.25rem,2.4vw,1.5rem);letter-spacing:-.02em;line-height:1.2}
p{margin:0;text-wrap:pretty}
ul{margin:0;padding:0}
.num,.tab{font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--coral);color:var(--ink);padding:12px 16px;border-radius:var(--radius-sm);font-weight:600}
.skip:focus{top:12px}

/* Layout */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.s-white{background:var(--white);color:var(--ink)}
.s-mist{background:var(--mist);color:var(--ink)}
.s-ink{background:var(--ink);color:var(--white)}
.muted{color:var(--slate-600)}
.s-ink .muted{color:var(--slate-300)}
.stack{display:flex;flex-direction:column;gap:var(--gap,16px)}
.section-head{display:flex;flex-direction:column;gap:16px;max-width:760px;margin-bottom:clamp(36px,6vw,64px)}
.section-head p{font-size:1.125rem}
.lead{font-size:clamp(1.125rem,2.2vw,1.3rem);line-height:1.5}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.875rem;font-weight:600;letter-spacing:.01em}
.eyebrow::before{content:"";width:22px;height:8px;border-radius:var(--pill);background:var(--coral);flex:none}
.grid-2{display:grid;gap:clamp(32px,5vw,64px);align-items:center}
/* Una columna que no crece más que la pantalla: sin esto, la columna implícita toma el ancho mínimo del contenido y desborda en 320-360 px. */
.grid-2,.footer__grid,.hero__grid,.cards,.steps,.features,.feature,.booking,.dash__body,.tab-panel,.form,.calc,.calc__fields,.plans,.trust,.cta-band,.shot-grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){
  .grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .grid-2--wide-r{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .grid-2--wide-l{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}
@media (min-width:768px){:root{--gutter:32px}}

/* Markers */
.completar,.avalidar{display:inline-flex;align-items:center;font:600 .8125rem/1.35 var(--mono);letter-spacing:0;padding:.2em .55em;border-radius:6px;border:1.5px dashed;vertical-align:middle;text-wrap:wrap}
.completar{background:var(--warning-bg);color:#4A3300;border-color:var(--warning)}
.avalidar{background:#E7ECFF;color:#1B2A66;border-color:#3A4FA8}
.placeholder-box{border:2px dashed var(--warning);background:#FFFBEA;color:#4A3300;border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:8px;min-height:120px;justify-content:center}
.example-tag{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600;padding:4px 10px;border-radius:var(--pill);background:var(--mist);color:var(--slate-600);border:1px solid var(--line)}
.s-ink .example-tag{background:var(--ink-3);color:var(--slate-300);border-color:var(--ink-line)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:var(--pill);font:600 1rem/1.2 var(--font);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;white-space:nowrap}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--coral);color:var(--ink)}
.btn--primary:hover{background:var(--coral-hover)}
.btn--ghost{background:transparent;color:inherit;border-color:currentColor}
.btn--ghost:hover{background:rgba(127,127,140,.12)}
.btn--sm{min-height:44px;padding:10px 16px;font-size:.9375rem}
.btn--block{width:100%}
.btn svg{width:20px;height:20px;flex:none}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:600;min-height:44px}
.link-arrow::after{content:"→";transition:transform .15s}
.link-arrow:hover::after{transform:translateX(3px)}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.header__inner{display:flex;align-items:center;gap:12px;min-height:68px}
.brand{display:flex;align-items:center;min-height:44px;margin-right:auto}
.brand img{width:104px;height:auto}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--pill);border:1.5px solid var(--line-strong);background:var(--white);cursor:pointer;color:var(--ink)}
.nav-toggle svg{width:20px;height:20px}
.nav{position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--line);padding:8px var(--gutter) 20px;display:none;flex-direction:column}
.nav.is-open{display:flex}
.nav a{display:flex;align-items:center;min-height:52px;font-weight:500;text-decoration:none;border-bottom:1px solid var(--line)}
.nav a[aria-current="page"]{font-weight:650}
.nav a[aria-current="page"]::after{content:"";width:16px;height:6px;border-radius:var(--pill);background:var(--coral);margin-left:10px}
@media (min-width:880px){
  .nav-toggle{display:none}
  .nav{position:static;display:flex;flex-direction:row;gap:4px;padding:0;border:0;background:none;margin-right:8px}
  .nav a{border:0;min-height:44px;padding:0 14px;border-radius:var(--pill)}
  .nav a:hover{background:var(--mist)}
  .brand img{width:116px}
}

/* Footer */
.site-footer{background:var(--ink);color:var(--white);padding-block:64px 40px;border-top:1px solid var(--ink-line)}
.footer__grid{display:grid;gap:40px}
@media (min-width:768px){.footer__grid{grid-template-columns:2fr 1fr 1fr}}
.footer__grid h2{font-size:.875rem;letter-spacing:.02em;font-weight:600;color:var(--slate-300);margin-bottom:12px}
.footer__grid ul{list-style:none;display:flex;flex-direction:column;gap:2px}
.footer__grid li a{display:inline-flex;align-items:center;min-height:40px;text-decoration:none}
.footer__grid li a:hover{text-decoration:underline}
.footer__bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--ink-line);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-size:.875rem;color:var(--slate-300)}

/* Hero */
.hero{padding-block:clamp(48px,8vw,96px) 0;overflow:hidden}
.hero__grid{display:grid;gap:40px;align-items:center}
@media (min-width:960px){.hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}}
.hero__text{display:flex;flex-direction:column;gap:24px}
.hero__text .lead{color:var(--slate-300);max-width:620px}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.9375rem;color:var(--slate-300)}
.hero__meta span{display:inline-flex;align-items:center;gap:8px}
.hero__meta span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral)}
.tagline{font-weight:600;color:var(--white);letter-spacing:-.01em}
.tagline b{color:var(--coral);font-weight:650}
.hero__media{margin-top:clamp(40px,6vw,72px);position:relative}
.hero__media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;background:var(--white);z-index:0}
.hero__media > *{position:relative;z-index:1}

/* X animation */
.xmark{position:relative;width:min(100%,340px);aspect-ratio:512/524;margin-inline:auto}
.xmark span{position:absolute;height:13%;border-radius:var(--pill);left:calc(var(--x)/512*100%);top:calc(var(--y)/524*100%);width:calc(var(--w)/512*100%);background:var(--white)}
.xmark .c{background:var(--coral)}
.xmark .slot{background:repeating-linear-gradient(135deg,transparent 0 7px,rgba(255,255,255,.22) 7px 10px);border:2px dashed var(--slate-400)}
@media (prefers-reduced-motion:no-preference){
  .xmark span:not(.slot){animation:barIn .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*90ms + 200ms)}
  .xmark .fill{animation:fillIn 1.1s cubic-bezier(.2,.9,.25,1.15) 1.25s both}
  .xmark .slot{animation:slotOut .4s ease 2.15s both}
}
@keyframes barIn{from{opacity:0;transform:translateX(var(--dx))}to{opacity:1;transform:none}}
@keyframes fillIn{from{opacity:0;transform:translateX(160%)}60%{opacity:1}to{opacity:1;transform:none}}
@keyframes slotOut{to{opacity:0}}

/* Frames */
.browser{background:var(--white);border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;color:var(--ink)}
.s-ink .browser{border-color:var(--ink-line)}
.browser__bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--mist);border-bottom:1px solid var(--line)}
.browser__dots{display:flex;gap:6px}
.browser__dots i{width:10px;height:10px;border-radius:50%;background:var(--line-strong)}
.browser__url{flex:1;min-width:0;font-size:.8125rem;color:var(--slate-600);background:var(--white);border:1px solid var(--line);border-radius:var(--pill);padding:4px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}
.browser video,.browser img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:var(--mist)}
.phone{position:relative;width:100%;max-width:300px;margin-inline:auto;padding:9px;border-radius:46px;background:#0B0B10;box-shadow:0 0 0 1px #2c2c36,var(--shadow)}
.phone__screen{border-radius:38px;overflow:hidden;aspect-ratio:390/844;background:#1b1815}
.phone__screen img,.phone__screen video{width:100%;height:100%;object-fit:cover;object-position:top}
.phone--sm{max-width:230px;border-radius:36px;padding:7px}
.phone--sm .phone__screen{border-radius:30px}

/* Screenshot crop for PC on mobile */
.shot img{aspect-ratio:4/3;object-position:var(--pos,50% 50%)}
@media (min-width:768px){.shot img{aspect-ratio:16/10;object-position:50% 0}}
.zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;font:inherit;color:inherit;text-align:left;position:relative}
.zoom__hint{position:absolute;right:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;background:rgba(21,21,28,.86);color:var(--white);font-size:.8125rem;font-weight:600;padding:8px 12px;border-radius:var(--pill);min-height:36px}
.lightbox{border:0;padding:0;max-width:min(96vw,1440px);width:100%;background:transparent}
.lightbox::backdrop{background:rgba(10,10,14,.88)}
.lightbox img{width:100%;height:auto;max-height:86vh;object-fit:contain;border-radius:10px;background:var(--white)}
.lightbox__close{position:fixed;top:14px;right:14px;width:48px;height:48px;border-radius:50%;border:0;background:var(--white);color:var(--ink);font-size:1.5rem;cursor:pointer}
.lightbox p{color:var(--white);margin-top:12px;font-size:.9375rem}

/* Media / video */
.media{margin:0;display:flex;flex-direction:column;gap:14px}
.media figcaption{font-size:.9375rem;color:var(--slate-600);max-width:60ch}
.s-ink .media figcaption{color:var(--slate-300)}
.media figcaption b{color:inherit;font-weight:600}
.video-wrap{position:relative}
.video-btn{position:absolute;z-index:3;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--pill);border:0;background:rgba(21,21,28,.86);color:var(--white);font:600 .875rem var(--font);white-space:nowrap;cursor:pointer}
.phone .video-btn{left:50%;transform:translateX(-50%);bottom:22px}
.video-btn svg{width:16px;height:16px}

/* Rails (galerías deslizables) */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(70%,240px);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 16px;list-style:none;overscroll-behavior-x:contain}
.rail > *{scroll-snap-align:start}
.rail--wide{grid-auto-columns:min(86%,520px)}
@media (min-width:1100px){.rail--fit{grid-auto-flow:row;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));overflow:visible}}
.step-card{display:flex;flex-direction:column;gap:12px}
.step-card h3{font-size:1.0625rem}
.step-card p{font-size:.9375rem}
.step-num{font:600 .8125rem var(--mono);color:var(--slate-600)}
.s-ink .step-num{color:var(--slate-300)}

/* Bars motif */
.bars{--fill:var(--ink);--on-fill:var(--white);display:grid;grid-template-columns:repeat(var(--cols,8),minmax(0,1fr));gap:6px;align-items:center}
.s-ink .bars{--fill:var(--white);--on-fill:var(--ink)}
.bar{grid-column:var(--c,auto);min-height:30px;border-radius:var(--pill);background:var(--fill);color:var(--on-fill);font-size:.75rem;font-weight:600;display:flex;align-items:center;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.bar--gap{background:transparent;color:var(--slate-600);border:2px dashed var(--line-strong)}
.s-ink .bar--gap{color:var(--slate-300);border-color:var(--slate-400)}
.bar--wait{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(127,128,140,.32) 6px 9px);color:inherit;border:2px solid var(--line-strong)}
.s-ink .bar--wait{border-color:var(--slate-400)}
.bar--coral{background:var(--coral);color:var(--ink)}
.bar--empty{visibility:hidden}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.8125rem;margin-top:16px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:26px;height:12px;border-radius:var(--pill);background:var(--ink)}
.s-ink .legend i{background:var(--white)}
.legend i.g{background:transparent;border:2px dashed var(--line-strong)}
.legend i.w{background:repeating-linear-gradient(135deg,transparent 0 3px,rgba(127,128,140,.45) 3px 5px);border:1.5px solid var(--line-strong)}
.legend i.c{background:var(--coral)}

/* Timeline (escena de Carla) */
.tl{display:grid;grid-template-columns:minmax(84px,120px) minmax(0,1fr);gap:10px 12px;align-items:center;font-size:.875rem}
.tl__label{font-weight:600}
.tl__label small{display:block;font-weight:400;color:var(--slate-600);font-size:.75rem}
.s-ink .tl__label small{color:var(--slate-300)}
.tl__ticks{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));font:500 .75rem var(--mono);color:var(--slate-600)}
.s-ink .tl__ticks{color:var(--slate-300)}
.tl__hr{grid-column:1/-1;height:1px;background:var(--line)}
.s-ink .tl__hr{background:var(--ink-line)}
/* En el celular la etiqueta va arriba de las barras: así las barras y los horarios usan todo el ancho. */
@media (max-width:479px){
  .tl{grid-template-columns:minmax(0,1fr);gap:6px}
  .tl > span:empty{display:none}
  .tl__label{margin-top:8px;font-size:.8125rem}
  .tl__label small{display:inline;margin-left:6px}
  .tl__hr{margin-block:4px}
  .tl .bar{padding:0 8px}
}
.diagram{border-radius:var(--radius);padding:clamp(18px,3vw,32px);background:var(--white);border:1px solid var(--line)}
.s-ink .diagram{background:var(--ink-2);border-color:var(--ink-line)}
.s-mist .diagram{border-color:var(--line)}
.diagram__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;margin-bottom:20px}
.diagram__head h3{font-size:1.0625rem}

/* Cards */
.card{border-radius:var(--radius);padding:clamp(20px,3vw,28px);background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
.s-mist .card{border-color:transparent}
.s-ink .card{background:var(--ink-2);border-color:var(--ink-line)}
.cards{display:grid;gap:16px}
@media (min-width:640px){.cards--2,.cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:980px){.cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}.cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:640px) and (max-width:979px){.cards--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.scene h3{font-size:1.125rem}
.scene p{font-size:.9375rem}
.scene .bars{margin-top:auto;padding-top:8px}

/* Steps (cómo funciona) */
.steps{list-style:none;display:grid;gap:20px;counter-reset:s}
@media (min-width:900px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.steps li{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:2px solid var(--ink-line)}
.steps li::before{counter-increment:s;content:"0" counter(s);font:600 .875rem var(--mono);color:var(--coral)}
.s-white .steps li,.s-mist .steps li{border-color:var(--line)}

/* Features */
.features{display:grid;gap:clamp(48px,7vw,88px)}
.feature{display:grid;gap:28px;align-items:center}
@media (min-width:900px){
  .feature{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .feature:nth-child(even) .feature__media{order:-1}
  .feature:nth-child(even){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}
.feature__text{display:flex;flex-direction:column;gap:14px}
.feature__area{font:600 .8125rem var(--mono);color:var(--slate-600);letter-spacing:.02em}
.s-ink .feature__area{color:var(--slate-300)}
.feature__text h3{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.03em}
.checks{list-style:none;display:flex;flex-direction:column;gap:10px;font-size:.9875rem}
.checks li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start}
.checks li::before{content:"";width:16px;height:7px;border-radius:var(--pill);background:var(--ink);margin-top:.62em}
.s-ink .checks li::before{background:var(--white)}
.feature__media--phone{display:flex;justify-content:center}

/* Mini mockups dibujados */
.mock{border-radius:var(--radius);background:var(--mist);padding:clamp(20px,4vw,40px);display:flex;align-items:center;justify-content:center}
.s-mist .mock{background:var(--white)}
.s-ink .mock{background:var(--ink-2)}
.mock__panel{width:100%;max-width:420px;background:var(--white);border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.mock__row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.9375rem}
.mock__row b{font-weight:600;white-space:nowrap}
.mock__title{font-weight:650;font-size:1.0625rem;letter-spacing:-.01em}
.mock__chip{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:var(--pill);background:var(--success-bg);color:var(--success)}
.mock__chip--warn{background:var(--warning-bg);color:var(--warning)}
.mock__hr{height:1px;background:var(--line)}
.sessions{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.sessions i{height:14px;border-radius:var(--pill);background:var(--ink)}
.sessions i.left{background:transparent;border:2px dashed var(--line-strong)}
.price-grid{display:grid;grid-template-columns:44px repeat(5,minmax(0,1fr));gap:5px;font-size:.75rem;text-align:center}
.price-grid b{font-weight:600;color:var(--slate-600)}
.price-grid span{display:flex;align-items:center;justify-content:center;min-height:30px;border-radius:8px;background:var(--mist);font-variant-numeric:tabular-nums;font-weight:500}
.price-grid span.p{background:var(--coral);color:var(--ink);font-weight:650}
@media (max-width:479px){
  .mock:has(.price-grid){padding:12px}
  .mock__panel:has(.price-grid){padding:16px}
  .price-grid{grid-template-columns:34px repeat(5,minmax(0,1fr));gap:3px;font-size:.6875rem;letter-spacing:-.02em}
}
@media (max-width:359px){.price-grid{font-size:.625rem}}
.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.slots span{min-height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;font-weight:600;font-size:.875rem;background:var(--white);border:1.5px solid var(--line-strong);font-variant-numeric:tabular-nums}
.slots span.off{color:var(--slate-600);background:var(--mist);border-style:dashed;text-decoration:line-through;font-weight:500}
.wa-bubble{align-self:flex-start;max-width:92%;background:#E8F7EE;border-radius:14px 14px 14px 4px;padding:12px 14px;font-size:.9375rem;color:#123524}
.wa-bubble small{display:block;margin-top:6px;color:#3D5E4B;font-size:.75rem}

/* Reservas section */
.booking{display:grid;gap:48px;align-items:start}
@media (min-width:960px){.booking{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.booking-steps{list-style:none;display:flex;flex-direction:column;gap:0;counter-reset:b}
.booking-steps li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.booking-steps li::before{counter-increment:b;content:counter(b);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:600 .875rem var(--mono);background:var(--ink);color:var(--white)}
.booking-steps li:last-child::before{content:"✓";background:var(--coral);color:var(--ink)}
.booking-steps b{display:block;font-weight:600}
.booking-steps span{font-size:.9375rem;color:var(--slate-600)}
.big-stat{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.big-stat strong{font-size:clamp(3.5rem,9vw,6rem);line-height:.9;letter-spacing:-.05em;font-weight:650;color:var(--coral);font-variant-numeric:tabular-nums}
.s-white .big-stat strong,.s-mist .big-stat strong{color:var(--ink)}
.big-stat span{font-size:1.125rem;font-weight:600;max-width:16ch;line-height:1.25}
.brands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,3vw,32px)}
.brands figure{margin:0;display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}
.brands figcaption{font-size:.875rem;color:var(--slate-600)}

/* Dashboard */
.dash{border-radius:20px;border:1px solid var(--line);background:var(--white);box-shadow:var(--shadow);overflow:hidden}
.dash__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.dash__head h3{font-size:1.125rem}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line)}
@media (min-width:640px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}
.kpi{padding:18px 22px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.kpi strong{white-space:nowrap;font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.04em;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.05}
.kpi span{font-size:.8125rem;color:var(--slate-600)}
.kpi--hot strong{color:var(--ink)}
.kpi--hot{background:#FFF0EC}
.kpi--hot strong::after{content:"";display:inline-block;width:18px;height:8px;border-radius:var(--pill);background:var(--coral);margin-left:8px;vertical-align:middle}
.dash__body{display:grid;gap:0}
@media (min-width:900px){.dash__body{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.dash__panel{padding:22px;display:flex;flex-direction:column;gap:16px}
.dash__panel + .dash__panel{border-top:1px solid var(--line)}
@media (min-width:900px){.dash__panel + .dash__panel{border-top:0;border-left:1px solid var(--line)}}
.dash__panel h4{font-size:.9375rem;font-weight:600;letter-spacing:-.01em}
.chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end;height:180px}
.chart div{display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:6px;text-align:center;font-size:.75rem;color:var(--slate-600)}
.chart .col{display:flex;flex-direction:column-reverse;border-radius:8px;overflow:hidden;background:var(--mist)}
.chart .col i{display:block;background:var(--ink)}
.chart .col i.r{background:var(--coral)}
.meter{display:grid;grid-template-columns:minmax(96px,130px) 1fr 42px;gap:10px;align-items:center;font-size:.875rem}
.meter .track{height:12px;border-radius:var(--pill);background:var(--mist);overflow:hidden}
.meter .track i{display:block;height:100%;border-radius:var(--pill);background:var(--ink)}
.meter b{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.suggest{border-radius:12px;background:var(--mist);padding:14px 16px;font-size:.9375rem;display:flex;flex-direction:column;gap:6px}
.suggest b{font-weight:600}

/* Tabs */
.tabs__list{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:28px;scrollbar-width:thin}
.tabs__list button{flex:none;min-height:46px;padding:0 18px;border-radius:var(--pill);border:1.5px solid var(--ink-line);background:transparent;color:var(--white);font:600 .9375rem var(--font);cursor:pointer}
.tabs__list button[aria-selected="true"]{background:var(--white);color:var(--ink);border-color:var(--white)}
.tabs__list button:hover{border-color:var(--slate-400)}
.tab-panel{display:grid;gap:24px}
@media (min-width:900px){.tab-panel{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tab-panel[hidden]{display:none}
.tab-panel .card h3{font-size:.8125rem;font-family:var(--mono);font-weight:600;color:var(--slate-300);letter-spacing:.02em}
.tab-panel .card p{font-size:1.125rem;line-height:1.45}

/* Forms */
.form{display:grid;gap:18px}
@media (min-width:640px){.form--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form .full,.form[data-mode="question"] .field--email{grid-column:1/-1}}
.form [hidden]{display:none}
.field{display:flex;flex-direction:column;gap:8px}
.field label,.field legend{font-weight:600;font-size:.9375rem}
.field .hint{font-size:.8125rem;color:var(--slate-600)}
.s-ink .field .hint{color:var(--slate-300)}
.input{width:100%;min-height:50px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line-strong);background:var(--white);color:var(--ink);font:400 1rem var(--font);font-variant-numeric:tabular-nums}
.input:focus{outline:3px solid var(--coral);outline-offset:1px;border-color:var(--ink)}
.input:user-invalid{border-color:var(--error);background:var(--error-bg)}
.s-ink .input{background:var(--ink-2);color:var(--white);border-color:var(--ink-line)}
.s-ink .input:focus{border-color:var(--white)}
.s-ink .input:user-invalid{border-color:#FF8A7A;background:#2A1A1A}
textarea.input{min-height:132px;resize:vertical;line-height:1.5;font-variant-numeric:normal}
fieldset{border:0;margin:0;padding:0;min-width:0}
.choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.choice span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:var(--pill);border:1.5px solid var(--line-strong);font-weight:500;font-size:.9375rem}
.s-ink .choice span{border-color:var(--ink-line)}
.choice input:checked + span{background:var(--white);color:var(--ink);border-color:var(--white);font-weight:600}
.s-white .choice input:checked + span,.s-mist .choice input:checked + span{background:var(--ink);color:var(--white);border-color:var(--ink)}
.choice input:checked + span::before{content:"✓";margin-right:8px}
.choice input:focus-visible + span{outline:3px solid var(--coral);outline-offset:2px}
.form-ok{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:var(--radius);background:var(--success-bg);color:#0F3D27;font-weight:600}
.form-ok[hidden]{display:none}
.form-ok::before{content:"✓";flex:none;width:32px;height:32px;border-radius:50%;background:var(--success);color:var(--white);display:flex;align-items:center;justify-content:center}

/* Calculadora */
.calc{display:grid;gap:clamp(28px,5vw,56px)}
@media (min-width:960px){.calc{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:stretch}}
.calc__fields{display:grid;gap:18px}
@media (min-width:560px){.calc__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
.calc__out{border-radius:20px;background:var(--ink);color:var(--white);padding:clamp(24px,4vw,40px);display:flex;flex-direction:column;gap:20px}
.calc__out .row{display:flex;flex-direction:column;gap:4px}
.calc__out strong{font-size:clamp(2.6rem,7vw,4rem);line-height:1;letter-spacing:-.05em;font-weight:650;font-variant-numeric:tabular-nums}
.calc__out .money strong{color:var(--coral)}
.calc__out small{color:var(--slate-300);font-size:.875rem}
.calc__bars{display:flex;flex-wrap:wrap;gap:5px;min-height:14px}
.calc__bars i{width:26px;height:10px;border-radius:var(--pill);border:1.5px dashed var(--slate-400)}

/* Planes */
.plans{display:grid;gap:16px;align-items:stretch}
@media (min-width:900px){.plans{grid-template-columns:repeat(3,minmax(0,1fr))}}
.plan{border-radius:20px;padding:clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:18px;background:var(--ink-2);border:1px solid var(--ink-line);color:var(--white)}
.s-white .plan,.s-mist .plan{background:var(--white);border-color:var(--line);color:var(--ink)}
.plan--featured{background:var(--white);color:var(--ink);border:2px solid var(--coral);position:relative}
.s-white .plan--featured,.s-mist .plan--featured{box-shadow:var(--shadow)}
.plan__badge{align-self:flex-start;font-size:.8125rem;font-weight:650;background:var(--coral);color:var(--ink);padding:5px 12px;border-radius:var(--pill)}
.plan h3{font-size:1.5rem}
.plan__for{font-size:.9375rem;color:var(--slate-300)}
.plan--featured .plan__for,.s-white .plan__for,.s-mist .plan__for{color:var(--slate-600)}
.plan__price{display:flex;flex-direction:column;gap:6px;padding-block:16px;border-block:1px solid var(--ink-line)}
.plan--featured .plan__price,.s-white .plan__price,.s-mist .plan__price{border-color:var(--line)}
.plan__amount{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.plan__price small{font-size:.875rem;color:inherit;opacity:.85}
.plan .checks{font-size:.9375rem}
.plan--featured .checks li::before{background:var(--ink)}
.plan .btn{margin-top:auto}
.billing{display:inline-flex;padding:5px;border-radius:var(--pill);background:var(--ink-2);border:1px solid var(--ink-line);gap:4px}
.billing button{min-height:44px;padding:0 18px;border-radius:var(--pill);border:0;background:transparent;color:var(--white);font:600 .9375rem var(--font);cursor:pointer}
.billing button[aria-pressed="true"]{background:var(--white);color:var(--ink)}
.perks{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:.9375rem;margin-top:28px}
.perks span{display:inline-flex;align-items:center;gap:8px}
.perks span::before{content:"";width:14px;height:6px;border-radius:var(--pill);background:var(--coral)}

/* Tabla comparativa */
.compare-wrap{position:relative;overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);background:var(--white)}
.compare{width:100%;border-collapse:collapse;font-size:.875rem;min-width:340px}
.compare th,.compare td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.compare thead th{position:sticky;top:0;background:var(--white);font-size:.9375rem}
.compare th[scope="row"]{text-align:left;font-weight:500;position:sticky;left:0;background:var(--white);min-width:150px;max-width:46vw}
.compare tbody tr:nth-child(even) th,.compare tbody tr:nth-child(even) td{background:#FAFAFC}
.compare .hl{background:#FFF4F1 !important}
.compare thead .hl{box-shadow:inset 0 3px 0 var(--coral)}
.compare .group th{background:var(--mist) !important;text-align:left;font:600 .75rem var(--mono);letter-spacing:.04em;color:var(--slate-600)}
.yes,.no,.part{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-weight:600}
.yes::before{content:"";width:18px;height:8px;border-radius:var(--pill);background:var(--ink)}
.no{color:var(--slate-600);font-weight:400}
.part{font-size:.8125rem;color:var(--ink)}
@media (min-width:768px){.compare{font-size:.9375rem}.compare th,.compare td{padding:14px 18px}}

/* FAQ */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line);max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:16px 0;font-weight:600;font-size:1.0625rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:22px;height:8px;border-radius:var(--pill);border:2px solid var(--ink);transition:background .15s}
.faq details[open] summary::after{background:var(--coral);border-color:var(--coral)}
.faq details p{padding:0 0 22px;color:var(--slate-600);max-width:70ch}

/* Confianza */
.trust{display:grid;gap:16px}
@media (min-width:768px){.trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.trust{grid-template-columns:repeat(4,minmax(0,1fr))}}
.trust .card h3{font-size:1.125rem}
.trust .card p{font-size:.9375rem}

/* Sub-nav (cómo funciona) */
.subnav{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.subnav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:var(--pill);border:1.5px solid var(--ink-line);text-decoration:none;font-weight:500;font-size:.9375rem}
.subnav a:hover{border-color:var(--white)}
.page-hero{padding-block:clamp(56px,9vw,112px)}
.page-hero .stack{max-width:820px;--gap:22px}

.cta-band{display:grid;gap:32px}
@media (min-width:960px){.cta-band{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}

.shot-grid{display:grid;gap:clamp(28px,4vw,48px)}
@media (min-width:900px){.shot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.shot-grid figure{margin:0}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}
