/* =========================================================
   Agencia GEO Local · de SmartReachLab
   Hoja única: tokens + base + componentes + páginas.
   Concepto de maqueta: papel de plano claro, verde «abierto ahora»
   como color de acción y amarillo de carretera solo para resaltar.
   Secciones separadas por espacio y cambios de fondo, nunca por líneas.
   ========================================================= */

/* ---------- Fuentes (autoalojadas, sin peticiones a terceros) ---------- */
@font-face{font-family:"Bricolage Grotesque";src:url("../fonts/bricolage-grotesque-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../fonts/instrument-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  /* Color */
  --paper:#F6F8F4;      /* fondo: papel de plano, gris con sesgo verde */
  --surface:#FFFFFF;    /* tarjetas, formularios */
  --tint:#EAF0E8;       /* bandas alternas */
  --ink:#13201A;        /* texto principal */
  --ink-2:#4A5A51;      /* texto secundario (AA sobre paper y tint) */
  --line:#D3DCD2;       /* borde de componentes (no separa secciones) */
  --green:#0B6E4F;      /* acción principal */
  --green-hover:#095C42;
  --on-green:#FFFFFF;
  --green-soft:#D9EEE2;
  --yellow:#F2C230;     /* resaltado tipo carretera */
  --mark-bg:#F2C230;
  --yellow-soft:#FBF0C6;
  --pin:#C8392B;        /* solo para el pin del mapa y errores */
  --deep:#10241B;       /* banda oscura de cierre */
  --on-deep:#EAF2ED;
  --map-land:#E4EBE0; --map-road:#FFFFFF; --map-road-2:#F7E3A0; --map-park:#CFE3CF; --map-water:#C9DDE6;

  /* Tipografía */
  --f-display:"Bricolage Grotesque", ui-sans-serif, "Segoe UI", Roboto, Arial, sans-serif;
  --f-body:"Instrument Sans", ui-sans-serif, "Segoe UI", Roboto, Arial, sans-serif;
  --t-xs:.8125rem; --t-sm:.9375rem; --t-md:1.0625rem; --t-lg:1.25rem;
  --t-xl:clamp(1.5rem,1.2rem + 1.2vw,2rem);
  --t-2xl:clamp(1.9rem,1.4rem + 2.2vw,2.75rem);
  --t-3xl:clamp(2.3rem,1.6rem + 3.4vw,3.75rem);

  /* Espacio (escala de 4) */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px;
  --section:clamp(56px,6vw + 24px,112px);

  /* Forma */
  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-pill:999px;
  --shadow-1:0 1px 2px rgba(19,32,26,.06),0 4px 14px rgba(19,32,26,.06);
  --shadow-2:0 2px 4px rgba(19,32,26,.06),0 14px 34px rgba(19,32,26,.10);
  --max:1160px; --tap:48px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0E1512; --surface:#151F1A; --tint:#121C17; --ink:#E6EEE9; --ink-2:#A9B8AF; --line:#2A3831;
  --green:#3DBE8B; --green-hover:#5CCF9F; --on-green:#06130D; --green-soft:#15332A;
  --yellow:#F2C230; --yellow-soft:#3A3216; --mark-bg:#6B5512; --pin:#F0614F; --deep:#0A110E; --on-deep:#EAF2ED;
  --map-land:#1A2620; --map-road:#2B3A33; --map-road-2:#5A4E25; --map-park:#1E3328; --map-water:#1B2D35;
  --shadow-1:0 1px 2px rgba(0,0,0,.4); --shadow-2:0 10px 30px rgba(0,0,0,.45);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --paper:#0E1512; --surface:#151F1A; --tint:#121C17; --ink:#E6EEE9; --ink-2:#A9B8AF; --line:#2A3831;
  --green:#3DBE8B; --green-hover:#5CCF9F; --on-green:#06130D; --green-soft:#15332A;
  --yellow:#F2C230; --yellow-soft:#3A3216; --mark-bg:#6B5512; --pin:#F0614F; --deep:#0A110E; --on-deep:#EAF2ED;
  --map-land:#1A2620; --map-road:#2B3A33; --map-road-2:#5A4E25; --map-park:#1E3328; --map-water:#1B2D35;
  --shadow-1:0 1px 2px rgba(0,0,0,.4); --shadow-2:0 10px 30px rgba(0,0,0,.45);
  color-scheme:dark;
}

/* ---------- Base ---------- */
*,*::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:400 var(--t-md)/1.6 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;line-height:1.08;letter-spacing:-.02em;margin:0;text-wrap:balance}
h1{font-size:var(--t-3xl)} h2{font-size:var(--t-2xl)} h3{font-size:var(--t-lg);letter-spacing:-.01em;line-height:1.25}
p{margin:0;text-wrap:pretty}
a{color:var(--green);text-underline-offset:3px;text-decoration-thickness:1.5px}
a:hover{color:var(--green-hover)}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:6px}
::selection{background:var(--yellow);color:#13201A}
.skip{position:absolute;left:-999px;top:8px;background:var(--surface);padding:12px 16px;border-radius:var(--r-sm);z-index:100}
.skip:focus{left:16px}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.i{width:20px;height:20px;flex:none}
.num{font-variant-numeric:tabular-nums}

/* ---------- Layout ---------- */
.wrap{max-width:calc(var(--max) + 64px);margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:760px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
.band{padding-block:var(--section)}
.band--tint{background:var(--tint)}
.band--deep{background:var(--deep);color:var(--on-deep)}
.band--deep p{color:color-mix(in srgb,var(--on-deep) 82%,transparent)}
.stack{display:flex;flex-direction:column;gap:var(--s-4)}
.split{display:grid;gap:var(--s-7);align-items:center}
@media (min-width:960px){.split{grid-template-columns:1fr 1fr}.split--wide-right{grid-template-columns:.9fr 1.1fr}}
.split>*{min-width:0}
.section-head{max-width:720px;display:flex;flex-direction:column;gap:var(--s-4);margin-bottom:var(--s-7)}
.section-head--center{margin-inline:auto;text-align:center;align-items:center}
.eyebrow{font:600 var(--t-xs)/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:8px}
.lead{font-size:var(--t-lg);color:var(--ink-2);max-width:60ch}
.muted{color:var(--ink-2)}
.small{font-size:var(--t-sm)}
.mark{background:linear-gradient(transparent 58%,var(--mark-bg) 58%,var(--mark-bg) 92%,transparent 92%);padding-inline:.06em}

/* ---------- Botones ---------- */
.btn{--bg:var(--green);--fg:var(--on-green);display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:12px 22px;border-radius:var(--r-pill);border:1.5px solid var(--bg);background:var(--bg);color:var(--fg);font:600 var(--t-md)/1.2 var(--f-body);text-decoration:none;cursor:pointer;transition:background .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.btn:hover{--bg:var(--green-hover);color:var(--fg);transform:translateY(-1px);box-shadow:var(--shadow-1)}
.btn:active{transform:translateY(0)}
.btn .i{transition:transform .2s var(--ease)}
.btn:hover .i--go{transform:translateX(3px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{background:var(--surface);color:var(--ink);border-color:var(--ink-2)}
.btn--on-deep{--bg:var(--yellow);--fg:#13201A}
.btn--on-deep:hover{--bg:#FFD24D}
.btn--ghost-deep{background:transparent;color:var(--on-deep);border-color:color-mix(in srgb,var(--on-deep) 35%,transparent)}
.btn--ghost-deep:hover{background:color-mix(in srgb,var(--on-deep) 10%,transparent);color:var(--on-deep)}
.btn--lg{min-height:56px;padding:14px 28px;font-size:var(--t-lg)}
.btn--block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center}
.link-arrow{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:none}
.link-arrow .i{width:18px;height:18px;transition:transform .2s var(--ease)}
.link-arrow:hover .i{transform:translateX(3px)}

/* ---------- Cabecera ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px)}
.site-header .wrap{display:flex;align-items:center;gap:var(--s-5);min-height:72px}
.brand{display:inline-flex;text-decoration:none;flex:none}
.logo-svg{height:40px;width:auto}
.nav{display:none;gap:4px;margin-left:auto}
.nav a{white-space:nowrap;color:var(--ink);text-decoration:none;font-weight:500;font-size:var(--t-sm);padding:10px 12px;border-radius:var(--r-pill);transition:background .2s}
.nav a:hover,.nav a[aria-current="page"]{background:var(--tint)}
.header-actions{display:flex;align-items:center;gap:var(--s-3);margin-left:auto}
.header-tel{display:none;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:600;font-size:var(--t-sm)}
.header-cta{display:none}
@media (min-width:1080px){.nav{display:flex}.header-actions{margin-left:var(--s-3)}.header-cta{display:inline-flex;white-space:nowrap}.menu-toggle{display:none}}
@media (min-width:1320px){.header-tel{display:inline-flex}}
.menu-toggle{position:relative}
.menu-toggle summary{list-style:none;display:grid;place-items:center;width:var(--tap);height:var(--tap);border-radius:var(--r-pill);cursor:pointer;color:var(--ink)}
.menu-toggle summary::-webkit-details-marker{display:none}
.menu-toggle summary:hover{background:var(--tint)}
.menu-toggle .i{width:24px;height:24px}
.menu-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(320px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:var(--s-3);display:flex;flex-direction:column}
.menu-panel a{padding:14px 12px;color:var(--ink);text-decoration:none;font-weight:500;border-radius:var(--r-sm)}
.menu-panel a:hover{background:var(--tint)}
.menu-panel .btn{margin-top:var(--s-2);color:var(--on-green)}

/* Barra fija en móvil: teléfono y WhatsApp siempre a mano */
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:var(--surface);box-shadow:0 -6px 20px rgba(19,32,26,.10)}
.mobile-bar a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap);border-radius:var(--r-pill);font-weight:600;font-size:var(--t-sm);text-decoration:none;color:var(--ink);background:var(--tint)}
.mobile-bar a.is-primary{background:var(--green);color:var(--on-green)}
body.has-mobile-bar{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
@media (min-width:1080px){.mobile-bar{display:none}body.has-mobile-bar{padding-bottom:0}}

/* ---------- Hero ---------- */
.hero{padding-block:clamp(32px,5vw,72px) var(--section)}
.hero h1{max-width:15ch}
.hero .lead{margin-top:var(--s-5)}
.hero-copy{display:flex;flex-direction:column}
.engines{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s-5)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);font-size:var(--t-xs);font-weight:600;color:var(--ink)}
.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}

/* ---------- Formularios ---------- */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-weight:600;font-size:var(--t-sm)}
.field .hint{font-size:var(--t-xs);color:var(--ink-2)}
.input,.select,.textarea{width:100%;min-height:var(--tap);padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s}
.textarea{min-height:120px;resize:vertical}
.input::placeholder{color:color-mix(in srgb,var(--ink-2) 80%,transparent)}
.input:hover,.select:hover{border-color:var(--ink-2)}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px var(--green-soft)}
.input[aria-invalid="true"]{border-color:var(--pin)}
.error-msg{color:var(--pin);font-size:var(--t-xs);font-weight:600}
.check{display:flex;gap:10px;align-items:flex-start;font-size:var(--t-sm);color:var(--ink-2)}
.check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--green);flex:none}
.form-grid{display:grid;gap:var(--s-4)}
@media (min-width:640px){.form-grid--2{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}}

