/* =============================================================================
   LEIDER Logistics — leider.css
   Sistema de diseño único, compartido por las 6 páginas del sitio.
   Fuente de verdad: ANEXO_formulario_actual.html (formulario en producción).
   Los tokens y componentes del anexo se conservan literalmente; lo demás
   se deriva de ellos. Sin librerías. Móvil primero.
   Orden: 1 tokens · 2 base · 3 layout/tipo · 4 foco · 5 botones · 6 header
          7 footer · 8 barra móvil · 9 tarjetas · 10 formulario · 11 avisos
          12 route strip · 13 logos de clientes · 14 tablas · 15 FAQ
          16 utilidades · 17 motion
   ============================================================================= */

/* ---------------------------------------------------------------- 1. TOKENS */
:root{
  /* Marca — literal del anexo */
  --ldr-blue:#2248A0; --ldr-blue-dark:#16336F; --ldr-blue-950:#0f2250;
  --ldr-gold:#FEC100; --ldr-gold-400:#ffd247;

  /* Superficies */
  --ldr-bg:#0a0f1a; --ldr-s1:#111827; --ldr-s2:#16202f; --ldr-s3:#1c2738;
  --ldr-overlay:rgba(10,15,26,.72);
  /* Chip claro: único fondo claro autorizado (logos ilegibles en monocromo) */
  --ldr-chip-light:#e2e8f0;

  /* Texto */
  --ldr-fg1:#e2e8f0; --ldr-fg2:#94a3b8; --ldr-fg3:#64748b; --ldr-on-gold:#0a0f1a;

  /* Bordes */
  --ldr-border:rgba(226,232,240,.10);
  --ldr-border-strong:rgba(226,232,240,.18);
  --ldr-border-brand:rgba(254,193,0,.35);

  /* Semántico */
  --ldr-danger:#ef4444; --ldr-danger-bg:rgba(239,68,68,.12); --ldr-danger-fg:#fca5a5;
  --ldr-warn:#f59e0b;   --ldr-warn-bg:rgba(245,158,11,.12);  --ldr-warn-fg:#fcd34d;
  --ldr-success:#10b981;--ldr-success-bg:rgba(16,185,129,.12);

  /* Tipografía */
  --ldr-sans:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif;
  --ldr-mono:'JetBrains Mono',ui-monospace,monospace;

  /* Escala fluida 14 → 56 px (clamp, sin media queries) */
  --ldr-fs-2xs:11px;                                  /* etiquetas mono cortas */
  --ldr-fs-xs:11.5px;                                 /* eyebrow, labels UPPER */
  --ldr-fs-sm:12.5px;                                 /* pies, errores */
  --ldr-fs-md:14.5px;                                 /* texto denso, subtítulos */
  --ldr-fs-base:clamp(15px,.18vw + 14.3px,16px);      /* cuerpo */
  --ldr-fs-lg:clamp(16.5px,.5vw + 15px,19px);         /* intro de sección */
  --ldr-fs-xl:clamp(19px,.9vw + 16px,23px);           /* h4 / título tarjeta */
  --ldr-fs-2xl:clamp(23px,1.6vw + 18px,29px);         /* h3 — 29px = anexo */
  --ldr-fs-3xl:clamp(27px,2.8vw + 18px,40px);         /* h2 */
  --ldr-fs-4xl:clamp(31px,4.4vw + 15px,56px);         /* h1 */

  --ldr-lh-tight:1.1; --ldr-lh-snug:1.25; --ldr-lh-normal:1.55; --ldr-lh-loose:1.7;
  --ldr-tr-tight:-.02em; --ldr-tr-wide:.04em; --ldr-tr-wider:.16em;

  /* Ritmo de espaciado — 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64 · 96 */
  --ldr-space-1:4px;  --ldr-space-2:8px;  --ldr-space-3:12px; --ldr-space-4:16px;
  --ldr-space-5:24px; --ldr-space-6:32px; --ldr-space-7:48px; --ldr-space-8:64px;
  --ldr-space-9:96px;
  /* Ritmo vertical de sección: fluido entre 48 y 96 */
  --ldr-section-y:clamp(var(--ldr-space-7),7vw,var(--ldr-space-9));
  --ldr-gutter:clamp(var(--ldr-space-4),4vw,var(--ldr-space-6));
  --ldr-max:1200px;
  --ldr-max-prose:68ch;
  --ldr-header-h:64px;
  --ldr-bar-h:64px; /* barra fija inferior en móvil */

  /* Radios — anexo: tarjetas 16, inputs 8, botones 10, chips 12 */
  --ldr-r-xs:6px; --ldr-r-sm:8px; --ldr-r-md:10px; --ldr-r-lg:12px;
  --ldr-r-xl:16px; --ldr-r-pill:999px;

  /* Sombras */
  --ldr-shadow-sm:0 2px 8px rgba(0,0,0,.35);
  --ldr-shadow-md:0 8px 24px rgba(0,0,0,.40);
  --ldr-shadow-lg:0 24px 60px rgba(0,0,0,.55);
  --ldr-shadow-gold:0 0 0 1px rgba(254,193,0,.2),0 8px 24px rgba(254,193,0,.12);

  /* Foco — visible sobre s1, s2 y s3: anillo dorado + halo dorado difuso.
     El halo es lo que lo despega de cualquier superficie oscura. */
  --ldr-focus-w:2px;
  --ldr-focus-color:var(--ldr-gold-400);
  --ldr-focus-halo:0 0 0 6px rgba(254,193,0,.16);
  /* Anillo de campo (estado :focus del input, literal del anexo) */
  --ldr-field-focus:0 0 0 2px rgba(254,193,0,.18);

  /* Motion */
  --ldr-ease:cubic-bezier(.16,1,.3,1);
  --ldr-t-micro:120ms; --ldr-t-fast:200ms; --ldr-t-panel:400ms;
}

/* ------------------------------------------------------------------ 2. BASE */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--ldr-header-h) + var(--ldr-space-4))}
body{
  margin:0;background:var(--ldr-bg);color:var(--ldr-fg1);
  font-family:var(--ldr-sans);font-size:var(--ldr-fs-base);font-weight:400;
  line-height:var(--ldr-lh-normal);-webkit-font-smoothing:antialiased;
  text-wrap:pretty;
}
/* La barra fija inferior no debe tapar el final del documento en móvil */
@media (max-width:767px){ body{padding-bottom:var(--ldr-bar-h)} }

