/* =====================================================================
   Landing Aptis - hoja de estilo única
   Paleta: azul profundo (autoridad) + naranja de acción (un solo CTA)
   ===================================================================== */

:root{
  --ink:#0A1128;
  --ink-2:#121B38;
  --navy:#0F2450;
  --navy-2:#173464;
  --blue:#2F6FED;
  --blue-soft:#E8F0FE;
  --cta:#FF6B1A;
  --cta-hover:#FF7F38;
  --cta-ink:#17120C;
  --wa:#25D366;
  --paper:#FFFFFF;
  --mist:#F5F7FB;
  --line:#E4E8F0;
  --text:#1B2438;
  --muted:#5A6580;
  --gold:#FFB020;
  --ok:#0E9F6E;

  --r-sm:.6rem; --r:1rem; --r-lg:1.5rem;
  --shadow:0 1px 2px rgba(10,17,40,.05),0 8px 24px rgba(10,17,40,.07);
  --shadow-lg:0 4px 8px rgba(10,17,40,.06),0 24px 60px rgba(10,17,40,.16);
  --wrap:1180px;
  --f-head:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

body{
  margin:0;background:var(--paper);color:var(--text);
  font:400 clamp(1rem,.97rem + .15vw,1.075rem)/1.65 var(--f-body);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
h1,h2,h3{font-family:var(--f-head);line-height:1.15;letter-spacing:-.02em;margin:0}
p{margin:0 0 1rem}
b,strong{font-weight:700;color:inherit}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2rem)}
.narrow{max-width:820px}
.center{text-align:center}

