/* ============================================================
   Tejasalou Tejados Salou · tejadossalou.es
   Estilo: robusto de oficio — franjas a sangre, tipografía
   condensada pesada, bordes marcados, sin sombras difusas.
   ============================================================ */

/* ── 1. TOKENS ─────────────────────────────────────────────── */
:root{
  --verde:#14543A;
  --verde-osc:#0E3B28;
  --verde-claro:#E7F0EA;
  --ambar:#E8A33D;
  --ambar-osc:#D18F2A;
  --texto:#1A1A1A;
  --texto-suave:#4A4A4A;
  --borde:#DCDCDC;
  --borde-campo:#8C8C8C;   /* 3,2:1 sobre blanco: borde de formulario perceptible */
  --blanco:#FFFFFF;
  --fondo-alt:#F6F7F5;
  --error:#9B2222;
  --error-fondo:#FDECEC;
  --aviso:#8A5A10;
  --aviso-fondo:#FCEFD8;
  --ambar-texto:#8A5A10;   /* ámbar legible sobre blanco: 5,2:1 */
  --ambar-active:#C07F1F;
  --placeholder:#6B6B6B;   /* 5,3:1 sobre blanco */

  --wrap:1200px;
  --hero-max:1280px;   /* límite por la resolución real de las fotos */
  --r:4px;             /* esquinas mínimas: nada de píldoras */
  --b:2px;             /* borde marcado estándar */
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:96px;
}

/* ── 2. FUENTES AUTOALOJADAS ───────────────────────────────── */
@font-face{font-family:'Archivo';src:url('/fonts/archivo-400.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Archivo';src:url('/fonts/archivo-600.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Archivo Cond';src:url('/fonts/archivo-cond-800.woff2') format('woff2');
  font-weight:800;font-style:normal;font-display:swap;}
/* Fallback métrico: elimina el salto al cargar la fuente */
@font-face{font-family:'fb-sans';src:local('Arial');size-adjust:97%;
  ascent-override:98%;descent-override:24%;line-gap-override:0%;}

/* ── 3. RESET ──────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:88px}
[id]{scroll-margin-top:88px}
body{font-family:'Archivo','fb-sans',system-ui,sans-serif;font-size:17px;line-height:1.65;
  color:var(--texto);background:var(--blanco);overflow-x:hidden}
img,picture,svg{max-width:100%;display:block}
img{height:auto}
a{color:var(--verde);text-decoration-thickness:1px;text-underline-offset:3px}
ul{list-style:none}
:focus-visible{outline:3px solid var(--verde-osc);outline-offset:2px;box-shadow:0 0 0 6px rgba(232,163,61,.55)}
.franja :focus-visible,.hero :focus-visible,.site-header :focus-visible,.site-footer :focus-visible,.cta-final :focus-visible{outline-color:var(--blanco)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}}

.container{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--s3)}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ambar);
  color:var(--texto);padding:12px 20px;font-weight:600}
.skip-link:focus{left:0}

/* ── 4. TIPOGRAFÍA ─────────────────────────────────────────── */
h1,h2,h3,h4{font-family:'Archivo Cond','Archivo','fb-sans',sans-serif;font-weight:800;
  line-height:1.1;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(2.1rem,5.2vw,3.4rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem);margin-bottom:var(--s2)}
h3{font-size:clamp(1.15rem,2vw,1.4rem);margin-bottom:var(--s1)}
p{max-width:74ch}
.section-label{display:inline-block;font-family:'Archivo Cond',sans-serif;font-weight:800;
  font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--verde);
  border-left:4px solid var(--ambar);padding-left:10px;margin-bottom:var(--s2)}
.section-intro{color:var(--texto-suave);margin-bottom:var(--s4)}
section{padding-block:var(--s6)}
.franja{background:var(--verde);color:var(--blanco)}
.franja h2,.franja h3{color:var(--blanco)}
.franja p{color:rgba(255,255,255,.9)}
.franja .section-label{color:var(--blanco);border-left-color:var(--ambar)}
.franja a{color:var(--ambar)}
.alt{background:var(--fondo-alt)}

/* ── 5. BOTONES ────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:1rem;letter-spacing:.02em;
  padding:14px 26px;border:var(--b) solid transparent;border-radius:var(--r);
  cursor:pointer;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s}
.btn-acento{background:var(--ambar);color:var(--texto);border-color:var(--ambar)}
.btn-acento:hover{background:var(--ambar-osc);border-color:var(--ambar-osc)}
.btn:active{transform:translateY(1px)}
.btn-acento:active{background:var(--ambar-active);border-color:var(--ambar-active)}
.btn-verde:active,.btn-linea:active{background:var(--verde-osc);border-color:var(--verde-osc);color:var(--blanco)}
.btn-ghost:active{background:rgba(255,255,255,.22)}
.btn-verde{background:var(--verde);color:var(--blanco);border-color:var(--verde)}
.btn-verde:hover{background:var(--verde-osc);border-color:var(--verde-osc)}
.btn-ghost{background:transparent;color:var(--blanco);border-color:rgba(255,255,255,.55)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-linea{background:transparent;color:var(--verde);border-color:var(--verde)}
.btn-linea:hover{background:var(--verde);color:var(--blanco)}
.cta-par{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}

/* ── 6. TOPBAR + HEADER ────────────────────────────────────── */
.topbar{background:var(--verde-osc);color:var(--blanco);font-size:.9rem}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);
  min-height:38px;flex-wrap:wrap}
