/* ============================================================
   MC MECARSAC — Prototipo de comparación
   Paleta B: azules extraídos de Logomecar.jpeg + blanco como acento.

   >>> COLORES DE MARCA: cambia solo estas 4 variables <<<
   ============================================================ */
:root{
  --azul-profundo:#112C5F; /* fondo oscuro principal: topbar, header, hero, footer */
  --azul:#1D3667;          /* superficie oscura secundaria */
  --azul-medio:#354970;    /* líneas, hover y detalles sobre fondo oscuro */
  --acento:#FFFFFF;        /* acento y botones sobre fondo oscuro */

  /* Neutros de apoyo (no provienen del logo) */
  --tinta:#131A26;
  --texto:#3C4653;
  --gris:#6B7686;
  --linea:#DBE0E8;
  --papel:#FFFFFF;
  --papel-2:#F3F5F9;

  --wrap:1200px;
  --ff:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--ff);color:var(--texto);background:var(--papel);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{color:var(--tinta);margin:0 0 .5em;line-height:1.12;letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(2.1rem,4.6vw,3.6rem);text-transform:uppercase;letter-spacing:-.025em}
h2{font-size:clamp(1.5rem,2.7vw,2.15rem)}
h3{font-size:1.08rem;letter-spacing:0}
p{margin:0 0 1rem}
ul{margin:0;padding:0;list-style:none}
mark{background:#FFF3D6;color:#8A5E00;padding:.05em .38em;border:1px dashed #E0B356;
  font-size:.92em;font-weight:600;border-radius:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.muted{color:var(--gris);font-size:.94rem}

/* ---------- Etiquetas de sección ---------- */
.eyebrow{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.18em;
  color:var(--azul-profundo);margin:0 0 .7rem}
.eyebrow--light{color:rgba(255,255,255,.62)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.78rem 1.5rem;font-weight:800;font-size:.82rem;text-transform:uppercase;
  letter-spacing:.09em;border:2px solid transparent;border-radius:2px;cursor:pointer;
  transition:.18s ease}
/* CTA principal — pensado para ir sobre fondo azul oscuro */
.btn--cta{background:var(--acento);color:var(--azul-profundo);border-color:var(--acento)}
.btn--cta:hover{background:transparent;color:var(--acento)}
/* CTA sobre fondo claro */
.btn--dark{background:var(--azul-profundo);color:#fff;border-color:var(--azul-profundo)}
.btn--dark:hover{background:transparent;color:var(--azul-profundo)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.09)}
/* Outline — segunda acción sobre fondo claro (ej. formularios) */
.btn--outline{background:transparent;color:var(--azul-profundo);border-color:var(--azul-profundo)}
.btn--outline:hover{background:var(--azul-profundo);color:#fff}
.btn--lg{padding:1rem 2rem;font-size:.86rem}
.btn--full{width:100%}

/* ---------- Placeholders visuales ---------- */
.ph{background:repeating-linear-gradient(45deg,#E7EBF2 0 12px,#E0E5EE 12px 24px);
  border:1px dashed #B6BFCE;display:flex;align-items:center;justify-content:center;
  min-height:180px;color:#7A8496;font-size:.8rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;text-align:center;padding:1rem}
.ph--wide{min-height:340px;margin-bottom:2.5rem}
.ph--tall{min-height:400px}
.ph--map{min-height:300px}

/* ---------- Fotos ---------- */
.eq-foto{margin:0 0 2.5rem;overflow:hidden;border:1px solid var(--linea)}
.eq-foto img{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;
  object-position:center 62%;display:block}
/* Foto completa: sin recorte. La imagen ya viene en 16:9 con los costados
   rellenados por una versión desenfocada de sí misma, así que encaja exacta. */
.eq-foto--full img{height:auto;aspect-ratio:auto;object-fit:fill}
/* Foto vertical: se muestra completa, junto al texto */
@media(max-width:860px){
}
.foto-tall{margin:0;overflow:hidden;border:1px solid var(--linea)}
.foto-tall img{width:100%;height:440px;object-fit:cover;display:block}
@media(max-width:640px){
  .eq-foto img{height:240px}
  .foto-tall img{height:280px}
}

/* ---------- Topbar ---------- */

/* ---------- Header ---------- */
.hdr{position:sticky;top:0;z-index:50;background:var(--azul-profundo);
  border-bottom:3px solid var(--acento)}
.hdr__in{display:flex;align-items:center;gap:1.6rem;height:76px;flex-wrap:nowrap}
.brand{display:flex;align-items:center;gap:.75rem}
.brand__mark{width:42px;height:42px;flex:0 0 42px;object-fit:contain}
.brand__txt{display:flex;flex-direction:column;line-height:1.1}
.brand__txt b{color:#fff;font-size:1.08rem;font-weight:900;letter-spacing:.03em}
.nav{flex:1;display:flex;justify-content:center}
.nav ul{display:flex;gap:1.9rem}
.nav > ul > li > a{display:inline-flex;align-items:center;white-space:nowrap;color:#CBD4E4;font-size:.79rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;padding:.4rem 0;border-bottom:2px solid transparent}
.nav > ul > li > a:hover{color:#fff}
.nav > ul > li > a.is-active{color:#fff;border-bottom-color:var(--acento)}
.burger{display:none;background:none;border:0;color:#fff;font-size:1.7rem;cursor:pointer;line-height:1}
.mega__tog{display:none;background:none;border:0;cursor:pointer}

/* ---------- Megamenú ---------- */
.has-mega{position:static}
.has-mega > a{display:inline-flex;align-items:center;gap:.45rem}
.caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;transition:transform .18s ease}
.has-mega:hover .caret{transform:rotate(180deg)}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--azul);
  border-top:1px solid rgba(255,255,255,.16);border-bottom:3px solid var(--acento);
  opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease;z-index:60}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible}
.mega__in{display:grid;grid-template-columns:repeat(3,1fr) 300px;gap:2.5rem;padding:2.2rem 24px 2.4rem}
.mega__col h4{color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;
  padding-bottom:.7rem;margin-bottom:.6rem;border-bottom:1px solid rgba(255,255,255,.2)}
.mega__col li a{display:block;padding:.5rem 0;color:#C3CDDF;font-size:.94rem;font-weight:600;
  text-transform:none;letter-spacing:0;border:0}
.mega__col li a:hover{color:#fff}
.mega__cta{border-left:1px solid rgba(255,255,255,.16);padding-left:2.2rem}
.mega__cta p{color:#C3CDDF;font-size:.9rem;margin-bottom:1rem}
.mega .btn--cta{background:#fff;color:var(--azul-profundo);border-color:#fff;
  font-size:.78rem;letter-spacing:.09em;padding:.8rem 1.4rem;width:100%}
.mega .btn--cta:hover{background:var(--acento);color:var(--azul-profundo);
  border-color:var(--acento);box-shadow:0 4px 14px rgba(0,0,0,.25)}
.mega__all{display:block;margin-top:.9rem;color:#C3CDDF;font-size:.78rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.1em}
.mega__all:hover{color:#fff}

/* ---------- Botón flotante de WhatsApp ---------- */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:90;width:60px;height:60px;
  border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;
  box-shadow:0 6px 20px rgba(0,0,0,.3);transition:.2s ease}
.wa-float:hover{transform:scale(1.07);box-shadow:0 8px 26px rgba(0,0,0,.38)}
.wa-float__tip{position:absolute;right:72px;white-space:nowrap;background:var(--azul-profundo);
  color:#fff;font-size:.76rem;font-weight:700;padding:.5rem .85rem;border-radius:2px;
  opacity:0;transform:translateX(6px);transition:.2s ease;pointer-events:none}
.wa-float:hover .wa-float__tip{opacity:1;transform:none}
@media(max-width:640px){
  .wa-float{width:54px;height:54px;right:16px;bottom:16px}
  .wa-float svg{width:27px;height:27px}
  .wa-float__tip{display:none}
}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--azul-profundo);color:#fff;overflow:hidden}
.hero__bg{position:absolute;inset:0;overflow:hidden}
.hero__bg img,.hero__bg video{width:100%;height:100%;object-fit:cover;opacity:1}
.hero__video{display:block}
/* Quien tenga desactivadas las animaciones del sistema ve solo el fotograma fijo. */
@media(prefers-reduced-motion:reduce){.hero__video{display:none}
  .hero__bg{background:url(../img/hero-poster.jpg) center/cover no-repeat}}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(17,44,95,.82) 0%,rgba(17,44,95,.66) 42%,rgba(17,44,95,.32) 100%)}
@media(max-width:900px){
  .hero-band{padding-bottom:2.2rem}
  .hero-band .hero__lead{padding-top:1.6rem;margin-bottom:1.4rem}
  /* La portada ocupa exactamente una pantalla: el video se ve completo
     detrás del contenido, sin franjas ni rellenos. */
  .hero{min-height:100svh;display:flex;align-items:center}
  .hero__in{padding:2rem 24px 1.8rem;width:100%}
  /* Degradado en dos tramos: oscuro donde está el texto, limpio abajo. */
  .hero__bg::after{background:linear-gradient(180deg,
    rgba(17,44,95,.72) 0%,rgba(17,44,95,.55) 45%,
    rgba(17,44,95,.28) 72%,rgba(17,44,95,.14) 100%)}
  .hero__bg img,.hero__bg video{object-position:center center;opacity:1}
  .hero__stripes{width:100%;opacity:.04}
  .hero h1{font-size:1.9rem;margin-bottom:.3em}
  .hero__actions{margin-bottom:1.6rem;gap:.7rem}
  .eyebrow--light{margin-bottom:.5rem}
}
/* Franja bajo la portada: mismo fondo, para que se lea como continuación. */
.hero-band{background:var(--azul-profundo);color:#fff;padding:0 0 3rem}
.hero-band .hero__lead{padding-top:2.2rem}
.hero__stripes{position:absolute;top:0;right:0;width:38%;height:100%;opacity:.07;
  background:repeating-linear-gradient(-45deg,#fff 0 22px,transparent 22px 60px)}
.hero__in{position:relative;padding:5.5rem 24px 4rem;max-width:var(--wrap)}
.hero h1{color:rgba(255,255,255,.58);max-width:16ch}
.hero h1 span{color:#fff}
.hero__lead{max-width:60ch;color:#C3CDDF;font-size:1.08rem;margin-bottom:2rem}
.hero__actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:3.5rem}
.hero__facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16);
  border-top:1px solid rgba(255,255,255,.16)}
.hero__facts li{background:var(--azul-profundo);padding:1.4rem 1.2rem 1.2rem}
.hero__facts b{display:block;color:#fff;font-size:2rem;font-weight:900;line-height:1}
.hero__facts b.pend{font-size:1rem;color:#E0B356;padding-top:.7rem}
.hero__facts span{display:block;color:#93A0B8;font-size:.74rem;text-transform:uppercase;
  letter-spacing:.11em;font-weight:700;margin-top:.45rem}
/* Variantes de 3 cifras: se declaran después de la base para que ganen. */
.hero__facts.hero__facts--3{grid-template-columns:repeat(3,1fr)}
.figs.figs--3{grid-template-columns:repeat(3,1fr)}

/* ---------- Cabecera de página interior ---------- */
.phead{background:var(--azul-profundo);color:#fff;padding:3.6rem 0 3rem;
  border-bottom:3px solid var(--acento)}
.phead h1{color:#fff}
.phead__lead{color:#C3CDDF;max-width:70ch;font-size:1.03rem;margin-bottom:1.6rem}
.crumbs{font-size:.76rem;color:#93A0B8;margin-bottom:1.4rem;text-transform:uppercase;
  letter-spacing:.09em;font-weight:600}
.crumbs a:hover{color:#fff}

/* ---------- Secciones ---------- */
.sect{padding:4.5rem 0}
.sect--dark{background:var(--azul);color:#C3CDDF}
.sect--dark h2,.sect--dark h3{color:#fff}
.sect--band{background:var(--papel-2);border-top:1px solid var(--linea);
  border-bottom:1px solid var(--linea)}
.sect__head{max-width:70ch;margin-bottom:2.6rem}
.sect__lead{color:var(--gris)}

/* ---------- Grid de equipos ---------- */
.eq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.eq-card{border:1px solid var(--linea);background:#fff;display:flex;flex-direction:column;
  transition:.18s ease}
.eq-card:hover{border-color:var(--azul-profundo);box-shadow:0 10px 26px rgba(17,44,95,.14);
  transform:translateY(-3px)}
.eq-card__img{height:190px;overflow:hidden;border-bottom:1px solid var(--linea)}
.eq-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.eq-card:hover .eq-card__img img{transform:scale(1.04)}
.eq-card__body{padding:1.4rem;display:flex;flex-direction:column;flex:1}
.eq-card__body p{font-size:.93rem;color:var(--gris);flex:1}
.eq-card__go{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;
  color:var(--azul-profundo);border-top:1px solid var(--linea);padding-top:.85rem;margin-top:.3rem}

/* ---------- Filas de equipo ---------- */
.eq-rows{display:flex;flex-direction:column;gap:0}
.eq-row{display:grid;grid-template-columns:340px 1fr;gap:2.4rem;padding:2.6rem 0;
  border-bottom:1px solid var(--linea)}
.eq-row:first-child{border-top:1px solid var(--linea)}
.eq-row__img{min-height:210px;overflow:hidden;border:1px solid var(--linea)}
.eq-row__img img{width:100%;height:100%;min-height:210px;object-fit:cover;display:block}
.eq-row__body p{color:var(--gris);max-width:70ch}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.5rem}
.tags li{font-size:.75rem;font-weight:700;background:var(--papel-2);border:1px solid var(--linea);
  padding:.35rem .75rem;color:var(--texto)}

/* ---------- Pasos ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16)}
.steps li{background:var(--azul);padding:1.8rem 1.4rem}
.steps b{color:#fff;font-size:.82rem;font-weight:900;letter-spacing:.1em;
  display:block;margin-bottom:.9rem;opacity:.55}
.steps p{font-size:.9rem;margin:0}

/* ---------- Dos columnas ---------- */
.two-col{display:grid;grid-template-columns:1.25fr 1fr;gap:3.5rem;align-items:start}

/* ---------- Diferenciales ---------- */
.diffs li{border-left:3px solid var(--azul-profundo);padding:.15rem 0 .15rem 1.2rem;margin-bottom:1.6rem}
.diffs p{color:var(--gris);font-size:.95rem;margin:0}
.diffs li.is-pend{border-left-color:#E0B356;opacity:.85}

.sectores{background:var(--azul-profundo);color:#C3CDDF;padding:2rem}
.sectores h3{color:#fff;border-bottom:2px solid var(--acento);padding-bottom:.7rem;
  display:inline-block;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}
.sectores ul{margin-top:1.3rem}
.sectores li{padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.13);font-size:.93rem}
.sectores__note{margin-top:1.2rem;font-size:.8rem;color:#93A0B8}

/* ---------- Cobertura ---------- */
.cobertura{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}

/* ---------- Cifras ---------- */
.figs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16)}
.figs li{background:var(--azul);padding:1.8rem 1.4rem;text-align:center}
.figs b{display:block;color:#fff;font-size:2.6rem;font-weight:900;line-height:1}
.figs b.pend{font-size:1.05rem;padding:1rem 0;color:#E0B356}
.figs span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;
  font-weight:700;color:#93A0B8;margin-top:.6rem}
.figs__note{margin-top:1.4rem;font-size:.82rem;color:#93A0B8}

/* ---------- Cards ---------- */
.cards3{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.card{border:1px solid var(--linea);border-top:3px solid var(--azul-profundo);padding:1.6rem}
.card p{font-size:.93rem;color:var(--gris);margin:0}
.card.is-pend{border-top-color:#E0B356;background:var(--papel-2)}

/* ---------- Detalle de equipo ---------- */
.eq-detail{display:grid;grid-template-columns:1fr 340px;gap:3.5rem;align-items:start}
.eq-detail__main h2{margin-top:2.6rem;padding-bottom:.6rem;border-bottom:2px solid var(--linea)}
.eq-detail__main h2:first-of-type{margin-top:0}
.checks li{position:relative;padding:.55rem 0 .55rem 1.7rem;border-bottom:1px solid var(--linea);
  font-size:.95rem}
.checks li::before{content:"";position:absolute;left:0;top:1.05rem;width:8px;height:8px;
  background:var(--azul-profundo)}
.spec{width:100%;border-collapse:collapse;margin:1.2rem 0 0}
.spec th,.spec td{text-align:left;padding:.75rem 1rem;border:1px solid var(--linea);font-size:.92rem}
.spec th{background:var(--papel-2);font-weight:700;color:var(--tinta);width:42%}

.eq-detail__side{position:sticky;top:98px;display:flex;flex-direction:column;gap:1.2rem}
.box{background:var(--azul-profundo);color:#C3CDDF;padding:1.7rem}
.box h3{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.07em;
  border-bottom:2px solid var(--acento);padding-bottom:.6rem;margin-bottom:1rem}
.box p{font-size:.9rem}
.box--plain{background:var(--papel-2);color:var(--texto);border:1px solid var(--linea)}
.box--plain h3{color:var(--tinta);border-bottom-color:var(--azul-profundo)}
.box__list{margin-top:1.2rem;font-size:.87rem}
.box__list li{padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.13)}
.box--plain .box__list li,.box--plain .box__links li{border-bottom-color:var(--linea)}
.box__list span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;
  font-weight:800;color:#93A0B8;margin-bottom:.15rem}
.box--plain .box__list span{color:var(--gris)}
.box__links li{padding:.6rem 0;border-bottom:1px solid var(--linea);font-size:.92rem;font-weight:600}
.box__links a:hover{color:var(--azul-profundo)}

/* ---------- Sedes ---------- */
.sedes dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;
  color:var(--azul-profundo);margin-top:1.2rem}
.sedes dd{margin:.3rem 0 0;font-size:.98rem}

/* ---------- Contacto / formulario ---------- */
.contacto{display:grid;grid-template-columns:1fr 340px;gap:3.5rem;align-items:start}
.form{border:1px solid var(--linea);padding:2.2rem;background:#fff}
.form__note{font-size:.78rem;color:var(--gris);background:var(--papel-2);
  border-left:3px solid var(--azul-profundo);padding:.6rem .9rem;margin-bottom:1.8rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.form label{display:block;font-size:.74rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;color:var(--tinta);margin-bottom:1.2rem}
.form input,.form select,.form textarea{width:100%;margin-top:.45rem;padding:.72rem .85rem;
  border:1px solid var(--linea);border-radius:2px;font:inherit;font-size:16px;
  font-weight:400;text-transform:none;letter-spacing:0;color:var(--texto);background:#fff}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--azul-profundo);
  outline-offset:-2px;border-color:var(--azul-profundo)}
.form textarea{resize:vertical}
.contacto__side{display:flex;flex-direction:column;gap:1.2rem}

/* ---------- Banda CTA ---------- */
.cta-band{background:var(--azul);color:#fff;padding:3rem 0;
  border-top:3px solid var(--acento)}
.cta-band__in{display:flex;align-items:center;justify-content:space-between;gap:3rem}
.cta-band .eyebrow{color:rgba(255,255,255,.62)}
.cta-band h2{color:#fff;margin-bottom:.4rem}
.cta-band__p{max-width:60ch;margin:0;font-size:.97rem;color:#C3CDDF}
.cta-band .btn--cta{flex:0 0 auto}

/* ---------- Footer ---------- */
.ftr{background:var(--azul-profundo);color:#93A0B8;padding:3.5rem 0 0;font-size:.9rem}
.ftr__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2.5rem;padding-bottom:2.5rem}
.ftr h4{color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;
  margin-bottom:1.1rem}
.ftr li{padding:.35rem 0}
.ftr a:hover{color:#fff}
.ftr__desc{font-size:.88rem;max-width:38ch;margin-top:1rem}
.ftr__contact li{padding:.5rem 0;line-height:1.45}
.ftr__contact li span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;
  font-weight:800;color:#65718A;margin-bottom:.1rem}
.ftr__contact a{border-bottom:1px solid rgba(255,255,255,.25)}

/* ---------- Redes sociales ---------- */
.ftr__social{display:flex;gap:.6rem;margin-top:1.4rem}
.ftr__social li{padding:0}
.ftr__social a{width:38px;height:38px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.28);color:#C3CDDF;border-radius:2px;transition:.18s ease}
.ftr__social a:hover{background:var(--acento);border-color:var(--acento);color:var(--azul-profundo)}
.ftr__legal{border-top:1px solid rgba(255,255,255,.13);padding-top:1.3rem;padding-bottom:1.6rem;
  display:flex;justify-content:space-between;gap:1.5rem;font-size:.78rem;color:#65718A}
.ftr__legal p{margin:0}

/* ---------- Responsive ---------- */
@media(max-width:1060px){
  .steps,.figs,.hero__facts{grid-template-columns:repeat(2,1fr)}
  .hero__facts.hero__facts--3,.figs.figs--3{grid-template-columns:repeat(3,1fr)}
  .two-col,.cobertura,.eq-detail,.contacto,.ftr__grid{grid-template-columns:1fr;gap:2.5rem}
  .eq-detail__side{position:static}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .hdr__cta{display:none}
  .burger{display:block;margin-left:auto}
  .burger.is-open{color:var(--acento)}

  /* Menú móvil: se abre al tocar */
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--azul-profundo);
    border-top:1px solid rgba(255,255,255,.16);border-bottom:3px solid var(--acento);
    max-height:0;overflow:hidden;transition:max-height .28s ease;z-index:60;margin:0}
  .nav.is-open{max-height:80vh;overflow-y:auto}
  .nav ul{display:block;gap:0}
  .nav > ul > li{border-bottom:1px solid rgba(255,255,255,.12)}
  .nav > ul > li > a{display:block;padding:1rem 24px;font-size:.88rem;border:0}
  .nav > ul > li > a.is-active{border:0;color:var(--acento)}
  .has-mega{position:relative}
  .mega__tog{display:block;position:absolute;right:0;top:0;width:58px;height:52px}
  .mega__tog::after{content:"";position:absolute;top:22px;left:24px;width:0;height:0;
    border-left:5px solid transparent;border-right:5px solid transparent;
    border-top:6px solid #CBD4E4;transition:transform .2s ease}
  .has-mega.is-open .mega__tog::after{transform:rotate(180deg)}
  .caret{display:none}
  .mega{position:static;opacity:1;visibility:visible;transform:none;background:var(--azul);
    border:0;max-height:0;overflow:hidden;transition:max-height .28s ease}
  .has-mega:hover .mega{opacity:1;visibility:visible}
  .has-mega.is-open .mega{max-height:1800px}
  .mega__in{display:block;padding:.4rem 24px 1.2rem}
  .mega__col{margin-top:1rem}
  .mega__cta{border-left:0;padding-left:0;margin-top:1.4rem}
}
@media(max-width:640px){
  .eq-row,.form__row,.ftr__grid{grid-template-columns:1fr}
  .steps,.figs{grid-template-columns:1fr}
  .hero__facts{grid-template-columns:repeat(2,1fr)}
  .hero__facts.hero__facts--3,.figs.figs--3{grid-template-columns:repeat(3,1fr)}
  .cta-band__in{flex-direction:column;align-items:flex-start}
  .sect{padding:3rem 0}
}

/* Foto dentro del menú desplegable, en lugar del antiguo recuadro de cotizar */
.mega__foto{display:block;position:relative;overflow:hidden;border-radius:2px;
  text-decoration:none;line-height:0}
.mega__foto img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 58%;
  display:block;transition:transform .35s ease}
.mega__foto:hover img{transform:scale(1.04)}
.mega__foto span{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .9rem .7rem;
  color:#fff;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  line-height:1.3;
  background:linear-gradient(180deg,rgba(17,44,95,0) 0%,rgba(17,44,95,.88) 100%)}

/* ---------- Carrusel de proyectos emblemáticos ---------- */
.ruleta{margin:0 0 1rem}
.ruleta__h2{margin-bottom:1.6rem}
.ruleta__marco{position:relative}
.ruleta__pista{list-style:none;margin:0;padding:0}
.ruleta__slide{display:none;grid-template-columns:1.15fr 1fr;gap:0;
  border:1px solid var(--linea);background:#fff}
.ruleta__slide.is-activa{display:grid}
.ruleta__img{position:relative;background:var(--azul-profundo);min-height:100%}
.ruleta__img img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;
  object-position:center 55%;display:block}
.ruleta__img--sinfoto{display:flex;align-items:center;justify-content:center;
  aspect-ratio:16/9;
  background:repeating-linear-gradient(-45deg,#16346B 0 16px,#112C5F 16px 42px)}
.ruleta__img--sinfoto span{color:#8C9BB8;font-size:.8rem;text-transform:uppercase;
  letter-spacing:.12em;font-weight:700}
.ruleta__txt{padding:2.2rem 2.2rem 2rem;display:flex;flex-direction:column;justify-content:center}
.ruleta__sub{color:var(--azul-medio);font-size:.74rem;text-transform:uppercase;
  letter-spacing:.12em;font-weight:700;margin:0 0 .5rem}
.ruleta__txt h3{font-size:1.5rem;margin:0 0 .8rem;color:var(--tinta)}
.ruleta__txt p:last-child{margin:0;color:var(--texto);line-height:1.65}
.ruleta__flecha{position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:44px;height:44px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(17,44,95,.88);color:#fff;font-size:1.5rem;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .15s}
.ruleta__flecha:hover{background:var(--azul-profundo)}
.ruleta__flecha--izq{left:-14px}
.ruleta__flecha--der{right:-14px}
.ruleta__puntos{display:flex;gap:.5rem;justify-content:center;margin-top:1.2rem}
.ruleta__punto{width:9px;height:9px;border-radius:50%;border:0;cursor:pointer;padding:0;
  background:#C6CEDB;transition:background .15s,transform .15s}
.ruleta__punto.is-activa{background:var(--azul-profundo);transform:scale(1.25)}
@media(max-width:860px){
  .ruleta__slide.is-activa{grid-template-columns:1fr}
  .ruleta__txt{padding:1.5rem 1.4rem 1.6rem}
  .ruleta__txt h3{font-size:1.25rem}
  .ruleta__flecha--izq{left:6px}
  .ruleta__flecha--der{right:6px}
}
/* Quien tenga desactivadas las animaciones no pierde nada: el carrusel no anima solo. */

/* ---------- Mapa de cobertura ---------- */
.mapa{margin:0;border:1px solid var(--linea);background:#EDF1F7}
.mapa svg{width:100%;height:auto;display:block}
.mapa iframe{width:100%;height:460px;display:block}
@media(max-width:640px){.mapa iframe{height:320px}}
.mapa figcaption{font-size:.76rem;color:var(--gris);padding:.7rem .9rem;
  border-top:1px solid var(--linea);background:#fff}

/* ---------- Páginas legales ---------- */
.legal{max-width:900px}
.legal h2{margin:2.4rem 0 .7rem;font-size:1.25rem;padding-bottom:.5rem;
  border-bottom:2px solid var(--linea)}
.legal h2:first-of-type{margin-top:0}
.legal h3{margin:2rem 0 .8rem;color:var(--azul-profundo);font-size:.95rem;
  text-transform:uppercase;letter-spacing:.08em}
.legal__aviso{background:#FFF8E6;border-left:4px solid #E0B356;padding:1rem 1.2rem;
  font-size:.9rem;color:#6B5722}
.legal__grid{display:grid;grid-template-columns:1fr 340px;gap:3rem;align-items:start;max-width:none}
.legal__side{display:flex;flex-direction:column;gap:1.2rem;position:sticky;top:98px}
.legal .form h3:first-of-type{margin-top:.6rem}
/* Índice de la política de privacidad */
.legal__toc{display:flex;flex-wrap:wrap;gap:.5rem .7rem;margin:1.8rem 0 2.4rem;
  padding:1.1rem 1.2rem;background:var(--papel-2);border:1px solid var(--linea)}
.legal__toc a{font-size:.78rem;font-weight:700;color:var(--azul-profundo);
  padding:.3rem .7rem;border:1px solid var(--linea);background:#fff;border-radius:2px}
.legal__toc a:hover{background:var(--azul-profundo);color:#fff;border-color:var(--azul-profundo)}
.legal h2[id]{scroll-margin-top:110px}
/* Cabecera del formulario de reclamaciones */
.form__meta{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.8rem;
  padding:.9rem 1.1rem;background:var(--papel-2);border-left:3px solid var(--azul-profundo)}
.form__meta p{margin:0;font-size:.9rem}
.form__meta span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;
  font-weight:800;color:var(--gris);margin-bottom:.15rem}
/* Casillas de declaración y consentimiento */
.form__check{display:flex;align-items:flex-start;gap:.7rem;text-transform:none;
  letter-spacing:0;font-size:.88rem;font-weight:400;color:var(--texto);line-height:1.5}
.form__check input{width:auto;margin:.2rem 0 0;flex:0 0 auto}
.form__check a{color:var(--azul-profundo);font-weight:700;text-decoration:underline}
.form abbr{color:#B4442E;text-decoration:none;font-weight:900}
/* Nota aclaratoria dentro del formulario */
.form__hint{font-size:.82rem;color:var(--gris);margin:-.6rem 0 1.2rem;line-height:1.5}
.form__hint b{color:var(--tinta)}
/* Sin flechas de incremento en campos numéricos */
.form input[type=number]{-moz-appearance:textfield;appearance:textfield}
.form input[type=number]::-webkit-outer-spin-button,
.form input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* Desplegables con flecha propia, para que no dependan del sistema operativo */
.form select{-webkit-appearance:none;-moz-appearance:none;appearance:none;
  padding-right:2.4rem;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23112C5F' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;background-size:11px}
.form select::-ms-expand{display:none}
/* Campo de fecha alineado con el resto */
.form input[type=date]{min-height:46px}
@media(max-width:640px){.form__meta{grid-template-columns:1fr}}
.ftr__legales{display:flex;gap:1.6rem;flex-wrap:wrap}
.ftr__legales a{border-bottom:1px solid rgba(255,255,255,.25)}
.ftr__lr{font-weight:800;color:#C3CDDF}
@media(max-width:1000px){
  .legal__grid{grid-template-columns:1fr}
  .legal__side{position:static}
}

/* ================= Añadido 6 ago 2026 — servicios, proyectos y logos ================= */

/* Megamenú de 2 columnas (Servicios) */
.mega--2col .mega__in{grid-template-columns:repeat(2,1fr) 300px}

/* Cabecera de página con miga de pan */
.phead--eq .crumbs{margin-bottom:1rem}

/* Secciones alternas */
.sect--alt{background:var(--papel-2);border-top:1px solid var(--linea);
  border-bottom:1px solid var(--linea)}
.sect__h{margin-bottom:1.6rem}

/* Párrafo de entrada */
.lead-txt{font-size:1.06rem;color:var(--gris);max-width:78ch;margin-top:1.8rem;line-height:1.75}

/* Las tarjetas de servicio van de a 3, no de a 4 */
.eq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.cards3{grid-template-columns:repeat(3,1fr)}

/* Tira de logos de clientes */
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin-top:1.1rem;
  background:var(--linea);border:1px solid var(--linea)}
/* Grupos de clientes por sector */
.logos-g{margin-top:2.6rem}
.logos-g:first-of-type{margin-top:2rem}
.logos-g__h{font-size:.82rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--azul-profundo);margin:0 0 .3rem;padding-bottom:.6rem;
  border-bottom:2px solid var(--azul-profundo)}
.logos-g__p{font-size:.88rem;color:var(--gris);margin:.6rem 0 0}

/* Obra de referencia dentro de «Dónde hemos trabajado» */
.ref-obra{background:#fff;border-left:4px solid var(--azul-profundo);
  padding:1.1rem 1.4rem;margin:0 0 2rem;font-size:.95rem;line-height:1.6}
.ref-obra b{color:var(--azul-profundo)}

/* Franja destacada — obra de referencia (Metro 2) */
.dest{display:grid;grid-template-columns:1.35fr 1fr;gap:3rem;align-items:start}
.dest__txt h2{margin-bottom:.9rem}
.dest__txt p:last-child{margin-bottom:0}
.dest__foto{margin:0;border:1px solid var(--linea);background:#fff}
.dest__foto img{width:100%;height:auto;max-height:520px;object-fit:contain;
  display:block;background:var(--papel-2)}
.dest__foto figcaption{font-size:.78rem;color:var(--gris);padding:.7rem .9rem;
  border-top:1px solid var(--linea)}
.dest__lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1px;background:var(--linea);border:1px solid var(--linea);margin-top:2.6rem}
.dest__lista li{background:#fff;padding:1.15rem 1.3rem}
.dest__lista b{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--azul-profundo);margin-bottom:.3rem}
.dest__lista span{font-size:.92rem;color:var(--texto);line-height:1.5}
@media(max-width:900px){.dest{grid-template-columns:1fr;gap:2rem}}
.logos__i{background:#fff;display:grid;place-items:center;padding:1.5rem 1.2rem;min-height:120px}
.logos__i img{max-width:100%;height:auto;display:block;
  filter:grayscale(1);opacity:.62;transition:.25s ease}
.logos__i:hover img{filter:none;opacity:1}

@media(max-width:1000px){
}
@media(max-width:640px){
  .logos__i{min-height:96px;padding:1.1rem .9rem}
}

/* ============ Correcciones 6 ago 2026 — desbordes de maquetación ============ */

/* CAUSA DEL DESBORDE DEL MEGAMENÚ:
   la regla .nav ul{display:flex} se heredaba a las listas de dentro del megamenú
   y las ponía en una sola fila horizontal, que se salía de la pantalla.
   Aquí se restituye el apilado vertical dentro de las columnas. */
.mega__col ul{display:block;gap:0}
.mega__col li{display:block}
.mega__in{max-width:var(--wrap);margin:0 auto}

/* El panel nunca debe superar el alto de la ventana: si no cabe, se desplaza.
   Solo en escritorio: en celular esta regla (sin @media) anulaba el
   max-height:0 del menu CERRADO, dejando el otro desplegable expandido
   con su foto aunque el usuario no lo hubiera abierto. */
@media(min-width:901px){
  .mega{max-height:calc(100vh - 114px);overflow-y:auto}
}

/* En pantallas medianas el megamenú pasa a 2 columnas, y luego a 1 */
@media(max-width:1180px){
  .mega__in,.mega--2col .mega__in{grid-template-columns:repeat(2,1fr);gap:1.6rem 2rem}
  .mega__cta{grid-column:1 / -1;border-left:0;border-top:1px solid rgba(255,255,255,.16);
    padding-left:0;padding-top:1.4rem}
  .mega .btn--cta{width:auto;min-width:260px}
}
@media(max-width:760px){
  .mega__in,.mega--2col .mega__in{grid-template-columns:1fr}
}

/* Listas largas del pie a dos columnas, para que no estiren la página */
.ftr__cols2{column-count:2;column-gap:1.6rem}
.ftr__cols2 li{break-inside:avoid;-webkit-column-break-inside:avoid}
@media(max-width:640px){.ftr__cols2{column-count:1}}

/* Un solo bloque de correo, con los dos a la vez */
.ftr__contact li span,.box__list li span{display:block}
.ftr__contact a,.box__list a{display:block;word-break:break-word}

/* Red de seguridad contra desbordes horizontales.
   Se usa "clip" y no "hidden": hidden convierte la página en un contenedor
   con scroll propio y eso anula el position:sticky de la cabecera. */
html,body{overflow-x:clip}
img,table,pre{max-width:100%}
.spec{width:100%;table-layout:fixed;word-break:break-word}

/* Rejillas que se adaptan solas al número de tarjetas, en vez de un número fijo
   de columnas: así 3 o 4 elementos nunca dejan una fila coja ni desbordan. */
.cards3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.eq-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.hero__facts{flex-wrap:wrap}

/* El menú pasa a hamburguesa antes: con 6 entradas ya no cabe a 1100 px */
@media(max-width:1150px){
  .nav ul{gap:1.15rem}
  .nav > ul > li > a{font-size:.74rem;letter-spacing:.06em}
  .hdr__cta{display:none}
}

/* Contador de caracteres del detalle del requerimiento. */
.form__cuenta{display:block;margin-top:.35rem;font-size:.78rem;color:#6B7688;text-align:right;letter-spacing:.01em}
.form__cuenta--tope{color:#B4432E;font-weight:600}

/* ---------- Aviso de cookies ---------- */
.cookiebar{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--azul-profundo);
  color:#fff;padding:1rem 1.4rem;box-shadow:0 -4px 20px rgba(0,0,0,.25);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.cookiebar[hidden]{display:none}
.cookiebar:focus{outline:2px solid var(--acento);outline-offset:-2px}
.cookiebar__txt{flex:1 1 320px;font-size:.86rem;line-height:1.55;margin:0;color:rgba(255,255,255,.92)}
.cookiebar__txt a{text-decoration:underline;font-weight:700;color:#fff}
.cookiebar__acciones{display:flex;gap:.7rem;flex:0 0 auto}
.cookiebar__btn{padding:.62rem 1.3rem;font-weight:800;font-size:.78rem;text-transform:uppercase;
  letter-spacing:.07em;border:2px solid #fff;border-radius:2px;cursor:pointer;
  background:transparent;color:#fff;transition:.18s ease}
.cookiebar__btn--aceptar{background:#fff;color:var(--azul-profundo)}
.cookiebar__btn--aceptar:hover{background:transparent;color:#fff}
.cookiebar__btn--rechazar:hover{background:#fff;color:var(--azul-profundo)}
.cookiebar__btn:focus-visible{outline:2px solid var(--acento);outline-offset:2px}
@media(max-width:640px){
  .cookiebar{padding:.9rem 1rem 1rem;flex-direction:column;align-items:stretch}
  .cookiebar__acciones{width:100%}
  .cookiebar__btn{flex:1 1 0}
  /* Evita que el aviso tape el botón flotante de WhatsApp en pantallas chicas. */
  body.cookiebar-open .wa-float{bottom:calc(var(--cookiebar-h,150px) + 14px)}
}
/* Enlace "Configurar cookies" del pie de página, con el mismo estilo que sus vecinos */
.ftr__legales-btn{background:none;border:0;padding:0;margin:0;font:inherit;font-size:inherit;
  color:#C3CDDF;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.25)}
.ftr__legales-btn:hover{color:#fff}