/* Mini diagnóstico del hero */
.diag-mini{margin-top:var(--s-6);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-1);display:grid;gap:var(--s-4)}
.diag-mini .form-grid{grid-template-columns:1fr}
@media (min-width:560px){.diag-mini .form-grid{grid-template-columns:1fr 1fr}}
.diag-mini .foot{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;justify-content:space-between}
.diag-mini .foot p{font-size:var(--t-xs);color:var(--ink-2);display:flex;align-items:center;gap:6px}

/* ---------- Conversación con la IA ---------- */
.chat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden;display:flex;flex-direction:column}
.chat-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:14px 18px;background:var(--tint)}
.chat-top strong{font-size:var(--t-sm);display:flex;align-items:center;gap:8px}
.chat-tabs{display:flex;gap:4px;flex-wrap:wrap}
.chat-tab{font:600 var(--t-xs)/1 var(--f-body);padding:7px 10px;border-radius:var(--r-pill);border:0;background:transparent;color:var(--ink-2);cursor:pointer;min-height:32px}
.chat-tab[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.chat-body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4);min-height:340px}
.msg{max-width:88%;padding:12px 16px;border-radius:18px;font-size:var(--t-sm);line-height:1.55}
.msg--user{align-self:flex-end;background:var(--green);color:var(--on-green);border-bottom-right-radius:6px}
.msg--ai{align-self:flex-start;background:var(--tint);color:var(--ink);border-bottom-left-radius:6px;min-height:48px}
.msg--ai ol{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.redacted{display:inline-block;height:.9em;vertical-align:-1px;border-radius:4px;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.you{display:inline-flex;align-items:center;gap:6px;font-weight:600;background:var(--yellow-soft);padding:1px 8px;border-radius:6px}
.caret{display:inline-block;width:2px;height:1em;background:currentColor;vertical-align:-2px;margin-left:2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.chat-foot{padding:12px 18px;font-size:var(--t-xs);color:var(--ink-2);display:flex;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;background:var(--tint)}

/* ---------- Mapa: tu negocio sube ---------- */
.map-demo{display:grid;gap:var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-4);box-shadow:var(--shadow-2)}
@media (min-width:640px){.map-demo{grid-template-columns:1fr 1.1fr;padding:var(--s-5)}}
.map-demo>*{min-width:0}
.map-canvas{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--map-land);aspect-ratio:1/1;max-width:100%}
.map-canvas svg{width:100%;height:100%}
.map-pin{position:absolute;width:30px;height:34px;transform:translate(-50%,-100%);transition:transform .5s var(--ease)}
.map-pin svg{width:100%;height:100%}
.map-pin--you{z-index:2}
.map-demo.is-up .map-pin--you{transform:translate(-50%,-100%) scale(1.25)}
.pack{position:relative;list-style:none;margin:0;padding:0;height:calc(4 * 76px + 3 * 8px)}
.pack li{position:absolute;left:0;right:0;height:76px;transform:translateY(calc(var(--pos) * 84px));transition:transform .7s var(--ease),box-shadow .3s,background .3s;display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line)}
.pack li .rank{font:700 var(--t-lg)/1 var(--f-display);width:22px;color:var(--ink-2)}
.pack li .meta{min-width:0;display:flex;flex-direction:column;gap:2px}
.pack li .name{font-weight:600;font-size:var(--t-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pack li .sub{font-size:var(--t-xs);color:var(--ink-2);display:flex;gap:6px;align-items:center}
.pack li .sub .i{width:14px;height:14px}
.pack li.is-you{background:var(--yellow-soft);border-color:var(--yellow);z-index:2}
.pack li.is-you .rank{color:var(--ink)}
.map-demo.is-up .pack li.is-you{box-shadow:var(--shadow-2)}
.map-caption{grid-column:1/-1;display:flex;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;font-size:var(--t-xs);color:var(--ink-2)}
.toggle-up{font:600 var(--t-xs)/1 var(--f-body);color:var(--green);background:none;border:0;cursor:pointer;padding:8px 0;min-height:32px}

/* ---------- Tarjetas de servicio y audiencias ---------- */
.grid-3{display:grid;gap:var(--s-5)}
@media (min-width:760px){.grid-3{grid-template-columns:repeat(3,1fr)}}
.grid-2{display:grid;gap:var(--s-5)}
@media (min-width:760px){.grid-2{grid-template-columns:repeat(2,1fr)}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
a.card{color:inherit;text-decoration:none}
a.card:hover,.card--hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.icon-tile{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}
.icon-tile .i{width:24px;height:24px}
.card .link-arrow{margin-top:auto}
.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ticks li{display:flex;gap:10px;align-items:flex-start;font-size:var(--t-sm)}
.ticks .i{width:18px;height:18px;color:var(--green);margin-top:3px}
.ticks--no .i{color:var(--ink-2)}

/* ---------- Proceso (secuencia real) ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-5);counter-reset:step}
@media (min-width:760px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{counter-increment:step;display:flex;flex-direction:column;gap:var(--s-3)}
.steps li::before{content:counter(step);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--paper);font:700 var(--t-md)/1 var(--f-display)}
.steps h3{font-size:var(--t-md)}
.steps p{font-size:var(--t-sm);color:var(--ink-2)}

/* ---------- Precios ---------- */
.plans{display:grid;gap:var(--s-5);align-items:stretch}
@media (min-width:860px){.plans{grid-template-columns:repeat(3,1fr)}}
.plan{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-5)}
.plan--featured{border:2px solid var(--green);box-shadow:var(--shadow-2)}
.plan .tag{position:absolute;top:-13px;left:var(--s-6);background:var(--green);color:var(--on-green);font:600 var(--t-xs)/1 var(--f-body);padding:7px 12px;border-radius:var(--r-pill)}
.plan h3{font-size:var(--t-xl)}
.price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.price strong{font:700 clamp(2.4rem,2rem + 1.6vw,3.2rem)/1 var(--f-display);letter-spacing:-.03em}
.price span{color:var(--ink-2);font-size:var(--t-sm)}
.price-note{font-size:var(--t-xs);color:var(--ink-2)}
.plan .btn{margin-top:auto}
.plan-alt{display:grid;gap:var(--s-5);margin-top:var(--s-5)}
@media (min-width:760px){.plan-alt{grid-template-columns:1fr 1fr}}
.plan-mini{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5) var(--s-6);display:flex;gap:var(--s-5);align-items:center;justify-content:space-between;flex-wrap:wrap}
.plan-mini .price strong{font-size:2rem}
.free-badge{display:inline-flex;align-items:center;gap:6px;background:var(--yellow-soft);color:var(--ink);font-weight:600;font-size:var(--t-xs);padding:6px 10px;border-radius:var(--r-pill)}

/* Calculadora por sedes */
.calc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6);display:grid;gap:var(--s-6);box-shadow:var(--shadow-1)}
@media (min-width:860px){.calc{grid-template-columns:1fr 1.2fr;align-items:center}}
.calc>*{min-width:0}
.sedes-ctrl{display:flex;align-items:center;gap:var(--s-3)}
.step-btn{width:var(--tap);height:var(--tap);border-radius:50%;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);font:600 1.4rem/1 var(--f-body);cursor:pointer;flex:none}
.step-btn:hover{border-color:var(--ink-2)}
.sedes-num{font:700 3rem/1 var(--f-display);width:3ch;text-align:center;border:0;background:transparent;color:var(--ink);-moz-appearance:textfield;padding:0}
.sedes-num::-webkit-inner-spin-button{-webkit-appearance:none}
.range{width:100%;accent-color:var(--green);height:32px;margin-top:var(--s-3)}
.calc-out{display:grid;gap:10px}
.calc-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:14px 16px;border-radius:var(--r-md);background:var(--paper);transition:background .3s}
.calc-row .lbl{display:flex;flex-direction:column;gap:2px;min-width:0}
.calc-row .lbl b{font-size:var(--t-sm)}
.calc-row .lbl small{font-size:var(--t-xs);color:var(--ink-2)}
.calc-row .val{font:700 var(--t-xl)/1 var(--f-display);white-space:nowrap}
.calc-row .val small{font:500 var(--t-xs)/1 var(--f-body);color:var(--ink-2)}
.calc-row.is-best{background:var(--green-soft)}
.calc-row[hidden]{display:none}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column;gap:10px;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .2s}
.faq details[open]{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.faq summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:600;display:flex;justify-content:space-between;gap:var(--s-4);align-items:center;min-height:var(--tap)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:12px;height:12px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-3px,-3px);transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(225deg) translate(-3px,-3px)}
.faq .answer{padding:0 20px 20px;color:var(--ink-2);display:flex;flex-direction:column;gap:10px}

/* ---------- Huecos para datos reales ---------- */
.hueco{border:2px dashed var(--yellow);background:var(--yellow-soft);border-radius:var(--r-md);padding:var(--s-5);color:var(--ink);display:flex;flex-direction:column;gap:8px}
.hueco::before{content:"Hueco para dato real";font:600 var(--t-xs)/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase}
.hueco-inline{outline:2px dashed var(--yellow);outline-offset:2px;border-radius:4px;background:var(--yellow-soft);padding-inline:4px}
.ejemplo{display:inline-flex;align-items:center;gap:6px;font:600 var(--t-xs)/1 var(--f-body);color:var(--ink-2);background:var(--tint);padding:6px 10px;border-radius:var(--r-pill)}

/* ---------- Bloque de cierre / reserva ---------- */
.cta-final{display:grid;gap:var(--s-6);align-items:center}
@media (min-width:960px){.cta-final{grid-template-columns:1.2fr 1fr}}
.cta-final h2{color:var(--on-deep)}
.contact-list{display:flex;flex-direction:column;gap:var(--s-3)}
.contact-list a{display:flex;align-items:center;gap:12px;color:var(--on-deep);text-decoration:none;font-weight:600;min-height:var(--tap);padding:8px 16px;border-radius:var(--r-md);background:color-mix(in srgb,var(--on-deep) 8%,transparent)}
.contact-list a:hover{background:color-mix(in srgb,var(--on-deep) 14%,transparent);color:var(--on-deep)}

/* ---------- Pie ---------- */
.site-footer{padding-block:var(--s-8) var(--s-7);background:var(--paper)}
.footer-grid{display:grid;gap:var(--s-6)}
@media (min-width:860px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.footer-grid h4{font:600 var(--t-xs)/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s-4)}
.footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.footer-grid ul a{color:var(--ink);text-decoration:none;font-size:var(--t-sm);display:inline-block;padding:6px 0}
.footer-grid ul a:hover{color:var(--green)}
.srl-slot{display:inline-flex;align-items:center;gap:10px;margin-top:var(--s-4);font-size:var(--t-xs);color:var(--ink-2)}
.srl-slot .slot{display:inline-grid;place-items:center;height:32px;padding:0 12px;border:2px dashed var(--yellow);border-radius:8px;background:var(--yellow-soft);color:var(--ink);font-weight:600}
.footer-legal{margin-top:var(--s-7);display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);font-size:var(--t-xs);color:var(--ink-2)}
.footer-legal a{color:var(--ink-2)}