.h1{font-size:clamp(2rem,1.35rem + 2.9vw,3.5rem);font-weight:800;letter-spacing:-.03em}
.h2{font-size:clamp(1.55rem,1.2rem + 1.6vw,2.4rem);font-weight:800;margin-bottom:.85rem}
.h2--center{text-align:center}
.sub{color:var(--muted);font-size:1.075rem;max-width:60ch;margin-bottom:2.5rem}
.sub--center{margin-inline:auto;text-align:center}
.lede{font-size:clamp(1.05rem,1rem + .45vw,1.3rem);color:#3C4763;line-height:1.6;max-width:56ch}

.sec{padding:clamp(3.5rem,2rem + 6vw,6rem) 0}
.sec--soft{background:var(--mist)}
.sec--dark{background:linear-gradient(160deg,var(--ink) 0%,var(--navy) 100%);color:#DCE3F2}
.sec--dark .h2{color:#fff}
.sec--dark .sub{color:#9FB0D0}

/* ---------- BOTONES ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--f-head);font-weight:800;font-size:1.0625rem;line-height:1.2;
  padding:1.05rem 1.9rem;border:0;border-radius:var(--r);cursor:pointer;
  text-decoration:none;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
  will-change:transform;
}
.btn--cta{
  background:var(--cta);color:var(--cta-ink);
  box-shadow:0 6px 0 rgba(184,74,10,.55),0 14px 30px rgba(255,107,26,.35);
}
.btn--cta:hover{background:var(--cta-hover);transform:translateY(-2px);box-shadow:0 8px 0 rgba(184,74,10,.55),0 18px 40px rgba(255,107,26,.42)}
.btn--cta:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(184,74,10,.55)}
.btn--block{width:100%}
.btn--sm{padding:.8rem 1.25rem;font-size:.95rem;box-shadow:0 4px 0 rgba(184,74,10,.55)}
.btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.ico-wa{width:1.3em;height:1.3em;flex:0 0 auto}

.link-cta{color:var(--blue);font-weight:700;text-decoration:none;border-bottom:2px solid rgba(47,111,237,.3)}
.link-cta:hover{border-color:var(--blue)}

/* ---------- TOPBAR ---------- */
.topbar{background:var(--ink);color:#C8D3EC;font-size:.8125rem;padding:.55rem 0;overflow:hidden}
.topbar__in{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.topbar__item b{color:var(--cta);margin-right:.15rem}
@media (max-width:760px){
  .topbar__in{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  .topbar__in::-webkit-scrollbar{display:none}
  .topbar__item{white-space:nowrap}
}

/* ---------- HERO ---------- */
.hero{
  position:relative;color:#EAF0FF;padding:clamp(2rem,1rem + 4vw,3.5rem) 0 clamp(3rem,2rem + 5vw,5rem);
  background:
    radial-gradient(900px 480px at 15% -10%,rgba(47,111,237,.35),transparent 60%),
    radial-gradient(700px 420px at 95% 10%,rgba(255,107,26,.18),transparent 60%),
    linear-gradient(165deg,#0A1128 0%,#0F2450 55%,#0C1B3C 100%);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:56px 56px;mask-image:linear-gradient(180deg,#000,transparent 70%);
}
.hero__grid{position:relative;z-index:1;display:grid;gap:clamp(1.5rem,1rem + 2vw,3.5rem);grid-template-columns:1fr}
.hero__lead{order:1}
.hero .formcard{order:2}
.hero__support{order:3}
@media (min-width:1000px){
  .hero__grid{
    grid-template-columns:1.08fr .92fr;
    /* Tres filas, no dos. El formulario es mas alto que el texto de la izquierda
       y, al ocupar las dos filas, el grid las estiraba para cuadrar con el:
       quedaban 220 px de aire muerto entre el titular y los checks, justo en
       el espacio mas valioso de la pagina. Una tercera fila vacia absorbe el
       sobrante, las dos primeras se ajustan al contenido y el hueco cae DEBAJO. */
    grid-template-areas:"lead form" "support form" ". form";
    grid-template-rows:min-content min-content 1fr;
    align-items:start;column-gap:clamp(2rem,1rem + 3vw,3.5rem);row-gap:1.75rem;
  }
  .hero__lead{grid-area:lead}
  .hero__support{grid-area:support}
  .hero .formcard{grid-area:form}
}

.brandline{margin-bottom:1.5rem}
.brandline__name{font-family:var(--f-head);font-weight:800;letter-spacing:.02em;font-size:1.0625rem;color:#fff;opacity:.92}
.brandline__logo{height:36px;width:auto}

.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1.1rem;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  padding:.45rem .95rem;border-radius:999px;font-size:.875rem;font-weight:600;color:#CFDCFF;
  backdrop-filter:blur(6px);
}
.eyebrow--score{background:rgba(255,107,26,.14);border-color:rgba(255,107,26,.4);color:#FFD3B4}
.dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--cta);box-shadow:0 0 0 4px rgba(255,107,26,.22)}

.hero .h1{color:#fff;margin-bottom:1.1rem;text-wrap:balance}
.hero .lede{color:#B9C7E8;margin-bottom:1.75rem}

.ticks{list-style:none;margin:0 0 1.25rem;padding:0;display:grid;gap:.7rem}
.ticks li{position:relative;padding-left:2rem;color:#C6D2EC;font-size:1rem;line-height:1.5}
.ticks li b{color:#fff}
.ticks li::before{
  content:"";position:absolute;left:0;top:.15rem;width:1.35rem;height:1.35rem;border-radius:50%;
  background:rgba(37,211,102,.16);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%2325D366' d='M9.6 16.2 4.8 11.4l1.4-1.4 3.4 3.4 8-8 1.4 1.4z'/></svg>");
  background-repeat:no-repeat;background-position:center;background-size:1rem;
}
.ticks--light li{color:#C6D2EC}

.proofrow{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.9375rem;color:#A9B8DA}
.proofrow b{color:#fff}
.stars{display:inline-flex;gap:.1rem;color:var(--gold)}
.stars svg{width:1.05rem;height:1.05rem}
.stars--sm svg{width:.95rem;height:.95rem}

/* ---------- FORM CARD ---------- */
.formcard{
  background:var(--paper);color:var(--text);border-radius:var(--r-lg);
  padding:clamp(1.4rem,1rem + 1.6vw,2rem);box-shadow:var(--shadow-lg);
  border:1px solid rgba(255,255,255,.6);position:relative;
}
@media (min-width:1000px){.formcard{position:sticky;top:1.25rem}}
.formcard::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(140deg,rgba(255,107,26,.5),transparent 45%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;padding:1px;
}
.formcard__head{margin-bottom:1.25rem}
.formcard__title{font-size:clamp(1.25rem,1.1rem + .6vw,1.55rem);font-weight:800;margin-bottom:.5rem;text-wrap:balance}
.formcard__sub{font-size:.9375rem;color:var(--muted);margin:0}
.formcard__foot{margin-top:1rem;border-top:1px solid var(--line);padding-top:.9rem}
.formcard--final{position:static;box-shadow:var(--shadow-lg)}
.formcard--final .formcard__title{margin-bottom:.4rem}
.formcard--final .formcard__sub{margin-bottom:1.15rem}

.lead-form{display:grid;gap:.85rem}
.field{display:grid;gap:.3rem}
.field label{font-size:.8125rem;font-weight:600;color:#3D4863;letter-spacing:.01em}
.field input,.field select{
  width:100%;font:500 1rem/1.3 var(--f-body);color:var(--text);
  padding:.9rem 1rem;border:1.5px solid var(--line);border-radius:var(--r-sm);
  background:#FBFCFE;transition:border-color .15s,box-shadow .15s,background .15s;
}
.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%235A6580' d='m7 10 5 5 5-5z'/></svg>");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2.4rem}
.field input:focus,.field select:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(47,111,237,.15)}
.field input::placeholder{color:#A3ADC2}
.field.is-bad input{border-color:#E0384A;background:#FFF7F7}
.field.is-ok input{border-color:rgba(14,159,110,.5)}
.err{font-size:.8rem;color:#D02B3D;min-height:0;display:none}
.field.is-bad .err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.form-note{display:flex;gap:.45rem;align-items:flex-start;font-size:.8125rem;color:var(--muted);margin:.2rem 0 0;line-height:1.45}
.ico-lock{width:1rem;height:1rem;flex:0 0 auto;color:var(--ok);margin-top:.1rem}

.scarcity{font-size:.875rem;color:#B3450C;font-weight:600;margin:0 0 .35rem}
.scarcity--center{text-align:center;margin-top:.8rem}
.pulse{display:inline-block;vertical-align:middle;margin-right:.45rem;width:.55rem;height:.55rem;border-radius:50%;background:#FF6B1A;box-shadow:0 0 0 0 rgba(255,107,26,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 .6rem rgba(255,107,26,0)}100%{box-shadow:0 0 0 0 rgba(255,107,26,0)}}
.micro{font-size:.8125rem;color:var(--muted);margin:0}

/* ---------- DIAGNÓSTICO ---------- */
.sec--diag{background:var(--paper)}
.diagbox{background:var(--mist);border:1px solid var(--line);border-left:5px solid var(--cta);border-radius:var(--r);padding:clamp(1.35rem,1rem + 1.6vw,2.25rem)}
.diagbox__text{font-size:1.075rem;line-height:1.7}
.diagbox__gap{font-weight:700;color:var(--navy);font-size:1.1rem;margin-bottom:1.1rem}
.diagbox__cta{margin:0}
.diagbox__meter{margin-bottom:1.5rem}
.meter{height:.85rem;border-radius:999px;background:#DDE4F0;overflow:hidden}
.meter__fill{height:100%;width:var(--p);border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--cta));animation:grow 1.1s cubic-bezier(.2,.8,.2,1) both}
@keyframes grow{from{width:0}}
.meter__labels{display:flex;justify-content:space-between;font-size:.875rem;color:var(--muted);margin-top:.5rem}
.meter__labels b{color:var(--navy)}

/* ---------- CARDS PROBLEMA ---------- */
.cards{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:1.5rem;position:relative;overflow:hidden}
.card__n{font-family:var(--f-head);font-weight:800;font-size:2.5rem;color:rgba(255,107,26,.28);line-height:1;display:block;margin-bottom:.5rem}
.card h3{font-size:1.1rem;color:#fff;margin-bottom:.5rem}
.card p{font-size:.9375rem;color:#A9B8DA;margin:0;line-height:1.6}

/* ---------- PASOS ---------- */
.steps{list-style:none;margin:0 0 2.5rem;padding:0;display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));counter-reset:s}
.step{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.4rem;box-shadow:var(--shadow);position:relative}
.step__n{
  display:inline-grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:50%;
  background:var(--navy);color:#fff;font-family:var(--f-head);font-weight:800;margin-bottom:.85rem;
}
.step h3{font-size:1.075rem;margin-bottom:.45rem}
.step p{font-size:.9375rem;color:var(--muted);margin:0}

/* ---------- INCLUYE + PRECIO ---------- */
.incl__grid{display:grid;gap:clamp(2rem,1rem + 3vw,3rem);grid-template-columns:1fr}
@media (min-width:900px){.incl__grid{grid-template-columns:1.15fr .85fr;align-items:start}}
.checks{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.75rem}
.checks li{position:relative;padding-left:2rem}
.checks li::before{
  content:"";position:absolute;left:0;top:.2rem;width:1.35rem;height:1.35rem;border-radius:50%;background:rgba(14,159,110,.12);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%230E9F6E' d='M9.6 16.2 4.8 11.4l1.4-1.4 3.4 3.4 8-8 1.4 1.4z'/></svg>");
  background-repeat:no-repeat;background-position:center;background-size:1rem;
}
.pricecard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,1rem + 1.8vw,2.1rem);box-shadow:var(--shadow-lg);text-align:center}
.pricecard__label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600;margin-bottom:.5rem}
.pricecard__price{font-family:var(--f-head);font-weight:800;font-size:clamp(2.4rem,2rem + 2vw,3.25rem);color:var(--navy);line-height:1;margin-bottom:.6rem}
.pricecard__price--ask{font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem);line-height:1.25}
.was{display:block;font-size:1.05rem;color:#98A2B8;text-decoration:line-through;font-weight:600;margin-bottom:.15rem}
.pricecard__note{font-size:.9rem;color:var(--muted)}
.pricecard__vs{font-size:.875rem;color:#B3450C;background:#FFF3EA;border-radius:var(--r-sm);padding:.7rem .9rem;margin-bottom:1.2rem}

/* ---------- STATS + TESTIMONIOS ---------- */
.stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:clamp(2.5rem,2rem + 2vw,4rem)}
.stat{text-align:center;padding:1.4rem 1rem;background:var(--blue-soft);border-radius:var(--r)}
.stat b{display:block;font-family:var(--f-head);font-weight:800;font-size:clamp(1.75rem,1.4rem + 1.4vw,2.5rem);color:var(--navy);line-height:1.1}
.stat span{font-size:.875rem;color:var(--muted);display:block;margin-top:.3rem}

.tsts{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:2rem}
.tst{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;box-shadow:var(--shadow)}
.tst blockquote{margin:.75rem 0 1rem;font-size:1rem;line-height:1.65;color:#2A3450}
.tst blockquote::before{content:"“"}
.tst blockquote::after{content:"”"}
.tst figcaption{font-size:.875rem;color:var(--muted)}
.tst figcaption b{color:var(--navy)}
.disclaimer{font-size:.8125rem;color:#8C96AD;text-align:center;margin-top:1.5rem}

/* ---------- COMPARATIVA ---------- */
.tablewrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--paper)}
.cmp{width:100%;border-collapse:collapse;min-width:520px;font-size:.9375rem}
.cmp th,.cmp td{padding:.95rem 1.1rem;text-align:left;border-bottom:1px solid var(--line)}
.cmp thead th{font-family:var(--f-head);font-weight:700;font-size:.875rem;color:var(--muted);background:var(--mist)}
.cmp td:first-child{font-weight:600;color:var(--navy)}
.cmp td:nth-child(2){color:#98A2B8}
.cmp .hl{background:rgba(47,111,237,.05);color:var(--navy);font-weight:600}
.cmp thead .hl{color:var(--blue)}
.cmp tbody tr:last-child td{border-bottom:0}

/* ---------- GARANTÍA ---------- */
.sec--guarantee{background:linear-gradient(180deg,var(--mist),var(--paper))}
.guarantee{text-align:center}
.guarantee__badge{width:4rem;height:4rem;margin:0 auto 1.25rem;display:grid;place-items:center;border-radius:50%;background:rgba(14,159,110,.12);color:var(--ok)}
.guarantee__badge svg{width:2.1rem;height:2.1rem}
.guarantee p{max-width:60ch;margin-inline:auto;margin-bottom:1.75rem;color:#3C4763}

/* ---------- CTA FINAL ---------- */
.sec--final{background:linear-gradient(160deg,var(--ink),var(--navy-2));color:#EAF0FF}
.sec--final .h2{color:#fff}
.lede--light{color:#B9C7E8}
.final__grid{display:grid;gap:clamp(2rem,1rem + 3vw,3.5rem);grid-template-columns:1fr;align-items:center}
@media (min-width:960px){.final__grid{grid-template-columns:1fr .85fr}}

/* ---------- FOOTER ---------- */
.foot{background:var(--ink);color:#7F8DAF;padding:2rem 0 6.5rem;font-size:.8125rem;text-align:center}
.foot p{margin:0 auto .5rem}
.foot__link{background:none;border:0;color:#A9B8DA;text-decoration:underline;cursor:pointer;font:inherit;padding:.25rem .5rem}
.foot__link:hover{color:#fff}
.foot__dis{max-width:60ch;margin-inline:auto;color:#5F6B8A}
@media (min-width:860px){.foot{padding-bottom:2rem}}

/* ---------- STICKY BAR ---------- */
.stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;gap:1rem;
  padding:.7rem clamp(1rem,4vw,1.5rem) calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(10,17,40,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);
  transform:translateY(120%);transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.stickybar.is-on{transform:translateY(0)}
.stickybar__txt{flex:1;min-width:0;line-height:1.25}
.stickybar__txt b{display:block;color:#fff;font-family:var(--f-head);font-size:.9375rem}
.stickybar__txt span{color:#FFB48A;font-size:.78rem}
/* Antes se ocultaba en escritorio. Se deja: entre la seccion de resenas y el
   formulario final hay 4.400 px, y sin barra no hay forma de convertir en ese
   tramo, que es justo donde el visitante acaba de leer las opiniones. */
@media (min-width:860px){
  .stickybar{gap:1.5rem; padding-left:clamp(1.5rem,6vw,4rem); padding-right:clamp(1.5rem,6vw,4rem)}
  .stickybar__txt b{font-size:1rem}
}

/* ---------- MODALES ---------- */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:1.25rem}
.modal[hidden]{display:none}
.modal__bg{position:absolute;inset:0;background:rgba(10,17,40,.7);backdrop-filter:blur(4px);animation:fade .25s both}
.modal__box{
  position:relative;background:var(--paper);border-radius:var(--r-lg);padding:clamp(1.5rem,1rem + 2vw,2.25rem);
  width:min(460px,100%);max-height:88vh;overflow:auto;box-shadow:var(--shadow-lg);animation:pop .3s cubic-bezier(.2,.8,.2,1) both;
}
.modal__box--text{width:min(620px,100%);font-size:.9375rem;color:#3C4763}
.modal__x{position:absolute;top:.6rem;right:.85rem;background:none;border:0;font-size:1.85rem;line-height:1;color:#98A2B8;cursor:pointer}
.modal__x:hover{color:var(--text)}
.modal__title{font-size:1.35rem;font-weight:800;margin-bottom:.5rem;padding-right:1.5rem;text-wrap:balance}
.modal__sub{font-size:.9375rem;color:var(--muted);margin-bottom:1.25rem}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}}
body.is-locked{overflow:hidden}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:.7rem}
.faq__i{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:0 1.25rem;box-shadow:var(--shadow)}
.faq__i summary{
  list-style:none;cursor:pointer;padding:1.1rem 2rem 1.1rem 0;position:relative;
  font-family:var(--f-head);font-weight:700;font-size:1.0125rem;color:var(--navy);
}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary::after{
  content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);
  font-size:1.5rem;font-weight:600;color:var(--cta);transition:transform .2s;
}
.faq__i[open] summary::after{content:"−"}
.faq__i p{padding-bottom:1.1rem;margin:0;color:var(--muted);font-size:.9375rem}
.faq__i:focus-within{border-color:rgba(47,111,237,.5)}

/* ---------- REVELADO AL SCROLL ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* ---------- SELLO CENTRO EXAMINADOR ---------- */
.bc{display:inline-flex;align-items:center;gap:.7rem;padding:.5rem .8rem;border-radius:var(--r-sm);margin-top:.85rem}
.bc__logo{height:32px;width:auto;flex:0 0 auto}
.bc__txt{font-size:.8125rem;line-height:1.25}
.bc__txt b{display:block;font-family:var(--f-head);font-weight:700}
.bc__id{font-size:.75rem;opacity:.75}
.bc--dark{background:rgba(255,255,255,.94);color:var(--navy);box-shadow:0 4px 16px rgba(0,0,0,.18)}
.bc--light{background:var(--mist);border:1px solid var(--line);color:var(--navy)}
.bc--wide{display:flex;width:100%;margin:.9rem 0}
.brandline{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.brandline .bc{margin-top:0}

.sec--bc{background:linear-gradient(150deg,#0F2450 0%,#173464 60%,#0C1B3C 100%);color:#DCE3F2}
.sec--bc .h2{color:#fff}
.sec--bc .lede{color:#C6D2EC;margin-bottom:1.5rem}
.bc__grid{display:grid;gap:clamp(1.75rem,1rem + 3vw,3rem);grid-template-columns:1fr;align-items:center}
@media (min-width:900px){.bc__grid{grid-template-columns:.4fr .6fr}}
.bc__seal{background:#fff;border-radius:var(--r-lg);padding:2rem 1.5rem;text-align:center;box-shadow:var(--shadow-lg)}
.bc__seal img{margin:0 auto;height:auto;max-width:min(260px,100%)}
.bc__sealtxt{font-family:var(--f-head);font-weight:700;font-size:.875rem;color:var(--navy);margin:1rem 0 0;text-transform:uppercase;letter-spacing:.06em}
.ticks--dark li{color:#C6D2EC}
.sec--bc .btn{margin-top:.5rem}

/* ---------- PIE: reclamo de centro examinador ---------- */
.foot p.foot__claim{display:inline-flex;align-items:center;gap:.75rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm);padding:.65rem 1rem;margin-bottom:.9rem;color:#E4EAF7;font-size:.9375rem}
.foot__claim b{color:#fff}
.foot__logo{height:30px;width:auto;background:#fff;border-radius:.25rem;padding:.2rem .35rem}

/* ---------- PÁGINA DE GRACIAS ---------- */
.ty{background:linear-gradient(165deg,#0A1128 0%,#0F2450 55%,#0C1B3C 100%);min-height:100vh;display:flex;align-items:center}
.ty__wrap{padding-block:clamp(2rem,1rem + 5vw,4rem)}
.ty__card{background:var(--paper);border-radius:var(--r-lg);padding:clamp(1.5rem,1rem + 3vw,2.75rem);max-width:560px;margin-inline:auto;box-shadow:var(--shadow-lg);text-align:center}
.ty__check{width:3.75rem;height:3.75rem;margin:0 auto 1.25rem;display:grid;place-items:center;border-radius:50%;background:rgba(14,159,110,.12);color:var(--ok)}
.ty__check svg{width:2.1rem;height:2.1rem}
.ty__title{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.1rem);font-weight:800;color:var(--navy);margin-bottom:.6rem;text-wrap:balance}
.ty__sub{color:var(--muted);margin-bottom:1.5rem}
.ty__micro{font-size:.8125rem;color:var(--muted);margin:.75rem 0 0}
.ty__next{text-align:left;border-top:1px solid var(--line);margin-top:2rem;padding-top:1.75rem}
.ty__h2{font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:1rem}
.ty__steps{margin:0 0 1.25rem;padding-left:1.15rem;display:grid;gap:.7rem;color:#3C4763;font-size:.9375rem}
.ty__steps b{color:var(--navy)}
.ty__tip{font-size:.875rem;color:var(--muted);background:var(--mist);border-radius:var(--r-sm);padding:.75rem .9rem;margin:0}

/* ---------- BARRA DE PROMOCIÓN ---------- */
.promo{background:linear-gradient(90deg,#FF6B1A,#FF8A3D);color:var(--cta-ink)}
.promo__in{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;padding:.6rem 0;font-size:.9375rem;text-align:center}
.promo__tag{background:rgba(23,18,12,.85);color:#FFD9C2;font-family:var(--f-head);font-weight:800;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;padding:.25rem .55rem;border-radius:.3rem}
.promo__txt{font-weight:700;font-family:var(--f-head)}
.promo__cd{font-weight:700;font-variant-numeric:tabular-nums;background:rgba(255,255,255,.55);border-radius:.35rem;padding:.15rem .55rem;white-space:nowrap}

/* ---------- DESGLOSE DEL PRECIO ---------- */
.pricebreak{list-style:none;margin:.25rem 0 .9rem;padding:0;display:grid;gap:.45rem;text-align:left;font-size:.875rem}
.pricebreak li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px dashed var(--line);padding-bottom:.45rem}
.pricebreak li:last-child{border-bottom:0;padding-bottom:0}
.pricebreak span{color:var(--muted)}
.pricebreak b{color:var(--ok);font-family:var(--f-head);white-space:nowrap}
.pricecard__real{font-size:.8125rem;color:var(--navy);background:var(--blue-soft);border-radius:var(--r-sm);padding:.65rem .8rem;margin-bottom:1rem;text-align:left}
.ty__ref{margin-top:1.5rem;border:1px solid var(--line);border-left:4px solid var(--cta);border-radius:var(--r-sm);padding:1.1rem 1.2rem;background:#FFF8F3}
.ty__ref .ty__h2{margin-bottom:.4rem;font-size:1rem}
.ty__ref p{font-size:.9rem;color:#3C4763;margin:0}
.ty__back{text-align:center;margin:1.75rem 0 0;font-size:.875rem}
.ty__back a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:.1rem}
.ty__back a:hover{color:var(--navy);border-color:var(--navy)}
.stickybar__txt .pulse{margin-right:.4rem;background:#FF8A3D}

/* ---------- RGPD: consentimiento, textos legales y banner de cookies ---------- */
.field--check{grid-template-columns:auto 1fr;align-items:start;gap:.55rem;column-gap:.6rem}
.field--check input[type=checkbox]{
  width:1.15rem;height:1.15rem;margin-top:.15rem;flex:0 0 auto;
  accent-color:var(--blue);cursor:pointer;
}
.field--check label{font-size:.8125rem;font-weight:500;color:var(--muted);line-height:1.45;cursor:pointer}
.field--check .err{grid-column:1/-1}
.field--check.is-bad label{color:#D02B3D}
.field--check.is-bad input[type=checkbox]{outline:2px solid #E0384A;outline-offset:2px;border-radius:3px}

.form-legal{font-size:.6875rem;line-height:1.5;color:#7A8399;margin:.1rem 0 0}
.form-legal b{color:#5A6580;font-weight:600}

.lnk{background:none;border:0;padding:0;font:inherit;color:var(--blue);text-decoration:underline;cursor:pointer}
.lnk:hover{color:var(--navy)}

.modal__meta{font-size:.8125rem;color:var(--muted);margin-bottom:1rem}
.modal__h3{font-size:.9375rem;font-weight:700;color:var(--text);margin:1.15rem 0 .35rem}
.modal__box--text p{margin-bottom:.6rem}
.modal__list{margin:.2rem 0 .6rem 1.1rem;padding:0;list-style:disc}
.modal__list li{margin-bottom:.35rem}

.ckbar{
  position:fixed;left:0;right:0;bottom:0;z-index:95;
  display:flex;flex-wrap:wrap;gap:.9rem 1.5rem;align-items:center;justify-content:space-between;
  background:#0a1128d9;backdrop-filter:blur(6px);color:#C8D3EC;
  /* el fondo ocupa todo el ancho, el contenido se centra como el resto de la página */
  padding:1rem max(1rem,calc((100% - var(--wrap)) / 2));
  padding-bottom:calc(1rem + env(safe-area-inset-bottom));
  font-size:.8125rem;line-height:1.5;box-shadow:0 -8px 30px rgba(10,17,40,.3);
}
.ckbar[hidden]{display:none}
.ckbar__txt{flex:1 1 22rem;max-width:60ch}
.ckbar__txt b{color:#fff}
.ckbar__txt .lnk{color:#8FB4FF}
.ckbar__btns{display:flex;gap:.6rem;flex:0 0 auto}
.ckbar .btn--sm{padding:.7rem 1.1rem;font-size:.875rem}
.btn--ghost{background:transparent;color:#DCE3F2;border:1.5px solid rgba(220,227,242,.45);box-shadow:none}
.btn--ghost:hover{background:rgba(255,255,255,.08);color:#fff}
@media (max-width:859px){
  .ckbar{gap:.75rem;padding:.9rem 1rem;padding-bottom:calc(.9rem + env(safe-area-inset-bottom))}
  .ckbar__txt{flex:1 1 100%}
  .ckbar__btns{width:100%}
  .ckbar__btns .btn{flex:1}
  /* mientras se decide sobre las cookies, la barra sticky se aparta */
  body:has(.ckbar:not([hidden])) .stickybar{display:none}
}

/* ==========================================================================
   Resenas de Google. Rejilla tipo masonry con columns: las tarjetas tienen
   alturas muy distintas y con grid quedarian huecos enormes.
   ========================================================================== */
.rv-head{
  display:flex; align-items:center; justify-content:center; gap:18px;
  flex-wrap:wrap; margin:0 auto 26px; max-width:640px; text-align:left;
}
.rv-score{display:flex; flex-direction:column; align-items:center; gap:2px; flex-shrink:0}
.rv-score b{font-size:2.4rem; line-height:1; color:#1d1d1f}
.rv-head p{margin:0; font-size:.94rem; line-height:1.6; color:#5b5b60}

.rv-grid{columns:3; column-gap:16px}
@media(max-width:900px){.rv-grid{columns:2}}
@media(max-width:600px){.rv-grid{columns:1}}

.rv-card{
  break-inside:avoid; -webkit-column-break-inside:avoid;
  display:inline-block; width:100%; margin:0 0 16px;
  background:#fff; border:1px solid #e6e6ea; border-radius:14px;
  padding:16px 18px; box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.rv-top{display:flex; align-items:center; gap:10px; margin-bottom:8px}
.rv-top b{display:block; font-size:.95rem; color:#1d1d1f; line-height:1.3}
.rv-when{font-size:.8rem; color:#8a8a90}

/* Inicial sobre color: es lo que muestra Google cuando no hay foto, y evita
   republicar la cara de una persona real o inventarle uno. */
.rv-av{
  flex-shrink:0; width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-size:1.05rem; line-height:1;
}
.rv-card blockquote{
  margin:8px 0 0; font-size:.93rem; line-height:1.65; color:#3c3c41;
}
.rv-card .stars{margin:0}

/* CTA intermedio tras las resenas. Ver el comentario en index.php: cubre el
   tramo en el que el visitante ya esta convencido pero no tiene donde actuar. */
.midcta{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  flex-wrap:wrap; margin:28px auto 0; max-width:760px;
  padding:20px 24px; border-radius:14px;
  background:linear-gradient(180deg,#fff8f2 0%,#fff 70%);
  border:1px solid #f0d3b4; border-top:3px solid #e8791f;
}
.midcta p{margin:0; line-height:1.6; font-size:.98rem; color:#3c3c41}
.midcta .btn{flex-shrink:0}
@media(max-width:640px){.midcta{flex-direction:column; text-align:center} .midcta .btn{width:100%}}