img,svg,video{display:block;max-width:100%}
img{height:auto}
[hidden]{display:none!important}
button{font:inherit;color:inherit}
::selection{background:rgba(254,193,0,.28);color:var(--ldr-fg1)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--ldr-bg)}
::-webkit-scrollbar-thumb{background:var(--ldr-s3);border-radius:var(--ldr-r-pill)}

a{color:var(--ldr-gold);text-decoration:none;transition:color var(--ldr-t-micro) var(--ldr-ease)}
a:hover{color:var(--ldr-gold-400)}
/* Enlaces dentro de párrafos: subrayado para no depender solo del color */
.ldr-prose a,p a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}

/* ---------------------------------------------------- 3. LAYOUT Y TIPOGRAFÍA */
.ldr-container{width:100%;max-width:var(--ldr-max);margin-inline:auto;padding-inline:var(--ldr-gutter)}
.ldr-container--narrow{max-width:820px}
.ldr-section{padding-block:var(--ldr-section-y)}
.ldr-section--s1{background:var(--ldr-s1)}
.ldr-section--blue{background:linear-gradient(180deg,var(--ldr-blue-950),var(--ldr-bg))}
.ldr-section-head{max-width:var(--ldr-max-prose);margin-bottom:var(--ldr-space-6)}
.ldr-section-head--center{margin-inline:auto;text-align:center}

.ldr-h1,h1{margin:0;font-size:var(--ldr-fs-4xl);font-weight:800;line-height:var(--ldr-lh-tight);letter-spacing:var(--ldr-tr-tight)}
.ldr-h2,h2{margin:0;font-size:var(--ldr-fs-3xl);font-weight:800;line-height:var(--ldr-lh-tight);letter-spacing:var(--ldr-tr-tight)}
.ldr-h3,h3{margin:0;font-size:var(--ldr-fs-2xl);font-weight:800;line-height:var(--ldr-lh-tight);letter-spacing:var(--ldr-tr-tight)}
.ldr-h4,h4{margin:0;font-size:var(--ldr-fs-xl);font-weight:700;line-height:var(--ldr-lh-snug);letter-spacing:-.01em}
/* Acento dorado dentro de un titular — patrón del anexo (.ldr-title span) */
.ldr-h1 span,.ldr-h2 span,.ldr-h3 span,.ldr-accent{color:var(--ldr-gold)}

.ldr-eyebrow{
  display:inline-block;font-weight:600;font-size:var(--ldr-fs-xs);line-height:1.2;
  letter-spacing:var(--ldr-tr-wider);text-transform:uppercase;color:var(--ldr-gold);
}
.ldr-eyebrow--muted{color:var(--ldr-fg3)}
.ldr-lead{margin:var(--ldr-space-3) 0 0;max-width:var(--ldr-max-prose);color:var(--ldr-fg2);font-size:var(--ldr-fs-lg);line-height:var(--ldr-lh-normal)}
.ldr-sub{margin:10px 0 0;color:var(--ldr-fg2);font-size:var(--ldr-fs-md);line-height:var(--ldr-lh-normal)}
.ldr-prose{max-width:var(--ldr-max-prose);color:var(--ldr-fg2)}
.ldr-prose p{margin:0 0 var(--ldr-space-4)}
.ldr-prose strong{color:var(--ldr-fg1);font-weight:700}
.ldr-mono{font-family:var(--ldr-mono);font-size:12px;font-variant-numeric:tabular-nums}
.ldr-muted{color:var(--ldr-fg3)}
/* --ldr-fg3 nunca por debajo de 16px en texto corrido (contraste). Permitido
   solo en mono/etiquetas cortas no esenciales. */
.ldr-fg2{color:var(--ldr-fg2)}

.ldr-grid{display:grid;gap:var(--ldr-space-5)}
.ldr-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.ldr-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.ldr-grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.ldr-cluster{display:flex;flex-wrap:wrap;gap:var(--ldr-space-3);align-items:center}
.ldr-stack{display:flex;flex-direction:column;gap:var(--ldr-space-4)}

.ldr-hr{height:1px;border:0;margin:0;background:var(--ldr-border)}
.ldr-hr--dashed{height:0;border-top:1px dashed var(--ldr-border);background:none}

/* ------------------------------------------------------------------- 4. FOCO */
/* Regla base: 2px dorado + offset 2px + halo. Comprobado sobre bg, s1, s2, s3. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:var(--ldr-focus-w) solid var(--ldr-focus-color);
  outline-offset:2px;border-radius:inherit;
}
/* En superficies claras o en el propio dorado, el anillo se invierte a oscuro
   para no perder contraste (3:1 en bordes de control). */
.ldr-btn--primary:focus-visible,
.ldr-logo-chip--light:focus-visible,
.ldr-bar-btn--primary:focus-visible{
  outline-color:var(--ldr-bg);
  box-shadow:0 0 0 4px var(--ldr-gold-400);
}
/* Halo para elementos que viven sobre s2/s3, donde el dorado solo puede
   confundirse con el borde de marca. */
.ldr-card:focus-visible,.ldr-faq-item summary:focus-visible,.ldr-nav a:focus-visible{
  box-shadow:var(--ldr-focus-halo);
}
.ldr-skip{
  position:absolute;left:var(--ldr-space-4);top:-64px;z-index:120;
  padding:10px 16px;border-radius:var(--ldr-r-sm);
  background:var(--ldr-gold);color:var(--ldr-on-gold);font-weight:700;font-size:var(--ldr-fs-sm);
  transition:top var(--ldr-t-fast) var(--ldr-ease);
}
.ldr-skip:focus-visible{top:var(--ldr-space-3);color:var(--ldr-on-gold)}

/* --------------------------------------------------------------- 5. BOTONES */
.ldr-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--ldr-space-2);
  padding:13px 22px;min-height:44px;border:1px solid transparent;border-radius:var(--ldr-r-md);
  font-family:var(--ldr-sans);font-weight:700;font-size:15px;line-height:1;
  text-align:center;text-decoration:none;cursor:pointer;
  transition:background var(--ldr-t-micro) var(--ldr-ease),
             border-color var(--ldr-t-micro) var(--ldr-ease),
             color var(--ldr-t-micro) var(--ldr-ease),
             transform 80ms var(--ldr-ease);
}
.ldr-btn:active{transform:scale(.98)}
.ldr-btn:disabled,.ldr-btn[aria-disabled="true"]{opacity:.6;cursor:not-allowed;transform:none}
.ldr-btn svg{flex:none}