/* ---------- Flujo del diagnóstico ---------- */
.diag-layout{display:grid;gap:var(--s-7)}
@media (min-width:960px){.diag-layout{grid-template-columns:1.1fr .9fr;align-items:start}}
.diag-layout>*{min-width:0}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,3vw,40px);box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:var(--s-5)}
.preview-q{background:var(--tint);border-radius:var(--r-md);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}
.preview-q .q{font:700 var(--t-lg)/1.3 var(--f-display)}
.preview-q .q em{font-style:normal;background:var(--yellow-soft);border-radius:6px;padding:0 6px}
.progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3)}
.progress li{display:flex;align-items:center;gap:var(--s-4);padding:16px 18px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);transition:border-color .3s,background .3s}
.progress .state{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;border:2px solid var(--line)}
.progress .state .i{width:16px;height:16px;opacity:0}
.progress li.is-active .state{border-color:var(--green);border-top-color:transparent;animation:spin .9s linear infinite}
.progress li.is-done{background:var(--green-soft);border-color:transparent}
.progress li.is-done .state{background:var(--green);border-color:var(--green);color:var(--on-green)}
.progress li.is-done .state .i{opacity:1}
.progress .txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.progress .txt b{font-size:var(--t-sm)}
.progress .txt small{color:var(--ink-2);font-size:var(--t-xs)}
@keyframes spin{to{transform:rotate(360deg)}}

/* Informe de resultado */
.report-head{display:flex;flex-direction:column;gap:var(--s-4)}
.verdict{display:grid;gap:var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,3vw,36px);box-shadow:var(--shadow-1)}
@media (min-width:760px){.verdict{grid-template-columns:auto 1fr;align-items:center}}
.gauge{--v:0;width:132px;height:132px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--v)*1%),var(--tint) 0);display:grid;place-items:center}
.gauge span{width:100px;height:100px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font:700 2rem/1 var(--f-display)}
.gauge span small{display:block;font:500 var(--t-xs)/1 var(--f-body);color:var(--ink-2);margin-top:4px}
.engine-grid{display:grid;gap:var(--s-4)}
@media (min-width:760px){.engine-grid{grid-template-columns:1fr 1fr}}
.engine{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}
.engine-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap}
.engine-top h3{font-size:var(--t-lg)}
.status{display:inline-flex;align-items:center;gap:6px;font:600 var(--t-xs)/1 var(--f-body);padding:7px 10px;border-radius:var(--r-pill)}
.status .i{width:14px;height:14px}
.status--si{background:var(--green-soft);color:var(--green)}
.status--no{background:color-mix(in srgb,var(--pin) 14%,transparent);color:var(--pin)}
.engine .query{font-size:var(--t-xs);color:var(--ink-2);background:var(--tint);padding:8px 12px;border-radius:var(--r-sm)}
.engine ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-size:var(--t-sm)}
.engine ol li.is-you{font-weight:600}
.recs{counter-reset:r;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3)}
.recs li{display:flex;gap:var(--s-4);align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-4) var(--s-5)}
.recs li .imp{flex:none;font:600 var(--t-xs)/1 var(--f-body);padding:6px 10px;border-radius:var(--r-pill);background:var(--yellow-soft)}
.recs li .imp--alta{background:var(--green);color:var(--on-green)}

/* ---------- Animación de entrada (siempre visible en reposo) ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .reveal.in{animation:rise .7s var(--ease) both}
  @keyframes rise{from{transform:translateY(14px)}to{transform:none}}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .caret{display:none}
}

/* ---------- Página del sistema de diseño ---------- */
.swatches{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.swatch{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.swatch i{display:block;height:84px}
.swatch div{padding:10px 12px;font-size:var(--t-xs);display:flex;flex-direction:column;gap:2px}
.swatch code{color:var(--ink-2)}
.type-row{display:grid;gap:var(--s-3);padding-block:var(--s-4)}
@media (min-width:760px){.type-row{grid-template-columns:160px 1fr;align-items:baseline}}
.type-row code{font-size:var(--t-xs);color:var(--ink-2)}
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--s-3)}
.icon-grid div{display:flex;flex-direction:column;align-items:center;gap:8px;padding:var(--s-4) 8px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);font-size:var(--t-xs);color:var(--ink-2)}
.icon-grid .i{width:26px;height:26px;color:var(--ink)}
.logo-board{display:grid;gap:var(--s-4)}
@media (min-width:760px){.logo-board{grid-template-columns:1.6fr 1fr}}
.logo-board>div{border-radius:var(--r-lg);padding:var(--s-7) var(--s-6);display:grid;place-items:center;min-height:200px}
.logo-board .on-light{background:#F6F8F4;border:1px solid var(--line)}
.logo-board .on-dark{background:#0E1512}
.spec-table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.spec-table th,.spec-table td{text-align:left;padding:10px 12px;vertical-align:top}
.spec-table tr:nth-child(even) td{background:var(--tint)}
.spec-table code{font-size:var(--t-xs)}
.scroll-x{overflow-x:auto}

/* =========================================================
   Fase 2 · páginas interiores
   ========================================================= */
.page-hero{padding-block:clamp(32px,5vw,72px) clamp(40px,5vw,80px)}
.page-hero h1{max-width:18ch}
.page-hero .lead{margin-top:var(--s-5)}
.page-hero .btn-row{margin-top:var(--s-6)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:var(--t-xs);color:var(--ink-2);margin-bottom:var(--s-4)}
.crumbs a{color:var(--ink-2)}

/* Bloque «no hacemos»: honestidad visible */
.no-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
@media (min-width:760px){.no-list{grid-template-columns:1fr 1fr}}
.no-list li{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-4) var(--s-5);font-size:var(--t-sm)}
.no-list .i{color:var(--pin);margin-top:2px}

/* Factores: cómo elige la IA */
.factor{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-6);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
.factor .bar{height:8px;border-radius:var(--r-pill);background:var(--tint);overflow:hidden}
.factor .bar i{display:block;height:100%;width:var(--w,50%);background:var(--green);border-radius:inherit;transform-origin:left;transition:transform 1s var(--ease)}

/* Tabla de sedes (panel de cadena) */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}
.panel-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-4) var(--s-5);background:var(--tint)}
.panel-top b{font-size:var(--t-sm)}
.sede-table{width:100%;border-collapse:collapse;font-size:var(--t-sm);min-width:560px}
.sede-table th{font:600 var(--t-xs)/1.2 var(--f-body);color:var(--ink-2);text-align:left;padding:12px 16px;letter-spacing:.04em;text-transform:uppercase}
.sede-table td{padding:14px 16px;vertical-align:middle}
.sede-table tbody tr:nth-child(odd) td{background:color-mix(in srgb,var(--tint) 55%,transparent)}
.sede-table tbody tr{transition:background .2s}
.sede-table tbody tr:hover td{background:var(--green-soft)}
.pos{display:inline-grid;place-items:center;min-width:34px;height:28px;padding:0 8px;border-radius:var(--r-pill);font-weight:600;font-variant-numeric:tabular-nums;background:var(--tint)}
.pos--top{background:var(--green);color:var(--on-green)}
.dotset{display:inline-flex;gap:4px}
.dotset i{width:10px;height:10px;border-radius:50%;background:var(--line)}
.dotset i.on{background:var(--green)}

/* Informe en marca blanca */
.wl-report{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}
.wl-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-5);border-bottom:0;background:var(--tint)}
.wl-logo{display:inline-grid;place-items:center;height:40px;padding:0 16px;border:2px dashed var(--ink-2);border-radius:10px;font-weight:600;font-size:var(--t-sm);color:var(--ink-2);transition:border-color .3s,color .3s,background .3s}
.wl-report:hover .wl-logo{border-color:var(--green);color:var(--green);background:var(--green-soft)}
.wl-body{padding:var(--s-5);display:grid;gap:var(--s-4)}
.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
.kpi{background:var(--paper);border-radius:var(--r-md);padding:var(--s-4);display:flex;flex-direction:column;gap:4px;min-width:0}
.kpi small{font-size:var(--t-xs);color:var(--ink-2)}
.kpi b{font:700 var(--t-xl)/1 var(--f-display)}
.spark{width:100%;height:64px}

/* Línea de tiempo del proceso */
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;counter-reset:t}
.timeline>li{counter-increment:t;display:grid;grid-template-columns:48px 1fr;gap:var(--s-5);position:relative;padding-bottom:var(--s-7)}
.timeline>li:last-child{padding-bottom:0}
.timeline>li::before{content:counter(t);display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--paper);font:700 var(--t-lg)/1 var(--f-display);position:relative;z-index:1}
.timeline>li::after{content:"";position:absolute;left:23px;top:48px;bottom:0;width:2px;background:var(--line)}
.timeline>li:last-child::after{display:none}
.timeline .when{font:600 var(--t-xs)/1 var(--f-body);color:var(--green);letter-spacing:.06em;text-transform:uppercase}
.timeline .body{display:flex;flex-direction:column;gap:10px;padding-top:6px;min-width:0}
.timeline .body h3{font-size:var(--t-xl)}
.timeline .body p{color:var(--ink-2);max-width:62ch}

/* FAQ agrupada */
.faq-layout{display:grid;gap:var(--s-7)}
@media (min-width:960px){.faq-layout{grid-template-columns:240px 1fr;align-items:start}}
.faq-nav{display:flex;flex-wrap:wrap;gap:8px}
@media (min-width:960px){.faq-nav{flex-direction:column;position:sticky;top:calc(96px + env(safe-area-inset-top,0px))}}
.faq-nav a{padding:10px 14px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:500;font-size:var(--t-sm)}
.faq-nav a:hover{border-color:var(--green)}
.faq-group{display:flex;flex-direction:column;gap:var(--s-4);scroll-margin-top:100px}
.faq-group+.faq-group{margin-top:var(--s-7)}

/* Contacto y Calendly */
.contact-cards{display:grid;gap:var(--s-3)}
.contact-card{display:flex;gap:var(--s-4);align-items:center;padding:var(--s-4) var(--s-5);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;min-height:64px;transition:border-color .2s,transform .2s var(--ease)}
a.contact-card:hover{border-color:var(--green);transform:translateY(-2px);color:var(--ink)}
.contact-card .icon-tile{width:44px;height:44px;flex:none}
.contact-card span{display:flex;flex-direction:column;gap:2px;min-width:0}
.contact-card small{color:var(--ink-2);font-size:var(--t-xs)}
.calendly-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;scroll-margin-top:100px}
.calendly-ph{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-4);padding:var(--s-6)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;width:100%}
.slots span{padding:10px;border-radius:var(--r-sm);background:var(--tint);text-align:center;font-size:var(--t-sm);font-variant-numeric:tabular-nums;color:var(--ink-2)}
.calendly-frame{width:100%;height:720px;border:0;display:block}

