/*
Theme Name: Roldán Garzón Logística
Theme URI: https://www.logisticaroldangarzon.com
Author: Logística Roldán Garzón SAS
Description: Tema propio para Logística Roldán Garzón SAS. Compatible con WooCommerce.
Version: 2.23.5
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: roldan
*/

/* ---------- Tipografías alojadas en el tema (sin Google Fonts: más rápido y sin enviar datos del visitante a terceros) ---------- */
@font-face { font-family: "Archivo"; font-style: normal; font-weight: 100 900; font-stretch: 62% 125%; font-display: swap;
  src: url("assets/fonts/archivo-latin-wdth.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("assets/fonts/ibm-plex-sans-latin-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("assets/fonts/ibm-plex-sans-latin-500.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("assets/fonts/ibm-plex-sans-latin-600.woff2") format("woff2"); }

/* ---------- Variables: cambia los colores aquí para igualarlos al logo ---------- */
:root {
  --rojo: #BD1522;          /* rojo corporativo */
  --rojo-vivo: #BD1522;     /* mismo rojo corporativo (paleta: rojo #BD1522, blanco y negro) */
  --asfalto: #1C1C1C;       /* negro de texto y fondos oscuros */
  --carretera: #2B2B2B;
  --linea: #BD1522;
  --linea-oscura: #000000;   /* hover: negro corporativo */
  --niebla: #F2F2F2;
  --blanco: #FFFFFF;
  --texto: #1C1C1C;
  --texto-suave: #5A5A5A;
  --whatsapp: #157A3C;
  --borde: #D9D9D9;
  --radio: 2px;
  --ancho: 1160px;
  --f-titulo: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-texto: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--f-texto);
  font-size: 17px;
  line-height: 1.6;
  color: var(--texto);
  background: var(--blanco);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 {
  font-family: var(--f-titulo);
  line-height: 1.1;
  margin: 0 0 .5em;
  letter-spacing: -.01em;
}
h1 { font-size: clamp(2.3rem, 5.2vw, 4rem); font-weight: 800; font-stretch: 112%; }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); font-weight: 800; font-stretch: 108%; }
h3 { font-size: 1.2rem; font-weight: 700; }
p { margin: 0 0 1em; max-width: 68ch; }

:focus-visible { outline: 3px solid var(--rojo-vivo); outline-offset: 3px; }
.skip-link {
  position: absolute; left: -999px; top: 0; background: var(--rojo); color: #fff;
  padding: .6em 1em; z-index: 100; font-weight: 600;
}
.skip-link:focus { left: 0; }

.wrap { width: min(100% - 40px, var(--ancho)); margin-inline: auto; }
.section { padding-block: clamp(56px, 8vw, 104px); }
.section--niebla { background: var(--niebla); }
.section--oscura { background: var(--asfalto); color: var(--blanco); }
.section__head { margin-bottom: 40px; }
.section__head p { color: var(--texto-suave); font-size: 1.05rem; }
.section--oscura .section__head p { color: #BDBDBD; }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font: 700 1rem/1 var(--f-titulo); letter-spacing: .01em;
  padding: 1em 1.5em; border-radius: var(--radio); border: 2px solid transparent;
  text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
.btn--linea { background: var(--linea); color: #fff; }
.btn--linea:hover { background: var(--linea-oscura); }
.btn--wa { background: var(--whatsapp); color: #fff; }
.btn--wa:hover { background: #148141; }
.btn--borde { border-color: currentColor; background: transparent; }
.btn--borde:hover { background: rgba(255,255,255,.1); }
.btn--bloque { width: 100%; }

/* ---------- Cabecera ---------- */
.topbar { background: var(--asfalto); color: #CFCFCF; font-size: .9rem; }
.topbar .wrap { display: flex; justify-content: space-between; gap: 16px; padding-block: 8px; flex-wrap: wrap; }
.topbar a { text-decoration: none; font-weight: 600; color: var(--blanco); }
.site-header { background: var(--blanco); border-bottom: 1px solid var(--borde); position: sticky; top: 0; z-index: 50; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; }
.brand { display: flex; align-items: center; text-decoration: none; font: 800 1.15rem/1.1 var(--f-titulo); }
.brand img { max-height: 54px; width: auto; display: block; }
.nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; align-items: center; }
.nav li { position: relative; }
.nav a, .nav .sub-btn { white-space: nowrap; }
.nav a { display: block; padding: .7em .9em; text-decoration: none; font-weight: 600; font-size: .98rem; border-radius: var(--radio); }
.nav a:hover { background: var(--niebla); }
.nav .sub-menu {
  display: none; position: absolute; top: 100%; left: 0; min-width: 260px; flex-direction: column; align-items: stretch;
  background: var(--blanco); border: 1px solid var(--asfalto); padding: 6px;
}
.nav li:hover > .sub-menu, .nav li:focus-within > .sub-menu { display: flex; }
.nav-toggle { display: none; background: none; border: 2px solid var(--asfalto); border-radius: var(--radio); padding: .5em .8em; font: 700 .95rem var(--f-titulo); cursor: pointer; }
.header-cta { white-space: nowrap; padding: .8em 1.1em; }

@media (max-width: 1280px) {
  .nav-toggle { display: block; }
  .header-cta { display: none; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--blanco); border-bottom: 1px solid var(--borde); padding: 12px 20px 20px; }
  .nav.is-open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; }
  .nav .sub-menu { display: flex; position: static; border: 0; box-shadow: none; padding: 0 0 0 14px; }
}

/* ---------- Hero ---------- */
.hero { background: var(--rojo); color: var(--blanco); position: relative; overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; padding-block: clamp(48px, 7vw, 96px); position: relative; z-index: 1; }
.hero h1 { color: var(--blanco); }
.hero .lead { font-size: 1.15rem; color: #FFFFFF; max-width: 46ch; }
.hero .btn--linea { background: #fff; color: var(--rojo); }
.hero .btn--linea:hover { background: #F2F2F2; }
.hero__acciones { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.hero__nota { margin: 36px 0 0; color: #FFFFFF; font-size: .95rem; max-width: 52ch; }
.hero__ruta { position: absolute; inset: 0; z-index: 0; opacity: .5; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.25) 50%, #000 75%); mask-image: linear-gradient(90deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.25) 50%, #000 75%); }
.hero__ruta svg { width: 100%; height: 100%; }
.ruta-linea { stroke: #fff; stroke-width: 3; fill: none; stroke-dasharray: 3 14; stroke-linecap: round; opacity: .55; }
.ruta-nodo { fill: #fff; }
.ruta-aro { fill: none; stroke: #fff; stroke-width: 1.5; opacity: .5; }
.ruta-texto { fill: #fff; font: 600 15px var(--f-titulo); }
@media (prefers-reduced-motion: no-preference) {
  .ruta-linea { animation: avanzar 1.6s linear infinite; }
}
@keyframes avanzar { to { stroke-dashoffset: -34; } }
@media (max-width: 920px) {
  .hero .wrap { grid-template-columns: 1fr; gap: 36px; }
  .hero__ruta { opacity: .25; -webkit-mask-image: none; mask-image: none; }
}

/* ---------- Cotizador ---------- */
.cotizador { background: var(--blanco); color: var(--texto); padding: 28px; }
.cotizador h2 { font-size: 1.5rem; margin-bottom: .2em; font-stretch: 100%; }
.cotizador > p { color: var(--texto-suave); font-size: .95rem; margin-bottom: 18px; }
.campo { margin-bottom: 14px; }
.campo label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 5px; }
.campo input, .campo select, .campo textarea {
  width: 100%; font: inherit; padding: .75em .85em; border: 1.5px solid var(--borde); border-radius: var(--radio); background: #fff; color: var(--texto);
}
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--asfalto); outline: 3px solid rgba(178,24,31,.3); outline-offset: 0; }
.campos-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cotizador__nota { font-size: .85rem; color: var(--texto-suave); margin: 12px 0 0; }
.cotizador__mail { display: block; text-align: center; margin-top: 10px; font-size: .92rem; font-weight: 600; }
.aviso--mal { background: #FFFFFF; border-color: var(--rojo); border-left-width: 5px; }
.aviso { padding: 12px 14px; border-radius: var(--radio); font-size: .95rem; margin-bottom: 14px; background: #E6F5EC; border: 1px solid #9FD6B4; }
@media (max-width: 520px) { .campos-2 { grid-template-columns: 1fr; } .cotizador { padding: 22px 18px; } }

/* ---------- Rutas ---------- */
/* Lista de rutas: texto grande en columnas, como un tablero de salidas */
.rutas { columns: 3 260px; column-gap: 40px; list-style: none; margin: 0; padding: 0; }
.rutas li { break-inside: avoid; }
.rutas a {
  display: block; padding: .28em 0; text-decoration: none;
  font: 700 clamp(1.15rem, 2vw, 1.45rem)/1.25 var(--f-titulo); font-stretch: 105%;
}
.rutas a:hover { text-decoration: underline; text-decoration-color: var(--linea); text-decoration-thickness: 4px; text-underline-offset: 5px; }
.rutas__mas { margin-top: 28px; color: var(--texto-suave); }

/* ---------- Servicios ---------- */
.servicios-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 64px; align-items: start; }
.servicios-grid .section__head { margin: 0; position: sticky; top: 110px; }
.servicio { margin-bottom: 36px; max-width: 58ch; }
.servicio:last-child { margin-bottom: 0; }
.servicio h3 { font-size: 1.5rem; color: var(--blanco); margin-bottom: .3em; }
.servicio p { color: #CFCFCF; margin: 0; }
@media (max-width: 820px) {
  .servicios-grid { grid-template-columns: 1fr; gap: 32px; }
  .servicios-grid .section__head { position: static; }
}

/* ---------- Sedes ---------- */
.sedes { display: grid; grid-template-columns: 1fr 1.3fr 1.1fr; gap: 48px; }
.sede h3 { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; font-stretch: 108%; margin-bottom: .2em; }
.sede p { margin: 0; color: var(--texto-suave); }
.horario { margin-top: 44px; max-width: 68ch; color: var(--texto-suave); }
.horario p { margin: 0 0 .4em; }
.horario strong { color: var(--texto); }
@media (max-width: 860px) { .sedes { grid-template-columns: 1fr; gap: 28px; } }

/* ---------- Tienda en inicio ---------- */
.tienda-inicio .woocommerce ul.products { margin: 0; }

/* ---------- Llamado final ---------- */
.cierre { background: var(--rojo); color: #fff; }
.cierre .wrap { display: flex; justify-content: space-between; align-items: center; gap: 28px; flex-wrap: wrap; padding-block: 52px; }
.cierre h2 { margin: 0; max-width: 20ch; }
.cierre .btn--wa { background: #fff; color: var(--rojo); }
.cierre .btn--wa:hover { background: #F2F2F2; }

/* ---------- Páginas internas ---------- */
.page-head { background: var(--rojo); color: #fff; padding-block: 48px; }
.page-head h1 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); }
.contenido { padding-block: 56px; }
.contenido .wrap > * { max-width: 78ch; }
.contenido .wrap > .woocommerce, .contenido .wrap > .alignwide { max-width: none; }
.contenido img { border-radius: var(--radio); }
.contenido h2 { margin-top: 1.6em; }

/* ---------- Pie ---------- */
.site-footer { background: var(--asfalto); color: #BDBDBD; padding-block: 56px 28px; font-size: .95rem; border-bottom: 10px solid var(--rojo-vivo); }
.site-footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.site-footer h3 { color: #fff; font-size: 1.05rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: 6px; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--linea); }
.site-footer .legal { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.15); padding-top: 20px; margin-top: 8px; font-size: .85rem; }
.site-footer .legal a { margin-right: 18px; display: inline-block; }
@media (max-width: 760px) { .site-footer .wrap { grid-template-columns: 1fr; } }

/* ---------- Botón flotante de WhatsApp ---------- */
.wa-flotante {
  position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 58px; height: 58px; border-radius: 50%;
  background: var(--whatsapp); color: #fff; display: grid; place-items: center;
}
.wa-flotante svg { width: 30px; height: 30px; fill: currentColor; }

/* ---------- WooCommerce: ajustes mínimos de marca ---------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt {
  background: var(--linea); color: #fff; border-radius: var(--radio); font-family: var(--f-titulo); font-weight: 700; padding: .9em 1.3em;
}
.woocommerce .button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--linea-oscura); color: #fff; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price { color: var(--asfalto); font-weight: 700; font-family: var(--f-titulo); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--f-titulo); font-size: 1.05rem; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--linea); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--rojo); }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ---------- Quiénes somos ---------- */
.texto-largo h2 { margin-top: 1.4em; }
.texto-largo h2:first-child { margin-top: 0; }
.dos-col { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.dos-col p { font-size: 1.15rem; }
.valores { list-style: none; margin: 0; padding: 0; columns: 2 280px; column-gap: 48px; }
.valores li { font: 800 clamp(1.6rem, 3.4vw, 2.4rem)/1.3 var(--f-titulo); font-stretch: 108%; break-inside: avoid; }
@media (max-width: 760px) { .dos-col { grid-template-columns: 1fr; gap: 28px; } }

/* ---------- Brochure: flota, cobertura, tecnología ---------- */
.cifras-texto { font: 700 clamp(1.3rem, 2.6vw, 1.9rem)/1.35 var(--f-titulo); font-stretch: 104%; max-width: 30ch; margin: 0; }
.cifras-texto + .cifras-texto { margin-top: .7em; }
.cifras-texto b { color: var(--rojo); font-weight: 800; }
.flota-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.seguridad { max-width: 58ch; }
.seguridad strong { display: block; font: 800 1.2rem/1.3 var(--f-titulo); margin-bottom: .4em; }
.lista-simple { list-style: none; margin: 0; padding: 0; columns: 2 220px; column-gap: 40px; }
.lista-simple li { padding: .25em 0; break-inside: avoid; font-weight: 600; }
.cobertura-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.cobertura-grid h3 { font-size: 1.3rem; }
.modulos { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 64px; }
.modulo h3 { font-size: 1.15rem; margin-bottom: .25em; }
.modulo p { margin: 0; color: var(--texto-suave); }
.section--oscura .modulo p { color: #CFCFCF; }
.integraciones { columns: 2 280px; column-gap: 48px; margin: 0; padding: 0; list-style: none; }
.integraciones li { break-inside: avoid; padding: .45em 0; }
.integraciones strong { display: block; font-family: var(--f-titulo); }
.integraciones span { color: var(--texto-suave); font-size: .95rem; }
.pasos { list-style: none; margin: 0; padding: 0; max-width: 62ch; counter-reset: paso; }
.pasos li { counter-increment: paso; padding: 0 0 1.1em 3.2em; position: relative; }
.pasos li::before { content: counter(paso); position: absolute; left: 0; top: 0; width: 2.1em; height: 2.1em; border-radius: 50%; background: var(--rojo); color: #fff; display: grid; place-items: center; font: 700 .95rem var(--f-titulo); }
@media (max-width: 820px) { .flota-grid, .cobertura-grid, .modulos { grid-template-columns: 1fr; gap: 28px; } }

.logo-txt{display:flex;align-items:center;gap:10px;color:var(--asfalto)}
.logo-txt i{width:10px;height:38px;background:var(--rojo-vivo);display:block;transform:skewX(-14deg)}
.logo-txt b{font:800 1rem/1.05 var(--f-titulo);text-transform:uppercase;letter-spacing:.01em}
.logo-txt em{font:700 .7rem var(--f-titulo);color:var(--rojo);align-self:flex-end;font-style:normal}
.nav a.act{color:var(--rojo);box-shadow:inset 0 -3px 0 var(--rojo)}

.mapa-sedes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;margin-top:56px;align-items:start}
.mapa-sedes__mapa{position:relative;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden}
.mapa-sedes__mapa svg{display:block;width:100%;max-height:640px;height:auto;background:#EEF3F6}
.ms-tierra{fill:#fff;stroke:#B9C2C8;stroke-width:2;stroke-linejoin:round}
.ms-ciudad circle{fill:#9AA3A8}.ms-ciudad text{font:600 13px var(--f-texto);fill:#4F595E}
.ms-pin{cursor:pointer;outline:none}
.ms-pin .halo{fill:var(--rojo-vivo);opacity:0;transform-box:fill-box;transform-origin:center}
.ms-pin .punto{fill:var(--rojo);stroke:#fff;stroke-width:3;transition:r .15s}
.ms-pin text{font:800 15px var(--f-titulo);fill:var(--asfalto);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.ms-pin:hover .punto,.ms-pin:focus-visible .punto{r:13}
.ms-pin:focus-visible .punto{stroke:var(--asfalto)}
.ms-pin.on .halo{animation:ms-pulso 1.8s ease-out infinite}
.ms-pin.on .punto{fill:var(--asfalto)}
@keyframes ms-pulso{0%{opacity:.5;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
.ms-reset{position:absolute;top:12px;right:12px;font:700 .85rem var(--f-titulo);background:var(--asfalto);color:#fff;border:0;border-radius:var(--radio);padding:.7em 1em;cursor:pointer}
.ms-reset:hover{background:var(--rojo)}
.ms-nota{position:absolute;left:10px;bottom:8px;right:10px;font-size:.82rem;color:#4F595E;text-align:left;pointer-events:none}
.ms-sede{background:#fff;border:2px solid var(--borde);border-left:6px solid var(--borde);border-radius:var(--radio);padding:18px 20px;margin-bottom:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.ms-sede:hover{border-color:#999;border-left-color:#999}
.ms-sede.on{border-color:var(--rojo);border-left-color:var(--rojo);box-shadow:0 3px 8px rgba(0,0,0,.08)}
.ms-sede h3{margin:0 0 .15em;font-size:1.5rem}
.ms-sede p{margin:0 0 .4em;color:var(--texto-suave)}
.ms-estado{display:inline-block;font:700 .8rem var(--f-titulo);padding:.3em .7em;border-radius:99px;background:#E8E8E8;color:#444}
.ms-estado.abierto{background:#DDF3E5;color:#14683A}
.ms-det{display:none;margin-top:14px;border-top:1px solid var(--borde);padding-top:14px}
.ms-sede.on .ms-det{display:block}
.ms-horas{list-style:none;margin:0 0 14px;padding:0;font-size:.95rem}
.ms-horas li{display:flex;justify-content:space-between;gap:12px;padding:.15em 0}
.ms-acc{display:flex;flex-wrap:wrap;gap:10px}
.ms-acc .btn{padding:.8em 1.1em;font-size:.92rem}
@media (max-width:860px){.mapa-sedes{grid-template-columns:1fr}}

/* ===== Mejoras de experiencia ===== */
.site-header{transition:box-shadow .2s}.site-header.scrolled{box-shadow:0 4px 18px rgba(0,0,0,.12)}
.acciones{background:#fff;color:var(--texto);border-radius:var(--radio);box-shadow:0 6px 14px rgba(0,0,0,.18);overflow:hidden}
.acciones__tabs{display:grid;grid-template-columns:repeat(3,1fr);background:var(--niebla);border-bottom:1px solid var(--borde)}
.acciones__tabs button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border:0;background:transparent;font:700 .9rem var(--f-titulo);color:var(--texto-suave);cursor:pointer;border-bottom:4px solid transparent;transition:color .15s,background .15s}
.acciones__tabs button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.acciones__tabs button:hover{background:#fff;color:var(--asfalto)}
.acciones__tabs button.on{background:#fff;color:var(--rojo);border-bottom-color:var(--rojo)}
.acciones__pnl{padding:24px 28px 28px}.acciones__pnl[hidden]{display:none}
.acciones .cotizador{padding:0;box-shadow:none}
.acciones .cotizador>p{margin-bottom:14px}
.destacados{background:var(--asfalto);color:#fff;padding-block:28px}
.dest__view{overflow:hidden;border-radius:var(--radio)}
.dest__track{display:flex;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.dest__slide{flex:0 0 100%;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;padding:clamp(24px,4vw,44px)}
.d-osc{background:#2B2B2B}.d-niebla{background:#F2F2F2;color:var(--asfalto)}.d-rojo{background:var(--rojo)}
.dest__k{display:inline-block;font:800 .95rem var(--f-titulo);color:#fff;border-left:4px solid var(--rojo-vivo);padding-left:.55em;margin-bottom:.5em}
.d-rojo .dest__k{color:#fff}
.dest__slide h2{font-size:clamp(1.4rem,3vw,2.1rem);margin:0 0 .4em;max-width:26ch}
.dest__slide p{margin:0 0 1.2em;max-width:60ch;opacity:.9}
.d-niebla .btn--borde:hover{background:rgba(0,0,0,.06)}
.dest__ic{width:clamp(70px,12vw,130px);height:auto;fill:currentColor;opacity:.2}
.dest__ctl{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}
.dest__nav{width:38px;height:38px;border-radius:50%;border:2px solid #555;background:transparent;color:#fff;font:700 1.2rem/1 var(--f-titulo);cursor:pointer}
.dest__nav:hover{border-color:#fff}.dest__pp{font-size:.62rem;letter-spacing:-.1em}
.dest__dots{display:flex;gap:8px}.dest__dots button{width:12px;height:12px;border-radius:50%;border:0;background:#666;cursor:pointer;padding:0}
.dest__dots button[aria-current="true"]{background:var(--rojo-vivo);width:30px;border-radius:99px}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc{background:#2B2B2B;padding:26px 22px;display:flex;flex-direction:column;transition:background .2s}
.svc:hover{background:#333}
.svc svg{width:44px;height:44px;fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:18px}
.svc h3{font-size:1.2rem;color:#fff}.svc p{color:#CFCFCF;margin:0 0 1.2em;flex:1}
.svc a{font:700 .95rem var(--f-titulo);color:#fff;text-decoration:none;border-bottom:2px solid var(--rojo-vivo);align-self:flex-start;padding-bottom:2px}
.svc a:hover{border-bottom-color:#fff}
.canales{background:var(--niebla);padding-block:clamp(40px,6vw,72px);border-top:1px solid var(--borde)}
.canales h2{margin-bottom:24px}
.canales__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.canal{display:flex;flex-direction:column;gap:2px;background:#fff;border:2px solid var(--borde);border-left:6px solid var(--rojo);padding:20px 22px;text-decoration:none;transition:border-color .15s,background .15s}
.canal:hover{border-color:var(--rojo);background:#FAFAFA}
.canal span{font:600 .85rem var(--f-texto);color:var(--texto-suave)}
.canal strong{font:800 clamp(1.4rem,2.6vw,1.9rem) var(--f-titulo)}
.canal em{font-style:normal;font-size:.9rem;color:var(--texto-suave);overflow-wrap:anywhere}
.canal--wa{border-left-color:var(--whatsapp)}.canal--wa:hover{border-color:var(--whatsapp)}
.canales__h{margin:20px 0 0;color:var(--texto-suave)}
.movil-bar{display:none}
@media (max-width:1000px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){
 .svc-grid,.canales__grid{grid-template-columns:1fr}
 .dest__slide{grid-template-columns:1fr}.dest__ic{display:none}
 .acciones__pnl{padding:20px 18px 22px}
 .movil-bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--asfalto);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -4px 16px rgba(0,0,0,.25)}
 .movil-bar a{color:#fff;text-align:center;text-decoration:none;font:700 .95rem var(--f-titulo);padding:15px 4px}
 .movil-bar a.wa{background:var(--whatsapp)}
 .wa-flotante{display:none}
 body{padding-bottom:54px}
}
@media (prefers-reduced-motion:reduce){.dest__track{transition:none}.svc,.canal{transition:none}}

/* ===== Segunda ronda ===== */
.nav .sub-btn{background:none;border:0;font:600 .95rem var(--f-texto);padding:.7em .8em;cursor:pointer;border-radius:var(--radio);display:flex;align-items:center;gap:.35em;color:inherit}
.nav .sub-btn::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.nav .sub-btn:hover{background:var(--niebla)}
.nav li.has-sub.open>.sub-btn::after,.nav li.has-sub:hover>.sub-btn::after{transform:rotate(225deg)}
.nav li.has-sub>.sub-menu{display:none;position:absolute;top:100%;left:0;min-width:240px;flex-direction:column;background:#fff;border:1px solid var(--borde);border-top:3px solid var(--rojo);box-shadow:0 6px 14px rgba(0,0,0,.12);padding:8px;z-index:60}
.nav li.has-sub:hover>.sub-menu,.nav li.has-sub.open>.sub-menu,.nav li.has-sub:focus-within>.sub-menu{display:flex}
.nav .sub-menu a{padding:.65em .8em}
.nav .mega{min-width:340px}.nav .mega a b{display:block;font:700 .98rem var(--f-titulo)}.nav .mega a span{display:block;font-weight:400;font-size:.85rem;color:var(--texto-suave)}
.buscar-btn{background:none;border:2px solid var(--borde);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;cursor:pointer;flex:none}
.buscar-btn:hover{border-color:var(--rojo)}.buscar-btn svg{width:20px;height:20px;fill:none;stroke:var(--asfalto);stroke-width:2;stroke-linecap:round}
.buscar{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.6);display:grid;place-items:start center;padding:12vh 16px 0}
.buscar[hidden]{display:none}
.buscar__caja{background:#fff;width:min(640px,100%);border-radius:var(--radio);padding:18px;box-shadow:0 8px 20px rgba(0,0,0,.3)}
.buscar__caja input{width:100%;font:500 1.15rem var(--f-texto);padding:.8em 1em;border:2px solid var(--asfalto);border-radius:var(--radio)}
#buscar-res{list-style:none;margin:10px 0 0;padding:0;max-height:50vh;overflow:auto}
#buscar-res a{display:block;padding:.7em .8em;text-decoration:none;border-radius:var(--radio)}
#buscar-res a:hover,#buscar-res a:focus{background:var(--niebla);outline:none}
#buscar-res b{display:block;font-family:var(--f-titulo)}#buscar-res span{font-size:.88rem;color:var(--texto-suave)}
.buscar__x{margin-top:8px;background:none;border:0;color:var(--texto-suave);cursor:pointer;font:600 .85rem var(--f-texto)}
.svc-grid.light{grid-template-columns:repeat(3,1fr)}
.svc-grid.light .svc{background:#fff;border:1px solid var(--borde)}
.svc-grid.light .svc svg{stroke:var(--rojo)}.svc-grid.light .svc h3{color:var(--asfalto)}.svc-grid.light .svc p{color:var(--texto-suave)}
.svc-grid.light .svc a{color:var(--asfalto)}.svc-grid.light .svc:hover{background:#fff;border-color:var(--rojo)}
.asesor{background:var(--rojo);color:#fff}.asesor .wrap{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:44px}
.asesor h2{margin:0;max-width:24ch}.asesor .btn--linea{background:#fff;color:var(--rojo)}
.faq-wrap{max-width:860px}.faq-tools input{width:100%;font:500 1.05rem var(--f-texto);padding:.9em 1em;border:2px solid var(--borde);border-radius:var(--radio)}
.faq-tools input:focus{border-color:var(--asfalto);outline:3px solid rgba(178,24,31,.25)}
.faq-cats{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 26px}
.faq-cats button{font:700 .88rem var(--f-titulo);padding:.55em 1em;border:2px solid var(--borde);border-radius:99px;background:#fff;cursor:pointer}
.faq-cats button.on{background:var(--asfalto);border-color:var(--asfalto);color:#fff}
.faq-grupo h2{font-size:1.4rem;margin:28px 0 10px}
.faq-item{border-bottom:1px solid var(--borde)}
.faq-item button{width:100%;text-align:left;background:none;border:0;padding:1em 2.2em 1em 0;font:700 1.05rem var(--f-titulo);cursor:pointer;position:relative}
.faq-item button::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--rojo);transition:transform .2s}
.faq-item.on button::after{transform:translateY(-50%) rotate(45deg)}
.faq-item .r{display:none;padding:0 0 1.1em;color:var(--texto-suave)}.faq-item.on .r{display:block}
.faq-item .r p{margin:0 0 .6em}
.ficha{border:1px solid var(--borde);padding:26px}
.lista-canales{list-style:none;margin:0 0 20px;padding:0}.lista-canales li{padding:.6em 0;border-bottom:1px solid var(--borde)}
.mapa-sitio{columns:3 240px;column-gap:40px}.mapa-sitio div{break-inside:avoid;margin-bottom:28px}.mapa-sitio h2{font-size:1.2rem;border-bottom:3px solid var(--rojo);padding-bottom:.3em}.mapa-sitio ul{list-style:none;margin:0;padding:0}.mapa-sitio li{padding:.25em 0}
.foot4{grid-template-columns:1.5fr 1fr 1fr 1fr!important}
.canales__tip{margin:10px 0 0;font-size:.9rem;color:var(--texto-suave)}
@media (max-width:1280px){
 .nav .sub-btn{width:100%;justify-content:space-between}
 .nav li.has-sub>.sub-menu{position:static;display:none;box-shadow:none;border:0;border-left:3px solid var(--rojo);margin:0 0 6px 8px;min-width:0}
 .nav li.has-sub.open>.sub-menu{display:flex}.nav li.has-sub:hover>.sub-menu{display:none}.nav li.has-sub.open:hover>.sub-menu{display:flex}
 .nav li.has-sub:focus-within>.sub-menu{display:none}.nav li.has-sub.open:focus-within>.sub-menu{display:flex}
 .buscar-btn{margin-left:auto;margin-right:8px}
}
@media (max-width:920px){
 .foot4{grid-template-columns:1fr 1fr!important}.svc-grid.light{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){.foot4{grid-template-columns:1fr!important}.svc-grid.light{grid-template-columns:1fr}}

/* El atributo hidden debe ganar sobre los display del diseño */
.faq-item[hidden],.faq-grupo[hidden],.acciones__pnl[hidden],.buscar[hidden],.ms-reset[hidden]{display:none!important}

/* ---------- Nuestra red, Novedades, redes sociales ---------- */
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips a{display:inline-block;padding:.6em 1.1em;border:2px solid var(--borde);border-radius:99px;font:700 .95rem var(--f-titulo);text-decoration:none;color:var(--asfalto);background:#fff;transition:border-color .15s,color .15s}
.chips a:hover{border-color:var(--rojo);color:var(--rojo)}
.novedades{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.novedad{background:#fff;border:1px solid var(--borde);padding:20px;display:flex;flex-direction:column;gap:6px}
.novedad img{width:100%;height:auto;margin-bottom:8px}
.novedad__f{font:600 .85rem var(--f-texto);color:var(--texto-suave)}
.novedad h2{font-size:1.25rem;margin:0}.novedad h2 a{text-decoration:none}.novedad h2 a:hover{color:var(--rojo)}
.novedad p{margin:0;color:var(--texto-suave)}
.novedad__m{font:700 .95rem var(--f-titulo);color:var(--asfalto);text-decoration:none;border-bottom:2px solid var(--rojo-vivo);align-self:flex-start;margin-top:auto}
.redes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 18px}
.redes a{font:700 .9rem var(--f-titulo);color:#fff;text-decoration:none;border-bottom:2px solid var(--rojo-vivo)}
.header-cta ~ .ingresar,.ingresar{color:var(--asfalto)}
@media (max-width:900px){.novedades{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.novedades{grid-template-columns:1fr}.ingresar{display:none}}


/* =====================================================================
   Ajustes responsive (celular, tableta y escritorio) y accesibilidad táctil
   ===================================================================== */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 96px; } /* los enlaces #ancla no quedan tapados por el encabezado fijo */
body { overflow-wrap: break-word; }
h1, h2, h3, h4 { overflow-wrap: break-word; hyphens: manual; }
.site-footer a, .lista-canales a, .topbar a { overflow-wrap: anywhere; }

/* Contenido de páginas (incluye el de Elementor y de las páginas legales): nada se sale de la pantalla */
.contenido img, .contenido video, .contenido iframe, .contenido embed, .contenido object { max-width: 100%; }
.contenido iframe { border: 0; }
.contenido table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border-collapse: collapse; }
.contenido th, .contenido td { padding: .55em .8em; border: 1px solid var(--borde); text-align: left; vertical-align: top; }
.contenido pre { max-width: 100%; overflow-x: auto; }
.contenido .wrap > table, .contenido .wrap > .wp-block-table { max-width: 100%; }

/* Botones e interacciones: tamaño táctil cómodo (mínimo ~44 px) */
.nav-toggle { min-height: 44px; min-width: 44px; }
.buscar-btn { width: 44px; height: 44px; }
.dest__nav { width: 44px; height: 44px; }
.dest__dots button { position: relative; }
.dest__dots button::after { content: ""; position: absolute; inset: -16px -8px; } /* área de toque ampliada, sin cambiar el aspecto */
.faq-cats button { min-height: 44px; }
.faq-item button { min-height: 48px; }
.btn { min-height: 44px; line-height: 1.2; text-align: center; }

@media (max-width: 1280px) {
  /* El menú desplegado cabe en pantallas bajas y se puede desplazar */
  .nav { max-height: calc(100vh - 76px); max-height: calc(100dvh - 76px); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
  .nav a, .nav .sub-btn { min-height: 44px; display: flex; align-items: center; }
  .nav .mega a { display: block; }
}

@media (max-width: 720px) {
  /* Barra inferior fija: respeta la zona segura de iPhone y no tapa el final de la página */
  body { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
  .movil-bar a { min-height: 48px; display: grid; place-items: center; padding: 8px 4px; }
  .hero__acciones .btn { flex: 1 1 100%; }
  .cierre .btn, .asesor .btn { width: 100%; }
  .site-footer li { margin-bottom: 0; }
  .site-footer li a, .site-footer .legal a { display: inline-block; padding: .55em 0; }
  .site-footer .legal a { margin-right: 14px; }
  .topbar .wrap { justify-content: center; text-align: center; }
  .ms-acc .btn { flex: 1 1 100%; }
  .section__head { margin-bottom: 28px; }
  .page-head { padding-block: 36px; }
  .contenido { padding-block: 36px; }
}

@media (max-width: 400px) {
  .wrap { width: min(100% - 28px, var(--ancho)); }
  .acciones__tabs button { font-size: .84rem; padding: 12px 2px; }
  .acciones__tabs button svg { width: 20px; height: 20px; }
  .acciones__pnl { padding: 18px 14px 20px; }
  .btn { padding: .9em 1em; }
  .canal strong { font-size: 1.35rem; }
  .brand { font-size: 1rem; }
}

/* Pantallas bajas en horizontal (celular acostado) */
@media (max-height: 480px) and (orientation: landscape) {
  .site-header { position: static; }
  .buscar { padding-top: 4vh; }
  #buscar-res { max-height: 40vh; }
}

/* Pantallas muy grandes: el contenido no se estira de más */
@media (min-width: 1600px) { body { font-size: 18px; } }

@media print {
  .topbar, .site-header, .movil-bar, .wa-flotante, .buscar, .canales, .nav-toggle { display: none !important; }
  body { padding-bottom: 0; }
}

/* ---------- Logo e imágenes ---------- */
.brand .logo-img, .brand img { max-height: 66px; width: auto; height: auto; display: block; }
.galeria { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 210px; gap: 14px; margin-top: 48px; }
.galeria figure { margin: 0; position: relative; overflow: hidden; border-radius: var(--radio); background: var(--niebla); }
.galeria img { width: 100%; height: 100%; object-fit: cover; display: block; }
.galeria__grande { grid-column: span 2; grid-row: span 2; }
.galeria figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 16px 12px; color: #fff; font: 600 .95rem var(--f-titulo); background: linear-gradient(transparent, rgba(0,0,0,.7)); }
.dos-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.dos-fotos figure, .foto-ancha { margin: 0; }
.dos-fotos img, .foto-ancha img { width: 100%; height: auto; display: block; border-radius: var(--radio); }
.dos-fotos figcaption { margin-top: 10px; color: var(--texto-suave); font-size: .95rem; }
.foto-ancha { margin-top: 36px; max-width: none; }
.contenido .wrap > .foto-ancha, .texto-largo > .foto-ancha { max-width: none; }
@media (max-width: 760px) {
  .galeria { grid-template-columns: 1fr; grid-auto-rows: 200px; }
  .galeria__grande { grid-column: auto; grid-row: span 1; }
  .dos-fotos { grid-template-columns: 1fr; }
}

/* ---------- Casilla de autorización de datos ---------- */
.campo--check { margin: 4px 0 16px; }
.campo .check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .85rem; line-height: 1.4; margin: 0; cursor: pointer; color: var(--texto-suave); }
.campo .check input { width: 20px; height: 20px; padding: 0; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--rojo); }
.campo .check a { color: var(--rojo); text-decoration: underline; }

/* ---------- Páginas de sede, enlaces a sedes y avisos de formularios ---------- */
.ms-mas { margin: 12px 0 0; font-size: .92rem; }
.ms-mas a { color: var(--rojo); font-weight: 600; }
.foot-sedes { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.15); padding-top: 20px; }
.foot-sedes h3 { margin: 0 0 .6em; }
.foot-sedes ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.foot-sedes a { display: inline-block; padding: .3em 0; }
.contenido-sede { margin-bottom: 1.5em; }
.ficha .ms-acc { margin-top: 6px; }

/* ---------- Accesibilidad: foco visible también sobre fondos rojos y negros ---------- */
.hero :focus-visible, .cierre :focus-visible, .page-head :focus-visible, .section--oscura :focus-visible,
.site-footer :focus-visible, .destacados :focus-visible, .topbar :focus-visible { outline-color: #fff; }

/* ---------- Preguntas de la sede, foto de sede y bloque de confianza ---------- */
.faq-sede { max-width: 820px; }
.faq-sede details { border-bottom: 1px solid var(--borde); padding: .9em 0; }
.faq-sede summary { cursor: pointer; font: 700 1.05rem var(--f-titulo); }
.faq-sede p { margin: .6em 0 0; color: var(--texto-suave); }
.foto-sede { margin: 0 0 1.4em; } .foto-sede img { width: 100%; height: auto; display: block; border-radius: var(--radio); }
.confianza__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.confianza__lista li { border-left: 4px solid var(--rojo); padding: .3em 0 .3em 14px; }
.confianza__lista strong { display: block; font-family: var(--f-titulo); } .confianza__lista span { color: var(--texto-suave); }

/* ---------- Aviso de cookies (solo si se configuró Google Analytics) ---------- */
.cookies { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60; max-width: 720px; margin: 0 auto; background: var(--asfalto); color: #fff;
  padding: 16px 18px; border-top: 4px solid var(--rojo); border-radius: var(--radio); box-shadow: 0 8px 30px rgba(0,0,0,.35); font-size: .92rem; line-height: 1.45; }
.cookies p { margin: 0 0 12px; } .cookies a { color: #fff; text-decoration: underline; }
.cookies__b { display: flex; gap: 10px; flex-wrap: wrap; }
.cookies__b button { font: 700 .92rem var(--f-titulo); padding: .7em 1.2em; border-radius: var(--radio); cursor: pointer; border: 2px solid #fff; background: transparent; color: #fff; }
.cookies__b button.si { background: var(--rojo); border-color: var(--rojo); }
.cookies-abrir { background: none; border: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; padding: 0; }
@media (max-width: 760px) { .cookies { bottom: 70px; } }

/* ---------- v2.4.1: aviso de ruta y aplicación para clientes ---------- */
.aviso-op { background: var(--rojo); color: #fff; font-size: .95rem; }
.aviso-op .wrap { padding-block: 10px; }
.aviso-op strong { margin-right: .4em; }
.apps-foot { grid-column: 1/-1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.apps-foot strong { font: 700 .9rem var(--f-titulo); color: #fff; }
.apps-foot a { font: 700 .9rem var(--f-titulo); color: #fff; text-decoration: none; border-bottom: 2px solid var(--rojo-vivo); }

/* ---------- v2.4.2: preguntas frecuentes en portada y enlaces cruzados ---------- */
.faq-home { max-width: 860px; }
.faq-home details { border-bottom: 1px solid var(--borde); }
.faq-home summary { cursor: pointer; font: 700 1.05rem var(--f-titulo); padding: 1em 2.2em 1em 0; position: relative; list-style: none; }
.faq-home summary::-webkit-details-marker { display: none; }
.faq-home summary::after { content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--rojo); transition: transform .2s; }
.faq-home details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq-home details p { margin: 0 0 1.1em; color: var(--texto-suave); }
.otras { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.otras a { display: block; height: 100%; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); padding: 18px; text-decoration: none; color: var(--asfalto); }
.otras a:hover { border-color: var(--rojo); }
.otras strong { display: block; font: 700 1.05rem var(--f-titulo); margin-bottom: 6px; }
.otras span { color: var(--texto-suave); font-size: .95rem; }

/* ---------- v2.5.0: mejoras visuales ---------- */
.hero__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; }
.hero__chips li { font: 700 .85rem var(--f-titulo); color: #fff; border: 1px solid rgba(255,255,255,.55); border-radius: 99px; padding: .35em .9em; background: rgba(0,0,0,.25); }
.cifras { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-width: 520px; }
.cifras li { background: var(--niebla); border-left: 4px solid var(--rojo); padding: 16px 18px; }
.cifras b { display: block; font: 800 clamp(1.8rem, 3.6vw, 2.6rem)/1.05 var(--f-titulo); color: var(--rojo); }
.cifras span { display: block; margin-top: 4px; font-size: .95rem; color: var(--texto-suave); }
.app-banda__in { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.app-banda__bt { display: flex; flex-wrap: wrap; gap: 10px; }
.app-banda__tel { width: 150px; height: 270px; border: 4px solid #fff; border-radius: 26px; padding: 22px 14px; display: flex; flex-direction: column; gap: 12px; background: #2B2B2B; }
.app-banda__tel span { height: 14px; width: 60%; background: var(--rojo); border-radius: 3px; }
.app-banda__tel i { height: 38px; background: rgba(255,255,255,.14); border-radius: 4px; }
@media (max-width: 760px) { .app-banda__in { grid-template-columns: 1fr; } .app-banda__tel { display: none; } }
.novedad__c { align-self: flex-start; font: 700 .75rem var(--f-titulo); letter-spacing: .04em; text-transform: uppercase; color: #fff; background: var(--rojo); padding: .25em .7em; border-radius: 99px; }
.novedad h3 { font-size: 1.2rem; margin: 0; } .novedad h3 a { text-decoration: none; } .novedad h3 a:hover { color: var(--rojo); }
@media (prefers-reduced-motion: no-preference) {
  .svc, .modulo, .otras a, .novedad, .cifras li { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
  .svc:hover, .modulo:hover, .otras a:hover, .novedad:hover, .cifras li:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
}

/* ---------- v2.6.0: flota con medidas, cifras, clientes y socios ---------- */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cifras.cifras--fila { max-width: none; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.section--niebla .cifras li { background: #fff; }
@media (max-width: 900px) { .cifras.cifras--fila { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.valores-lista { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 10px; max-width: 68ch; }
.valores-lista li { padding-left: 1.3em; position: relative; }
.valores-lista li::before { content: ""; position: absolute; left: 0; top: .62em; width: .6em; height: .6em; background: var(--rojo); }
.nombres__t { font-size: 1.15rem; margin: 28px 0 12px; }
.nombres { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.nombres li { padding: .55em 1.05em; border: 2px solid var(--borde); border-radius: 99px; background: #fff; color: var(--asfalto); font: 700 .95rem var(--f-titulo); }
.section--oscura .nombres li { background: transparent; color: #fff; border-color: #5A5A5A; }
.tabla-flota { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tabla-flota table { width: 100%; border-collapse: collapse; background: #fff; min-width: 640px; }
.tabla-flota th, .tabla-flota td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--borde); white-space: nowrap; }
.tabla-flota thead th { background: var(--asfalto); color: #fff; font: 700 .9rem var(--f-titulo); }
.tabla-flota tbody th { font: 800 1.1rem var(--f-titulo); color: var(--rojo); }
.tabla-flota__a a { font-weight: 700; color: var(--asfalto); }
.tabla-flota__a a:hover { color: var(--rojo); }
.tabla-flota__nota { margin-top: 14px; color: var(--texto-suave); font-size: .95rem; }
@media (max-width: 700px) {
  .tabla-flota table { min-width: 0; }
  .tabla-flota thead { display: none; }
  .tabla-flota tr { display: block; border: 1px solid var(--borde); margin-bottom: 14px; }
  .tabla-flota tbody th { display: block; background: var(--niebla); border-bottom: 1px solid var(--borde); }
  .tabla-flota td { display: flex; justify-content: space-between; gap: 12px; padding: 10px 16px; }
  .tabla-flota td[data-th]::before { content: attr(data-th); color: var(--texto-suave); font-weight: 600; }
  .tabla-flota__a { justify-content: flex-end; }
}

/* ---------- v2.6.0: fotografías (marcos proporcionales, enfoque en la gente y ampliación) ---------- */
.galeria { grid-auto-rows: auto; gap: 16px; }
.galeria figure { position: relative; aspect-ratio: 4 / 3; border-radius: 4px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.galeria .galeria__grande { aspect-ratio: auto; min-height: 320px; }
.galeria img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.galeria figcaption { padding: 40px 18px 14px; }
.dos-fotos { gap: 28px; align-items: start; }
.dos-fotos figure { position: relative; }
.dos-fotos img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; border-radius: 4px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.dos-fotos figcaption { margin-top: 12px; font-weight: 600; color: var(--asfalto); }
.foto-ancha img { aspect-ratio: 21 / 8; height: auto; object-fit: cover; border-radius: 4px; }
.foto-sede img { aspect-ratio: 16 / 9; height: auto; object-fit: cover; border-radius: 4px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
@media (max-width: 760px) {
  .galeria .galeria__grande { min-height: 0; aspect-ratio: 4 / 3; }
  .foto-ancha img { aspect-ratio: 16 / 9; }
}
/* Fotos que se pueden ampliar */
.zoomable { cursor: zoom-in; }
.zoomable:focus-visible { outline: 3px solid var(--rojo); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
  .galeria img, .dos-fotos img { transition: transform .35s ease; }
  .galeria figure:hover img, .dos-fotos figure:hover img { transform: scale(1.03); }
  .dos-fotos figure { overflow: hidden; }
}
.visor { position: fixed; inset: 0; z-index: 1000; background: rgba(0,0,0,.92); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 56px 16px 24px; }
.visor[hidden] { display: none; }
.visor__img { max-width: min(1200px, 100%); max-height: 78vh; width: auto; height: auto; object-fit: contain; border-radius: 2px; }
.visor__pie { color: #fff; margin: 14px 0 0; font: 600 1rem var(--f-titulo); text-align: center; max-width: 70ch; }
.visor__btn { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 48px; height: 48px; border-radius: 50%; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.visor__btn:hover, .visor__btn:focus-visible { background: var(--rojo); outline: none; }
.visor__x { top: 12px; right: 12px; }
.visor__ant { left: 12px; top: 50%; transform: translateY(-50%); }
.visor__sig { right: 12px; top: 50%; transform: translateY(-50%); }
.visor--uno .visor__ant, .visor--uno .visor__sig { display: none; }
@media (max-width: 600px) { .visor__ant, .visor__sig { top: auto; bottom: 16px; transform: none; } .visor__pie { margin-bottom: 56px; } }

/* ---------- v2.6.0: pie de página rediseñado ---------- */
.site-footer { padding-block: 0; font-size: .95rem; line-height: 1.55; }
.site-footer .pie-in { width: min(100% - 40px, var(--ancho)); margin-inline: auto; display: block; }
.site-footer .pie-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; padding-block: 56px 40px; }
.pie-logo { display: inline-block; background: #fff; padding: 10px 16px; border-radius: 4px; margin-bottom: 18px; }
.pie-logo img { display: block; width: 150px; height: auto; }
.pie-marca p { margin: 0 0 18px; max-width: 38ch; }
.pie-contacto { display: grid; gap: 12px; }
.site-footer .pie-contacto li { margin: 0; }
.pie-contacto span { display: block; font: 700 .75rem var(--f-titulo); letter-spacing: .08em; text-transform: uppercase; color: #8F8F8F; }
.pie-contacto a { color: #fff; font-weight: 600; }
.pie-col h3, .pie-sedes h3 { position: relative; color: #fff; font-size: 1.05rem; margin: 0 0 18px; padding-bottom: 12px; }
.pie-col h3::after, .pie-sedes h3::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px; background: var(--rojo-vivo); }
.site-footer .pie-col li { margin: 0 0 4px; }
.site-footer .pie-col a { display: inline-block; padding: .25em 0; color: #BDBDBD; }
.site-footer .pie-col a:hover, .pie-contacto a:hover, .pie-sedes a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .pie-medio { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 40px; padding-block: 22px; border-top: 1px solid rgba(255,255,255,.14); }
.pie-apps, .pie-redes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pie-apps strong, .pie-redes strong { color: #fff; font: 700 .9rem var(--f-titulo); margin-right: 4px; }
.site-footer .pie-apps a, .site-footer .pie-redes a { color: #fff; font: 700 .85rem var(--f-titulo); border: 1.5px solid rgba(255,255,255,.35); border-radius: 99px; padding: .45em 1.1em; transition: background .15s, border-color .15s; }
.site-footer .pie-apps a:hover, .site-footer .pie-redes a:hover { background: var(--rojo-vivo); border-color: var(--rojo-vivo); color: #fff; }
.site-footer .pie-sedes { padding-block: 24px 30px; border-top: 1px solid rgba(255,255,255,.14); }
.site-footer .pie-sedes h3 { margin-bottom: 16px; }
.site-footer .pie-sedes ul { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.site-footer .pie-sedes li { margin: 0; }
.site-footer .pie-sedes a { display: inline-block; padding: .4em 1em; background: rgba(255,255,255,.07); border-radius: 99px; color: #D6D6D6; font-size: .9rem; }
.site-footer .pie-sedes a:hover { background: rgba(255,255,255,.14); }
.pie-legal { background: #111; }
.site-footer .pie-legal .legal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; padding-block: 18px; margin: 0; border: 0; font-size: .85rem; color: #9A9A9A; grid-column: auto; }
.site-footer .pie-legal .legal span { margin-right: auto; }
.site-footer .pie-legal .legal a { margin: 0; color: #BDBDBD; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .pie-legal .legal a:hover { color: #fff; }
@media (max-width: 960px) { .site-footer .pie-top { grid-template-columns: 1fr 1fr; gap: 36px 32px; } .pie-marca { grid-column: 1 / -1; } .pie-marca p { max-width: 60ch; } }
@media (max-width: 560px) {
  .site-footer .pie-top { grid-template-columns: 1fr; padding-block: 40px 24px; }
  .site-footer .pie-legal .legal span { margin-right: 0; flex-basis: 100%; }
}

/* ---------- Revisión de legibilidad y responsive ---------- */
/* Menú: ninguna opción parte su texto en dos líneas */
.nav ul { flex-wrap: nowrap; }
@media (min-width: 1281px) and (max-width: 1400px) { .nav a, .nav .sub-btn { padding-inline: .6em; font-size: .94rem; } .site-header .wrap { gap: 14px; } }
/* Mapa de sedes: el SVG mide 640 de ancho y se reduce en celulares; se agranda el texto para que siga legible */
@media (max-width: 600px) {
    .ms-pin:not(.on) .ms-lbl { display: none; }
  .ms-pin .ms-n { font-size: 17px; }
  .ms-ciudad text { display: none; }
  .ms-nota { position: static; display: block; padding: 8px 10px; }
}
/* Nada debe desbordar horizontalmente */
html, body { max-width: 100%; overflow-x: clip; }
img, svg, video, iframe { max-width: 100%; }

/* ---------- Dónde operamos: cada bloque se distingue del otro ---------- */
.cobertura-grid { gap: 32px; align-items: stretch; }
.cobertura-grid > div { background: var(--blanco); border: 1px solid var(--borde); border-top: 6px solid var(--rojo); padding: 28px 28px 32px; }
.cobertura-grid > div:nth-child(2) { background: var(--asfalto); border-color: var(--asfalto); border-top-color: var(--rojo); color: #fff; }
.cobertura-grid > div:nth-child(2) h3, .cobertura-grid > div:nth-child(2) li { color: #fff; }
.cobertura-grid > div:nth-child(2) p { color: #D6D6D6 !important; }
.cobertura-grid h3 { margin-top: 0; padding-bottom: .5em; border-bottom: 1px solid currentColor; }
.cobertura-grid > div:first-child h3 { border-bottom-color: var(--borde); }
.cobertura-grid > div:nth-child(2) h3 { border-bottom-color: rgba(255,255,255,.3); }
.mapa-sedes { margin-top: 64px; padding-top: 40px; border-top: 2px solid var(--borde); }
@media (max-width: 820px) { .cobertura-grid > div { padding: 22px 20px 26px; } .mapa-sedes { margin-top: 44px; padding-top: 28px; } }

/* ---------- Banda de la app (celulares con pantallas reales) ---------- */
.app-promo { background: var(--rojo); color: #fff; margin-block: clamp(90px, 12vw, 150px) 0; position: relative; }
.app-promo__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; align-items: center; padding-block: clamp(44px, 6vw, 72px); }
.app-promo__raya { display: block; width: 72px; height: 4px; background: #fff; margin-bottom: 22px; }
.app-promo h2 { color: #fff; font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.15; max-width: 18ch; margin: 0 0 .5em; }
.app-promo p { color: #fff; max-width: 46ch; margin: 0 0 1.6em; }
.app-promo__bt { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.app-promo__bt a { display: flex; align-items: center; gap: 10px; background: #000; color: #fff; border: 1px solid rgba(255,255,255,.6); border-radius: 10px; padding: 9px 18px 9px 14px; min-height: 52px; text-decoration: none; font: 700 1.05rem/1.1 var(--f-titulo); }
.app-promo__bt a:hover { background: #222; }
.app-promo__bt svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; flex: none; }
.app-promo__bt small { display: block; font: 500 .72rem var(--f-texto); opacity: .9; }
.app-promo__tels { display: flex; justify-content: center; align-items: flex-end; gap: clamp(10px, 2vw, 22px); margin-block: calc(-1 * clamp(70px, 9vw, 120px)) calc(-1 * clamp(24px, 4vw, 48px)); }
.app-promo .tel { width: clamp(100px, 17vw, 200px); height: auto; border: 5px solid #111; border-radius: 26px; background: #000; box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.app-promo .t2 { margin-bottom: clamp(30px, 5vw, 60px); }
@media (max-width: 760px) {
  .app-promo { margin-top: 56px; }
  .app-promo__in { grid-template-columns: 1fr; gap: 28px; padding-bottom: 0; }
  .app-promo__tels { margin-block: 0; overflow: hidden; padding-top: 8px; }
  .app-promo .tel { width: 30%; border-width: 4px; border-radius: 18px; margin-bottom: -40px; }
  .app-promo .t2 { margin-bottom: -10px; }
  .app-promo__bt a { flex: 1 1 100%; }
}

/* ---------- Mapa de sedes: diseño ---------- */
.mapa-sedes__mapa svg { background: #E4ECF1; }
.ms-mar { fill: #E4ECF1; }
.ms-tierra { fill: url(#ms-tierra-g); stroke: #B7C4CC; stroke-width: 1.5; }
.ms-agua { font: italic 500 15px var(--f-texto); fill: #6E8796; letter-spacing: .12em; }
.ms-pais { font: 800 17px var(--f-titulo); fill: #C3CED5; letter-spacing: .35em; }
.ms-ruta { fill: none; stroke: var(--rojo); stroke-width: 2; stroke-dasharray: 2 8; stroke-linecap: round; opacity: .45; }
.ms-pin .punto { stroke-width: 3.5; }
.ms-pin .ms-n { font: 800 14px var(--f-titulo); fill: #fff; stroke: none; pointer-events: none; }
.ms-pin .ms-lbl rect { fill: #fff; stroke: #CBD5DB; stroke-width: 1; filter: drop-shadow(0 1px 2px rgba(0,0,0,.15)); }
.ms-pin .ms-lbl text { font-family: var(--f-titulo); font-weight: 800; fill: var(--asfalto); paint-order: normal; stroke: none; }
.ms-lider { stroke: #7C8A93; stroke-width: 1.5; }
.ms-pin:hover .ms-lbl rect, .ms-pin:focus-visible .ms-lbl rect { stroke: var(--rojo); }
.ms-pin.on .ms-lbl rect { fill: var(--asfalto); stroke: var(--asfalto); }
.ms-pin.on .ms-lbl text { fill: #fff; }
.ms-num { display: inline-grid; place-items: center; width: 1.45em; height: 1.45em; margin-right: .5em; border-radius: 50%; background: var(--rojo); color: #fff; font: 800 .6em var(--f-titulo); vertical-align: .2em; }
.ms-sede.on .ms-num { background: var(--asfalto); }
@media (max-width: 600px) { .ms-pin .ms-n { font-size: 17px; } }

/* ---------- Novedades ---------- */
.page-head__sub { margin: .6em 0 0; max-width: 62ch; font-size: 1.1rem; }
.nov-cats { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.nov-cats a { display: inline-block; padding: .4em 1em; border: 1px solid var(--borde); border-radius: 99px; text-decoration: none; font: 700 .9rem var(--f-titulo); background: #fff; }
.nov-cats a:hover { border-color: var(--rojo); color: var(--rojo); }
.nov-proy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.nov-proy article { background: #fff; border: 1px solid var(--borde); border-top: 5px solid var(--rojo); padding: 24px; }
.nov-proy svg { width: 36px; height: 36px; fill: none; stroke: var(--rojo); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nov-proy h3 { margin: .6em 0 .3em; font-size: 1.2rem; }
.nov-proy p { margin: 0; color: var(--texto-suave); }
@media (max-width: 820px) { .nov-proy { grid-template-columns: 1fr; } }

/* ---------- Cuadro de diálogo de resultado de formularios ---------- */
.aviso--alerta { background: #FFF6E5; border-color: #E0A030; border-left-width: 5px; }
.rg-bloqueo { overflow: hidden; }
.rg-dialogo { --rg-c: var(--rojo); border: 0; padding: 0; width: min(440px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow: auto; border-radius: 14px; background: #fff; color: var(--texto); box-shadow: 0 24px 60px rgba(0,0,0,.35); border-top: 6px solid var(--rg-c); animation: rg-entra .18s ease-out; }
.rg-dialogo::backdrop { background: rgba(0,0,0,.6); }
.rg-dialogo--ok { --rg-c: var(--whatsapp); }
.rg-dialogo--mal { --rg-c: var(--rojo); }
.rg-dialogo--alerta { --rg-c: #B45309; }
.rg-dialogo__in { padding: 26px 26px 24px; text-align: center; }
.rg-dialogo__ic { width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--rg-c) 12%, #fff); color: var(--rg-c); }
.rg-dialogo__ic svg { width: 36px; height: 36px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rg-dialogo h2 { margin: 0 0 .4em; font-size: 1.4rem; line-height: 1.2; }
.rg-dialogo p { margin: 0; color: var(--texto-suave); overflow-wrap: anywhere; }
.rg-dialogo ul { margin: 14px 0 0; padding: 12px 14px 12px 32px; text-align: left; background: #FFF6E5; border-radius: 8px; font-size: .95rem; }
.rg-dialogo ul li { margin: .2em 0; }
.rg-dialogo__acc { display: flex; flex-direction: column; gap: 10px; margin-top: 22px; }
.rg-dialogo__acc .btn { width: 100%; }
.rg-dialogo__acc .btn--borde { color: var(--asfalto); }
@keyframes rg-entra { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rg-dialogo { animation: none; } }
@media (max-width: 480px) { .rg-dialogo__in { padding: 22px 18px 20px; } }

/* ---------- Solicitar recogida ---------- */
.rec-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.rec-bloque { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
.rec-bloque legend { display: flex; align-items: center; gap: 10px; font: 800 1.1rem var(--f-titulo); margin-bottom: 12px; padding: 0; }
.rec-bloque legend span { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--rojo); color: #fff; font-size: .9rem; }
.rec-lado { display: grid; gap: 18px; position: sticky; top: 96px; }
.rec-tarjeta { background: #fff; border: 1px solid var(--borde); border-top: 5px solid var(--rojo); padding: 22px 24px; }
.rec-tarjeta h2 { font-size: 1.25rem; margin: 0 0 .6em; }
.rec-tarjeta p { margin: .4em 0; }
.rec-tarjeta--osc { background: var(--asfalto); border-color: var(--asfalto); border-top-color: var(--rojo); color: #fff; }
.rec-tarjeta--osc h2, .rec-tarjeta--osc a { color: #fff; }
.rec-pasos { list-style: none; counter-reset: p; margin: 0; padding: 0; display: grid; gap: 14px; }
.rec-pasos li { counter-increment: p; position: relative; padding-left: 44px; }
.rec-pasos li::before { content: counter(p); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--rojo); color: #fff; display: grid; place-items: center; font: 800 1rem var(--f-titulo); }
.rec-pasos b { display: block; font-family: var(--f-titulo); }
.rec-pasos span { color: var(--texto-suave); font-size: .95rem; }
.rec-lista { margin: 0; padding-left: 1.2em; } .rec-lista li { margin: .3em 0; }
.rec-faq { background: #fff; border: 1px solid var(--borde); margin-bottom: 10px; padding: 0 18px; }
.rec-faq summary { cursor: pointer; font: 700 1.05rem var(--f-titulo); padding: 16px 0; min-height: 48px; }
.rec-faq p { margin: 0 0 16px; color: var(--texto-suave); }
@media (max-width: 900px) { .rec-grid { grid-template-columns: 1fr; } .rec-lado { position: static; } }

/* ---------- Quiénes somos: índice de la página y trayectoria (2.6.2) ---------- */
.subnav { background: var(--niebla); border-bottom: 1px solid var(--borde); }
.subnav ul { list-style: none; margin: 0; padding: 14px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.subnav a { display: inline-block; padding: .4em 1em; border: 1px solid var(--borde); border-radius: 99px; background: #fff; text-decoration: none; font: 700 .9rem var(--f-titulo); }
.subnav a:hover { border-color: var(--rojo); color: var(--rojo); }
.hitos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.hitos li { position: relative; padding-top: 26px; border-top: 4px solid var(--borde); }
.hitos li::before { content: ""; position: absolute; top: -10px; left: 0; width: 16px; height: 16px; background: var(--rojo); }
.hitos__fecha { display: block; font: 800 clamp(1.8rem, 3.6vw, 2.6rem)/1.05 var(--f-titulo); color: var(--rojo); }
.hitos h3 { margin: .5em 0 .4em; }
.hitos p { margin: 0; color: var(--texto-suave); }
.hitos .valores-lista { margin-top: 10px; }
@media (max-width: 760px) { .hitos { grid-template-columns: 1fr; gap: 36px; } }

/* ---------- Mapa interactivo de Google en «Dónde operamos» (2.6.3) ---------- */
.ms-google { width: 100%; height: clamp(380px, 62vw, 600px); background: #E4ECF1; }
.ms-google[hidden] { display: none !important; }
.ms-google img { max-width: none !important; } /* la regla global img{max-width:100%} deforma las teselas de Google */
.ms-gmode .ms-nota { position: static; display: block; padding: 8px 10px; }
.gm-pin { position: absolute; transform: translate(-50%, -50%); width: 32px; height: 32px; border-radius: 50%; background: var(--rojo); color: #fff; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.4); display: flex; align-items: center; justify-content: center; font: 800 14px/1 var(--f-titulo); cursor: pointer; }
.gm-pin:hover { background: var(--linea-oscura); }
.gm-pin.on { background: var(--asfalto); width: 38px; height: 38px; z-index: 5; }
.gm-pin:focus-visible { outline: 3px solid var(--asfalto); outline-offset: 3px; }

/* ---------- Consulta en línea de entregas (2.6.4) ---------- */
.seg h3 { margin: 0 0 .2em; font-size: 1.3rem; }
.seg__sep { border: 0; border-top: 2px solid var(--borde); margin: 8px 0 0; }
.seg__res { margin-top: 18px; padding: 18px 20px; border-left: 5px solid var(--borde); background: var(--niebla); }
.seg__res[hidden] { display: none !important; }
.seg__res:focus { outline: none; }
.seg__res--ok { border-left-color: var(--whatsapp); }
.seg__res--alerta { border-left-color: #B7791F; }
.seg__res--mal { border-left-color: var(--rojo); }
.seg__res p { margin: 0 0 .8em; }
.seg__estado { font: 800 1.5rem/1.2 var(--f-titulo); }
.seg__etapa { color: var(--texto-suave); }
.seg__res dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0 0 16px; }
.seg__res dt { color: var(--texto-suave); font-weight: 600; }
.seg__res dd { margin: 0; font-weight: 600; }
@media (max-width: 520px) { .seg__res dl { grid-template-columns: 1fr; gap: 0; } .seg__res dd { margin-bottom: 8px; } }

.seg__envio + .seg__envio { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--borde); }
.seg__n { font-weight: 700; }

/* ---------- Mapa de la zona de entrega dentro de la consulta de entregas (2.6.6) ---------- */
.seg__mapa { margin: 0 0 16px; }
.seg__gm { width: 100%; height: clamp(260px, 52vw, 380px); margin-top: 12px; background: #E4ECF1; border: 1px solid var(--borde); }
.seg__gm[hidden], .seg__mapa-nota[hidden], .seg__mapa-link[hidden] { display: none !important; }
.seg__gm img { max-width: none !important; }
.seg__mapa-nota { margin: 8px 0 4px; font-size: .9rem; color: var(--texto-suave); }
.seg__mapa-link { font-weight: 600; }
.gm-pin--punto { cursor: default; }
.gm-pin--o { background: var(--asfalto); }
.gm-pin--d { background: var(--rojo); }
.gm-pin--o:hover { background: var(--asfalto); }
.gm-pin--d:hover { background: var(--rojo); }

/* Portada: dos tarjetas de servicios (sin «Bolsa de carga») */
.svc-grid.light.svc-grid--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:560px){.svc-grid.light.svc-grid--2{grid-template-columns:1fr}}

/* ============ Página «Seguimiento de su entrega» (2.8.0 · diseño sobrio) ============ */
.page-head--sg { background: var(--asfalto); padding-block: clamp(26px, 4vw, 40px); border-bottom: 3px solid var(--rojo); }
.page-head--sg h1 { font-size: clamp(1.6rem, 3.2vw, 2.15rem); font-weight: 700; font-stretch: 100%; letter-spacing: -.005em; }
/* migas de pan (todas las páginas interiores) */
.migas ol { list-style: none; display: flex; flex-wrap: wrap; margin: 0 0 10px; padding: 0; font-size: .84rem; letter-spacing: .01em; color: rgba(255,255,255,.9); }
.migas li + li::before { content: "/"; margin-inline: .6em; opacity: .55; }
.migas a { color: #fff; text-decoration: none; } .migas a:hover { text-decoration: underline; }
.migas [aria-current="page"] { opacity: .85; }
.page-head--sg .migas ol { color: #BDBDBD; }

.sg { --sg-c: var(--asfalto); --sg-t: #F2F2F2; padding-block: clamp(24px, 4vw, 48px) clamp(40px, 6vw, 72px); background: #F4F4F5; }
.sg .sg-ic { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sg__vacio { color: var(--texto-suave); }
.sg__vacio-caja { text-align: center; max-width: 520px; margin: 24px auto; background: #fff; border: 1px solid var(--borde); border-radius: 4px; padding: 36px 28px; }
.sg__vacio-caja p { margin-inline: auto; color: var(--texto-suave); }
.sg__vacio-caja h2 { font-size: 1.45rem; font-weight: 700; font-stretch: 100%; }
.sg .sg__vacio-ic { width: 44px; height: 44px; color: var(--texto-suave); margin-bottom: 10px; }
.sg__vacio-caja .sg__acc { justify-content: center; margin-top: 8px; }

/* encabezado de la consulta */
.sg__top { display: flex; flex-wrap: wrap; gap: 4px 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 16px; }
.sg__guia-t { display: flex; flex-direction: column; gap: 2px; margin: 0; }
.sg__guia-t span { font: 600 .72rem var(--f-texto); letter-spacing: .1em; text-transform: uppercase; color: var(--texto-suave); }
.sg__guia-t b { color: var(--texto); font: 700 1.35rem/1.1 var(--f-titulo); letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.sg__estado-act { margin: 0; font-size: .86rem; color: var(--texto-suave); }

/* varias guías */
.sg__multi { margin-bottom: 18px; }
.sg__n { font-size: .95rem; color: var(--texto-suave); margin-bottom: 10px; }
.sg__guias { display: flex; flex-wrap: wrap; gap: 8px; }
.sg__guia { --c: var(--asfalto); display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; text-align: left; background: var(--blanco); border: 1px solid var(--borde); border-radius: 4px; padding: 9px 14px; cursor: pointer; font: inherit; color: var(--texto); transition: border-color .15s, box-shadow .15s; }
.sg__guia:hover { border-color: #8A8A8A; }
.sg__guia b { font: 700 .95rem var(--f-titulo); } .sg__guia small { grid-column: 2; color: var(--texto-suave); font-size: .8rem; }
.sg__guia .sg__punto { grid-row: 1 / 3; width: 9px; height: 9px; border-radius: 50%; background: var(--c); }
.sg__guia--ok { --c: var(--whatsapp); } .sg__guia--alerta { --c: #B45309; } .sg__guia--mal { --c: var(--rojo); }
.sg__guia[aria-pressed="true"] { border-color: var(--texto); box-shadow: 0 0 0 1px var(--texto); }

/* tarjetas */
.sg__card { background: var(--blanco); border: 1px solid var(--borde); border-radius: 4px; }
.sg__card + .sg__card { margin-top: 16px; }

/* estado */
.sg__hero { --sg-c: var(--asfalto); --sg-t: #F2F2F2; display: flex; gap: clamp(14px, 2.4vw, 22px); align-items: flex-start; padding: clamp(20px, 3vw, 30px); }
.sg__prog { --sg-c: var(--asfalto); --sg-t: #F2F2F2; }
.sg__hero--ok, .sg__prog--ok { --sg-c: var(--whatsapp); --sg-t: #E8F3EC; }
.sg__hero--alerta, .sg__prog--alerta { --sg-c: #B45309; --sg-t: #FBF0E3; }
.sg__hero--mal, .sg__prog--mal { --sg-c: var(--rojo); --sg-t: #FBEBED; }
.sg__hero--proceso, .sg__prog--proceso { --sg-c: var(--asfalto); --sg-t: #F2F2F2; }
.sg__badge { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 6px; background: var(--sg-t); color: var(--sg-c); }
.sg__badge .sg-ic { width: 26px; height: 26px; stroke-width: 2; }
.sg__hero-txt { min-width: 0; }
.sg__k { margin: 0 0 4px; font: 600 .72rem var(--f-texto); letter-spacing: .1em; text-transform: uppercase; color: var(--texto-suave); }
.sg__estado { margin: 0 0 .2em; font-size: clamp(1.55rem, 3.4vw, 2.1rem); font-weight: 700; font-stretch: 100%; letter-spacing: -.01em; color: var(--texto); }
.sg__frase { margin: 0; font-size: 1.02rem; color: #3D3D3D; }
.sg__motivo { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; margin: 14px 0 0; padding: 10px 14px; background: var(--sg-t); border-radius: 3px; font-size: .96rem; }
.sg__motivo span { color: var(--sg-c); font: 700 .72rem var(--f-texto); text-transform: uppercase; letter-spacing: .1em; }
.sg__motivo strong { font-weight: 600; }
.sg__etapa { margin: 10px 0 0; color: var(--texto-suave); font-size: .92rem; }
@media (max-width: 460px) { .sg__hero { flex-direction: column; } }

/* línea de avance */
.sg__prog { list-style: none; margin: 0; padding: 26px clamp(12px, 3vw, 32px) 28px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--borde); }
.sg__paso { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; padding-inline: 6px; }
.sg__paso b { font: 600 .95rem var(--f-texto); color: var(--texto); } .sg__paso small { color: var(--texto-suave); font-size: .84rem; }
.sg__nodo { position: relative; z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--blanco); border: 2px solid #C9C9C9; color: #9A9A9A; margin-bottom: 8px; }
.sg__nodo .sg-ic { width: 16px; height: 16px; stroke-width: 2.4; }
.sg__paso:not(:last-child)::after { content: ""; position: absolute; top: 15px; left: calc(50% + 22px); width: calc(100% - 44px); height: 2px; background: #D9D9D9; }
.sg__paso--hecho:not(:last-child)::after { background: var(--sg-c); }
.sg__paso--actual:not(:last-child)::after { background: linear-gradient(90deg, var(--sg-c) 0 40%, #D9D9D9 40%); }
.sg__paso--hecho .sg__nodo { background: var(--sg-c); border-color: var(--sg-c); color: #fff; }
.sg__paso--final .sg__nodo { background: var(--sg-c); border-color: var(--sg-c); color: #fff; box-shadow: 0 0 0 4px var(--sg-t); }
.sg__paso--actual .sg__nodo { border-color: var(--sg-c); color: var(--sg-c); box-shadow: 0 0 0 4px var(--sg-t); }
.sg__paso--pend b { color: var(--texto-suave); } .sg__paso--pend .sg__nodo { border-style: solid; }
@media (max-width: 460px) { .sg__paso b { font-size: .84rem; } .sg__paso small { font-size: .76rem; } }

/* pestañas */
.sg__tabs { display: flex; gap: 0; border-bottom: 1px solid var(--borde); overflow-x: auto; padding-inline: clamp(8px, 2vw, 16px); }
.sg__tab { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 15px 14px; font: 600 .95rem var(--f-texto); color: var(--texto-suave); cursor: pointer; white-space: nowrap; transition: color .15s; }
.sg__tab .sg-ic { width: 18px; height: 18px; }
.sg__tab:hover { color: var(--texto); }
.sg__tab[aria-selected="true"] { color: var(--texto); border-bottom-color: var(--rojo); }
.sg__tab em { font-style: normal; font-size: .74rem; font-weight: 600; background: #ECECEC; color: var(--texto); border-radius: 3px; min-width: 20px; padding: 1px 6px; text-align: center; }
.sg__panel { padding: clamp(18px, 3vw, 28px); }
.sg__panel[hidden] { display: none !important; }

/* detalle: cuadrícula con líneas finas */
.sg__datos { display: flex; flex-wrap: wrap; margin: 0; border-top: 1px solid var(--borde); border-left: 1px solid var(--borde); }
.sg__dato { flex: 1 1 210px; padding: 14px 18px 15px; border-right: 1px solid var(--borde); border-bottom: 1px solid var(--borde); background: var(--blanco); }
.sg__dato dt { font: 600 .72rem var(--f-texto); letter-spacing: .1em; text-transform: uppercase; color: var(--texto-suave); }
.sg__dato dd { margin: 4px 0 0; font: 600 1.05rem/1.35 var(--f-texto); color: var(--texto); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.sg__copiar { display: inline-flex; align-items: center; gap: 4px; background: transparent; border: 1px solid var(--borde); border-radius: 3px; padding: 2px 8px; font: 500 .76rem var(--f-texto); cursor: pointer; color: var(--texto-suave); }
.sg__copiar:hover { border-color: var(--texto); color: var(--texto); } .sg__copiar .sg-ic { width: 13px; height: 13px; }

/* soportes */
.sg__sub { margin: 28px 0 12px; font-size: 1rem; font-weight: 700; font-stretch: 100%; }
.sg__pdf { border: 1px solid var(--borde); border-radius: 4px; padding: 16px 18px; }
.sg__pdf-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.sg__pdf-fila > div:nth-child(2) { flex: 1 1 220px; } .sg__pdf-fila h3, .sg__pdf-fila p { margin: 0; }
.sg__pdf-fila h3 { font-size: 1rem; font-stretch: 100%; } .sg__pdf-fila p { font-size: .92rem; color: var(--texto-suave); }
.sg .sg__pdf-ic { width: 34px; height: 34px; color: var(--rojo); }
.sg__pdf-vista { margin-top: 16px; } .sg__pdf-vista[hidden] { display: none; }
.sg__pdf-vista iframe { width: 100%; height: min(80vh, 720px); border: 1px solid var(--borde); background: var(--niebla); }
.sg__fotos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); gap: 12px; }
.sg__foto { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; padding: 0; border: 1px solid var(--borde); border-radius: 4px; background: var(--niebla); cursor: zoom-in; overflow: hidden; }
.sg__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.sg__foto:hover img { transform: scale(1.03); } .sg__foto:hover { border-color: var(--texto); }
.sg__foto > span { position: absolute; right: 8px; bottom: 8px; background: rgba(0,0,0,.65); color: #fff; padding: 4px; border-radius: 3px; display: grid; place-items: center; } .sg__foto > span .sg-ic { width: 15px; height: 15px; }
.sg__foto--rota img { visibility: hidden; } .sg__foto--rota::before { content: "No se pudo cargar. Pulse «Actualizar estado»."; position: absolute; inset: 0; display: grid; place-items: center; padding: 10px; text-align: center; font-size: .88rem; color: var(--texto-suave); }
.sg__nota { margin: 16px 0 0; font-size: .86rem; color: var(--texto-suave); }
.sg__nada { text-align: center; background: #FAFAFA; border: 1px dashed #C9C9C9; border-radius: 4px; padding: 32px 20px; } .sg__nada .sg-ic { width: 36px; height: 36px; color: var(--texto-suave); } .sg__nada p { margin-inline: auto; color: var(--texto-suave); }

/* visor de fotos */
.sg-lb { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100dvh; width: 100%; height: 100%; }
.sg-lb::backdrop { background: rgba(0,0,0,.88); }
.sg-lb__caja { position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 56px 16px 16px; }
.sg-lb img { max-width: 100%; max-height: calc(100dvh - 160px); object-fit: contain; background: #111; }
.sg-lb__pie { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: center; color: #fff; } .sg-lb__n { margin: 0; }
.sg-lb .btn { padding: .5em .9em; }
.sg-lb__x, .sg-lb__nav { position: absolute; background: rgba(255,255,255,.14); color: #fff; border: 0; width: 46px; height: 46px; display: grid; place-items: center; cursor: pointer; border-radius: 50%; }
.sg-lb__x:hover, .sg-lb__nav:hover { background: var(--rojo); } .sg-lb__x { top: 10px; right: 10px; }
.sg-lb__nav { top: 50%; transform: translateY(-50%); } .sg-lb__nav--a { left: 10px; } .sg-lb__nav--s { right: 10px; } .sg-lb__nav[hidden] { display: none; }
.sg-lb .sg-ic { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* mapa */
.sg__gm { width: 100%; height: clamp(280px, 55vw, 440px); margin-top: 12px; background: #E4ECF1; border: 1px solid var(--borde); border-radius: 4px; } .sg__gm[hidden] { display: none !important; } .sg__gm img { max-width: none !important; }
.sg__leyenda { display: flex; gap: 18px; margin-bottom: 12px; font-weight: 500; font-size: .92rem; } .sg__leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.sg .gm-pin.sg__mini { position: static; transform: none; width: 22px; height: 22px; font-size: 11px; font-style: normal; cursor: default; box-shadow: none; border-width: 2px; }
.sg__mapa-link { display: inline-block; margin-top: 10px; font-weight: 600; font-size: .92rem; }

/* acciones */
.sg__acc { display: flex; flex-wrap: wrap; gap: 10px; }
.sg__acc--pie { margin-top: 24px; }
.sg .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; font-size: .94rem; padding: .85em 1.25em; border-width: 1px; }
.sg .btn .sg-ic { width: 18px; height: 18px; }
.sg .btn--borde.sg__btn-osc, .sg .sg__pdf .btn--borde { color: var(--texto); border-color: #9A9A9A; background: var(--blanco); }
.sg .btn--borde.sg__btn-osc:hover, .sg .sg__pdf .btn--borde:hover { border-color: var(--texto); background: var(--blanco); }
@media (max-width: 520px) { .sg__acc .btn { width: 100%; } }
@media print { .sg__acc, .sg__tabs { display: none; } .sg__panel[hidden] { display: block !important; } .sg { background: #fff; } }

/* ============ Lista de sedes ordenada (2.7.1) ============ */
@media (min-width: 861px) { .mapa-sedes__mapa { position: sticky; top: 96px; } } /* el mapa acompaña al recorrer la lista */
.mapa-sedes__lista { display: grid; gap: 10px; }
.ms-sede { margin: 0; padding: 14px 16px 12px; border-width: 1px; border-left-width: 6px; }
.ms-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ms-cab h3 { margin: 0; font-size: 1.3rem; display: flex; align-items: center; min-width: 0; }
.ms-cab .ms-num { flex: none; font-size: .72em; margin-right: .6em; vertical-align: 0; }
.ms-cab .ms-estado { flex: none; font-size: .74rem; padding: .25em .7em; white-space: nowrap; }
.ms-sede .z { margin: 2px 0 8px 2.4em; font-size: .88rem; color: var(--texto-suave); }
.ms-datos { list-style: none; margin: 0; padding: 8px 0 0 2.4em; border-top: 1px solid var(--borde); display: grid; gap: 4px; }
.ms-datos li { display: flex; align-items: flex-start; gap: 8px; font-size: .95rem; line-height: 1.4; }
.ms-datos li[hidden] { display: none; }
.ms-datos .ms-ic { flex: none; width: 17px; height: 17px; margin-top: 2px; fill: none; stroke: var(--rojo); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ms-sede .ms-det { margin-left: 2.4em; }
@media (max-width: 460px) { .ms-cab { flex-wrap: wrap; } .ms-sede .z, .ms-datos, .ms-sede .ms-det { margin-left: 0; padding-left: 0; } }

/* Preguntas frecuentes: salida de ayuda (2.8.1) */
.faq-ayuda { margin-top: 40px; padding: 24px clamp(18px, 3vw, 28px); background: var(--niebla); border: 1px solid var(--borde); border-radius: 4px; }
.faq-ayuda h2 { font-size: 1.3rem; font-weight: 700; font-stretch: 100%; margin: 0 0 .3em; }
.faq-ayuda p { margin: 0 0 14px; color: var(--texto-suave); }
.faq-ayuda__acc { display: flex; flex-wrap: wrap; gap: 10px; }
.faq-ayuda .btn--borde { color: var(--texto); border-color: #9A9A9A; background: #fff; }
.faq-ayuda .btn--borde:hover { border-color: var(--texto); }
@media (max-width: 520px) { .faq-ayuda__acc .btn { width: 100%; } }

/* v2.12.0 · Cotizador: medidas, peso a cobrar y reglas del servicio */
.campos-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.cot-medidas { border: 1px solid #d9d9d9; padding: 12px 14px 2px; margin: 0 0 14px; }
.cot-medidas legend { font-weight: 600; font-size: .9rem; padding: 0 6px; }
.cot-medidas legend span, .cot-op { font-weight: 400; color: var(--texto-suave); font-size: .85rem; }
.cot-resumen { background: var(--niebla, #f2f2f2); border-left: 4px solid var(--rojo); padding: 10px 12px; font-size: .9rem; margin: 0 0 12px; }
.cot-reglas { list-style: none; margin: 14px 0 0; padding: 12px 14px; background: var(--niebla, #f2f2f2); font-size: .88rem; }
.cot-reglas li { padding-left: 18px; position: relative; margin: 3px 0; }
.cot-reglas li::before { content: "✓"; position: absolute; left: 0; color: var(--rojo); font-weight: 700; }
@media (max-width: 520px) { .campos-3 { grid-template-columns: 1fr 1fr; } }
.lista-check { list-style: none; margin: 0 0 1.2em; padding: 0; }
.lista-check li { padding-left: 1.6em; position: relative; margin: .5em 0; }
.lista-check li::before { content: "✓"; position: absolute; left: 0; color: var(--rojo); font-weight: 700; }

/* v2.16.0 · Fichas de tipo de envío y botón «Vincule su vehículo» */
.fichas { border: 0; padding: 0; margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.fichas legend { font-weight: 600; font-size: .9rem; margin-bottom: 6px; padding: 0; width: 100%; }
.fichas .ficha { margin: 0; cursor: pointer; border: 0; padding: 0; }
.fichas .ficha input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fichas .ficha span { display: inline-block; padding: 9px 14px; border: 1px solid #d9d9d9; border-radius: 999px; font-size: .88rem; background: #fff; }
.fichas .ficha input:checked + span { background: var(--rojo); border-color: var(--rojo); color: #fff; font-weight: 600; }
.fichas .ficha input:focus-visible + span { outline: 3px solid rgba(178,24,31,.3); outline-offset: 2px; }
/* ---------- Recorrido 3D de la portada («Así viaja su carga») ---------- */
.rec3d { position: relative; }
.rec3d__stage { position: relative; height: clamp(360px, 52vw, 600px); background: #1C1C1C; border: 1px solid #3A3A3A; overflow: hidden; }
.rec3d canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; touch-action: pan-y; outline-offset: -3px; }
.rec3d.is-drag canvas { cursor: grabbing; }
.rec3d__hint { position: absolute; bottom: 14px; right: 14px; display: none; align-items: center; gap: 6px; font-size: 13px; color: #E6E6E6; background: rgba(20,20,20,.78); border: 1px solid rgba(255,255,255,.2); padding: 6px 12px; border-radius: 999px; pointer-events: none; }
.rec3d__hint svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rec3d__card, .rec3d__stage + .rec3d__card { display: none; }
.rec3d__nota { display: none; margin: 10px 0 0; padding-inline: 2px; font-size: 13px; color: #9A9A9A; }
.rec3d__lista { margin: 0; padding-left: 1.2em; color: #E0E0E0; }
.rec3d__lista li { margin: 0 0 .6em; }
.rec3d__lista a { color: #fff; }
.rec3d__stage { display: none; }

.rec3d--on .rec3d__stage, .rec3d--on .rec3d__nota { display: block; }
.rec3d--on .rec3d__hint { display: inline-flex; }
.rec3d--on .rec3d__card { display: block; }
.rec3d--on .rec3d__lista { display: none; }

.rec3d__card { background: #141414; border: 1px solid #3A3A3A; border-top: 0; padding: 16px; }
.rec3d__tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.rec3d__tabs button { position: relative; overflow: hidden; display: flex; align-items: baseline; gap: 8px; padding: 11px 12px; background: #242424; color: #D6D6D6; border: 1px solid #3F3F3F; border-radius: var(--radio); font: 600 14px/1.2 var(--f-texto); cursor: pointer; text-align: left; }
.rec3d__tabs button i { font-style: normal; font-size: 12px; opacity: .6; }
.rec3d__tabs button:hover { border-color: #8A8A8A; color: #fff; }
.rec3d__tabs button.is-on { background: #BD1522; border-color: #BD1522; color: #fff; }
.rec3d__tabs button.is-on i { opacity: .8; }
.rec3d__tabs button::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: calc(var(--p, 0) * 100%); background: rgba(255,255,255,.85); }
.rec3d__panel { margin-top: 14px; display: grid; gap: 4px; }
.rec3d__titulo { margin: 0; font-size: clamp(1.15rem, 2.2vw, 1.4rem); color: #fff; }
.rec3d__texto { margin: 0; color: #CFCFCF; max-width: 62ch; }
.rec3d__acciones { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.rec3d__link { color: #fff; font-weight: 600; text-underline-offset: 3px; }
.rec3d__nav { display: inline-flex; gap: 6px; }
.rec3d__nav button { width: 38px; height: 38px; border: 1px solid #4A4A4A; background: #242424; color: #fff; border-radius: var(--radio); font-size: 22px; line-height: 1; cursor: pointer; }
.rec3d__nav button:hover { border-color: #fff; }
.rec3d :focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Escritorio: la tarjeta flota sobre la escena (como en envia.co) */
@media (min-width: 900px) {
  .rec3d--on .rec3d__card { position: absolute; left: 18px; bottom: 18px; width: min(560px, calc(100% - 36px)); background: rgba(16,16,16,.88); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.16); border-radius: 4px; }
}
@media (max-width: 620px) {
  .rec3d__tabs button { flex-direction: column; gap: 2px; padding: 9px 6px; font-size: 12.5px; }
  .rec3d__stage { height: clamp(300px, 78vw, 420px); }
}
@media (prefers-reduced-motion: reduce) { .rec3d__tabs button::after { display: none; } }

/* ---------- Escena 3D: puntos «+», tooltip y tarjeta con viñetas (v2.18.0) ---------- */
.rec3d [hidden] { display: none !important; }
.rec3d__pt { position: absolute; left: 0; top: 0; z-index: 2; width: 44px; height: 44px; margin: -22px 0 0 -22px; padding: 0; border: 0; background: none; cursor: pointer; display: none; touch-action: manipulation; will-change: transform; }
.rec3d--on .rec3d__pt { display: block; }
.rec3d__pt i { position: absolute; inset: 9px; border-radius: 50%; background: rgba(20,20,20,.88); border: 2px solid #fff; box-shadow: 0 2px 10px rgba(0,0,0,.5); transition: background .15s, transform .15s; }
.rec3d__pt i::before, .rec3d__pt i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 2px; margin: -1px 0 0 -5px; background: #fff; border-radius: 1px; transition: transform .2s; }
.rec3d__pt i::after { transform: rotate(90deg); }
.rec3d__pt::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; border: 2px solid rgba(255,255,255,.65); animation: rec3d-pulso 2.2s ease-out infinite; }
.rec3d__pt:hover i, .rec3d__pt:focus-visible i { background: #BD1522; transform: scale(1.08); }
.rec3d__pt.is-act i { background: #BD1522; }
.rec3d__pt.is-act i::after { transform: rotate(0deg); }
.rec3d__pt.is-act::before { animation: none; opacity: 0; }
.rec3d__pt:focus-visible { outline: 3px solid #fff; outline-offset: -4px; border-radius: 50%; }
@keyframes rec3d-pulso { 0% { transform: scale(.8); opacity: .9; } 100% { transform: scale(1.5); opacity: 0; } }
.rec3d__tip { position: absolute; left: 0; top: 0; z-index: 3; opacity: 0; pointer-events: none; white-space: nowrap; background: #fff; color: #1C1C1C; font: 600 13px/1.2 var(--f-texto); padding: 8px 12px; border-radius: 6px; box-shadow: 0 4px 14px rgba(0,0,0,.4); }
.rec3d__tip::after { content: ""; position: absolute; left: var(--cx, 50%); bottom: -5px; width: 10px; height: 10px; margin-left: -5px; background: #fff; transform: rotate(45deg); }
.rec3d__tip.is-abajo::after { bottom: auto; top: -5px; }
.rec3d__items { margin: 8px 0 2px; padding: 0; list-style: none; display: grid; gap: 5px; }
.rec3d__items li { position: relative; padding-left: 18px; color: #E4E4E4; font-size: .92rem; line-height: 1.35; }
.rec3d__items li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 7px; height: 7px; border-radius: 50%; background: #BD1522; }
.rec3d__vista { margin-left: auto; margin-right: 10px; padding: 8px 12px; background: transparent; color: #fff; border: 1px solid #6A6A6A; border-radius: var(--radio); font: 600 13px/1 var(--f-texto); cursor: pointer; }
.rec3d__vista:hover { border-color: #fff; }
.rec3d--foco .rec3d__hint { display: none; }
@media (min-width: 900px) { .rec3d--on .rec3d__items { grid-template-columns: 1fr 1fr; gap: 5px 16px; } }
@media (prefers-reduced-motion: reduce) { .rec3d__pt::before { animation: none; opacity: .6; } .rec3d__pt i, .rec3d__pt i::before, .rec3d__pt i::after { transition: none; } }
.rec3d__vista { white-space: nowrap; }

/* ===== Bodega 3D (assets/bodega3d.js) ===== */
.b3d { position: relative; }
.b3d__stage { display: none; position: relative; height: clamp(460px, 58vw, 720px); background: #cfe2f3; border: 1px solid #3A3A3A; overflow: hidden; }
.b3d--on .b3d__stage { display: block; }
.b3d--on .b3d__lista { display: none; }
.b3d__lista { margin: 0; padding-left: 1.2em; color: #E0E0E0; } .b3d__lista li { margin: 0 0 .6em; } .b3d__lista a { color: #fff; }
.b3d canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; touch-action: pan-y; }
.b3d__nota { margin: 10px 0 0; font-size: 13px; color: #9A9A9A; }
.b3d .hs { position: absolute; left: 0; top: 0; width: 36px; height: 36px; margin: -18px 0 0 -18px; padding: 0; border-radius: 50%; border: 2px solid #fff; background: #BD1522; color: #fff; font: 800 17px/1 var(--f-titulo, Arial); cursor: pointer; z-index: 3; animation: b3dp 2s infinite; }
.b3d .hs.on { background: #fff; color: #BD1522; animation: none; }
.b3d .hs span { position: absolute; left: 44px; top: 6px; white-space: nowrap; background: rgba(0,0,0,.75); color: #fff; font: 600 12px var(--f-texto, Arial); padding: 3px 8px; border-radius: 4px; pointer-events: none; }
.b3d-lb { position: absolute; left: 0; top: 0; z-index: 2; white-space: nowrap; pointer-events: none; background: #fff; color: #1C1C1C; font: 700 12px/1.2 var(--f-texto, Arial); padding: 4px 9px; border-radius: 6px; border-left: 4px solid #BD1522; box-shadow: 0 3px 10px rgba(0,0,0,.28); }
.b3d-cap { position: absolute; left: 50%; top: 14px; transform: translateX(-50%); z-index: 4; margin: 0; max-width: 90%; white-space: nowrap; background: #1C1C1C; color: #fff; font: 800 15px/1.2 var(--f-titulo, Arial); padding: 8px 16px; border-radius: 999px; border-left: 5px solid #BD1522; box-shadow: 0 4px 14px rgba(0,0,0,.35); pointer-events: none; }
@media (max-width: 860px) { .b3d-cap { font-size: 13px; padding: 6px 12px; top: 10px; max-width: 94%; overflow: hidden; text-overflow: ellipsis; } }
@keyframes b3dp { 0% { box-shadow: 0 0 0 0 rgba(189,21,34,.7); } 70%, 100% { box-shadow: 0 0 0 14px rgba(189,21,34,0); } }
@media (prefers-reduced-motion: reduce) { .b3d .hs { animation: none; } }
.b3d__feed { position: absolute; left: 14px; top: 14px; z-index: 4; width: 290px; max-width: 46%; background: rgba(13,19,32,.88); color: #E6E6E6; border-radius: 10px; padding: 10px 12px; font-size: 12px; pointer-events: none; }
.b3d__feed strong { display: block; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #fff; margin-bottom: 6px; }
.b3d-feed { list-style: none; margin: 0; padding: 0; } .b3d-feed li { display: flex; align-items: center; gap: 8px; padding: 3px 0; } .b3d-feed i, .b3d__leg i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: none; }
.b3d__leg { position: absolute; left: 14px; bottom: 14px; z-index: 4; display: flex; gap: 12px; flex-wrap: wrap; background: rgba(255,255,255,.92); color: #1C1C1C; border-radius: 999px; padding: 6px 14px; font: 600 12px var(--f-texto, Arial); pointer-events: none; }
.b3d__leg span { display: inline-flex; align-items: center; gap: 6px; }
.b3d__card { position: absolute; right: 18px; bottom: 18px; width: 380px; max-width: calc(100% - 36px); background: #141414; border: 1px solid #3A3A3A; border-radius: 12px; padding: 16px; z-index: 5; box-sizing: border-box; color: #E6E6E6; }
.b3d-tabs { display: flex; gap: 4px; margin-bottom: 12px; overflow-x: auto; }
.b3d-tabs button { flex: none; white-space: nowrap; background: #242424; color: #D6D6D6; border: 1px solid #3F3F3F; border-radius: 999px; padding: 6px 10px; font: 600 12px var(--f-texto, Arial); cursor: pointer; }
.b3d-tabs button[aria-selected="true"] { background: #BD1522; border-color: #BD1522; color: #fff; }
.b3d-k { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #FF6B76; font-weight: 700; }
.b3d__card h3 { margin: 4px 0 6px; font-size: 21px; line-height: 1.1; color: #fff; }
.b3d__card p { margin: 0; font-size: 14px; line-height: 1.45; color: #CFCFCF; }
.b3d-b { margin: 10px 0 0; padding-left: 1.1em; font-size: 13px; line-height: 1.45; color: #E6E6E6; } .b3d-b li { margin: 0 0 4px; }
.b3d__st { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.b3d__st div { background: #242424; border-radius: 8px; padding: 7px; text-align: center; }
.b3d__st b { display: block; font-size: 16px; color: #fff; } .b3d__st small { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: #AAA; }
.b3d-l { display: inline-block; color: #fff; font-weight: 700; font-size: 14px; }
.b3d__nav { display: flex; gap: 8px; margin-top: 12px; }
.b3d__nav button { flex: 1; border: 0; border-radius: 8px; padding: 10px; background: #2E2E2E; color: #fff; font: 700 13px var(--f-texto, Arial); cursor: pointer; }
.b3d__nav button:last-child { background: #BD1522; }
@media (max-width: 860px) {
	.b3d--on .b3d__stage { height: auto; min-height: 400px; overflow: visible; border-bottom: 0; }
	.b3d canvas { height: 400px; }
	.b3d-hs { position: absolute; left: 0; top: 0; width: 100%; height: 400px; overflow: hidden; pointer-events: none; } .b3d-hs .hs { pointer-events: auto; }
	.b3d__card { position: static; width: auto; max-width: none; margin-top: 400px; border-radius: 0; border-top: 0; }
	.b3d__feed { display: none; }
	.b3d__leg { top: 360px; bottom: auto; }
}

/* Bodega 3D: versión compacta */
.b3d__st, .b3d__feed, .b3d-b { display: none !important; }
.b3d__card { width: 320px; padding: 14px; }
.b3d__card h3 { font-size: 20px; margin-bottom: 2px; }
.b3d__card p { font-size: 14px; }
.b3d-l { margin-top: 8px; }
.b3d-tabs button { padding: 5px 9px; }

/* ---------- 2.21.0 Formularios más anchos y compactos ---------- */
.hero .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr); gap: 44px; }
@media (max-width: 920px) { .hero .wrap { grid-template-columns: 1fr; } }
.acciones__pnl { padding: 22px 26px 26px; }
.campos-2--top { align-items: start; }
.campos-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.campos-seg .campo--nit { grid-column: 1 / -1; }
.fichas { flex-wrap: wrap; }
.fichas .ficha span { padding: 8px 12px; font-size: .85rem; }
.cot-medidas .campos-3 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.cot-medidas .campos-3 .campo { margin-bottom: 8px; }
.cot-medidas .campos-3 .campo:last-child { grid-column: span 2; }
.cot-medidas .campos-3 label { font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.campo textarea { min-height: 0; }
.cot-reglas { columns: 1; }
.rec-grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 32px; }
.rec-bloque .campos-2 { gap: 12px 16px; }
@media (min-width: 1000px) { .rec-bloque .campos-2:has(#rc-peso) { grid-template-columns: 1fr 1fr; } }
@media (max-width: 720px) { .cot-medidas .campos-3 { grid-template-columns: 1fr 1fr 1fr; } .cot-medidas .campos-3 .campo:last-child { grid-column: 1 / -1; } .campos-seg { grid-template-columns: 1fr; } .acciones__pnl { padding: 18px 14px 20px; } }

/* ---------- 2.22.0 «Trabaje con nosotros»: requisitos y confirmación ---------- */
.req-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.req-lista li { position: relative; padding-left: 28px; }
.req-lista li::before { content: ""; position: absolute; left: 0; top: .35em; width: 16px; height: 16px; border-radius: 50%; background: var(--rojo); box-shadow: inset 0 0 0 4px #fff, 0 0 0 1px var(--rojo); }
.req-nota { margin-top: 18px; color: var(--texto-suave); font-size: .92rem; }
.req-confirma { background: #fff; border: 1px solid var(--borde); padding: 24px; max-width: 720px; }
.req-confirma .btn[disabled] { opacity: .45; cursor: not-allowed; }

/* ---------- 2.23.0 «Cómo preparar su envío»: página de servicio (hero, pasos, rótulo, consejos, preguntas) ---------- */
.page-head--serv { padding-block: clamp(40px, 6vw, 72px); }
.page-head__lead { font-size: 1.2rem; max-width: 52ch; margin: .6em 0 0; color: #fff; }
.page-head--serv .btn--linea { background: #fff; color: var(--rojo); }
.pasos-tarjeta { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pasos-tarjeta li { border: 1px solid var(--borde); padding: 22px 20px; background: #fff; }
.pasos-tarjeta li:hover { border-color: var(--rojo); }
.pasos-tarjeta b { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--rojo); color: #fff; font: 800 1rem var(--f-titulo); margin-bottom: 12px; }
.pasos-tarjeta h3 { margin: 0 0 .3em; font-size: 1.15rem; }
.pasos-tarjeta p { margin: 0; color: var(--texto-suave); }
.rotulo-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: 28px; align-items: start; }
.rotulo-ej { position: relative; background: #fff; border: 2px dashed var(--texto-suave); padding: 22px 20px 18px; display: grid; gap: 12px; }
.rotulo-ej__t { position: absolute; top: -.75em; left: 14px; background: var(--niebla); padding: 0 8px; font: 700 .8rem var(--f-titulo); color: var(--texto-suave); text-transform: uppercase; letter-spacing: .04em; }
.rotulo-ej__b { display: grid; gap: 2px; padding-bottom: 10px; border-bottom: 1px solid var(--borde); font-size: .92rem; }
.rotulo-ej__b b { font-family: var(--f-titulo); }
.rotulo-ej__b--dest { border-bottom: 0; font-size: 1.02rem; }
.rotulo-ej__n { justify-self: end; font: 800 1.3rem var(--f-titulo); color: var(--rojo); }
.modulos--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tip { border-top: 4px solid var(--rojo); background: var(--niebla); padding: 20px; }
.tip__n { font: 800 1.6rem var(--f-titulo); color: var(--rojo); }
.tip h3 { margin: .2em 0 .35em; font-size: 1.1rem; }
.tip p { margin: 0; color: var(--texto-suave); }
.faq-d { border-bottom: 1px solid var(--borde); padding: 14px 0; }
.faq-d summary { cursor: pointer; font: 700 1.05rem var(--f-titulo); }
.faq-d p { margin: .6em 0 0; }
@media (max-width: 1000px) { .pasos-tarjeta { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .rotulo-grid, .modulos--2 { grid-template-columns: 1fr; } .pasos-tarjeta, .tips { grid-template-columns: 1fr; } }

/* ---------- 2.23.5 Bodega 3D: reproducción automática con barra de tiempo ---------- */
.b3d-tabs button { position: relative; overflow: hidden; }
.b3d-tabs button::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: calc(var(--p, 0) * 100%); background: rgba(255,255,255,.85); }
.b3d-prog { position: relative; height: 22px; margin-top: 12px; background: #2E2E2E; border-radius: 6px; overflow: hidden; }
.b3d-prog i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: #BD1522; }
.b3d-prog span { position: relative; display: block; text-align: center; font: 700 11px/22px var(--f-texto, Arial); color: #fff; letter-spacing: .02em; }