.ldr-btn--primary{background:var(--ldr-gold);color:var(--ldr-on-gold);box-shadow:var(--ldr-shadow-gold)}
.ldr-btn--primary:hover{background:var(--ldr-gold-400);color:var(--ldr-on-gold)}

.ldr-btn--secondary{background:var(--ldr-s2);border-color:var(--ldr-border-strong);color:var(--ldr-fg1)}
.ldr-btn--secondary:hover{background:var(--ldr-s3);border-color:var(--ldr-fg3);color:var(--ldr-fg1)}

.ldr-btn--ghost{background:transparent;border-color:var(--ldr-border-strong);color:var(--ldr-fg2)}
.ldr-btn--ghost:hover{border-color:var(--ldr-fg3);color:var(--ldr-fg1)}

.ldr-btn--wa{background:var(--ldr-s2);border-color:rgba(37,211,102,.35);color:#86efac}
.ldr-btn--wa:hover{background:var(--ldr-s3);border-color:rgba(37,211,102,.6);color:#bbf7d0}

/* Variante azul sólido — del design system (site.css .btn-secondary).
   Úsala cuando hacen falta dos acciones de peso y el dorado ya está tomado. */
.ldr-btn--blue{background:var(--ldr-blue);border-color:var(--ldr-blue);color:#fff}
.ldr-btn--blue:hover{background:#2b56b8;border-color:#2b56b8;color:#fff}

.ldr-btn--lg{padding:16px 28px;min-height:52px;font-size:16px}
.ldr-btn--sm{padding:9px 16px;min-height:38px;font-size:13.5px;border-radius:var(--ldr-r-sm)}
.ldr-btn--block{width:100%}

/* Enlace-flecha: recorrido entre páginas (cierra los callejones sin salida) */
.ldr-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--ldr-gold)}
.ldr-link::after{content:"→";transition:transform var(--ldr-t-micro) var(--ldr-ease)}
.ldr-link:hover::after{transform:translateX(4px)}

/* --------------------------------------------------------------- 6. HEADER */
.ldr-header{
  position:sticky;top:0;z-index:100;height:var(--ldr-header-h);
  background:var(--ldr-bg);border-bottom:1px solid var(--ldr-border);
  transition:background var(--ldr-t-fast) var(--ldr-ease),border-color var(--ldr-t-fast) var(--ldr-ease);
}
/* .is-scrolled lo añade leider.js */
.ldr-header.is-scrolled{background:rgba(17,24,39,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:var(--ldr-border-strong)}
.ldr-header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--ldr-space-4);height:100%}
.ldr-brand{display:flex;align-items:center;gap:10px}
.ldr-brand img{height:28px;width:auto}
.ldr-nav{display:none}
.ldr-nav ul{display:flex;align-items:center;gap:var(--ldr-space-1);margin:0;padding:0;list-style:none}
.ldr-nav a{
  display:block;padding:8px 12px;border-radius:var(--ldr-r-sm);
  color:var(--ldr-fg2);font-weight:600;font-size:14px;
  transition:color var(--ldr-t-micro) var(--ldr-ease),background var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-nav a:hover{color:var(--ldr-fg1);background:var(--ldr-s2)}
.ldr-nav a[aria-current="page"]{color:var(--ldr-gold)}
.ldr-nav a[aria-current="page"]::after{
  content:"";display:block;height:2px;margin-top:6px;border-radius:2px;background:var(--ldr-gold);
}
.ldr-header-cta{display:none}
.ldr-burger{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;background:transparent;
  border:1px solid var(--ldr-border-strong);border-radius:var(--ldr-r-sm);
  color:var(--ldr-fg1);cursor:pointer;
}
.ldr-burger:hover{background:var(--ldr-s2)}
.ldr-burger-ic{position:relative;width:18px;height:12px}
.ldr-burger-ic span{position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor;transition:transform var(--ldr-t-fast) var(--ldr-ease),opacity var(--ldr-t-micro) linear}
.ldr-burger-ic span:nth-child(1){top:0}
.ldr-burger-ic span:nth-child(2){top:5px}
.ldr-burger-ic span:nth-child(3){top:10px}
.ldr-burger[aria-expanded="true"] .ldr-burger-ic span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.ldr-burger[aria-expanded="true"] .ldr-burger-ic span:nth-child(2){opacity:0}
.ldr-burger[aria-expanded="true"] .ldr-burger-ic span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* Panel móvil */
.ldr-menu{
  position:fixed;inset:var(--ldr-header-h) 0 auto 0;z-index:99;
  background:var(--ldr-s1);border-bottom:1px solid var(--ldr-border-strong);
  box-shadow:var(--ldr-shadow-lg);
  padding:var(--ldr-space-4) var(--ldr-gutter) var(--ldr-space-5);
}
.ldr-menu[hidden]{display:none!important}
.ldr-menu ul{margin:0 0 var(--ldr-space-4);padding:0;list-style:none;display:grid;gap:var(--ldr-space-1)}
.ldr-menu a{
  display:block;padding:14px 12px;border-radius:var(--ldr-r-sm);
  color:var(--ldr-fg1);font-weight:600;font-size:16px;
}
.ldr-menu a:hover{background:var(--ldr-s2)}
.ldr-menu a[aria-current="page"]{color:var(--ldr-gold);background:var(--ldr-s2)}

@media (min-width:1024px){
  .ldr-nav{display:block}
  .ldr-header-cta{display:inline-flex}
  .ldr-burger{display:none}
  .ldr-menu{display:none!important}
}

/* ----------------------------------------------------------------- 7. PIE */
.ldr-footer{background:var(--ldr-s1);border-top:1px solid var(--ldr-border);padding-block:var(--ldr-space-7) var(--ldr-space-5)}
.ldr-footer-grid{display:grid;gap:var(--ldr-space-6);grid-template-columns:1fr}
@media (min-width:768px){ .ldr-footer-grid{grid-template-columns:1.4fr 1fr 1fr} }
.ldr-footer h2,.ldr-footer h3,.ldr-footer-h{
  margin:0 0 var(--ldr-space-3);font-size:var(--ldr-fs-xs);font-weight:600;
  letter-spacing:var(--ldr-tr-wider);text-transform:uppercase;color:var(--ldr-fg3);
}
.ldr-footer ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.ldr-footer a{color:var(--ldr-fg2);font-size:14.5px;font-weight:500}
.ldr-footer a:hover{color:var(--ldr-gold)}
.ldr-footer-brand img{height:30px;width:auto;margin-bottom:var(--ldr-space-4)}
.ldr-footer-addr{font-style:normal;color:var(--ldr-fg2);font-size:14.5px;line-height:var(--ldr-lh-normal)}
/* Contacto clicable: tel: y mailto: nunca en texto plano */
.ldr-contact-item{display:flex;align-items:center;gap:10px;color:var(--ldr-fg1);font-weight:600;font-size:15px}
.ldr-contact-item svg{flex:none;color:var(--ldr-gold)}
.ldr-contact-item:hover{color:var(--ldr-gold)}
.ldr-contact-num{font-family:var(--ldr-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em;overflow-wrap:anywhere}
.ldr-footer-bottom{
  display:flex;flex-wrap:wrap;gap:var(--ldr-space-3) var(--ldr-space-5);
  align-items:center;justify-content:space-between;
  margin-top:var(--ldr-space-6);padding-top:var(--ldr-space-4);
  border-top:1px solid var(--ldr-border);color:var(--ldr-fg3);font-size:13px;
}

/* ------------------------------------------------- 8. BARRA FIJA (MÓVIL) */
/* Sustituye al widget flotante de WhatsApp: nunca conviven. */
.ldr-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:98;
  display:grid;grid-template-columns:1fr 1fr;gap:var(--ldr-space-2);
  padding:10px var(--ldr-space-4) calc(10px + env(safe-area-inset-bottom));
  background:rgba(17,24,39,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--ldr-border-strong);
}
.ldr-bar-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;border-radius:var(--ldr-r-md);
  font-weight:700;font-size:15px;text-decoration:none;
}
.ldr-bar-btn--primary{background:var(--ldr-gold);color:var(--ldr-on-gold)}
.ldr-bar-btn--wa{background:var(--ldr-s3);border:1px solid var(--ldr-border-strong);color:var(--ldr-fg1)}
@media (min-width:768px){ .ldr-bar{display:none} }

/* -------------------------------------------------------------- 9. TARJETAS */
.ldr-card{
  background:var(--ldr-s1);border:1px solid var(--ldr-border);border-radius:var(--ldr-r-xl);
  padding:var(--ldr-space-5);
  transition:border-color var(--ldr-t-micro) var(--ldr-ease),background var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-card--flush{padding:0;overflow:hidden}
.ldr-card--interactive{cursor:pointer}
.ldr-card--interactive:hover{background:var(--ldr-s2);border-color:var(--ldr-border-strong)}
.ldr-card--selected{border-color:var(--ldr-border-brand);box-shadow:inset 2px 0 0 var(--ldr-gold)}
/* Tarjeta-manifiesto: el gradiente azul del anexo. Reservada para bloques
   ancla (formulario, hero secundario, CTA de cierre). */
.ldr-card--manifest{
  background:linear-gradient(180deg,var(--ldr-blue-950),var(--ldr-bg));
  border-color:var(--ldr-border-strong);box-shadow:var(--ldr-shadow-lg);overflow:hidden;padding:0;
}
.ldr-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--ldr-space-3);
  padding:22px 28px;border-bottom:1px solid var(--ldr-border);background:rgba(34,72,160,.18);
}
.ldr-card-head img{height:30px;width:auto}
.ldr-card-tag{font-family:var(--ldr-mono);font-size:var(--ldr-fs-2xs);color:var(--ldr-fg3);letter-spacing:.08em}
.ldr-card-body{padding:28px}
.ldr-card-title{margin:0;font-size:var(--ldr-fs-xl);font-weight:700;line-height:var(--ldr-lh-snug);color:var(--ldr-fg1)}
.ldr-card-text{margin:10px 0 0;color:var(--ldr-fg2);font-size:var(--ldr-fs-md);line-height:var(--ldr-lh-normal)}
.ldr-card-ic{
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  margin-bottom:var(--ldr-space-4);border-radius:var(--ldr-r-md);
  background:var(--ldr-s2);border:1px solid var(--ldr-border);color:var(--ldr-gold);
}
@media (max-width:560px){
  .ldr-card-head{padding:18px 20px}
  .ldr-card-body{padding:22px 20px}
}