/* Gracias */
.thanks-mark{width:72px;height:72px;border-radius:50%;background:var(--green);color:var(--on-green);display:grid;place-items:center}
.thanks-mark .i{width:36px;height:36px}
@media (prefers-reduced-motion:no-preference){.thanks-mark{animation:pop .6s var(--ease) both}@keyframes pop{from{transform:scale(.6)}to{transform:none}}}

/* Blog */
.post-grid{display:grid;gap:var(--s-5)}
@media (min-width:760px){.post-grid{grid-template-columns:repeat(3,1fr)}}
.post-card{display:flex;flex-direction:column;gap:var(--s-3);color:inherit;text-decoration:none}
.post-cover{aspect-ratio:16/10;border-radius:var(--r-md);background:var(--tint);display:grid;place-items:center;overflow:hidden;max-width:100%}
.post-cover svg{width:56px;height:56px;color:var(--green);transition:transform .4s var(--ease)}
.post-card:hover .post-cover svg{transform:translateY(-4px)}
.post-card:hover h3{color:var(--green)}
.post-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:var(--t-xs);color:var(--ink-2)}
.article-layout{display:grid;gap:var(--s-7)}
@media (min-width:1080px){.article-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start}}
.prose{max-width:68ch;font-size:1.125rem;line-height:1.75}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:var(--t-xl);margin-top:2em;scroll-margin-top:100px}
.prose h3{margin-top:1.6em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.4em}
.prose blockquote{margin:1.6em 0;padding:var(--s-5);border-radius:var(--r-md);background:var(--yellow-soft);font-weight:500}
.prose figure{margin:1.6em 0}
.prose figcaption{font-size:var(--t-xs);color:var(--ink-2);margin-top:8px}
.prose table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.prose th,.prose td{padding:10px 12px;text-align:left}
.prose tbody tr:nth-child(odd) td{background:var(--tint)}
.toc{position:sticky;top:calc(96px + env(safe-area-inset-top,0px));display:flex;flex-direction:column;gap:var(--s-4)}
.toc nav{display:flex;flex-direction:column;gap:2px}
.toc nav a{color:var(--ink-2);text-decoration:none;font-size:var(--t-sm);padding:6px 12px;border-radius:var(--r-sm)}
.toc nav a:hover,.toc nav a.is-active{color:var(--ink);background:var(--tint)}
.author-box{display:flex;gap:var(--s-4);align-items:center;padding:var(--s-5);border-radius:var(--r-md);background:var(--tint)}
.author-box img{width:44px;height:44px;flex:none}

/* Legales */
.legal{max-width:72ch}
.legal h2{font-size:var(--t-lg);margin-top:2em}
.legal p,.legal li{color:var(--ink-2)}
.legal>*+*{margin-top:1em}
.legal ul{padding-left:1.2em}
.legal-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cookie-table{width:100%;border-collapse:collapse;font-size:var(--t-sm);min-width:560px}
.cookie-table th,.cookie-table td{text-align:left;padding:10px 12px}
.cookie-table tbody tr:nth-child(odd) td{background:var(--tint)}

/* ===== 00-comun.css ===== */
/* ---------- Ajustes comunes sobre base.css (diseño final de Claude Design) ---------- */
/* Subrayado amarillo sin degradado */
.mark{background:none;box-shadow:inset 0 -.3em 0 var(--mark-bg);padding-inline:.04em}

/* Logo en línea: pin verde con tres puntos de chat */
.brand{align-items:center;gap:10px;color:var(--ink)}
.brand-pin{width:30px;height:33px;flex:none}
.brand-pin .p{fill:var(--green)}
.brand-pin .d{fill:var(--paper)}
.brand-txt{display:flex;flex-direction:column;gap:4px}
.brand-txt b{font:700 20px/1 var(--f-display);letter-spacing:-.01em;color:var(--ink)}
.brand-txt b span{color:var(--green)}
.brand-txt small{font:500 12px/1 var(--f-body);color:var(--ink-2)}
.site-footer .brand-txt b{font-size:18px}

/* Menú: página activa en verde y subrayada */
.nav a[aria-current="page"]{background:none;color:var(--green);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.nav a:hover{background:none;color:var(--green)}
.menu-panel a[aria-current="page"]{color:var(--green);font-weight:600}
@media (min-width:1024px){.nav{display:flex}.header-actions{margin-left:var(--s-3)}.header-cta{display:inline-flex;white-space:nowrap}.menu-toggle{display:none}}

/* Barra móvil fija por debajo de 760px */
.mobile-bar{grid-template-columns:1fr 1.4fr}
@media (min-width:760px){.mobile-bar{display:none}body.has-mobile-bar{padding-bottom:0}}

/* Pie: títulos de columna como en el diseño */
.footer-grid h4{font:700 16px/1.2 var(--f-display);letter-spacing:0;text-transform:none;color:var(--ink)}
.footer-grid ul a{color:var(--ink-2)}

/* Calculadora común */
.calc-title{font-size:var(--t-xl)}
.seg{align-self:flex-start;display:flex;gap:4px;padding:4px;background:var(--tint);border-radius:var(--r-pill)}
.seg button{min-height:44px;padding:0 16px;border:0;border-radius:var(--r-pill);font:600 var(--t-sm)/1 var(--f-body);cursor:pointer;background:transparent;color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(19,32,26,.12)}
.sedes-num{width:88px;min-height:56px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:2rem}
.step-btn{border-color:var(--green);color:var(--green);background:transparent}
.step-btn:hover{background:var(--green-soft)}
.range-scale{display:flex;justify-content:space-between;font:500 var(--t-xs)/1 var(--f-body);color:var(--ink-2)}
.calc-wants{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.calc-wants legend{font-weight:600;color:var(--ink);margin-bottom:6px;padding:0}
.calc-wants .check{min-height:32px;align-items:center}
.lbl-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.best-tag{padding:4px 8px;background:var(--green);color:var(--on-green);border-radius:var(--r-pill);font:600 12px/1 var(--f-body)}
.calc-row.is-best{background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green)}
.calc-row.is-off .val b{color:var(--ink-2)}
.calc-cta{align-self:flex-start;justify-self:start}
.calc-wants .check input{width:24px;height:24px}
.calc-row .val{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}

/* Botón con borde verde (el «btn-o» del diseño) */
.btn--outline{background:transparent;color:var(--green);border-color:var(--green)}
.btn--outline:hover{background:var(--green-soft);color:var(--green-hover);border-color:var(--green)}

/* Zonas táctiles de migas y enlaces legales del pie (mínimo 24px, objetivo 44px) */
.crumbs a{display:inline-flex;align-items:center;min-height:32px;padding-block:4px}
.footer-legal a{display:inline-flex;align-items:center;min-height:44px}
.footer-legal{align-items:center}

/* Bloques de texto junto a la cabecera en cadenas y marca blanca (fase 0 SEO, 10-nov) */
.cad-duo>.prose,.mb-duo>.prose{flex:2 1 520px;min-width:0}

/* ===== cadenas.css ===== */
/* ---------- Página /cadenas/ (diseño Cadenas.dc.html) ---------- */
.cad-hero{padding-bottom:var(--section)}
.cad-hero-in{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px);align-items:center}
.cad-hero-txt{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:20px}
.cad-hero-txt .crumbs{margin-bottom:0}
.cad-hero h1{max-width:14ch}
.cad-hero .lead{margin-top:0;max-width:52ch}
.cad-hero .btn-row{margin-top:0}
.cad-hero .eyebrow .i{width:18px;height:18px}

/* Botón con borde verde (el «btn-o» del diseño) */
.btn.cad-o{background:transparent;color:var(--green);border-color:var(--green)}
.btn.cad-o:hover{background:var(--green-soft);color:var(--green-hover);border-color:var(--green)}

/* Panel de la red (maqueta) */
.cad-panel{flex:1 1 480px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}
.cad-panel-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:18px 20px}
.cad-panel-top b{font:700 18px/1.2 var(--f-display)}
.cad-maqueta{padding:5px 10px;background:var(--yellow-soft);color:var(--ink);border-radius:var(--r-pill);font:500 13px/1.4 var(--f-body)}
.cad-panel-body{padding:0 12px 16px}
.cad-sedes{width:100%;min-width:440px;border-collapse:collapse}
.cad-sedes th,.cad-sedes td{padding:12px 14px;text-align:left;font-size:15px}
.cad-sedes th{font:600 13px/1.2 var(--f-body);color:var(--ink-2)}
.cad-sedes td:first-child{font-weight:600}
.cad-sedes tbody tr:nth-child(odd){background:var(--paper)}
.cad-estado{display:inline-block;padding:5px 10px;border-radius:var(--r-pill);font:600 13px/1 var(--f-body);white-space:nowrap}
.cad-estado--ok{background:var(--green-soft);color:var(--green)}
.cad-estado--mid{background:var(--yellow-soft);color:var(--ink)}
.cad-estado--low{background:var(--surface);color:var(--pin);box-shadow:inset 0 0 0 1.5px var(--pin)}

/* Qué hacemos: cuatro tarjetas */
.cad-cards{display:grid;gap:var(--s-5)}
@media (min-width:760px){.cad-cards{grid-template-columns:repeat(2,1fr)}}
.cad-cards .card h3{font-size:22px;line-height:1.2}
.cad-cards .card p{font-size:17px;line-height:1.6}