.topbar-txt{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.topbar .ico{color:var(--ambar);flex-shrink:0}
.topbar-tel{color:var(--ambar);font-weight:800;text-decoration:none;font-family:'Archivo Cond',sans-serif;
  font-size:1.05rem;letter-spacing:.02em;display:inline-flex;align-items:center;min-height:44px;padding-inline:4px}
.topbar-tel:hover{text-decoration:underline}

.site-header{position:sticky;top:0;z-index:100;background:var(--verde);
  border-bottom:3px solid var(--verde-osc)}
.header-inner{display:flex;align-items:center;gap:var(--s3);min-height:72px}
.logo{flex-shrink:0;line-height:0}
.logo-svg{height:40px;width:auto}

.nav-desktop{display:none;margin-left:auto;align-items:center;gap:var(--s3)}
.nav-desktop>a,.nav-drop-btn{color:var(--blanco);text-decoration:none;font-weight:600;
  font-size:.97rem;background:none;border:0;font-family:inherit;cursor:pointer;
  padding:14px 2px;border-bottom:2px solid transparent;display:inline-flex;align-items:center;min-height:44px}
.nav-desktop>a:hover,.nav-drop-btn:hover{border-bottom-color:var(--ambar)}
.nav-desktop [aria-current="page"]{border-bottom-color:var(--ambar);color:var(--blanco);font-weight:800}
.nav-dropdown{position:relative}
.nav-drop-btn{display:inline-flex;align-items:center;gap:6px}
.nav-drop-btn .chev{transition:transform .18s}
.nav-drop-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:calc(100% + 14px);left:-14px;min-width:262px;
  background:var(--blanco);border:var(--b) solid var(--verde-osc);border-radius:var(--r);
  padding:6px;visibility:hidden;opacity:0;transform:translateY(-6px);
  transition:opacity .16s,transform .16s,visibility .16s}
.nav-dropdown-menu:focus-within,
.nav-drop-btn[aria-expanded="true"]+.nav-dropdown-menu{visibility:visible;opacity:1;transform:translateY(0)}
/* El hover solo en ratón: en táctil se queda pegado tras el primer toque */
@media (hover:hover) and (pointer:fine){
  .nav-dropdown:hover .nav-dropdown-menu{visibility:visible;opacity:1;transform:translateY(0)}
}
.nav-dropdown-menu a{display:block;padding:11px 14px;color:var(--texto);text-decoration:none;
  font-weight:600;font-size:.95rem;border-left:3px solid transparent}
.nav-dropdown-menu a:hover{background:var(--verde-claro);border-left-color:var(--ambar)}
.nav-dropdown-menu [aria-current="page"]{background:var(--verde-claro);border-left-color:var(--ambar);color:var(--verde)}
.header-cta{display:none;padding:14px 20px;font-size:.95rem;min-height:44px}