/* Tarjeta de cifra. Regla del encargo: si el valor sigue pendiente al
   publicar, leider.js oculta el bloque completo. Nunca cifras de relleno. */
.ldr-stat{
  display:flex;flex-direction:column;gap:6px;
  background:var(--ldr-s1);border:1px solid var(--ldr-border);border-radius:var(--ldr-r-xl);
  padding:var(--ldr-space-5);
}
.ldr-stat-num{
  font-family:var(--ldr-mono);font-weight:600;font-size:clamp(28px,3.4vw,40px);
  line-height:1;letter-spacing:-.02em;color:var(--ldr-gold);font-variant-numeric:tabular-nums;
}
.ldr-stat-label{font-size:var(--ldr-fs-md);color:var(--ldr-fg2)}
.ldr-stat[data-pendiente="true"] .ldr-stat-num{
  color:var(--ldr-warn-fg);font-size:var(--ldr-fs-md);font-weight:500;letter-spacing:0;
  padding:6px 10px;border:1px dashed rgba(245,158,11,.45);border-radius:var(--ldr-r-xs);
  background:var(--ldr-warn-bg);align-self:flex-start;
}
/* Marcador visible en desarrollo, jamás en producción */
.ldr-pendiente{
  display:inline-block;padding:4px 9px;border-radius:var(--ldr-r-xs);
  background:var(--ldr-warn-bg);border:1px dashed rgba(245,158,11,.45);
  color:var(--ldr-warn-fg);font-family:var(--ldr-mono);font-size:12px;
}

/* Chip / badge */
.ldr-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 11px;border-radius:var(--ldr-r-pill);
  background:var(--ldr-s2);border:1px solid var(--ldr-border);
  color:var(--ldr-fg2);font-size:12.5px;font-weight:600;
}
.ldr-chip--brand{background:rgba(254,193,0,.10);border-color:var(--ldr-border-brand);color:var(--ldr-gold)}
.ldr-chip--mono{font-family:var(--ldr-mono);font-weight:500;letter-spacing:.02em}
.ldr-chip--live::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--ldr-gold);
  animation:ldrPulse 1.5s var(--ldr-ease) infinite;
}
@keyframes ldrPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(254,193,0,.4)}50%{opacity:.55;box-shadow:0 0 0 5px rgba(254,193,0,0)}}

