/* =========================================================================
   AJUSTES DE WORDPRESS
   =========================================================================
   Lo mínimo que hace falta porque en WordPress algunos elementos cambian de
   etiqueta respecto al prototipo. css/style.css NO se toca: si se tocara, el
   diff contra el prototipo dejaría de decir la verdad.
   ====================================================================== */

/* Los chips del filtro eran <span> muertos; ahora son enlaces de verdad
   (funcionan sin JS, cada categoría tiene su dirección y Google las indexa). */
a.filtro{text-decoration:none}
a.filtro:hover{border-color:var(--azul-bright); color:var(--azul-bright)}
a.filtro.is-on:hover{color:#fff}

/* La etiqueta de categoría y el título de la tarjeta ahora llevan a algún lado. */
.bcard__tag{text-decoration:none}
.bcard__t a{color:inherit; text-decoration:none}
.bcard__t a:hover{color:var(--azul-bright)}
 /* ⚠️ La foto de la tarjeta ahora va envuelta en un <a> para que se pueda picar.
   Ese <a> ROMPE la cadena de altura: .bcard__img img pide height:100%, y un
   porcentaje contra un padre de altura automática no resuelve — la foto se
   pasaba 19px de su caja (402x268 dentro de 402x249) y el recorte del diseño
   dejaba de aplicar. El <a> tiene que heredar la altura. */
/* ⚠️ SOLO el enlace de la foto: el tag de categoría también es un <a> dentro
   de .bcard__img, y con el selector genérico se estiraba a los 249px de la
   tarjeta (Fer lo cazó en su PDF del 22-ago). */
.bcard__img a.bcard__foto{display:block; height:100%}

/* Paginación del blog: no existía en el prototipo porque no había entradas. */
.pag{margin-top:56px}
.pag ul{display:flex; gap:10px; justify-content:center; list-style:none; margin:0; padding:0; flex-wrap:wrap}
.pag a,.pag span{
  display:flex; align-items:center; justify-content:center;
  min-width:44px; min-height:44px; padding:0 12px; border-radius:11px;
  font-family:var(--display); font-size:15px; text-decoration:none;
  border:1.5px solid #D5E4F0; color:var(--azul); background:#fff;
}
.pag a:hover{border-color:var(--azul-bright); color:var(--azul-bright)}
.pag .current{background:var(--azul-bright); border-color:var(--azul-bright); color:#fff}

/* El enlace de categoría del hero de la entrada. */
a.eyebrow{text-decoration:none}

/* -------------------------------------------------------------------------
   Áreas táctiles del blog
   -------------------------------------------------------------------------
   El corte va por PUNTERO, no por ancho de pantalla: un iPad mide 810px, cruza
   cualquier @media de ancho, y se toca con el dedo igual que un teléfono.
   (Lección de Dielec: el pie volvía a 28px en tableta por atarlo a `md:`.)

   Medido: los chips salían de 38px de alto y «Leer más» de 26.
   ---------------------------------------------------------------------- */
@media (pointer: coarse){
  .filtro{height:44px}
  .bcard__l{min-height:44px; align-items:center}
  /* El tag de categoría mide 37px de alto a la vista; el toque de 44 lo pone
     un ::after invisible (mismo truco que los iconos sociales). */
  .bcard__tag{position:relative}
  .bcard__tag::after{content:''; position:absolute; left:0; right:0; top:50%;
    height:44px; transform:translateY(-50%)}
}

/* -------------------------------------------------------------------------
   FORMULARIOS
   ---------------------------------------------------------------------- */

/* El campo trampa del anti-bot.
   ⚠️ NO se esconde con display:none ni con type="hidden": los bots decentes ya
   se saltan esos dos. Se saca de la pantalla, que sí lo deja "presente" para
   quien llena todos los inputs a ciegas. Y con aria-hidden + tabindex="-1"
   arriba, ni el teclado ni un lector de pantalla llegan a él — si un lector se
   lo dictara a una persona ciega, ella lo llenaría de buena fe y la trampa la
   dejaría fuera del sitio. */
.ilea-hp{position:absolute!important; left:-9999px!important; top:auto!important;
  width:1px!important; height:1px!important; overflow:hidden!important}

/* Respuesta del envío, dentro del propio formulario: quien lo llenó quiere ver
   qué pasó donde estaba, no en otra pantalla. */
.form__ok,.form__err{
  border-radius:12px; padding:16px 18px; margin-bottom:22px;
  font-size:16px; line-height:1.5;
}
.form__ok{background:#E8F6EC; border:1.5px solid #A8DCB8; color:#14532D}
.form__err{background:#FDECEC; border:1.5px solid #F3B9B9; color:#7F1D1D}
.form__ok strong,.form__err strong{display:block; margin-bottom:3px}
.form__ok b{font-family:var(--display); letter-spacing:.04em}

/* -------------------------------------------------------------------------
   Fachada del video
   -------------------------------------------------------------------------
   Ocupa exactamente el hueco del iframe para que la página no salte cuando el
   reproductor lo reemplace.
   ---------------------------------------------------------------------- */
.nos-video__fachada{
  display:block; width:100%; height:100%; position:relative;
  padding:0; border:0; cursor:pointer; background:#001A39; overflow:hidden;
}
.nos-video__fachada img{width:100%; height:100%; object-fit:cover; display:block}
.nos-video__play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:84px; height:84px; border-radius:50%;
  background:rgba(2,143,225,.94); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 40px rgba(0,10,24,.45); transition:transform .18s ease;
}
.nos-video__fachada:hover .nos-video__play{transform:translate(-50%,-50%) scale(1.07)}
.nos-video__play svg{width:36px; height:36px; margin-left:5px}

/* El CSS aprobado tiene `.hero--img .hero__foto > img` —selector de HIJO
   DIRECTO— y al envolver la foto en un <picture> deja de aplicar en silencio:
   el hero pierde su radio y su sombra. Se repone la regla para el nivel de más
   y así esas tres fotos también pueden servirse en WebP. */
.hero--img .hero__foto > picture{display:contents}
.hero--img .hero__foto > picture > img{border-radius:var(--r-card); box-shadow:var(--sombra)}

/* -------------------------------------------------------------------------
   El <picture> no debe existir para la maquetación
   -------------------------------------------------------------------------
   Al envolver las fotos para servir WebP, el <picture> se vuelve HIJO DIRECTO
   y le caen reglas que eran para la imagen o para los bloques de contenido:
   `.duo__c > *{position:relative;z-index:2}` le daba posición al <picture>, la
   <img> de adentro quedaba absoluta contra una caja sin tamaño, y la foto del
   banner de Tráfico SCT DESAPARECIÓ dejando un degradado gris.

   Es la misma familia del `.linea-card > *` que ya se pagó en el prototipo.

   `display:contents` hace que el <picture> no genere caja: la <img> vuelve a
   maquetar como si el envoltorio no estuviera.
   ---------------------------------------------------------------------- */
picture{display:contents}

/* -------------------------------------------------------------------------
   Áreas táctiles — medidas en iPhone, Pixel e iPad
   -------------------------------------------------------------------------
   Lo que cazó telefonos.mjs y es real (no el menú cerrado, que era la prueba
   mintiendo): los enlaces del PIE van pegados uno encima de otro a 17px de
   alto, el teléfono de la barra superior mide 22 y los «Ver más» 24.

   El corte va por PUNTERO, no por ancho: en tableta se toca igual.
   ---------------------------------------------------------------------- */
@media (pointer: coarse){
  .footer__nav a,
  .footer__c a{display:flex; align-items:center; min-height:44px}
  .footer__nav li{margin:0}
  /* El área táctil de 44px centraba el TEXTO pero el icono se quedaba pegado
     arriba (Fer lo vio chueco). En los renglones con enlace, el icono se
     centra con él; la dirección (sin enlace) se queda como el diseño. */
  .footer__c li:has(a){align-items:center}
  .footer__c li:has(a) svg{margin-top:0}
  .topbar__item{min-height:44px; display:inline-flex; align-items:center}
  /* Los iconos de redes NO se agrandan: Fer los vio enormes en su iPhone.
     El icono se queda en los 19px del diseño y el área de toque de 44px la
     pone un ::after invisible centrado encima. */
  .social a{position:relative}
  .social a::after{content:''; position:absolute; left:50%; top:50%;
    width:44px; height:44px; transform:translate(-50%,-50%)}
  .caso__l,.bcard__l,.blog-card__l,
  a.ver-mas,.vent2__b a,.sistema__b a{min-height:44px; display:inline-flex; align-items:center}
  /* los «Ver más» de las tarjetas del inicio y de industrial */
  .prod a,.casos a,.duo__c a.btn{min-height:44px; display:inline-flex; align-items:center}
  .legal a{display:inline-flex; align-items:center; min-height:44px}
}

@media (pointer: coarse){
  /* El desplegable «¿Qué línea te interesa?» del formulario medía 23px de alto:
     es el control más difícil de acertar con el dedo de todo el sitio. */
  /* ⚠️ WebKit ignora min-height en un <select> nativo: seguía midiendo 23px en
     iPhone y en iPad mientras Chromium ya lo respetaba. Con `height` sí obedece.
     Va sólo bajo pointer:coarse, así que el escritorio queda como el diseño. */
  .form select{height:52px}
  .form input,.form textarea{min-height:44px}
  /* La categoría del encabezado de una entrada es un enlace de verdad. */
  a.eyebrow{display:inline-flex; align-items:center; min-height:44px}
}


/* =========================================================================
   CAMBIOS DEL PDF DE FER (22-ago-2026) — revisión en su iPhone
   =========================================================================
   Todo lo de este bloque sale de su PDF de 24 páginas. En escritorio nada
   cambia: --indec-header mide 143px ahí, igual que el diseño aprobado.
   ====================================================================== */

/* ── El fondo del hero no llegaba al tope (quedaba una franja blanca) ──────
   El diseño sube el hero -143px, que es lo que mide el header EN ESCRITORIO.
   En móvil el header se acomoda en dos filas y mide 150px: quedaban 7px de
   franja, y en Casos/Blog el header se comía el título. movil.js mide el
   header de verdad y lo deja en --indec-header; aquí se usa esa medida. */
.hero-ind,.nos-banner{
  margin-top:calc(-1 * var(--indec-header,143px));
  padding-top:var(--indec-header,143px);
}
.hero-caso,.hero-blog,.post-hero,.aviso-hero,.hero-cont{
  margin-top:calc(-1 * var(--indec-header,143px));
  padding-top:calc(var(--indec-header,143px) + 66px);
}

@media (max-width:640px){
  /* ── La barra azul y la tarjeta blanca del header a lo mismo de ancho ──
     El .container genérico mete 18px de padding en móvil y la tarjeta
     quedaba 36px más angosta que la barra azul. */
  .header .container{padding:0}

  /* ── Margen lateral de 16px en móvil (el diseño traía 24) ── */
  .container{width:calc(100% - 32px)}

  /* ── «INGENIERÍA EN RECUBRIMIENTOS» se cortaba: la palabra más larga no
     cabe a 44px en una pantalla angosta. El padding de la tarjeta también
     baja un paso para darle aire. */
  .linea-card{padding:28px}
  .linea-card h3{font-size:31px}

  /* ── Texto blanco invisible: el prototipo esconde los blobs en móvil
     (.blob{display:none}) y este texto quedaba blanco sobre blanco. Sólo
     pasa en la portada; en Industrial el mismo bloque ya se pinta navy. */
  .s-casos .eyebrow.blanca{color:var(--azul-bright)}
  .s-casos .h2.bl{color:var(--navy)}
  .s-casos .marcas__t{color:var(--navy)}

  /* ── Espaciados entre secciones ──
     El ritmo vertical de escritorio (133-190px de colchón) llegaba intacto
     al teléfono: huecos de ~250px entre secciones. Se bajan a un paso
     proporcional, como ya hace el propio diseño con .tec (130→64). */
  .s-prods{padding-bottom:76px}
  .s-porque{padding-bottom:88px}
  .s-casos{padding-bottom:88px}
  .s-distri{padding-bottom:96px}
  .s-casos-ind{padding-bottom:88px}
  .s-casos-ind .marcas{padding-top:80px}
  .s-contacto{padding:72px 0}
  .s-indetech{padding:72px 0 84px}

  /* ── Los círculos del CTA final ──
     En escritorio son acentos de esquina; en el teléfono el scale(.7) del
     diseño no alcanza: se comían el texto y se salían de la tarjeta. Aquí
     se hacen proporcionales, se anclan a las esquinas y la tarjeta recorta
     lo que sobresale. */
  .cta-box{overflow:hidden}
  .cta-box .cta-box__b{transform:none}
  .cta-box__b--am{width:76px; height:76px; top:-22px; left:-12px}
  .cta-box__b--rojo{width:76px; height:76px; top:-22px; right:-12px}
  .cta-box__b--azul{width:92px; height:104px; bottom:-10px; left:-10px}
  .cta-box__b--mor{width:92px; height:104px; bottom:-10px; right:-10px}

  /* ── Tabla comparativa (Arquitectónica) ──
     El diseño la resolvía con scroll lateral; Fer pidió tarjetas apiladas:
     cada renglón se vuelve una tarjeta con su dato de Indecolor y el de la
     marca genérica etiquetados. El thead (logos) ya no hace falta. */
  .tabla{background:transparent; box-shadow:none; overflow:visible}
  .tabla table{min-width:0}
  .tabla table,.tabla tbody,.tabla tbody tr,.tabla tbody th,.tabla td{display:block; width:auto}
  .tabla thead{display:none}
  .tabla tbody tr{background:#fff; border-radius:var(--r-card); box-shadow:var(--sombra);
    padding:20px 22px; margin-bottom:14px}
  .tabla tbody tr:last-child{margin-bottom:0}
  .tabla tbody th{padding:0 0 10px; margin-bottom:12px; border-bottom:1px solid var(--linea); font-size:16px}
  .tabla td{padding:8px 0; border-bottom:0; text-align:left;
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
  .tabla td::before{font-family:var(--body); font-weight:700; color:var(--navy); font-size:14.5px}
  .tabla td:nth-of-type(1)::before{content:'Indecolor'}
  .tabla td:nth-of-type(2)::before{content:'Marca genérica'}
  .tabla .ok,.tabla .no{text-align:right}
}


/* Variantes de la tarjeta de datos de Nosotros (D17/D18 del PDF):
   la de reconocimientos lleva 2 columnas; la numeralia que bajó a
   «entregamos un sistema» lleva 3 y NO hereda el margen negativo con el
   que la original se encarama sobre la siguiente sección. */
.nos-datos--2{grid-template-columns:1fr 1fr}
.nos-datos--3{grid-template-columns:repeat(3,1fr); margin-bottom:0; box-shadow:var(--sombra)}
@media (max-width:640px){
  .nos-datos--2,.nos-datos--3{grid-template-columns:1fr}
}


/* E20 del PDF: WhatsApp y Teléfono unificados en una tarjeta (es el mismo
   número). La retícula pasa de 4 a 3 tarjetas y la tarjeta gana dos acciones. */
.cont-vias--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1180px){ .cont-vias--3{grid-template-columns:1fr 1fr} }
@media (max-width:640px){ .cont-vias--3{grid-template-columns:1fr} }
.cont-via__acciones{display:flex; gap:10px; margin-top:14px}
.cont-via__acciones a{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:40px; padding:0 16px; border-radius:10px;
  font-family:var(--display); font-size:13.5px; letter-spacing:.05em; text-transform:uppercase;
  text-decoration:none; border:1.5px solid var(--azul-bright); color:var(--azul-bright);
}
.cont-via__acciones a:first-child{background:#1F7A16; border-color:#1F7A16; color:#fff}
.cont-via__acciones a:hover{filter:brightness(1.08)}
@media (pointer: coarse){ .cont-via__acciones a{min-height:44px} }

/* -------------------------------------------------------------------------
   Reels de obra (G24 del PDF de Fer) — Casos de Éxito
   -------------------------------------------------------------------------
   Formato 9:16 como en Instagram. Al cargar sólo viaja la portada; el video
   entra al primer toque (assets/js/reels.js) y pausa a los demás.
   ---------------------------------------------------------------------- */
/* Carrusel de 3½ tarjetas (pedido de Fer): se asoma media tarjeta para
   invitar a deslizar; flechas en escritorio, dedo en el teléfono. */
.reels-marco{position:relative}
.reels{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-padding-left:2px; padding:6px 2px 22px; scrollbar-width:none}
.reels::-webkit-scrollbar{display:none}
.reels .reel{flex:0 0 calc((100% - 22px * 3) / 3.5); scroll-snap-align:start}
.reels-flecha{position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  width:52px; height:52px; border-radius:50%; border:0; cursor:pointer;
  background:#fff; color:var(--navy); box-shadow:var(--sombra);
  display:flex; align-items:center; justify-content:center;
  transition:transform .15s ease, color .15s ease}
.reels-flecha:hover{color:var(--azul-bright); transform:translateY(-50%) scale(1.06)}
.reels-flecha svg{width:22px; height:22px}
.reels-flecha--izq{left:-14px}
.reels-flecha--der{right:-14px}
.reels-flecha[disabled]{opacity:0; pointer-events:none}
.reel{position:relative; margin:0; border-radius:var(--r-card); overflow:hidden;
  box-shadow:var(--sombra); aspect-ratio:9/16; background:#001A39; cursor:pointer}
.reel img,.reel picture,.reel video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.reel picture{display:block}
.reel video{z-index:3; background:#000}
.reel__play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
  width:64px; height:64px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(2,143,225,.94); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 40px rgba(0,10,24,.45); transition:transform .18s ease}
.reel:hover .reel__play{transform:translate(-50%,-50%) scale(1.07)}
.reel__play svg{width:26px; height:26px; margin-left:4px}
.reel__t{position:absolute; left:0; right:0; bottom:0; z-index:2; margin:0;
  padding:46px 14px 13px; color:#fff; font-size:14px; line-height:1.35;
  background:linear-gradient(180deg, transparent, rgba(0,10,24,.85))}
.reel.is-playing .reel__play,.reel.is-playing .reel__t,.reel.is-playing img,.reel.is-playing picture{display:none}
@media (max-width:980px){ .reels .reel{flex-basis:calc((100% - 18px) / 1.8)} .reels{gap:18px} .reels-flecha{display:none} }
@media (max-width:640px){ .reels{gap:12px} .reels .reel{flex-basis:calc((100% - 12px) / 1.4)}
  .reel__t{font-size:12.5px; padding:36px 10px 10px} .reel__play{width:52px; height:52px} }

/* El lightbox: el reel se ve en grande sobre un velo oscuro. El <video>
   nace hasta que se abre, y muere al cerrar. */
.reel-luz{position:fixed; inset:0; z-index:200; display:flex; align-items:center;
  justify-content:center; padding:22px; background:rgba(0,10,24,.88);
  animation:reel-luz-entra .18s ease}
@keyframes reel-luz-entra{from{opacity:0}to{opacity:1}}
.reel-luz video{height:min(86vh, 860px); max-width:min(92vw, 480px);
  aspect-ratio:9/16; object-fit:contain; background:#000;
  border-radius:18px; box-shadow:0 30px 90px rgba(0,0,0,.6)}
.reel-luz__x{position:absolute; top:18px; right:18px; width:48px; height:48px;
  border-radius:50%; border:0; cursor:pointer; background:rgba(255,255,255,.14);
  color:#fff; display:flex; align-items:center; justify-content:center}
.reel-luz__x:hover{background:rgba(255,255,255,.28)}
.reel-luz__x svg{width:22px; height:22px}
.reel-luz__t{position:absolute; left:22px; bottom:20px; right:22px; margin:0;
  color:#fff; font-size:15px; text-align:center; opacity:.85}

/* Cintillo de Instagram: el perfil real, con el aro degradado de la casa. */
.ig-cintillo{max-width:760px; margin:42px auto 0; background:#fff;
  border:1px solid #E6EEF7; border-radius:999px; box-shadow:var(--sombra-sm);
  display:flex; align-items:center; gap:16px; padding:12px 14px 12px 12px}
.ig-cintillo__aro{flex:0 0 auto; width:58px; height:58px; border-radius:50%;
  padding:3px; background:linear-gradient(45deg,#F9CE34,#EE2A7B 52%,#6228D7);
  display:flex; align-items:center; justify-content:center}
.ig-cintillo__aro img,.ig-cintillo__aro picture{width:100%; height:100%; border-radius:50%;
  background:#fff; padding:5px; display:block; object-fit:contain}
.ig-cintillo__txt{flex:1; min-width:0}
.ig-cintillo__txt b{display:block; font-family:var(--display); font-size:16.5px; color:var(--navy)}
.ig-cintillo__txt span{display:block; font-size:14.5px; color:var(--gris); line-height:1.35}
.ig-cintillo__btn{flex:0 0 auto; display:inline-flex; align-items:center; gap:8px;
  min-height:46px; padding:0 20px; border-radius:999px; text-decoration:none;
  font-family:var(--display); font-size:13.5px; letter-spacing:.05em; text-transform:uppercase;
  color:#fff; background:linear-gradient(45deg,#F9CE34,#EE2A7B 52%,#6228D7)}
.ig-cintillo__btn:hover{filter:brightness(1.07)}
.ig-cintillo__btn svg{width:18px; height:18px}
@media (max-width:640px){
  .ig-cintillo{flex-wrap:wrap; border-radius:22px; justify-content:center; text-align:center; padding:18px}
  .ig-cintillo__txt{flex-basis:100%}
}


/* ── PDF «Ajustes menores» de Fer (22-ago, tarde) ─────────────────────── */

/* 1 · El botón de Línea Vial del hero: transparente, borde amarillo y letra
   negra (pedido tal cual). Y los tres botones caben en un renglón: el padding
   del diseño (22px) los pasaba de la columna por 9px. */
.btn--out-amarillo{background:transparent; border-color:var(--amarillo); color:var(--navy)}
.btn--out-amarillo:hover{background:var(--amarillo); color:#231800}
.hero__cta .btn{padding:0 17px}

/* 2 · En móvil el logo del pie quedaba a 17px del CTA (el pie se encarama
   -173px y el padding móvil de 190 casi no sobraba). */
@media (max-width:640px){
  .footer .container{padding-top:236px}
}

/* 3 · En móvil el texto blanco del hero industrial cruza toda la pantalla y
   el velo diagonal del diseño ya se había apagado a la mitad. Aquí el velo
   sigue firme hasta la orilla derecha (sólo teléfono; escritorio intacto). */
@media (max-width:640px){
  .hero-ind__bg::after{
    background:linear-gradient(180deg,rgba(4,18,36,.5) 0%,rgba(4,18,36,0) 20%,rgba(242,250,255,0) 64%,rgba(242,250,255,.42) 79%,rgba(242,250,255,.93) 92%,var(--bg) 100%),
               linear-gradient(100deg,rgba(5,21,40,.95) 0%,rgba(6,24,45,.88) 38%,rgba(8,30,54,.66) 62%,rgba(10,34,58,.48) 84%,rgba(10,34,58,.38) 100%);
  }
}

/* 4 · En móvil los sistemas de Industrial (INDEFIRE, INDEGUARD…) van
   centrados — pedido de Fer, se lee mejor con el bote centrado arriba. */
@media (max-width:640px){
  .sistema{text-align:center; align-items:center}
  .sistema__img img{margin-inline:auto}
  .sistema__b{justify-content:center; text-align:left}
}


/* 6 · La tarjeta de reconocimientos lleva el SELLO ISO de verdad (el mismo
   del pie), no un icono genérico. Sólo hay dos certificaciones documentadas
   (ISO 9001:2015 y la especificación SCT); si el cliente manda más, entran
   por el editor. */
.nos-dato__sello{height:64px; width:auto; margin-bottom:14px; display:block}

/* 5 · Las cuatro gamas de la Línea Vial (rediseño del PDF de Fer) ─────────
   Cajas blancas con el círculo de color de la marca —el mismo lenguaje de
   los diferenciales del inicio— y botón de WhatsApp por producto. */
.gamas{display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:46px}
.gama{background:#fff; border:1px solid #E6EEF7; border-radius:16px;
  box-shadow:var(--sombra-sm); padding:28px 24px 24px; display:flex; flex-direction:column}
.gama .ico{margin:0 0 16px}
.gama__t{font-family:var(--display); font-size:18.5px; line-height:1.22; color:var(--navy); margin-bottom:10px}
.gama__d{font-size:15.5px; line-height:1.5; color:var(--gris); margin-bottom:20px; flex:1}
.gama__b{display:flex; align-items:center; justify-content:center; gap:9px;
  min-height:46px; padding:0 14px; border-radius:10px; text-decoration:none;
  font-family:var(--display); font-size:13.5px; letter-spacing:.05em; text-transform:uppercase;
  border:1.5px solid var(--azul-bright); color:var(--azul-bright);
  transition:background .15s ease, color .15s ease}
.gama__b:hover{background:var(--azul-bright); color:#fff}
.gama__b svg{width:17px; height:17px; flex:0 0 auto}
@media (max-width:1180px){ .gamas{grid-template-columns:1fr 1fr} }
@media (max-width:640px){ .gamas{grid-template-columns:1fr; gap:16px; margin-top:34px} }

/* 9 · Las dos plantas de Contacto, cada una en su columna. El hueco de la
   foto de Sinaloa lo dice de frente — nada de fingir fotos. */
.plantas{display:grid; grid-template-columns:1fr 1fr; gap:26px}
.planta{background:#fff; border:1px solid #E6EEF7; border-radius:16px;
  box-shadow:var(--sombra-sm); overflow:hidden; display:flex; flex-direction:column}
.planta__foto{aspect-ratio:16/9; overflow:hidden; position:relative}
.planta__foto img{width:100%; height:100%; object-fit:cover; display:block}
.planta__foto--pend{display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; background:repeating-linear-gradient(-45deg,#EAF3FB 0 14px,#F2FAFF 14px 28px); color:var(--azul)}
.planta__foto--pend svg{width:34px; height:34px}
.planta__foto--pend span{font-family:var(--display); font-size:13px; letter-spacing:.08em; text-transform:uppercase}
.planta__in{padding:26px 28px 30px; display:flex; flex-direction:column; flex:1}
.planta__t{font-family:var(--display); font-size:22px; color:var(--navy); margin-bottom:8px}
.planta__d{font-size:16px; line-height:1.55; color:var(--gris); margin-bottom:18px}
.planta .horario{margin-top:auto}
@media (max-width:900px){ .plantas{grid-template-columns:1fr} }