.burger{margin-left:auto;width:46px;height:46px;background:transparent;border:var(--b) solid rgba(255,255,255,.5);
  border-radius:var(--r);display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:5px;cursor:pointer}
.burger span{display:block;width:22px;height:2.5px;background:var(--blanco);transition:transform .2s,opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

.mobile-nav{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;
  background:var(--verde-osc);overflow:hidden}
.mobile-nav.open{grid-template-rows:1fr}
.mobile-nav>div,.mobile-nav{max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
body.menu-abierto{overflow:hidden}
.mobile-nav>*{min-height:0}
.mobile-nav>a,.mobile-drop-btn{display:block;padding:15px var(--s3);color:var(--blanco);
  text-decoration:none;font-weight:600;border-bottom:1px solid rgba(255,255,255,.14);
  background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;
  font-family:inherit;font-size:1rem;cursor:pointer}
.mobile-nav [aria-current="page"]{color:var(--ambar)}
.mobile-drop-btn{display:flex;align-items:center;justify-content:space-between}
.mobile-drop-btn .chev{transition:transform .2s}
.mobile-drop-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.mobile-drop-menu{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease;
  overflow:hidden;background:rgba(0,0,0,.18)}
.mobile-drop-menu.open{grid-template-rows:1fr}
.mobile-drop-menu>*{min-height:0}
.mobile-drop-menu a{display:block;padding:13px var(--s3) 13px calc(var(--s3) + 16px);
  color:rgba(255,255,255,.92);text-decoration:none;font-size:.95rem;
  border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-cta{margin:var(--s3);width:calc(100% - var(--s3)*2)}

/* ── 7. HERO ───────────────────────────────────────────────── */
.hero{background:var(--verde);color:var(--blanco);padding-block:var(--s5);position:relative}
.hero-grid{display:grid;gap:var(--s4);align-items:center}
.hero h1{color:var(--blanco);margin-bottom:var(--s2)}
.hero-sub{font-size:1.09rem;color:rgba(255,255,255,.92);max-width:60ch}
.hero-media{max-width:var(--hero-max);border:3px solid var(--verde-osc);border-radius:var(--r);overflow:hidden}
.hero-media img{width:100%;aspect-ratio:16/9;object-fit:cover}
.foto-bloque img{width:100%;aspect-ratio:3/2;object-fit:cover}
.grid-2 picture img{width:100%;aspect-ratio:3/2;object-fit:cover}
.badges{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s3);padding:0}
.badges li{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.3);border-radius:var(--r);padding:8px 14px;
  font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:.87rem;letter-spacing:.04em;
  text-transform:uppercase}
.badges li::before{content:"";width:8px;height:8px;background:var(--ambar);flex-shrink:0}

/* ── 8. BREADCRUMB ─────────────────────────────────────────── */
.breadcrumb{background:var(--fondo-alt);border-bottom:1px solid var(--borde);
  font-size:.86rem;padding-block:11px}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumb li{color:var(--texto-suave)}
.breadcrumb li+li::before{content:"›";margin-right:6px;color:var(--borde);font-weight:700}
.breadcrumb a{color:var(--texto-suave)}
.breadcrumb [aria-current="page"]{color:var(--texto);font-weight:600}

/* ── 9. REJILLAS DE TARJETAS ───────────────────────────────── */
.grid{display:grid;gap:var(--s3)}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
.card{background:var(--blanco);border:var(--b) solid var(--borde);border-radius:var(--r);
  padding:var(--s3);border-top:5px solid var(--verde);height:100%}
.card h3{color:var(--verde)}
.franja .card{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.45);
  border-top-color:var(--ambar)}
.franja .card h3{color:var(--blanco)}
.card-servicio{display:flex;flex-direction:column}
.card-servicio p{flex:1;color:var(--texto-suave);font-size:.97rem}
.card-compacta{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s2)}
.card-compacta h3{margin-bottom:0}
.senal-urgencia{font-size:.86rem;color:var(--verde);border-top:1px solid var(--borde);
  padding-top:10px;margin-top:12px}