/* Calculadora de 3 a 50 sedes */
.cad-calc{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,48px);padding:clamp(24px,4vw,40px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
.cad-calc-in{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:20px}
.cad-calc-in h3{font-size:32px;line-height:1.15;letter-spacing:-.01em}
.cad-calc-in .range{margin-top:0}
.cad-calc-out{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:12px}
.cad-total{padding:24px;background:var(--green-soft);border-radius:var(--r-md);box-shadow:inset 0 0 0 2px var(--green);display:flex;flex-direction:column;gap:8px}
.cad-total-lbl{font:600 15px/1.2 var(--f-body)}
.cad-total-num{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cad-total-num strong{font:700 clamp(2.6rem,2.2rem + 1.4vw,3.2rem)/1 var(--f-display);letter-spacing:-.03em}
.cad-total-num span,.cad-total .muted{font-size:15px;color:var(--ink-2)}
.cad-fila{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;background:var(--paper);border-radius:var(--r-md)}
.cad-fila-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.cad-fila-txt b{font-weight:600}
.cad-fila-txt small{font-size:13px;color:var(--ink-2)}
.cad-fila-val{font:700 24px/1 var(--f-display);color:var(--ink-2);white-space:nowrap}
.cad-extra{font:600 15px/1.5 var(--f-body);color:var(--green)}
.cad-calc-out .btn-row{margin-top:4px}

/* Dudas: título a la izquierda, preguntas a la derecha */
.cad-duo{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px)}
.cad-duo-head{flex:1 1 300px;display:flex;flex-direction:column;gap:16px}
.cad-duo .faq{flex:2 1 520px;min-width:0;gap:12px}
.cad-duo .faq summary{min-height:64px;font-size:17px;line-height:1.35}
.cad-duo .faq .answer{font-size:17px;line-height:1.6}

/* ===== chat.css ===== */
/* Conversación con la IA en vivo (home y /posicionamiento-ia/). Lógica en js/partes/chat.js. */
.aichat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden;display:flex;flex-direction:column}
.aichat-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px}
.aichat-top strong{display:flex;align-items:center;gap:8px;font:600 15px/1 var(--f-body)}
.aichat-top strong .i{color:var(--green)}
.aichat-tabs{display:flex;gap:4px;padding:4px;background:var(--tint);border-radius:var(--r-pill)}
.aichat-tabs button{min-height:36px;padding:0 14px;border:0;border-radius:var(--r-pill);font:600 13px/1 var(--f-body);cursor:pointer;background:transparent;color:var(--ink-2);transition:background .2s,color .2s}
.aichat-tabs button:hover{color:var(--ink)}
.aichat-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(19,32,26,.12)}
.aichat-body{padding:8px 20px 20px;display:flex;flex-direction:column;gap:14px;min-height:420px;background:var(--paper)}
.aichat-q{margin-top:12px;align-self:flex-end;max-width:85%;padding:12px 16px;background:var(--green-soft);border-radius:18px 18px 4px 18px;font-size:15px;line-height:1.55;color:var(--ink)}
.aichat-a{align-self:flex-start;max-width:94%;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:18px 18px 18px 4px;font-size:15px;line-height:1.55;display:flex;flex-direction:column;gap:12px}
.aichat-dots{display:inline-flex;gap:5px;padding:6px 2px}
.aichat-dots span{width:7px;height:7px;border-radius:50%;background:var(--ink-2);animation:aichat-dot 1.1s infinite ease-in-out}
.aichat-dots span:nth-child(2){animation-delay:.15s}
.aichat-dots span:nth-child(3){animation-delay:.3s}
@keyframes aichat-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.aichat-caret{display:inline-block;width:2px;height:1.05em;background:var(--green);vertical-align:-2px;margin-left:2px;animation:aichat-blink 1s steps(1) infinite}
@keyframes aichat-blink{50%{opacity:0}}
.aichat-done{display:flex;flex-direction:column;gap:12px}
.aichat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.aichat-list li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;background:var(--tint);border-radius:var(--r-md)}
.aichat-n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--surface);color:var(--ink);display:grid;place-items:center;font:700 14px/1 var(--f-display);font-variant-numeric:tabular-nums}
.aichat-list li>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.aichat-list b{font-weight:600}
.aichat-why{font-size:13px;color:var(--ink-2)}
.aichat-list li.is-you{background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green)}
.aichat-list li.is-you .aichat-n{background:var(--green);color:var(--on-green)}
.aichat-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--yellow-soft);border-radius:var(--r-md)}
.aichat-strip>span:first-child{display:flex;flex-direction:column;gap:2px}
.aichat-strip b{font-weight:600}
.aichat-strip>span:first-child>span{font-size:13px;color:var(--ink-2)}
.aichat-no{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface);border-radius:var(--r-pill);font:600 13px/1 var(--f-body);color:var(--pin)}
.aichat-no .i{width:14px;height:14px}
.aichat-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:14px 20px;font:500 13px/1.4 var(--f-body);color:var(--ink-2)}
.aichat-label{padding:5px 10px;background:var(--yellow-soft);border-radius:var(--r-pill);color:var(--ink)}
.aichat-toggle{min-height:40px;padding:0 16px;border:1.5px solid var(--green);border-radius:var(--r-pill);background:transparent;color:var(--green);font:600 14px/1 var(--f-body);cursor:pointer;transition:background .2s,transform .2s}
.aichat-toggle:hover{background:var(--green-soft);color:var(--green-hover);transform:translateY(-1px)}
@media (max-width:420px){.aichat-top,.aichat-foot{padding-inline:16px}.aichat-body{padding-inline:14px}.aichat-tabs button{padding:0 11px}}
@media (prefers-reduced-motion:reduce){.aichat-caret{display:none}.aichat-dots span{animation:none;opacity:.6}}

/* ===== contacto.css ===== */
/* ---------- Contacto (diseño Contacto.dc.html) ---------- */
.ct-hero{padding-block:clamp(32px,5vw,56px) 40px}
.ct-head{display:flex;flex-direction:column;gap:16px;max-width:720px}
.ct-head .crumbs{margin-bottom:0}
.ct-head h1{font-size:clamp(37px,5vw,60px);line-height:1.05;max-width:none}
.ct-head .lead{margin-top:0;font-size:clamp(18px,1.6vw,20px);line-height:1.6}
.ct-body{padding-bottom:clamp(64px,8vw,96px)}
.ct-grid{display:grid;gap:clamp(24px,4vw,48px);align-items:start}
@media (min-width:960px){.ct-grid{grid-template-columns:1.6fr 1fr}}
.ct-grid>*{min-width:0}
.ct-main{display:flex;flex-direction:column;gap:28px}
.ct-card{display:flex;flex-direction:column;gap:16px;padding:clamp(20px,3vw,32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);scroll-margin-top:100px}
.ct-card h2{font-size:28px;line-height:1.15}
.ct-card>p{font-size:var(--t-md);line-height:1.6}
.ct-cal{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ct-cal .calendly-frame{border-radius:var(--r-md);min-height:680px}
.ct-form{gap:18px}
.ct-ok{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;background:var(--green-soft);color:var(--green);border-radius:var(--r-pill);font:600 var(--t-sm)/1.3 var(--f-body)}
.ct-ok:focus{outline:none}
.ct-ok .i{width:18px;height:18px}
.ct-send{align-self:flex-start;min-height:52px;font-size:16px}
.ct-side{display:flex;flex-direction:column;gap:12px}
.ct-side .contact-card{padding:16px 18px}
.ct-side .contact-card .icon-tile{width:48px;height:48px;display:grid;place-items:center}
.ct-side .contact-card b{font:600 16px/1.3 var(--f-body);overflow-wrap:anywhere}
.ct-help{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding:24px;background:var(--tint);border-radius:var(--r-lg)}
.ct-help h3{font-size:20px}
.ct-help .link-arrow{min-height:44px;font-size:16px}

/* ---------- Gracias (diseño Gracias.dc.html) ---------- */
.gr{padding-block:clamp(32px,5vw,64px) clamp(64px,8vw,96px)}
.gr-wrap{max-width:calc(820px + 64px);display:flex;flex-direction:column;gap:28px}
.gr-mark{width:72px;height:72px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center}
.gr-mark .i{width:36px;height:36px}
@media (prefers-reduced-motion:no-preference){.gr-mark{animation:pop .6s var(--ease) both}}
.gr h1{font-size:clamp(34px,4.4vw,52px);line-height:1.08}
.gr-lead{font-size:clamp(18px,1.6vw,20px);line-height:1.6;color:var(--ink-2)}
.gr-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.gr-steps li{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.gr-steps li.is-done{background:var(--green-soft);border-color:transparent}
.gr-steps .n{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--tint);color:var(--ink);font:700 15px/1 var(--f-display)}
.gr-steps li.is-done .n{background:var(--green);color:var(--on-green)}
.gr-steps .txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.gr-steps .txt b{font:600 16px/1.25 var(--f-body)}
.gr-steps .txt small{font-size:var(--t-xs);color:var(--ink-2)}
.gr .btn--lg{min-height:52px;font-size:16px;padding:12px 24px}

/* ===== diagnostico.css ===== */
/* ---------- Diagnóstico: /diagnostico/, /preparando/, /resultado/ (diseño Diagnostico.dc.html) ---------- */
.diag{padding-block:clamp(32px,5vw,56px) clamp(64px,8vw,96px)}
.diag-wrap{display:flex;flex-direction:column;gap:32px}
.diag-wrap>.crumbs{margin-bottom:-16px}

/* Pasos: 1 Tus datos · 2 Lo preparamos · 3 Tu informe */
.diag-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.diag-steps li{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 6px;border-radius:var(--r-pill);background:var(--tint);color:var(--ink);font:600 var(--t-sm)/1 var(--f-body)}
.diag-steps li span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--ink);font:700 14px/1 var(--f-display)}
.diag-steps li[aria-current="step"]{background:var(--green);color:var(--on-green)}
.diag-steps li[aria-current="step"] span{color:var(--green)}

/* Paso 1: formulario */
.diag-grid{display:grid;gap:clamp(32px,5vw,56px);align-items:start}
@media (min-width:960px){.diag-grid{grid-template-columns:1.4fr 1fr}}
.diag-grid>*{min-width:0}
.diag-main{display:flex;flex-direction:column;gap:24px}
.diag-head{display:flex;flex-direction:column;gap:16px}
.diag h1{font-size:clamp(34px,4.4vw,52px);line-height:1.05;max-width:none}
.diag-lead{font-size:clamp(17px,1.5vw,19px);line-height:1.6;color:var(--ink-2);max-width:60ch}
.diag-form{display:flex;flex-direction:column;gap:18px;padding:clamp(20px,3vw,32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
.diag-pair,.ct-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.diag-form .field,.ct-form .field{gap:8px}
.diag-form .field label,.ct-form .field label{font:600 var(--t-sm)/1.3 var(--f-body)}
.diag-form .input,.ct-form .input,.ct-form .select,.ct-form .textarea{font-size:17px}
.diag-form .field label.check,.ct-form .field label.check{min-height:44px;font:400 var(--t-sm)/1.5 var(--f-body);color:var(--ink);cursor:pointer}
.diag-form .check input,.ct-form .check input{width:20px;height:20px;margin-top:2px}
.opc{font-weight:400;color:var(--ink-2)}
.diag-form .error-msg,.ct-form .error-msg{font:500 var(--t-xs)/1.3 var(--f-body)}
.diag-form .error-msg:empty,.ct-form .error-msg:empty{display:none}
.select[aria-invalid="true"],.textarea[aria-invalid="true"]{border-color:var(--pin)}
.diag-form .btn--lg{font-size:var(--t-md)}
.diag-note{text-align:center}
/* Campo trampa para bots: fuera de pantalla, sin foco */
.hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.diag-side{display:flex;flex-direction:column;gap:20px}
.diag-q{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--tint);border-radius:var(--r-lg)}
.diag-q .q{font:700 24px/1.25 var(--f-display);overflow-wrap:anywhere}
.diag-q .q em{font-style:normal;box-shadow:inset 0 -.3em 0 var(--mark-bg)}
.diag-card{display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.diag-card h2{font-size:20px;line-height:1.25;letter-spacing:-.01em}
.diag-card .ticks .i{width:20px;height:20px;margin-top:1px}
.diag-time{display:flex;gap:8px;align-items:flex-start}
.diag-time .i{width:18px;height:18px;margin-top:2px}

/* Botón secundario en verde, como en el diseño */
.diag-ghost{color:var(--green);border-color:var(--green)}
.diag-ghost:hover{background:var(--green-soft);color:var(--green-hover);border-color:var(--green)}

/* Paso 2: lo preparamos */
.diag-narrow{max-width:760px;display:flex;flex-direction:column;gap:28px}
.diag-prog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.diag-prog li{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r-md);background:var(--tint);transition:background .3s,box-shadow .3s}
.diag-prog li:not(.is-done):not(.is-active) .state{opacity:.6}
.diag-prog li.is-active{background:var(--surface);box-shadow:inset 0 0 0 2px var(--green)}
.diag-prog li.is-done{background:var(--surface)}
.diag-prog .state{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--on-green);position:relative}
.diag-prog .state .i{width:18px;height:18px;opacity:0}
.diag-prog li.is-done .state{background:var(--green)}
.diag-prog li.is-done .state .i{opacity:1}
.diag-prog li.is-active .state::after{content:"";position:absolute;inset:6px;border-radius:50%;border:2.5px solid var(--green);border-left-color:transparent;animation:spin 1s linear infinite}
.diag-prog .txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.diag-prog .txt b{font:600 16px/1.2 var(--f-body)}
.diag-prog .txt small{font-size:var(--t-xs);color:var(--ink-2)}
.diag-done{display:flex;flex-direction:column;gap:14px;padding:28px;background:var(--surface);border:2px solid var(--green);border-radius:var(--r-lg)}
.diag-done:focus{outline:none}
.diag-done h2{font-size:28px;line-height:1.15}
.diag-done p{font-size:var(--t-md);line-height:1.6;color:var(--ink-2)}