/* ------------------------------------------------------------ 10. FORMULARIO */
.ldr-form{margin-top:22px}
.ldr-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ldr-col2{grid-column:1 / -1}
.ldr-form label,.ldr-label{
  display:block;font-weight:600;font-size:var(--ldr-fs-xs);letter-spacing:var(--ldr-tr-wide);
  text-transform:uppercase;color:var(--ldr-fg2);margin-bottom:6px;
}
.ldr-req{color:var(--ldr-gold)}
.ldr-form input,.ldr-form select,.ldr-form textarea,.ldr-field{
  width:100%;padding:12px 14px;background:var(--ldr-s2);
  border:1px solid var(--ldr-border);border-radius:var(--ldr-r-sm);
  color:var(--ldr-fg1);font-family:var(--ldr-sans);font-weight:500;font-size:15px;
  line-height:1.4;outline:none;
  transition:border-color var(--ldr-t-micro) var(--ldr-ease),box-shadow var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-form textarea{resize:vertical;min-height:88px}
.ldr-form select{
  appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.ldr-form input::placeholder,.ldr-form textarea::placeholder{color:var(--ldr-fg3);opacity:1}
.ldr-form input:focus,.ldr-form select:focus,.ldr-form textarea:focus,.ldr-field:focus{
  border-color:var(--ldr-border-brand);box-shadow:var(--ldr-field-focus);
}
/* Teclado: además del anillo de campo, el anillo de foco del sistema */
.ldr-form input:focus-visible,.ldr-form select:focus-visible,.ldr-form textarea:focus-visible{
  outline:var(--ldr-focus-w) solid var(--ldr-focus-color);outline-offset:2px;
}
.ldr-form input[aria-invalid="true"],.ldr-form select[aria-invalid="true"],.ldr-form textarea[aria-invalid="true"]{
  border-color:rgba(239,68,68,.55);
}
.ldr-form-block{border-top:1px dashed var(--ldr-border);padding-top:16px}
.ldr-form-block-h{
  font-weight:600;font-size:var(--ldr-fs-xs);letter-spacing:var(--ldr-tr-wide);
  text-transform:uppercase;color:var(--ldr-fg2);margin-bottom:10px;
}
.ldr-form-block-h span{color:var(--ldr-gold);text-transform:none;letter-spacing:0}
.ldr-hint{margin:6px 0 0;color:var(--ldr-fg2);font-size:var(--ldr-fs-sm)}

/* Error de campo — ícono en máscara, sin dependencias */
.ldr-err{display:flex;gap:6px;align-items:center;margin-top:6px;color:var(--ldr-danger-fg);font-size:var(--ldr-fs-sm);font-weight:500}
.ldr-err::before{
  content:"";flex:none;width:14px;height:14px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Casilla de consentimiento (aviso de privacidad — obligatoria) */
.ldr-check{display:flex;align-items:flex-start;gap:10px;margin-top:16px;cursor:pointer}
.ldr-check input[type="checkbox"]{
  flex:none;width:20px;height:20px;margin:1px 0 0;appearance:none;-webkit-appearance:none;
  background:var(--ldr-s2);border:1px solid var(--ldr-border-strong);border-radius:var(--ldr-r-xs);
  cursor:pointer;transition:background var(--ldr-t-micro) var(--ldr-ease),border-color var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-check input[type="checkbox"]:checked{
  background:var(--ldr-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230a0f1a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;
  border-color:var(--ldr-gold);
}
.ldr-check span{font-size:13.5px;line-height:1.5;color:var(--ldr-fg2);text-transform:none;letter-spacing:0;font-weight:400}
.ldr-check a{font-weight:600}

/* Campo fuera de pantalla (accesible para lectores, invisible para humanos) */
.ldr-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
.ldr-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.ldr-submit{
  width:100%;margin-top:20px;padding:15px;
  background:var(--ldr-gold);color:var(--ldr-on-gold);border:none;border-radius:var(--ldr-r-md);
  font-family:var(--ldr-sans);font-weight:700;font-size:16px;cursor:pointer;
  box-shadow:var(--ldr-shadow-gold);
  transition:background var(--ldr-t-micro) var(--ldr-ease),transform 80ms var(--ldr-ease);
}
.ldr-submit:hover{background:var(--ldr-gold-400)}
.ldr-submit:active{transform:scale(.99)}
.ldr-submit:disabled{opacity:.6;cursor:not-allowed}
.ldr-form-foot{text-align:center;margin-top:14px;color:var(--ldr-fg3);font-size:var(--ldr-fs-sm)}
.ldr-form-foot a{font-weight:600}

@media (max-width:560px){ .ldr-form-grid{grid-template-columns:1fr} }

/* ------------------------------------------------- 11. AVISOS Y ÉXITO */
/* Flujo en línea, no flex: el texto del aviso lleva &lt;strong&gt; y &lt;a&gt; dentro,
   y como ítems flex se partirían en columnas y se leerían fuera de orden. */
.ldr-alert{
  display:block;margin-top:16px;padding:11px 14px;
  border-radius:var(--ldr-r-sm);font-size:13px;font-weight:500;line-height:1.45;
}
.ldr-alert.is-error{background:var(--ldr-danger-bg);border:1px solid rgba(239,68,68,.3);color:var(--ldr-danger-fg)}
.ldr-alert.is-warn{background:var(--ldr-warn-bg);border:1px solid rgba(245,158,11,.3);color:var(--ldr-warn-fg)}
.ldr-alert.is-info{background:rgba(34,72,160,.18);border:1px solid var(--ldr-border-strong);color:var(--ldr-fg2)}
.ldr-alert a{color:inherit;font-weight:700;text-decoration:underline}

.ldr-success{text-align:center;padding:26px 8px 8px;animation:ldrPop var(--ldr-t-panel) var(--ldr-ease) both}
.ldr-success-ic{
  width:56px;height:56px;margin:0 auto;border-radius:50%;
  background:var(--ldr-success-bg);display:flex;align-items:center;justify-content:center;color:var(--ldr-success);
}
.ldr-success-t{margin-top:14px;font-weight:700;font-size:21px;color:var(--ldr-fg1)}
.ldr-success-p{margin:8px auto 0;max-width:380px;color:var(--ldr-fg2);font-size:14px;line-height:1.5}
.ldr-wa{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:600;font-size:14px}
.ldr-reset{
  margin-top:16px;background:none;border:1px solid var(--ldr-border-strong);color:var(--ldr-fg2);
  font-family:var(--ldr-sans);font-weight:600;font-size:13px;padding:9px 16px;
  border-radius:var(--ldr-r-sm);cursor:pointer;
}
.ldr-reset:hover{border-color:var(--ldr-fg3);color:var(--ldr-fg1)}

/* ---------------------------------------------------------- 12. ROUTE STRIP */
/* Ancla visual de la marca. Estructura única, cuatro variantes:
   (a) .ldr-route            — tarjeta origen→destino en vivo (formulario)
   (b) .ldr-route--divider   — separador de sección, se anima al entrar en vista
   (c) .ldr-route--steps     — indicador de proceso / línea de tiempo
   (d) .ldr-route--header    — franja de encabezado de página
   Progreso: --ldr-progress (0–1) en el contenedor. El formulario en producción
   escribe width/left por JS: el estilo en línea gana y sigue funcionando igual. */
.ldr-route{
  --ldr-progress:0;
  background:var(--ldr-s1);border:1px solid var(--ldr-border);border-radius:var(--ldr-r-lg);
  padding:20px 22px 16px;margin-bottom:20px;
}
.ldr-route-top{display:flex;align-items:center;justify-content:space-between;gap:var(--ldr-space-3);margin-bottom:2px}
.ldr-route-track{position:relative;height:44px;margin:8px 6px 0}
.ldr-route-line{position:absolute;top:19px;left:8px;right:8px;height:3px;border-radius:2px;background:var(--ldr-s3)}
.ldr-route-fill{
  position:absolute;top:19px;left:8px;height:3px;border-radius:2px;background:var(--ldr-gold);
  width:calc(var(--ldr-progress) * (100% - 16px));
  transition:width .45s var(--ldr-ease);
}
.ldr-dot{
  position:absolute;top:11px;width:18px;height:18px;border-radius:50%;
  border:2px solid var(--ldr-border-strong);background:transparent;
  transition:background .3s var(--ldr-ease),border-color .3s var(--ldr-ease),box-shadow .3s var(--ldr-ease);
}
.ldr-dot-o{left:8px;transform:translateX(-50%)}
.ldr-dot-d{right:8px;transform:translateX(50%)}
.ldr-dot.on{background:var(--ldr-gold);border-color:var(--ldr-gold);box-shadow:0 0 0 4px rgba(254,193,0,.15)}
.ldr-truck{
  position:absolute;top:1px;left:calc(8px + (100% - 16px) * var(--ldr-progress));
  transform:translateX(-50%);color:var(--ldr-fg1);
  transition:left .45s var(--ldr-ease);
}
.ldr-route-labels{display:flex;justify-content:space-between;margin-top:2px}
.ldr-route-labels span{
  max-width:44%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--ldr-fg3);transition:color .3s var(--ldr-ease);
}
.ldr-route-labels span:last-child{text-align:right}
.ldr-route-labels span.on{color:var(--ldr-gold)}

/* (b) Separador de sección — sin tarjeta, ancho completo. Sin JS se ve al
   100 %; con JS (.is-inview) el camión recorre la pista una vez. */
.ldr-route--divider{
  --ldr-progress:1;
  background:none;border:0;border-radius:0;padding:0;margin:0;
}
.ldr-route--divider .ldr-route-track{height:36px;margin:0}
.ldr-route--divider .ldr-route-line,
.ldr-route--divider .ldr-route-fill{top:16px}
.ldr-route--divider .ldr-dot{top:8px;width:16px;height:16px}
.ldr-route--divider .ldr-dot{background:var(--ldr-gold);border-color:var(--ldr-gold)}
.ldr-route--divider .ldr-truck{top:0}
.ldr-route--divider.is-inview .ldr-route-fill{animation:ldrRun 2.2s var(--ldr-ease) both}
.ldr-route--divider.is-inview .ldr-truck{animation:ldrDrive 2.2s var(--ldr-ease) both}
@keyframes ldrRun{from{width:0}to{width:calc(100% - 16px)}}
@keyframes ldrDrive{from{left:8px}to{left:calc(100% - 8px)}}

/* (d) Franja de encabezado: la pista como regla superior de una página */
.ldr-route--header{--ldr-progress:.62;padding:0;margin:0 0 var(--ldr-space-5);background:none;border:0}
.ldr-route--header .ldr-route-track{height:24px;margin:0}
.ldr-route--header .ldr-route-line,.ldr-route--header .ldr-route-fill{top:10px;height:2px}
.ldr-route--header .ldr-dot{top:2px;width:12px;height:12px;border-width:2px}
.ldr-route--header .ldr-truck{display:none}

/* (c) Indicador de proceso: paradas posicionadas con --at (0–1) */
.ldr-route--steps{--ldr-progress:1;padding:var(--ldr-space-5) var(--ldr-space-5) var(--ldr-space-4)}
.ldr-route--steps .ldr-route-track{height:52px;margin:var(--ldr-space-2) 6px 0}
.ldr-route-stop{
  position:absolute;top:13px;left:calc(8px + (100% - 16px) * var(--at,0));
  transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;
  background:var(--ldr-bg);border:2px solid var(--ldr-gold);
}
.ldr-route-stop[data-state="done"]{background:var(--ldr-gold)}
.ldr-route-stop[data-state="todo"]{border-color:var(--ldr-border-strong);background:var(--ldr-s1)}
.ldr-route-steps-labels{
  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;
  gap:var(--ldr-space-2);margin-top:var(--ldr-space-2);
}
.ldr-route-steps-labels li{list-style:none}
.ldr-route-steps-labels{margin-block:var(--ldr-space-2) 0;padding:0}
.ldr-route-step-n{display:block;font-family:var(--ldr-mono);font-size:var(--ldr-fs-2xs);color:var(--ldr-gold);letter-spacing:.08em}
.ldr-route-step-t{display:block;margin-top:3px;font-size:13.5px;font-weight:600;color:var(--ldr-fg1);line-height:1.3}
@media (max-width:640px){
  .ldr-route--steps .ldr-route-track{display:none}
  .ldr-route-steps-labels{grid-auto-flow:row;gap:var(--ldr-space-3)}
  .ldr-route-steps-labels li{
    padding-left:var(--ldr-space-4);border-left:2px solid var(--ldr-border-brand);
  }
}

/* ----------------------------------------------- 13. LOGOS DE CLIENTES */
/* Conjunto homogéneo: mismo tamaño óptico, mismo tratamiento, orden alfabético.
   Sin destacados, sin tamaños distintos, sin texto que asocie marca y sector.
   8 de los 14 logos son JPG con fondo blanco opaco → .ldr-logo-chip--flat
   los normaliza a monocromo (invert + screen), de modo que el rectángulo
   blanco desaparece contra el chip. Escape: .ldr-logo-chip--light. */
.ldr-logos{
  display:flex;flex-wrap:wrap;gap:var(--ldr-space-3);
  margin:0;padding:0;list-style:none;
}
.ldr-logo-chip{
  flex:0 0 auto;
  display:grid;place-items:center;min-height:88px;min-width:132px;padding:var(--ldr-space-4) var(--ldr-space-5);
  background:var(--ldr-s2);border:1px solid var(--ldr-border);border-radius:var(--ldr-r-lg);
  transition:border-color var(--ldr-t-micro) var(--ldr-ease),background var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-logo-chip:hover{border-color:var(--ldr-border-strong);background:var(--ldr-s3)}
.ldr-logo-chip img{
  height:30px;width:auto;max-width:100%;object-fit:contain;
  filter:grayscale(1) brightness(0) invert(1);
  opacity:.7;transition:opacity var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-logo-chip:hover img{opacity:1}
/* JPG con fondo blanco opaco */
.ldr-logo-chip--flat img{
  filter:grayscale(1) invert(1) contrast(1.12) brightness(1.05);
  mix-blend-mode:screen;opacity:.78;
}
.ldr-logo-chip--flat:hover img{opacity:1}
/* Si el monocromo mata la legibilidad: chip claro + multiply (quita el blanco) */
.ldr-logo-chip--light{background:var(--ldr-chip-light);border-color:rgba(226,232,240,.25)}
.ldr-logo-chip--light:hover{background:#eef2f7}
.ldr-logo-chip--light img{filter:grayscale(1) contrast(1.05);mix-blend-mode:multiply;opacity:.82}
.ldr-logo-chip--light:hover img{opacity:1}

/* Tratamiento conmutable en conjunto: [data-treat="claro"] aplica el escape
   --light a toda la reja de una vez, para comparar los dos tratamientos. */
.ldr-logos[data-treat="claro"] .ldr-logo-chip{background:var(--ldr-chip-light);border-color:rgba(226,232,240,.25)}
.ldr-logos[data-treat="claro"] .ldr-logo-chip:hover{background:#eef2f7}
.ldr-logos[data-treat="claro"] .ldr-logo-chip img{filter:grayscale(1) contrast(1.05);mix-blend-mode:multiply;opacity:.82}
.ldr-logos[data-treat="claro"] .ldr-logo-chip:hover img{opacity:1}
/* El chip acepta un <image-slot> como hijo mientras no llegan los archivos.
   El tratamiento se aplica al host (shadow DOM: no alcanza al <img> interno)
   y solo cuando ya tiene imagen, para no invertir el marcador vacío. */
.ldr-logo-chip image-slot{width:100%;height:100%;min-height:56px;aspect-ratio:auto}
/* Solo mientras la casilla está vacía: sitio para el marcador de dos líneas.
   Al soltar el archivo el chip vuelve a sus 88px exactos. */
.ldr-logo-chip:has(image-slot:not([data-filled])){min-height:116px}
.ldr-logo-chip image-slot:not([data-filled]){min-height:84px}
.ldr-logo-chip image-slot[data-filled]{
  filter:grayscale(1) invert(1) contrast(1.12) brightness(1.05);
  mix-blend-mode:screen;opacity:.78;
  transition:opacity var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-logo-chip:hover image-slot[data-filled]{opacity:1}
.ldr-logos[data-treat="claro"] .ldr-logo-chip image-slot[data-filled]{
  filter:grayscale(1) contrast(1.05);mix-blend-mode:multiply;opacity:.82;
}
.ldr-logos[data-treat="claro"] .ldr-logo-chip:hover image-slot[data-filled]{opacity:1}

/* Variante tipográfica: el mismo chip con el nombre compuesto en Plus Jakarta
   Sans en lugar del logo. Es el respaldo cuando no hay archivo aprobado —
   conjunto perfectamente homogéneo, cero rectángulos disparejos, y no pone
   la marca de un tercero en un tratamiento que su manual no autoriza. */
.ldr-logo-chip--word{
  font-weight:700;font-size:14.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ldr-fg2);text-align:center;line-height:1.25;
  transition:color var(--ldr-t-micro) var(--ldr-ease),border-color var(--ldr-t-micro) var(--ldr-ease),background var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-logo-chip--word:hover{color:var(--ldr-fg1)}

/* Mapa: los SVG están dibujados para 1200 px. Por debajo de 768 px su propia
   tipografía caería bajo 12 px y los trazos de estado desaparecerían, así que
   el mapa no se muestra: en su lugar va el contenido en texto, que en esta
   página ya existe como tabla y como lista de corredores. */
.ldr-map{background:var(--ldr-s1);border:1px solid var(--ldr-border);border-radius:var(--ldr-r-xl);padding:var(--ldr-space-5)}
.ldr-map img{width:100%;height:auto;min-width:640px}
.ldr-map-scroll{overflow:hidden}
.ldr-map-alt{display:none}
@media (max-width:767px){
  .ldr-map{display:none}
  .ldr-map-alt{display:block}
}

/* ---------------------------------------------------------------- 14. TABLAS */
/* Información que hoy vive dentro de JPG: aquí va como HTML real.
   Bajo 768px cada fila se apila como tarjeta. Nunca scroll horizontal. */
.ldr-table-wrap{
  background:var(--ldr-s1);border:1px solid var(--ldr-border);
  border-radius:var(--ldr-r-xl);overflow:hidden;
}
.ldr-table{width:100%;border-collapse:collapse;font-size:14.5px}
.ldr-table caption{
  padding:var(--ldr-space-4) var(--ldr-space-5);text-align:left;
  font-size:var(--ldr-fs-xs);font-weight:600;letter-spacing:var(--ldr-tr-wider);
  text-transform:uppercase;color:var(--ldr-gold);border-bottom:1px solid var(--ldr-border);
}
.ldr-table th,.ldr-table td{padding:14px var(--ldr-space-5);text-align:left;vertical-align:middle}
.ldr-table thead th{
  background:var(--ldr-s2);color:var(--ldr-fg2);
  font-size:var(--ldr-fs-xs);font-weight:600;letter-spacing:var(--ldr-tr-wide);text-transform:uppercase;
  border-bottom:1px solid var(--ldr-border-strong);white-space:nowrap;
}
.ldr-table tbody tr{border-top:1px solid var(--ldr-border);transition:background var(--ldr-t-micro) var(--ldr-ease)}
.ldr-table tbody tr:hover{background:var(--ldr-s2)}
.ldr-table tbody th{font-weight:700;color:var(--ldr-fg1)}
.ldr-table td{color:var(--ldr-fg2)}
.ldr-table .ldr-num{font-family:var(--ldr-mono);font-variant-numeric:tabular-nums;color:var(--ldr-fg1)}
.ldr-table .ldr-num--key{color:var(--ldr-gold);font-weight:600}

@media (max-width:767px){
  .ldr-table-wrap{background:none;border:0;border-radius:0;overflow:visible}
  .ldr-table,.ldr-table tbody,.ldr-table tr,.ldr-table td,.ldr-table th{display:block}
  .ldr-table thead{display:none}
  .ldr-table caption{
    padding:0 0 var(--ldr-space-3);border:0;
  }
  .ldr-table tbody tr{
    border:1px solid var(--ldr-border);border-radius:var(--ldr-r-lg);
    background:var(--ldr-s1);padding:var(--ldr-space-4);margin-bottom:var(--ldr-space-3);
  }
  .ldr-table tbody tr:hover{background:var(--ldr-s1)}
  .ldr-table tbody th{padding:0 0 var(--ldr-space-3);font-size:var(--ldr-fs-lg)}
  .ldr-table tbody td{
    display:flex;align-items:baseline;justify-content:space-between;gap:var(--ldr-space-4);
    padding:8px 0;border-top:1px solid var(--ldr-border);
  }
  .ldr-table tbody td::before{
    content:attr(data-label);flex:none;
    font-size:var(--ldr-fs-xs);font-weight:600;letter-spacing:var(--ldr-tr-wide);
    text-transform:uppercase;color:var(--ldr-fg2);
  }
}

/* ------------------------------------------------------------------ 15. FAQ */
/* <details>/<summary> nativo: accesible y sin JS. */
.ldr-faq{
  display:grid;gap:var(--ldr-space-2);max-width:860px;margin:0;padding:0;list-style:none;
}
.ldr-faq-item{
  background:var(--ldr-s1);border:1px solid var(--ldr-border);border-radius:var(--ldr-r-lg);
  transition:border-color var(--ldr-t-micro) var(--ldr-ease),background var(--ldr-t-micro) var(--ldr-ease);
}
.ldr-faq-item:hover{border-color:var(--ldr-border-strong)}
.ldr-faq-item[open]{background:var(--ldr-s2);border-color:var(--ldr-border-strong)}
.ldr-faq-item summary{
  display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ldr-space-4);
  padding:18px var(--ldr-space-5);cursor:pointer;list-style:none;
  font-weight:700;font-size:var(--ldr-fs-base);color:var(--ldr-fg1);
}
.ldr-faq-item summary::-webkit-details-marker{display:none}
.ldr-faq-item summary::after{
  content:"";flex:none;width:20px;height:20px;margin-top:1px;background:var(--ldr-gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform var(--ldr-t-fast) var(--ldr-ease);
}
.ldr-faq-item[open] summary::after{transform:rotate(180deg)}
.ldr-faq-body{
  padding:0 var(--ldr-space-5) var(--ldr-space-5);
  color:var(--ldr-fg2);font-size:var(--ldr-fs-base);line-height:var(--ldr-lh-loose);
}
.ldr-faq-body>*:first-child{margin-top:0}
.ldr-faq-body p{margin:0 0 var(--ldr-space-3)}
.ldr-faq-body p:last-child{margin-bottom:0}
/* Nota de precisión: para condiciones que no admiten ambigüedad */
.ldr-faq-note{
  margin-top:var(--ldr-space-3);padding:12px 14px;
  background:var(--ldr-s3);border-left:2px solid var(--ldr-gold);border-radius:var(--ldr-r-xs);
  color:var(--ldr-fg1);font-size:14px;font-weight:600;line-height:1.5;
}

/* ------------------------------------------------------------ 16. UTILIDADES */
.ldr-flow>*+*{margin-top:var(--ldr-space-4)}
.ldr-mt-4{margin-top:var(--ldr-space-4)}
.ldr-mt-5{margin-top:var(--ldr-space-5)}
.ldr-mt-6{margin-top:var(--ldr-space-6)}
.ldr-mt-7{margin-top:var(--ldr-space-7)}
.ldr-center{text-align:center}
.ldr-max-prose{max-width:var(--ldr-max-prose)}
.ldr-grid-overlay{
  position:relative;
}
/* Trama de blueprint al 4 %: única textura de fondo autorizada */
.ldr-grid-overlay::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(226,232,240,.04) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(226,232,240,.04) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 40%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 40%,transparent 100%);
}
.ldr-grid-overlay>*{position:relative;z-index:1}

/* --------------------------------------------------------------- 17. MOTION */
@keyframes ldrUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes ldrPop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.ldr-anim-up{animation:ldrUp .5s var(--ldr-ease) both}
/* Una entrada por sección: leider.js añade .is-inview */
.ldr-reveal{opacity:0;transform:translateY(18px);transition:opacity var(--ldr-t-panel) var(--ldr-ease),transform var(--ldr-t-panel) var(--ldr-ease)}
.ldr-reveal.is-inview{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .ldr-reveal{opacity:1;transform:none}
  .ldr-route--divider .ldr-route-fill{width:calc(100% - 16px)}
  .ldr-route--divider .ldr-truck{left:calc(100% - 8px)}
}

/* Impresión: el aviso de privacidad se imprime en claro */
@media print{
  body{background:#fff;color:#000}
  .ldr-header,.ldr-bar,.ldr-footer,.ldr-route,.ldr-menu{display:none!important}
  .ldr-card,.ldr-table-wrap{border-color:#ccc;background:#fff;box-shadow:none}
}