.franja .senal-urgencia{color:var(--blanco);border-top-color:rgba(255,255,255,.35)}
.card-link{display:inline-flex;align-items:center;gap:7px;margin-top:var(--s2);min-height:44px;
  font-family:'Archivo Cond',sans-serif;font-weight:800;color:var(--verde);text-decoration:none;
  border-bottom:2px solid var(--ambar);padding-bottom:2px;align-self:flex-start}
.card-link:hover{color:var(--verde-osc)}
.ico-caja{width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:var(--verde-claro);border-radius:var(--r);margin-bottom:var(--s2);color:var(--verde)}
.franja .ico-caja{background:rgba(255,255,255,.16);color:var(--blanco)}

/* ── 10. LISTAS DE VENTAJAS Y CHECKS ───────────────────────── */
.lista-check li{position:relative;padding-left:30px;margin-bottom:11px}
.lista-check li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:8px;
  border-left:3px solid var(--ambar);border-bottom:3px solid var(--ambar);transform:rotate(-45deg)}
.pasos{counter-reset:paso;display:grid;gap:var(--s3)}
.paso{position:relative;padding-left:70px}
.paso::before{counter-increment:paso;content:counter(paso,decimal-leading-zero);
  position:absolute;left:0;top:-6px;font-family:'Archivo Cond',sans-serif;font-weight:800;
  font-size:2.5rem;color:var(--ambar-texto);line-height:1}
.paso h3{margin-bottom:5px}

/* ── 11. TABLA DE COSTE ────────────────────────────────────── */
.tabla-wrap{overflow-x:auto;border:var(--b) solid var(--borde);border-radius:var(--r)}
table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--borde);vertical-align:top}
thead th{background:var(--verde);color:var(--blanco);font-family:'Archivo Cond',sans-serif;
  font-weight:800;letter-spacing:.05em;text-transform:uppercase;font-size:.82rem}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:var(--fondo-alt)}
.nivel{display:inline-block;font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:.78rem;
  letter-spacing:.07em;text-transform:uppercase;padding:4px 10px;border-radius:var(--r);white-space:nowrap}
.nivel-eco{background:var(--verde-claro);color:var(--verde)}
.nivel-mod{background:var(--aviso-fondo);color:var(--aviso)}
.nivel-pre{background:var(--verde);color:var(--blanco)}

/* ── 12. RESEÑAS ───────────────────────────────────────────── */
.resenas-media{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap}
.media-num{font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:3rem;color:var(--verde);line-height:1}
.estrellas{color:var(--ambar-texto);letter-spacing:2px;font-size:1.05rem}
.resena{background:var(--blanco);border:var(--b) solid var(--borde);border-radius:var(--r);padding:var(--s3)}
.resena-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s1);
  margin-bottom:var(--s1);flex-wrap:wrap}
.resena-nombre{font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:1.05rem}
.resena-fecha{font-size:.82rem;color:var(--texto-suave)}
.resena p{font-size:.96rem;color:var(--texto-suave)}

/* ── 13. ZONAS ─────────────────────────────────────────────── */
.zonas{display:flex;flex-wrap:wrap;gap:10px;margin-block:var(--s3)}
.zonas li{border:var(--b) solid var(--verde);border-radius:var(--r);padding:8px 15px;
  font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:.9rem;color:var(--verde)}
.franja .zonas li{border-color:rgba(255,255,255,.4);color:var(--blanco)}

/* ── 14. FAQ (acordeón sin display:none) ───────────────────── */
.faq-item{border:var(--b) solid var(--borde);border-radius:var(--r);margin-bottom:12px;background:var(--blanco)}
.faq-item.abierto{border-color:var(--verde)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);
  padding:18px var(--s3);background:none;border:0;cursor:pointer;text-align:left;
  font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:1.05rem;color:var(--texto)}
.faq-q .mas{flex-shrink:0;width:24px;height:24px;position:relative;transition:transform .2s}
.faq-q .mas::before,.faq-q .mas::after{content:"";position:absolute;background:var(--ambar);
  left:50%;top:50%;transform:translate(-50%,-50%)}
.faq-q .mas::before{width:16px;height:3px}
.faq-q .mas::after{width:3px;height:16px;transition:opacity .2s}
.faq-q[aria-expanded="true"] .mas::after{opacity:0}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}
.faq-a.open{grid-template-rows:1fr}
.faq-a>div{min-height:0;overflow:hidden}
.faq-a p{padding:0 var(--s3) 20px;color:var(--texto-suave);font-size:.97rem}