/* Paso 3: informe */
.rep{display:flex;flex-direction:column;gap:48px}
.rep-head{display:flex;flex-direction:column;gap:16px}
.rep-ejemplo{padding:5px 10px;background:var(--yellow-soft);color:var(--ink);border-radius:var(--r-pill);font:600 var(--t-xs)/1.3 var(--f-body);box-shadow:inset 0 0 0 1.5px var(--yellow)}
.rep-verdict{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:12px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.rep-verdict>.stack{flex:1 1 300px;min-width:0}
.rep-verdict h2{font-size:28px;line-height:1.15}
.rep-verdict p{font-size:var(--t-md);line-height:1.6}
.ring{position:relative;width:140px;height:140px;flex:none}
.ring svg circle{fill:none;stroke-width:14}
.ring-track{stroke:var(--tint)}
.ring-val{stroke:var(--green);stroke-linecap:round;transition:stroke-dasharray .8s var(--ease)}
.ring>span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring b{font:700 40px/1 var(--f-display)}
.ring small{font-size:var(--t-xs);color:var(--ink-2)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ring-track{stroke:var(--line)}}
:root[data-theme="dark"] .ring-track{stroke:var(--line)}
.rep-h2{font-size:clamp(26px,3vw,36px);line-height:1.1}
.rep-engines{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.rep-engine{display:flex;flex-direction:column;gap:12px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}
.rep-engine-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rep-engine h3{font:700 18px/1.2 var(--f-display)}
.rep-chip{flex:none;padding:5px 10px;border-radius:var(--r-pill);font:600 12px/1 var(--f-body)}
.rep-chip--si{background:var(--green-soft);color:var(--green)}
.rep-chip--no{background:var(--surface);color:var(--pin);box-shadow:inset 0 0 0 1.5px var(--pin)}
.rep-engine .query{font-size:var(--t-xs);line-height:1.4;color:var(--ink-2)}
.rep-engine ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rep-engine ol li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--paper);font-size:var(--t-sm);overflow-wrap:anywhere}
.rep-engine ol li.is-you{background:var(--green-soft);font-weight:600}
.rep-engine ol li .n{flex:none;width:22px;font:700 14px/1 var(--f-display)}
.rep-split{display:grid;gap:clamp(32px,5vw,56px);align-items:start}
@media (min-width:960px){.rep-split{grid-template-columns:1.3fr 1fr}}
.rep-split>*{min-width:0}
.rep-recs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.rep-recs li{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.rep-recs .imp{align-self:flex-start;padding:4px 10px;border-radius:var(--r-pill);font:600 12px/1 var(--f-body);background:var(--tint);color:var(--ink)}
.rep-recs .imp--alto{background:var(--yellow);color:#13201A}
.rep-recs b{font:700 18px/1.3 var(--f-display)}
.rep-recs p{font-size:var(--t-sm);line-height:1.55;color:var(--ink-2)}
.rep-plan{position:relative;display:flex;flex-direction:column;gap:18px;padding:32px;background:var(--surface);border:2px solid var(--green);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}
.rep-tag{position:absolute;top:-14px;left:28px;padding:7px 12px;background:var(--yellow);color:#13201A;border-radius:var(--r-pill);font:600 var(--t-xs)/1 var(--f-body)}
.rep-plan h3{font-size:32px;line-height:1.15}
.rep-plan .price strong{font-size:51px}
.rep-plan .price span{font-size:var(--t-sm)}
.rep-plan .price strong .num{font:inherit;color:inherit}
.rep-plan .ticks .i{width:20px;height:20px;margin-top:1px}
.rep-plan .btn{font-size:var(--t-sm)}

/* Informe pendiente (202) o cargando */
.diag-wait{display:flex;gap:20px;align-items:flex-start;padding:28px;background:var(--surface);border:2px solid var(--green);border-radius:var(--r-lg);max-width:760px}
.diag-wait-h{font:700 clamp(26px,3vw,36px)/1.1 var(--f-display)}
.diag-spin{flex:none;width:32px;height:32px;margin-top:4px;border-radius:50%;border:3px solid var(--green);border-left-color:transparent;animation:spin 1s linear infinite}
[data-report].is-cargando [data-report-body]{display:none}

/* ===== home.css ===== */
/* Home: formulario corto del hero y pila de la sección de precios. */
.hm-hero{padding-block:clamp(40px,6vw,80px) clamp(64px,8vw,96px)}
.hm-hero .sv-copy{gap:22px}
.hm-hero h1{max-width:15ch}
.hm-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:18px}
.hm-campos{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.hm-campos .field{gap:8px}
.hm-campos label{font:600 15px/1.3 var(--f-body)}
.hm-campos .input{font-size:17px}
.hm-form-pie{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.hm-form-pie p{display:flex;align-items:center;gap:6px;font-size:15px;line-height:1.4;color:var(--ink-2)}
.hm-form-pie p .i{width:16px;height:16px}
.hm-pila{display:flex;flex-direction:column;gap:48px}
.hm-pila>.sv-head{margin-bottom:0}

/* ===== info.css ===== */
/* ---------- Páginas informativas y legales: cómo trabajamos, FAQ, blog, guía, legales y 404 ---------- */
/* Todo va con prefijo info- para no pisar estilos de otras páginas. */
.info-hero h1{max-width:20ch}
.info-hero .crumbs{margin-bottom:0}
.info-more{margin-top:var(--s-6);color:var(--ink-2);max-width:68ch}

/* Cómo trabajamos: línea de tiempo que se despliega de una en una */
.info-tl-band{padding-top:16px}
.info-tl-layout{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,56px);align-items:flex-start}
.info-tl-col{flex:1.5 1 480px;min-width:0}
.info-tl-aside{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:20px}
.info-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.info-tl__item{border-radius:var(--r-lg);background:var(--tint);transition:background .25s var(--ease),box-shadow .25s var(--ease)}
.info-tl__item.is-open{background:var(--surface);box-shadow:inset 0 0 0 2px var(--green),var(--shadow-2)}
.info-tl__btn{width:100%;display:flex;gap:18px;align-items:flex-start;padding:20px 22px;border:0;background:none;border-radius:var(--r-lg);cursor:pointer;font:inherit;color:var(--ink);text-align:left;min-height:var(--tap)}
.info-tl__item.is-open .info-tl__btn{padding-bottom:8px}
.info-tl__btn:hover .info-tl__title{color:var(--green)}
.info-tl__n{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 18px/1 var(--f-display);background:var(--surface);color:var(--ink);transition:background .25s,color .25s}
.info-tl__item.is-open .info-tl__n,.info-tl__item.is-past .info-tl__n{background:var(--green);color:var(--on-green)}
.info-tl__head{display:flex;flex-direction:column;gap:6px;min-width:0;padding-top:2px}
.info-tl__when{font:600 var(--t-xs)/1.2 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--green)}
.info-tl__title{font:700 22px/1.2 var(--f-display);letter-spacing:-.01em;transition:color .2s}
.info-tl__panel{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:0 22px 22px 84px}
.info-tl__panel p{font-size:var(--t-md);line-height:1.6;color:var(--ink-2);max-width:60ch}
.info-tl__panel[hidden]{display:none}
@media (max-width:559px){
  .info-tl__btn{gap:14px;padding:18px 16px}
  .info-tl__n{width:40px;height:40px;font-size:17px}
  .info-tl__title{font-size:20px}
  .info-tl__panel{padding:0 16px 18px 70px}
}
@media (prefers-reduced-motion:no-preference){
  .info-tl__panel:not([hidden]){animation:info-abre .35s var(--ease) both}
  @keyframes info-abre{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
}
.info-need h2{font-size:22px;line-height:1.2;letter-spacing:-.01em}
.info-need .ticks li{font-size:var(--t-sm)}
.info-tl-aside .kpi b{font-size:var(--t-lg);white-space:nowrap}
.info-method .card h3{font-size:var(--t-lg)}

/* Preguntas frecuentes: buscador + filtro por temas */
.info-faq-band{padding-top:8px}
.info-faq-tools{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:36px}
.info-search{position:relative;flex:1 1 280px;max-width:420px}
.info-search .i{position:absolute;left:14px;top:14px;color:var(--ink-2);pointer-events:none}
.info-search__input{width:100%;min-height:var(--tap);padding:0 16px 0 44px;border:1.5px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font:400 16px/1 var(--f-body);transition:border-color .2s,box-shadow .2s}
.info-search__input::placeholder{color:var(--ink-2)}
.info-search__input:hover{border-color:var(--ink-2)}
.info-search__input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px var(--green-soft)}
.info-topics{display:flex;flex-wrap:wrap;gap:6px}
.info-topics button{min-height:44px;padding:0 16px;border:0;border-radius:var(--r-pill);font:600 14px/1 var(--f-body);cursor:pointer;background:var(--tint);color:var(--ink);transition:background .2s,color .2s}
.info-topics button:hover{background:var(--green-soft)}
.info-topics button[aria-pressed="true"]{background:var(--green);color:var(--on-green)}
.info-faq{display:flex;flex-direction:column;gap:28px;max-width:860px}
.info-faq__group{display:flex;flex-direction:column;gap:12px;scroll-margin-top:100px}
.info-faq__group h2{font-size:26px;line-height:1.2;letter-spacing:-.01em}
.info-faq details,.info-article-faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:0 20px;transition:border-color .2s}
.info-faq details[open],.info-article-faq details[open]{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.info-faq summary,.info-article-faq summary{list-style:none;cursor:pointer;min-height:64px;padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;font:600 17px/1.35 var(--f-body)}
.info-faq summary::-webkit-details-marker,.info-article-faq summary::-webkit-details-marker{display:none}
.info-faq summary::after,.info-article-faq summary::after{content:"+";flex:none;width:24px;height:24px;display:grid;place-items:center;border:0;transform:none;font:400 28px/1 var(--f-body);color:var(--green);transition:transform .25s var(--ease)}
.info-faq details[open] summary::after,.info-article-faq details[open] summary::after{transform:rotate(45deg)}
.info-faq summary:hover,.info-article-faq summary:hover{color:var(--green)}
.info-faq .answer,.info-article-faq .answer{padding:0 0 20px;color:var(--ink-2);font-size:17px;line-height:1.6;display:flex;flex-direction:column;gap:10px}
.info-faq__empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:24px;background:var(--tint);border-radius:var(--r-lg)}
.info-faq__empty b{font:700 20px/1.25 var(--f-display)}
.info-faq__empty p{color:var(--ink-2)}
.info-faq__empty .btn{margin-top:6px}

/* Blog: una entrada destacada */
.info-post{display:grid;gap:var(--s-5);align-items:center;max-width:980px;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);color:inherit;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
@media (min-width:760px){.info-post{grid-template-columns:1fr 1.25fr;padding:var(--s-5);gap:var(--s-6)}}
.info-post:hover{color:inherit;transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.info-post__cover .i{width:64px;height:64px;color:var(--green);transition:transform .4s var(--ease)}
.info-post:hover .info-post__cover .i{transform:translateY(-4px)}
.info-post__body{display:flex;flex-direction:column;gap:var(--s-3);min-width:0;padding:var(--s-2)}
.info-post__title{font-size:var(--t-xl);line-height:1.15}
.info-post:hover .info-post__title{color:var(--green)}
.info-post .link-arrow{color:var(--green);margin-top:var(--s-2)}

/* Guía (entrada del blog) */
.info-article-head{max-width:900px;display:flex;flex-direction:column;gap:var(--s-4)}
.info-article-head h1{font-size:var(--t-2xl);max-width:24ch}
.info-article-head .lead{margin-top:0}
.info-article-meta{margin-top:var(--s-2)}
.post-meta.info-article-meta{gap:6px 16px}
.info-table th[scope="row"]{font-weight:600;color:var(--ink)}
.info-table thead th{font:600 var(--t-xs)/1.2 var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.info-table td{color:var(--ink-2)}
.info-article-faq{max-width:none}
.info-article-faq .answer{font-size:1.0625rem}
.info-article .author-box{margin-top:2.4em}
.info-article .author-box img{height:48px;width:auto}
.info-toc-cta{padding:20px;gap:10px}
@media (max-width:1079px){.info-article .toc{position:static}}

/* Legales */
.info-legal-h1{font-size:var(--t-2xl)}
.legal p a{color:var(--green)}

/* 404 */
.info-404{padding-block:clamp(48px,8vw,112px)}
.info-404-h2{font-size:var(--t-xl);margin-bottom:var(--s-5)}
.info-404-links{display:grid;gap:var(--s-4)}
@media (min-width:640px){.info-404-links{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.info-404-links{grid-template-columns:repeat(3,1fr)}}
.info-404-card{padding:var(--s-5);gap:var(--s-2)}
.info-404-card b{font:700 var(--t-lg)/1.2 var(--f-display);margin-top:var(--s-2)}

/* ===== mapa.css ===== */
/* Mapa que sube (home y /seo-local/). Lógica en js/partes/mapa.js. */
.mapa{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}
.mapa-canvas{position:relative;height:220px;overflow:hidden;background:var(--map-land)}
.mapa-canvas>svg{position:absolute;inset:0;width:100%;height:100%}
.mapa-canvas .m-land{fill:var(--map-land)}
.mapa-canvas .m-water{fill:var(--map-water)}
.mapa-canvas .m-park{fill:var(--map-park)}
.mapa-canvas .m-road{stroke:var(--map-road)}
.mapa-canvas .m-road2{stroke:var(--map-road-2)}
.mapa-pin{position:absolute;width:24px;height:28px}
.mapa-pin svg{width:100%;height:100%}
.mapa-pin .m-pin{fill:var(--ink-2)}
.mapa-pin .m-hole{fill:var(--surface)}
.mapa-pin--you{width:34px;height:40px;transform-origin:50% 100%;transition:transform .6s cubic-bezier(.2,.9,.3,1.3);z-index:2}
.mapa-pin--you .m-pin{fill:var(--pin)}
.mapa-pin--you .m-hole{fill:#fff}
.mapa.is-up .mapa-pin--you{transform:translateY(-10px) scale(1.25)}
.mapa-body{padding:20px}
.mapa-pack{position:relative;margin:0;padding:0;list-style:none;height:280px}
.mapa-pack li{--pos:0;position:absolute;left:0;right:0;top:calc(var(--pos) * 72px);height:64px;display:flex;align-items:center;gap:14px;padding:0 16px;border-radius:var(--r-md);background:var(--paper);transition:top .7s cubic-bezier(.3,.8,.3,1),background .4s,box-shadow .4s}
.mapa-rank{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:700 16px/1 var(--f-display);font-variant-numeric:tabular-nums;background:var(--surface);color:var(--ink)}
.mapa-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.mapa-meta b{font:600 16px/1.2 var(--f-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapa-meta span{font:500 13px/1.2 var(--f-body);color:var(--ink-2)}
.mapa-pack li.is-you{background:var(--yellow-soft);z-index:2}
.mapa-pack li.is-you .mapa-rank{background:var(--pin);color:#fff}
.mapa.is-up .mapa-pack li.is-you{background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green)}
.mapa-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}
.mapa-label{padding:5px 10px;background:var(--yellow-soft);border-radius:var(--r-pill);font:500 13px/1.4 var(--f-body);color:var(--ink)}
.mapa-btn{min-height:44px;padding:0 18px;border:1.5px solid var(--green);border-radius:var(--r-pill);background:transparent;color:var(--green);font:600 15px/1 var(--f-body);cursor:pointer;transition:background .2s,transform .2s}
.mapa-btn:hover{background:var(--green-soft);color:var(--green-hover);transform:translateY(-1px)}

/* ===== marcablanca.css ===== */
/* ---------- Página /marca-blanca/ (diseño MarcaBlanca.dc.html) ---------- */
.mb-hero{padding-bottom:var(--section)}
.mb-hero-in{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px);align-items:center}
.mb-hero-txt{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:20px}
.mb-hero-txt .crumbs{margin-bottom:0}
.mb-hero h1{max-width:15ch}
.mb-hero .lead{margin-top:0;max-width:52ch}
.mb-hero .btn-row{margin-top:0}
.mb-hero .eyebrow .i{width:18px;height:18px}

/* Botón con borde verde (el «btn-o» del diseño) */
.btn.mb-o{background:transparent;color:var(--green);border-color:var(--green)}
.btn.mb-o:hover{background:var(--green-soft);color:var(--green-hover);border-color:var(--green)}

/* Informe de ejemplo con el color de la agencia */
.mb-demo{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:14px}
.mb-report{--mb-acc:#1F4E8C;--mb-txt:var(--mb-acc);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}
.mb-report-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;background:var(--mb-acc);transition:background .3s}
.mb-logo{display:inline-flex;align-items:center;justify-content:center;min-width:132px;min-height:40px;padding:0 14px;border:2px dashed rgba(255,255,255,.75);border-radius:10px;font:600 14px/1 var(--f-body);color:#FFFFFF}
.mb-report-tipo{font:500 13px/1.3 var(--f-body);color:#FFFFFF}
.mb-report-body{padding:22px;display:flex;flex-direction:column;gap:16px}
.mb-report-cli{font:700 22px/1.2 var(--f-display)}
.mb-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.mb-kpi{display:flex;flex-direction:column;gap:6px;padding:14px;background:var(--paper);border-radius:var(--r-md);min-width:0}
.mb-kpi small{font:500 13px/1.2 var(--f-body);color:var(--ink-2)}
.mb-kpi b{font:700 18px/1.15 var(--f-display);color:var(--mb-txt);transition:color .3s}
.mb-spark{width:100%;height:64px}
.mb-spark path{stroke:var(--mb-txt);transition:stroke .3s}
.mb-maqueta{align-self:flex-start;padding:5px 10px;background:var(--yellow-soft);color:var(--ink);border-radius:var(--r-pill);font:500 13px/1.4 var(--f-body)}
/* En oscuro, el color de marca se aclara para que el texto se lea sobre la tarjeta */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mb-report{--mb-txt:color-mix(in srgb,var(--mb-acc) 45%,#FFFFFF)}}
:root[data-theme="dark"] .mb-report{--mb-txt:color-mix(in srgb,var(--mb-acc) 45%,#FFFFFF)}

.mb-colores{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:500 15px/1 var(--f-body);color:var(--ink-2)}
.mb-color{width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:var(--c);transition:box-shadow .2s,transform .2s}
.mb-color:hover{transform:translateY(-1px)}
.mb-color[aria-pressed="true"]{box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--c)}

/* Cómo funciona */
.mb-pasos{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.mb-pasos li{display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--surface);border-radius:var(--r-lg)}
.mb-paso-n{width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--on-green);display:grid;place-items:center;font:700 18px/1 var(--f-display)}
.mb-pasos h3{font-size:20px;line-height:1.25}
.mb-pasos p{font-size:15px;line-height:1.55;color:var(--ink-2)}

/* Calculadora de fichas y margen */
.mb-calc{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,48px);padding:clamp(24px,4vw,40px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
.mb-calc-in{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:20px}
.mb-calc-in h3{font-size:32px;line-height:1.15;letter-spacing:-.01em}
.mb-calc-in .range{margin-top:0}
.mb-pvp label{font-size:15px;line-height:1.3}
.mb-pvp-in{display:flex;align-items:center;gap:8px}
.mb-pvp-in .input{width:160px}
.mb-calc-out{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:12px}
.mb-total{padding:24px;background:var(--green-soft);border-radius:var(--r-md);box-shadow:inset 0 0 0 2px var(--green);display:flex;flex-direction:column;gap:8px}
.mb-total-lbl{font:600 15px/1.2 var(--f-body)}
.mb-total-num{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mb-total-num strong{font:700 clamp(2.6rem,2.2rem + 1.4vw,3.2rem)/1 var(--f-display);letter-spacing:-.03em}
.mb-total-num span,.mb-total .muted{font-size:15px;color:var(--ink-2)}
.mb-fila{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;background:var(--paper);border-radius:var(--r-md)}
.mb-fila-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.mb-fila-txt b{font-weight:600}
.mb-fila-txt small{font-size:13px;color:var(--ink-2)}
.mb-fila-val{font:700 24px/1 var(--f-display);color:var(--ink-2);white-space:nowrap}
.mb-fila-val.is-pos{color:var(--green)}
.mb-fila-val.is-neg{color:var(--pin)}
.mb-ticks{margin-top:4px}
.mb-ticks li{font-size:15px}
.mb-cta{align-self:flex-start}

/* Dudas: título a la izquierda, preguntas a la derecha */
.mb-duo{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px)}
.mb-duo-head{flex:1 1 300px;display:flex;flex-direction:column;gap:16px}
.mb-duo .faq{flex:2 1 520px;min-width:0;gap:12px}
.mb-duo .faq summary{min-height:64px;font-size:17px;line-height:1.35}
.mb-duo .faq .answer{font-size:17px;line-height:1.6}

/* ===== precios.css ===== */
/* ---------- Página /precios/ (diseño Precios.dc.html) ---------- */
.pr-hero{padding-bottom:var(--s-6)}
.pr-hero-in{display:flex;flex-direction:column;gap:20px}
.pr-hero-in .crumbs{margin-bottom:0}
.pr-hero h1{max-width:16ch}
.pr-hero .lead{margin-top:0}

.pr-planes{padding-top:var(--s-6)}
.pr-planes-in{display:flex;flex-direction:column;gap:var(--s-6)}
.pr-plans{padding-top:14px}
.pr-plans .plan{gap:20px}
.pr-plans .plan .tag{background:var(--yellow);color:#13201A;top:-14px;left:28px}
.pr-plan-head{display:flex;flex-direction:column;gap:8px}
.pr-plan-head h2{font-size:32px;line-height:1.15;letter-spacing:-.01em}
.pr-plan-head p{font-size:15px;line-height:1.55}
.pr-plan-price{display:flex;flex-direction:column;gap:6px}
.pr-plan-price .price{gap:8px}
.pr-plan-price .price .num{font:700 clamp(2.6rem,2.2rem + 1.4vw,3.2rem)/1 var(--f-display);letter-spacing:-.03em;color:var(--ink)}
.pr-plan-price .price span:not(.num){font-size:15px}
.pr-plan-price .price-note{font-size:13px;line-height:1.4}
.pr-nw{white-space:nowrap}
.pr-plans .ticks li{font-size:15px;line-height:1.5}
.pr-plans .ticks .i{width:20px;height:20px;margin-top:1px}

/* Botón con borde verde (el «btn-o» del diseño) */
.btn.pr-o{background:transparent;color:var(--green);border-color:var(--green)}
.btn.pr-o:hover{background:var(--green-soft);color:var(--green-hover);border-color:var(--green)}

/* Diagnóstico y agencias */
.pr-alt{display:grid;gap:var(--s-5)}
@media (min-width:760px){.pr-alt{grid-template-columns:1fr 1fr}}
.pr-mini{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);padding:24px 28px;background:var(--tint);border-radius:var(--r-lg)}
.pr-mini-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
.pr-mini-txt .muted{font-size:15px}
.pr-badge{align-self:flex-start;padding:6px 12px;background:var(--yellow-soft);color:var(--ink);border-radius:var(--r-pill);font:600 13px/1 var(--f-body)}
.pr-mini-price,.pr-mini-price .num{font:700 32px/1.1 var(--f-display);color:var(--ink)}
.pr-mini-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}

/* Comparativa */
.pr-cmp-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.pr-cmp{width:100%;min-width:640px;border-collapse:collapse}
.pr-cmp th,.pr-cmp td{padding:14px 18px;text-align:left;font-size:15px;line-height:1.4;vertical-align:middle}
.pr-cmp th+th,.pr-cmp td+td{text-align:center}
.pr-cmp thead th{font:700 17px/1.2 var(--f-display);color:var(--ink)}
.pr-cmp thead th:first-child{font:600 15px/1.3 var(--f-body);color:var(--ink-2)}
.pr-cmp thead .pr-cmp-dest{color:var(--green)}
.pr-cmp tbody tr:nth-child(odd){background:var(--paper)}
.pr-cmp .pr-si{width:22px;height:22px;color:var(--green);display:inline-block;vertical-align:middle}
.pr-no{color:var(--ink-2)}
.pr-celda{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink);text-align:left}
.pr-celda .pr-si{width:18px;height:18px;flex:none}
.pr-cmp-nota{margin-top:var(--s-4)}

/* Dudas: título a la izquierda, preguntas a la derecha */
.pr-duo{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px)}
.pr-duo-head{flex:1 1 300px;display:flex;flex-direction:column;gap:16px}
.pr-duo .faq{flex:2 1 520px;min-width:0;gap:12px}
.pr-duo .faq summary{min-height:64px;font-size:17px;line-height:1.35}
.pr-duo .faq .answer{font-size:17px;line-height:1.6}

/* ===== servicios.css ===== */
/* Piezas de las páginas de servicio: home, /posicionamiento-ia/ y /seo-local/.
   Todo con prefijo sv- para no tocar las clases comunes de base.css. */

/* Bandas y columnas */
.sv-band{padding-block:clamp(64px,8vw,96px)}
.sv-hero{padding-block:clamp(40px,6vw,72px) clamp(64px,8vw,96px)}
.sv-duo{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,64px);align-items:center}
.sv-duo--top{align-items:flex-start}
.sv-duo>*{flex:1 1 440px;min-width:0}
.sv-duo>.sv-col-s{flex:1 1 300px}
.sv-duo>.sv-col-m{flex:1 1 380px}
.sv-duo>.sv-col-l{flex:2 1 520px}
.sv-duo>.sv-col-r{flex:1.3 1 460px}
.sv-copy{display:flex;flex-direction:column;gap:20px}
.sv-copy .crumbs{margin:0}
.sv-hero h1{font-size:clamp(37px,5vw,60px);line-height:1.05;max-width:16ch}
.sv-hero h1.sv-h1-corto{max-width:14ch}
.sv-lead{font-size:clamp(18px,1.6vw,20px);line-height:1.6;color:var(--ink-2);max-width:60ch}
.sv-hero .sv-lead{max-width:52ch}
.sv-head{display:flex;flex-direction:column;gap:16px;max-width:720px;margin-bottom:48px}
.sv-head h2,.sv-copy h2,.sv-faq-head h2{font-size:clamp(30px,3.6vw,44px)}
.sv-faq-head{display:flex;flex-direction:column;gap:16px}

/* Botones del diseño: verde lleno y contorno verde */
.sv-btns{display:flex;flex-wrap:wrap;gap:12px}
.btn.sv-btn{min-height:52px;padding:0 24px;font-size:16px}
.btn.sv-btn-o{--bg:transparent;--fg:var(--green);border-color:var(--green)}
.btn.sv-btn-o:hover{--bg:var(--green-soft);--fg:var(--green-hover);box-shadow:none}
.sv-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:16px;text-decoration:none;align-self:flex-start}
.sv-link .i{width:18px;height:18px;transition:transform .2s var(--ease)}
.sv-link:hover .i{transform:translateX(3px)}

/* Rejillas de tarjetas */
.sv-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.sv-grid--320{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
@media (min-width:760px){.sv-grid--2x2{grid-template-columns:repeat(2,1fr)}}
.card.sv-card{gap:14px}
.card.sv-card--16{gap:16px}
.sv-card h3{font-size:22px;line-height:1.2}
.sv-card .muted{font-size:17px;line-height:1.6}
.sv-card--big h3{font-size:24px}
.sv-card--small h3{font-size:20px;line-height:1.25}
.sv-card--small .muted{font-size:15px;line-height:1.55}
.sv-card .link-arrow,.sv-card-pie{margin-top:auto;font-size:16px;font-weight:600;color:var(--green)}
.sv-card .ticks{font-size:15px}

/* Pasos con número (home y posicionamiento en IA) */
.sv-pasos{list-style:none;margin:0;padding:0;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.sv-pasos li{display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--surface);border-radius:var(--r-lg)}
.sv-num{flex:none;width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--on-green);display:grid;place-items:center;font:700 18px/1 var(--f-display)}
.sv-pasos h3{font-size:20px;line-height:1.25}
.sv-pasos p{font-size:15px;line-height:1.55;color:var(--ink-2)}
.sv-filas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.sv-filas li{display:flex;gap:18px;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.sv-filas li>span:last-child{display:flex;flex-direction:column;gap:6px;min-width:0}
.sv-filas b{font:700 20px/1.25 var(--f-display)}
.sv-filas li>span:last-child>span{font-size:15px;line-height:1.55;color:var(--ink-2)}

/* «Lo que no vamos a hacer» */
.sv-no{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.sv-no li{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;background:var(--surface);border-radius:var(--r-md);font-size:17px;line-height:1.55}
.sv-no--borde li{border:1px solid var(--line)}
.sv-no .i{width:22px;height:22px;color:var(--pin);margin-top:1px}

/* Planes */
.sv-planes{display:grid;gap:24px;align-items:stretch;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}
.sv-plan{position:relative;display:flex;flex-direction:column;gap:20px;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.sv-plan--top{border:2px solid var(--green);box-shadow:var(--shadow-2)}
.sv-plan-tag{position:absolute;top:-14px;left:28px;padding:7px 12px;background:var(--yellow);color:#13201A;border-radius:var(--r-pill);font:600 13px/1 var(--f-body)}
.sv-plan-tit{display:flex;flex-direction:column;gap:8px}
.sv-plan h3{font-size:32px;line-height:1.15;letter-spacing:-.01em}
.sv-plan-tit p{font-size:15px;line-height:1.55;color:var(--ink-2)}
.sv-precio{display:flex;flex-direction:column;gap:6px}
.sv-precio p:first-child{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.sv-precio strong{font:700 51px/1 var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.sv-precio p:first-child>span{font-size:15px;color:var(--ink-2)}
.sv-precio p+p{font:500 13px/1.4 var(--f-body);color:var(--ink-2)}
.sv-plan .ticks li{font-size:15px;line-height:1.5}
.sv-plan .ticks .i{width:20px;height:20px;margin-top:1px}
.sv-plan>.btn{margin-top:auto;width:100%;font-size:15px}
.sv-minis{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.sv-mini{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px;background:var(--tint);border-radius:var(--r-lg)}
.sv-mini>div{display:flex;flex-direction:column;gap:6px}
.sv-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--yellow-soft);color:var(--ink);border-radius:var(--r-pill);font:600 13px/1 var(--f-body)}
.sv-mini strong{font:700 32px/1.1 var(--f-display);font-variant-numeric:tabular-nums}
.sv-mini p{display:flex;align-items:baseline;gap:8px}
.sv-mini span:not(.sv-badge):not(.num){font-size:15px;color:var(--ink-2)}
.sv-mini .btn{font-size:15px}

/* Preguntas frecuentes de estas páginas */
.sv-faq{display:flex;flex-direction:column;gap:12px}
.sv-faq details{background:var(--surface);border-radius:var(--r-md);padding:0 20px}
.sv-faq--borde details{border:1px solid var(--line)}
.sv-faq summary{list-style:none;cursor:pointer;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;font:600 17px/1.35 var(--f-body);padding-block:10px}
.sv-faq summary::-webkit-details-marker{display:none}
.sv-faq summary .i{color:var(--green);transform:rotate(45deg);transition:transform .2s var(--ease)}
.sv-faq details[open] summary .i{transform:none}
.sv-faq details>p{margin:0 0 20px;font-size:17px;line-height:1.6;color:var(--ink-2)}

/* Banda de cierre propia (SEO local): mismo aspecto que la común */
.sv-cierre h2{max-width:20ch}