/* ── 15. CTA FINAL ─────────────────────────────────────────── */
.cta-final{background:var(--verde-osc);color:var(--blanco);text-align:center}
.cta-final h2{color:var(--blanco)}
.cta-final p{margin-inline:auto;color:rgba(255,255,255,.9)}
.cta-final .cta-par{justify-content:center}

/* ── 16. CONTACTO ──────────────────────────────────────────── */
.contacto{background:var(--fondo-alt);border-top:3px solid var(--verde)}
.contacto-grid{display:grid;gap:var(--s4)}
.contacto-form-wrap{background:var(--blanco);border:var(--b) solid var(--borde);
  border-radius:var(--r);padding:var(--s3)}
.campo{margin-bottom:var(--s2)}
.campo label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px}
.campo .opt{color:var(--texto-suave);font-weight:400}
.campo input,.campo textarea{width:100%;padding:13px 15px;border:var(--b) solid var(--borde-campo);
  border-radius:var(--r);font-family:inherit;font-size:1rem;color:var(--texto);background:var(--blanco)}
.campo input:focus,.campo textarea:focus{border-color:var(--verde);outline:none;
  box-shadow:0 0 0 3px rgba(20,84,58,.16)}
.campo textarea{resize:vertical;min-height:110px}
.campo ::placeholder{color:var(--placeholder);opacity:1}
.campo-captcha{background:var(--verde-claro);border:var(--b) solid var(--verde);
  border-radius:var(--r);padding:var(--s2)}
.campo-captcha label{margin-bottom:8px}
.campo-captcha strong{font-family:'Archivo Cond',sans-serif;font-size:1.2rem;color:var(--verde)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.campo-check{display:flex;gap:11px;align-items:flex-start;margin-block:var(--s2)}
.campo-check input{flex-shrink:0;width:24px;height:24px;margin:10px;accent-color:var(--verde);cursor:pointer}
.campo-check{padding:4px 0}
.campo-check label{cursor:pointer;padding:10px 0}   /* área táctil real ≥44px vía label */
.campo-check label{font-size:.88rem;color:var(--texto-suave);line-height:1.5}
.btn-submit{width:100%;padding:16px}
.btn-submit:disabled{opacity:.6;cursor:not-allowed}
.form-message{margin-top:var(--s2);padding:12px 16px;border-radius:var(--r);
  font-size:.92rem;font-weight:600;border:var(--b) solid transparent}
.form-message.ok{background:var(--verde-claro);color:var(--verde);border-color:var(--verde)}
.form-message.err{background:var(--error-fondo);color:var(--error);border-color:var(--error)}
.contacto-info{display:flex;flex-direction:column;gap:var(--s2)}
.info-card{background:var(--blanco);border:var(--b) solid var(--borde);border-radius:var(--r);
  padding:var(--s3);border-left:5px solid var(--ambar)}
.info-card h3{font-family:'Archivo Cond',sans-serif;font-size:.82rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--texto-suave);margin-bottom:10px}
.info-tel{font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:1.85rem;
  color:var(--verde);text-decoration:none;display:block;letter-spacing:.01em}
.info-sub{font-size:.9rem;color:var(--texto-suave);margin-top:6px}
.info-urgencia{font-weight:600;font-size:.9rem;color:var(--verde);margin-top:4px}
.info-nap{font-style:normal;line-height:1.6;font-size:.95rem}
.info-zonas p{font-size:.9rem;color:var(--texto-suave);line-height:1.9}

/* ── 17. FOOTER ────────────────────────────────────────────── */
.site-footer{background:var(--verde-osc);color:rgba(255,255,255,.86);padding-top:var(--s5)}
.footer-grid{display:grid;gap:var(--s4);padding-bottom:var(--s4)}
.footer-brand{display:flex;flex-direction:column;gap:var(--s1)}
.mobile-dropdown{display:block}

.footer-claim{font-size:.92rem;margin-top:var(--s2);color:rgba(255,255,255,.72);max-width:42ch}
.footer-col h3{font-family:'Archivo Cond',sans-serif;font-size:.85rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ambar);margin-bottom:var(--s2)}
.footer-col a{display:block;color:rgba(255,255,255,.86);text-decoration:none;
  padding:12px 0;font-size:.94rem;min-height:44px;display:flex;align-items:center}
.footer-col a:hover{color:var(--ambar)}
.footer-nap{font-style:normal;font-size:.94rem;line-height:1.7}
.footer-nap a{display:inline;padding:0;color:var(--ambar);font-weight:600}
.footer-horario{font-size:.88rem;color:rgba(255,255,255,.7);margin-top:var(--s2)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-block:var(--s3);
  font-size:.86rem;color:rgba(255,255,255,.6)}

/* ── 18. COOKIE BANNER (sin CLS) ───────────────────────────── */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--verde-osc);
  color:var(--blanco);border-top:3px solid var(--ambar);transform:translateY(110%);
  transition:transform .25s ease;will-change:transform}
.cookie-banner[hidden]{display:block}
.cookie-inner{max-width:var(--wrap);margin-inline:auto;padding:var(--s2) var(--s3);
  display:flex;flex-direction:column;gap:var(--s2)}
.cookie-txt{font-size:.88rem;color:rgba(255,255,255,.9);max-width:none}
.cookie-txt a{color:var(--ambar)}
.cookie-btns{display:flex;gap:var(--s1);flex-wrap:wrap}
.cookie-btns .btn{flex:1;min-width:150px;padding:11px 18px;font-size:.92rem}

/* ── 19. LEGALES Y 404 ─────────────────────────────────────── */
.legal{padding-block:var(--s5)}
.legal h1{margin-bottom:var(--s3)}
.legal h2{font-size:1.5rem;margin-top:var(--s4)}
.legal p,.legal li{margin-bottom:12px;color:var(--texto-suave)}
.legal ul{list-style:disc;padding-left:24px;margin-bottom:var(--s2)}
.legal .actualizado{font-size:.88rem;color:var(--texto-suave);border-left:4px solid var(--ambar);
  padding-left:14px;margin-bottom:var(--s4)}
.e404{text-align:center;padding-block:var(--s6)}
.e404 .num{font-family:'Archivo Cond',sans-serif;font-weight:800;font-size:clamp(5rem,18vw,10rem);
  line-height:1;color:var(--verde-claro)}
.e404 p{margin-inline:auto}

/* Separación automática: cualquier rejilla, tabla o lista de pasos que siga
   a un párrafo o a un H2 recibe el margen superior. Evita estilos inline. */
.section-intro + .grid, .section-intro + .pasos, .section-intro + .tabla-wrap,
p + .grid, p + .pasos, p + .tabla-wrap, p + .faq-lista,
h2 + .grid, h2 + .pasos, h2 + .tabla-wrap, h2 + .faq-lista{margin-top:var(--s4)}
.mt-2{margin-top:var(--s2)}
.mt-3{margin-top:var(--s3)}
.mt-4{margin-top:var(--s4)}
.sin-linea{border-top:0;margin-top:0;padding-top:0}
.foto-bloque{max-width:var(--hero-max);border:3px solid var(--borde);border-radius:var(--r);overflow:hidden}
.tabla-legal{width:100%;border-collapse:collapse;margin-block:16px}

/* ── 20. RESPONSIVE ────────────────────────────────────────── */
@media (min-width:640px){
  .grid-2{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .cookie-inner{flex-direction:row;align-items:center;justify-content:space-between}
  .cookie-btns .btn{flex:0 0 auto}
}
@media (min-width:900px){
  body{font-size:17px}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .hero-grid{grid-template-columns:1.05fr .95fr}
  .contacto-grid{grid-template-columns:1.15fr .85fr}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr}
  .pasos{grid-template-columns:repeat(2,1fr);gap:var(--s4)}
}
@media (min-width:1024px){
  .nav-desktop{display:flex}
  .header-cta{display:inline-flex}
  .burger,.mobile-nav{display:none}
  .pasos{grid-template-columns:repeat(4,1fr)}
}
@media print{
  .topbar,.site-header,.cookie-banner,.contacto,.cta-final{display:none}
  body{font-size:12pt;color:var(--texto)}
}
