/* ==========================================================================
   AVENDAÑO TRUCKING — style.css
   Hoja de estilos única del sitio (sin frameworks). Organizada por bloques:
   Tokens -> Reveal/animaciones -> Franja de firma -> Topbar -> Header/Nav
   -> Botones -> Hero -> Secciones -> Galería/Lightbox -> Contacto
   -> Footer -> Botón flotante de WhatsApp -> Responsive.
   ========================================================================== */

/* ==========================================================================
   DESIGN TOKENS
   ✏️ REEMPLAZAR AQUÍ para cambiar los colores o tipografías de TODO el
   sitio de una sola vez (todo el CSS usa estas variables, no colores
   sueltos). Por ejemplo, para cambiar el acento ámbar por otro color,
   basta con editar --amber y --amber-dark.
   ========================================================================== */
:root{
  /* Color — paleta navy / blanco / gris + acento ámbar (cinta reflejante) */
  --navy-900:#0B1F3A;   /* navy principal: header, footer, fondos oscuros */
  --navy-800:#122A4C;
  --navy-700:#1B3A63;
  --navy-600:#28507F;
  --white:#FFFFFF;
  --gray-50:#F5F6F8;    /* fondo de secciones claras */
  --gray-100:#EDEFF2;
  --gray-200:#DFE3E8;   /* bordes sutiles */
  --gray-500:#697386;   /* texto secundario */
  --gray-700:#37414F;   /* texto de párrafo */
  --amber:#F2A900;      /* acento: botones, íconos, franja de firma */
  --amber-dark:#C98600; /* hover del acento */

  /* Tipografía — ✏️ REEMPLAZAR si se cambia la fuente; recuerda también
     actualizar el <link> de Google Fonts en el <head> de index.html */
  --font-display:'Barlow Condensed', sans-serif; /* títulos */
  --font-body:'Inter', sans-serif;               /* texto general */
  --font-mono:'IBM Plex Mono', monospace;        /* teléfonos y etiquetas */

  /* Layout */
  --container:1180px;  /* ancho máximo del contenido */
  --radius:10px;       /* radio de esquinas por defecto */
  --header-h:96px;     /* alto del header antes de encogerse al hacer scroll */
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:120px; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--gray-700);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,dl,dd{ margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}

.icon{ width:18px; height:18px; flex-shrink:0; }

/* ==========================================================================
   Reveal on scroll
   ========================================================================== */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}

/* ==========================================================================
   Signature element — reflective safety stripe
   (evoca la cinta reflejante navy/ámbar de las cajas secas reales)
   ========================================================================== */
.stripe{
  height:10px;
  width:100%;
  background:repeating-linear-gradient(
    -45deg,
    var(--amber) 0, var(--amber) 18px,
    var(--navy-900) 18px, var(--navy-900) 36px
  );
}
.stripe--top{
  position:absolute;
  top:var(--header-h);
  left:0; z-index:2;
}
.stripe--footer{ height:8px; }

/* ==========================================================================
   Topbar
   ========================================================================== */
.topbar{
  background:var(--navy-900);
  color:var(--gray-200);
  font-family:var(--font-mono);
  font-size:12.5px;
}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:38px;
  gap:16px;
}
.topbar__contact{ display:flex; gap:22px; }
.topbar__link{ display:flex; align-items:center; gap:6px; opacity:.9; transition:opacity .2s; }
.topbar__link .icon{ width:13px; height:13px; }
.topbar__link:hover{ opacity:1; color:var(--amber); }
.topbar__tag{ opacity:.65; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:720px){ .topbar__tag{ display:none; } }

/* ==========================================================================
   Header
   ========================================================================== */
.header{
  position:sticky; top:0; z-index:50;
  height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(11,31,58,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:height .25s ease, background .25s ease;
}
.header.is-scrolled{
  height:72px;
  background:rgba(11,31,58,.94);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
}

.brand{ display:flex; align-items:center; gap:12px; }
.brand__mark{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  background:var(--amber);
  color:var(--navy-900);
  font-family:var(--font-display);
  font-weight:800;
  font-size:17px;
  border-radius:6px;
  letter-spacing:.5px;
}
.brand__mark--light{ background:var(--amber); }
.brand__text{
  font-family:var(--font-display);
  font-weight:700;
  font-size:22px;
  color:var(--white);
  letter-spacing:.5px;
  line-height:1;
}
.brand__text em{
  display:block;
  font-style:normal;
  font-weight:600;
  font-size:12px;
  letter-spacing:3px;
  color:var(--amber);
  margin-top:2px;
}

.nav{ display:flex; gap:24px; }
.nav__link{
  font-size:14.5px; font-weight:500;
  color:var(--gray-200);
  position:relative;
  padding:6px 0;
  transition:color .2s;
}
.nav__link::after{
  content:'';
  position:absolute; left:0; bottom:0;
  width:0; height:2px; background:var(--amber);
  transition:width .25s ease;
}
.nav__link:hover{ color:var(--white); }
.nav__link:hover::after{ width:100%; }

.header__cta{ white-space:nowrap; }

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px; height:38px;
  background:transparent;
  border:none;
  padding:0;
}
.nav-toggle span{
  display:block; height:2px; width:100%;
  background:var(--white);
  transition:transform .25s, opacity .25s;
}
.nav-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:13px 26px;
  font-family:var(--font-body);
  font-weight:600; font-size:14.5px;
  border-radius:7px;
  border:1.5px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn--amber{
  background:var(--amber); color:var(--navy-900);
  box-shadow:0 6px 18px rgba(242,169,0,.28);
}
.btn--amber:hover{ background:var(--amber-dark); transform:translateY(-2px); box-shadow:0 10px 22px rgba(242,169,0,.34); }

.btn--outline{
  background:transparent; color:var(--white);
  border-color:rgba(255,255,255,.5);
}
.btn--outline:hover{ border-color:var(--amber); color:var(--amber); transform:translateY(-2px); }

.btn--whatsapp{
  background:#25D366; color:var(--white);
  width:100%;
  margin-top:6px;
}
.btn--whatsapp:hover{ background:#1FBB59; transform:translateY(-2px); }

.btn--lg{ padding:16px 30px; font-size:15.5px; }
.btn--block{ width:100%; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;
  min-height:92vh;
  display:flex; align-items:center;
  overflow:hidden;
  color:var(--white);
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,31,58,.88) 0%, rgba(11,31,58,.80) 35%, rgba(11,31,58,.94) 100%);
}
.hero__content{ position:relative; z-index:1; padding-top:60px; padding-bottom:40px; }

.eyebrow{
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:2px; text-transform:uppercase;
  color:var(--amber);
  margin:0 0 18px;
}
.eyebrow--light{ color:var(--amber); }

.hero__title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(52px,9vw,108px);
  line-height:.95;
  letter-spacing:.5px;
  margin:0 0 20px;
}
.hero__title span{ color:var(--amber); }

.hero__subtitle{
  font-size:clamp(17px,2.2vw,21px);
  font-weight:400;
  color:var(--gray-200);
  max-width:560px;
  margin:0 0 36px;
}

.hero__actions{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:56px; }

.hero__meta{
  display:flex; gap:40px;
  flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.18);
  padding-top:26px;
  max-width:640px;
}
.hero__meta dt{
  font-family:var(--font-mono);
  font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--gray-500);
  margin-bottom:6px;
}
.hero__meta dd{
  font-family:var(--font-display);
  font-weight:600; font-size:19px;
  color:var(--white);
  margin:0;
}

.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  width:26px; height:42px;
  border:2px solid rgba(255,255,255,.5);
  border-radius:20px;
  z-index:1;
}
.scroll-cue span{
  position:absolute; top:8px; left:50%; transform:translateX(-50%);
  width:4px; height:8px; border-radius:2px;
  background:var(--amber);
  animation:scrollCue 1.8s ease infinite;
}
@keyframes scrollCue{
  0%{ opacity:1; top:8px; }
  70%{ opacity:0; top:22px; }
  100%{ opacity:0; top:8px; }
}

/* ==========================================================================
   Sections — shared
   ========================================================================== */
.section{ padding:110px 0; }
.section--alt{ background:var(--gray-50); }

.section__title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(34px,4.4vw,50px);
  line-height:1.05;
  color:var(--navy-900);
  margin:0 0 18px;
}
.section__title--light{ color:var(--white); }
.section__lead{
  font-size:17px; color:var(--gray-500);
  max-width:560px;
  margin:0 0 56px;
}

.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; color:var(--navy-900);
  border-bottom:2px solid var(--amber);
  padding-bottom:3px;
  transition:gap .2s ease, color .2s ease;
}
.link-arrow .icon{ width:16px; height:16px; transition:transform .2s ease; }
.link-arrow:hover{ gap:13px; color:var(--navy-700); }

/* ==========================================================================
   Sobre nosotros
   ========================================================================== */
.about{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:70px;
  align-items:start;
}
.about__p{ font-size:16.5px; line-height:1.75; color:var(--gray-700); margin:0 0 30px; }

.about__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-top:56px;
}
.feature-card{
  padding:26px 22px;
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.feature-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 32px rgba(11,31,58,.08);
  border-color:var(--navy-900);
}
.feature-card__icon{
  width:42px; height:42px;
  display:flex; align-items:center; justify-content:center;
  border-radius:8px;
  background:var(--navy-900);
  color:var(--amber);
  margin-bottom:16px;
}
.feature-card__icon svg{ width:21px; height:21px; }
.feature-card h3{
  font-family:var(--font-display);
  font-size:19px; font-weight:600;
  color:var(--navy-900);
  margin:0 0 8px;
}
.feature-card p{ font-size:14.5px; color:var(--gray-500); margin:0; line-height:1.55; }

/* ==========================================================================
   Servicios — tarjeta con imagen + icono + descripción + botón
   ========================================================================== */
.services{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.service-card{
  position:relative;
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:14px;
  overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.service-card:hover{ transform:translateY(-6px); box-shadow:0 20px 36px rgba(11,31,58,.1); }

.service-card__img{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.service-card__img img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.service-card:hover .service-card__img img{ transform:scale(1.06); }
.service-card__img::after{
  /* degradado para que el icono flotante siempre se lea bien */
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(11,31,58,.55) 100%);
}
.service-card__icon{
  position:absolute; left:18px; bottom:-22px; z-index:2;
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:var(--amber);
  color:var(--navy-900);
  box-shadow:0 8px 18px rgba(11,31,58,.25);
}
.service-card__icon svg{ width:22px; height:22px; }

.service-card__body{ padding:34px 24px 26px; }
.service-card__body h3{
  font-family:var(--font-display);
  font-size:20px; font-weight:600;
  color:var(--navy-900);
  margin:0 0 10px;
}
.service-card__body p{ font-size:14.5px; color:var(--gray-500); line-height:1.6; margin:0 0 18px; }

.link-arrow--sm{ font-size:13.5px; }

/* ==========================================================================
   Por qué elegirnos
   ========================================================================== */
.why{
  position:relative;
  background:var(--navy-900);
  color:var(--white);
  overflow:hidden;
}
.why__bg{ position:absolute; inset:0; z-index:0; opacity:.16; }
.why__bg img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1); }
.why .container{ position:relative; z-index:1; }
.why .section__lead{ color:var(--gray-200); }

.why__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:20px;
}
.why__grid--7{ grid-template-columns:repeat(4,1fr); }
.why-card{
  padding:30px 24px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius);
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}
.why-card:hover{
  background:rgba(255,255,255,.07);
  border-color:var(--amber);
  transform:translateY(-4px);
}
.why-card__check{
  width:26px; height:26px;
  color:var(--amber);
  margin-bottom:18px;
}
.why-card__label{
  display:block;
  font-family:var(--font-mono);
  font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--gray-500);
  margin-bottom:8px;
}
.why-card__value{
  display:block;
  font-family:var(--font-display);
  font-size:23px; font-weight:600;
  color:var(--white);
}

/* ==========================================================================
   Galería
   ========================================================================== */
.gallery{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.gallery__item{
  position:relative;
  display:block;
  padding:0; border:none;
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:4/3;
  background:var(--gray-100);
}
.gallery__item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.gallery__item:hover img{ transform:scale(1.08); }
.gallery__caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:14px 16px 12px;
  background:linear-gradient(0deg, rgba(11,31,58,.9), transparent);
  color:var(--white);
  font-size:13.5px; font-weight:600;
  text-align:left;
  opacity:0; transform:translateY(8px);
  transition:opacity .25s ease, transform .25s ease;
}
.gallery__item:hover .gallery__caption{ opacity:1; transform:translateY(0); }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(11,31,58,.94);
  display:flex; align-items:center; justify-content:center;
  padding:40px;
  opacity:0; visibility:hidden;
  transition:opacity .25s ease;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{
  max-width:min(1100px,100%); max-height:86vh;
  border-radius:8px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.lightbox__close{
  position:absolute; top:26px; right:32px;
  width:44px; height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:var(--white);
  border:1px solid rgba(255,255,255,.3);
  font-size:26px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, transform .2s ease;
}
.lightbox__close:hover{ background:var(--amber); color:var(--navy-900); transform:rotate(90deg); }

/* ==========================================================================
   Contacto
   ========================================================================== */
.contact{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:60px;
}
.contact__info{ display:flex; flex-direction:column; gap:14px; }
.contact-block{
  display:flex; align-items:center; gap:16px;
  padding:20px 22px;
  background:var(--gray-50);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  transition:border-color .2s ease, transform .2s ease;
}
.contact-block:hover{ border-color:var(--navy-900); transform:translateX(4px); }
.contact-block__icon{
  width:44px; height:44px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:var(--navy-900);
  color:var(--amber);
}
.contact-block__label{
  display:block;
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--gray-500);
  margin-bottom:4px;
}
.contact-block__value{
  display:block;
  font-family:var(--font-mono);
  font-size:18px; font-weight:600;
  color:var(--navy-900);
}
.contact__note{
  margin-top:16px;
  padding:20px 22px;
  border-left:3px solid var(--amber);
  background:var(--gray-50);
  border-radius:0 var(--radius) var(--radius) 0;
}
.contact__note p{ margin:0 0 4px; font-size:14px; color:var(--gray-500); }
.contact__note p:first-child{ color:var(--navy-900); }

.contact-form{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:14px;
  padding:36px;
  box-shadow:0 20px 50px rgba(11,31,58,.06);
}
.form-row{ margin-bottom:18px; }
.form-row--split{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-row label{
  display:block;
  font-size:13px; font-weight:600;
  color:var(--navy-900);
  margin-bottom:7px;
}
.form-row input, .form-row textarea{
  width:100%;
  padding:12px 14px;
  font-family:var(--font-body);
  font-size:14.5px;
  color:var(--gray-700);
  background:var(--gray-50);
  border:1.5px solid var(--gray-200);
  border-radius:7px;
  transition:border-color .2s ease, background .2s ease;
  resize:vertical;
}
.form-row input:focus, .form-row textarea:focus{
  outline:none;
  border-color:var(--navy-900);
  background:var(--white);
}
.contact-form__note{
  font-size:12.5px; color:var(--gray-500);
  text-align:center;
  margin:12px 0 0;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{ background:var(--navy-900); color:var(--gray-200); }

.footer__bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:18px 0;
}
.footer__bottom p{
  margin:0; font-size:12.5px; color:var(--gray-500); text-align:center;
}

/* ==========================================================================
   Floating WhatsApp button
   ========================================================================== */
.float-whatsapp{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:58px; height:58px;
  display:flex; align-items:center; justify-content:center;
  background:#25D366; color:var(--white);
  border-radius:50%;
  box-shadow:0 10px 26px rgba(37,211,102,.45);
  animation:pulse 2.6s ease infinite;
  transition:transform .2s ease;
}
.float-whatsapp:hover{ transform:scale(1.08); }
.float-whatsapp svg{ width:29px; height:29px; }
@keyframes pulse{
  0%,100%{ box-shadow:0 10px 26px rgba(37,211,102,.45); }
  50%{ box-shadow:0 10px 26px rgba(37,211,102,.15); }
}

/* ==========================================================================
   ACCESIBILIDAD — skip link y foco visible con teclado
   ========================================================================== */
.skip-link{
  position:fixed;
  top:-60px; left:16px;
  z-index:300;
  background:var(--amber);
  color:var(--navy-900);
  font-weight:700;
  padding:12px 20px;
  border-radius:0 0 8px 8px;
  transition:top .2s ease;
}
.skip-link:focus{ top:0; }

/* Anillo de foco consistente con la marca para navegación por teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:2.5px solid var(--amber);
  outline-offset:3px;
  border-radius:4px;
}

/* ==========================================================================
   HERO — parallax ligero (controlado por script.js, respeta reduced-motion)
   ========================================================================== */
.hero__bg img{
  width:100%; height:100%; object-fit:cover;
  transform:translateY(var(--parallax-y, 0px)) scale(1.08);
  will-change:transform;
}

/* ==========================================================================
   SOBRE NOSOTROS — fotografía junto al texto
   ========================================================================== */
.about{
  grid-template-columns:1.1fr .9fr;
}
.about__photo{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  aspect-ratio:3/4;
  box-shadow:0 24px 50px rgba(11,31,58,.16);
}
.about__photo::after{
  /* Marco sutil en ámbar, detalle de marca sobre la fotografía */
  content:'';
  position:absolute; inset:14px;
  border:1.5px solid rgba(242,169,0,.55);
  border-radius:8px;
  pointer-events:none;
}
.about__photo img{
  width:100%; height:100%; object-fit:cover;
}

/* ==========================================================================
   TIMELINE — "Nuestro proceso" (no es historial de fechas inventado)
   ========================================================================== */
.timeline{
  margin-top:90px;
  padding-top:60px;
  border-top:1px solid var(--gray-200);
}
.timeline__title{
  font-family:var(--font-display);
  font-size:clamp(26px,3vw,34px);
  font-weight:700;
  color:var(--navy-900);
  margin:0 0 40px;
}
.timeline__list{
  list-style:none;
  margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  counter-reset:step;
}
.timeline__step{
  position:relative;
  padding-top:20px;
}
.timeline__step::before{
  /* línea conectora entre pasos */
  content:'';
  position:absolute;
  top:19px; left:calc(50% + 26px); right:calc(-50% + 26px);
  height:2px;
  background:var(--gray-200);
}
.timeline__step:last-child::before{ display:none; }
.timeline__num{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  border-radius:50%;
  background:var(--navy-900);
  color:var(--amber);
  font-family:var(--font-display);
  font-weight:700; font-size:17px;
  margin-bottom:16px;
  position:relative; z-index:1;
}
.timeline__step h4{
  font-family:var(--font-display);
  font-size:17.5px; font-weight:600;
  color:var(--navy-900);
  margin:0 0 6px;
}
.timeline__step p{
  font-size:14px; color:var(--gray-500);
  line-height:1.55; margin:0;
}

/* ==========================================================================
   CAJAS DISPONIBLES (Inventario)
   ========================================================================== */
.inventory{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.inventory-card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:14px;
  overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.inventory-card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 42px rgba(11,31,58,.12);
}
.inventory-card__img{ position:relative; aspect-ratio:4/3; }
.inventory-card__img img{ width:100%; height:100%; object-fit:cover; }
.inventory-card__badge{
  position:absolute; top:14px; right:14px;
  background:var(--amber);
  color:var(--navy-900);
  font-size:12px; font-weight:700;
  padding:6px 12px;
  border-radius:999px;
  letter-spacing:.3px;
}
.inventory-card__body{ padding:24px; }
.inventory-card__body h3{
  font-family:var(--font-display);
  font-size:22px; font-weight:600;
  color:var(--navy-900);
  margin:0 0 14px;
}
.inventory-card__specs{
  display:flex; gap:24px;
  margin:0 0 20px;
  padding-bottom:18px;
  border-bottom:1px solid var(--gray-200);
}
.inventory-card__specs dt{
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--gray-500);
  margin-bottom:4px;
}
.inventory-card__specs dd{
  font-weight:600; color:var(--navy-900); margin:0;
}
.inventory-card__desc{
  font-size:14px; color:var(--gray-500); line-height:1.6;
  margin:0 0 20px;
}

.btn--outline-navy{
  background:transparent;
  color:var(--navy-900);
  border:1.5px solid var(--navy-900);
}
.btn--outline-navy:hover{
  background:var(--navy-900);
  color:var(--white);
  transform:translateY(-2px);
}

/* ==========================================================================
   CTA — banda de conversión (fondo navy, botón ámbar)
   ========================================================================== */
.cta-banner{
  background:var(--navy-900);
  background-image:
    linear-gradient(135deg, rgba(242,169,0,.08) 0%, transparent 40%),
    linear-gradient(var(--navy-900), var(--navy-900));
}
.cta-banner__inner{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:24px;
  padding:64px 0;
}
.cta-banner__inner h2{
  font-family:var(--font-display);
  font-size:clamp(28px,3.6vw,40px);
  font-weight:700;
  color:var(--white);
  margin:0 0 6px;
}
.cta-banner__inner p{
  font-size:16.5px;
  color:var(--gray-200);
  margin:0;
}

/* ==========================================================================
   CONTACTO — tarjetas rápidas (teléfono / correo / ubicación)
   ========================================================================== */
.contact-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:44px;
}
.contact-cards .contact-block{ margin:0; }
.contact-block--static{ cursor:default; }
.contact-block--static:hover{ border-color:var(--gray-200); transform:none; }
.contact-block__value--sm{ font-size:13.5px; line-height:1.35; }

.btn--whatsapp-lg{
  width:100%;
  padding:18px 26px;
  font-size:16px;
}

/* ==========================================================================
   MAPA
   ========================================================================== */
.map{
  margin-top:50px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--gray-200);
  filter:grayscale(.15);
}
.map iframe{ display:block; }

/* ==========================================================================
   FOOTER — rediseño en columnas
   ========================================================================== */
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:50px;
  padding:64px 24px 48px;
}
.footer__col h4{
  font-family:var(--font-display);
  font-size:15px; font-weight:600;
  letter-spacing:.5px; text-transform:uppercase;
  color:var(--gray-200);
  margin:0 0 20px;
}
.footer__col--brand .brand{ margin-bottom:18px; }
.footer__desc{
  font-size:14px; line-height:1.65;
  color:var(--gray-500);
  max-width:340px;
  margin:0 0 22px;
}
.footer__social{ display:flex; gap:12px; }
.footer__social-link{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:var(--gray-200);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.footer__social-link svg{ width:17px; height:17px; }
.footer__social-link:hover{
  background:var(--amber);
  color:var(--navy-900);
  border-color:var(--amber);
}
.footer__col .footer__nav{ display:flex; flex-direction:column; gap:12px; font-size:14px; }
.footer__contact{ display:flex; flex-direction:column; gap:12px; font-size:14px; font-family:var(--font-mono); }
.footer__contact a, .footer__contact span{ color:var(--gray-200); }
.footer__contact a:hover{ color:var(--amber); }

/* ==========================================================================
   INDUSTRIAS QUE ATENDEMOS
   ========================================================================== */
.industries{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.industry-card{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  text-align:center;
  padding:28px 16px;
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.industry-card:hover{
  transform:translateY(-4px);
  border-color:var(--amber);
  box-shadow:0 14px 28px rgba(11,31,58,.08);
}
.industry-card svg{
  width:30px; height:30px;
  color:var(--navy-900);
}
.industry-card span{
  font-family:var(--font-display);
  font-size:15.5px; font-weight:600;
  color:var(--navy-900);
}

/* ==========================================================================
   GALERÍA — filtros por categoría
   ========================================================================== */
.gallery-filters{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-bottom:36px;
}
.gallery-filter{
  padding:9px 18px;
  font-size:13.5px; font-weight:600;
  color:var(--navy-900);
  background:var(--white);
  border:1.5px solid var(--gray-200);
  border-radius:999px;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.gallery-filter:hover{ border-color:var(--navy-900); }
.gallery-filter.is-active{
  background:var(--navy-900);
  border-color:var(--navy-900);
  color:var(--amber);
}
.gallery__item.is-hidden{ display:none; }
.gallery__empty{
  text-align:center;
  color:var(--gray-500);
  padding:40px 0;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1024px){
  .about{ grid-template-columns:1fr; }
  .about__photo{ aspect-ratio:16/9; max-width:520px; }
  .services{ grid-template-columns:repeat(2,1fr); }
  .why__grid{ grid-template-columns:repeat(2,1fr); }
  .why__grid--7{ grid-template-columns:repeat(2,1fr); }
  .contact{ grid-template-columns:1fr; }
  .contact-cards{ grid-template-columns:repeat(2,1fr); }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .inventory{ grid-template-columns:repeat(2,1fr); }
  .industries{ grid-template-columns:repeat(3,1fr); }
  .timeline__list{ grid-template-columns:repeat(2,1fr); row-gap:36px; }
  .timeline__step::before{ display:none; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .footer__col--brand{ grid-column:1 / -1; }
}

@media (max-width:860px){
  .nav{
    position:fixed; top:var(--header-h); left:0; right:0;
    flex-direction:column;
    background:var(--navy-900);
    padding:10px 24px 26px;
    gap:4px;
    transform:translateY(-12px);
    opacity:0; visibility:hidden;
    transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
    border-bottom:1px solid rgba(255,255,255,.08);
    max-height:80vh;
    overflow-y:auto;
  }
  .nav.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
  .nav__link{ padding:12px 0; border-bottom:1px solid rgba(255,255,255,.06); }
  .header__cta{ display:none; }
  .nav-toggle{ display:flex; }
  .about__grid{ grid-template-columns:1fr; }
  .industries{ grid-template-columns:repeat(2,1fr); }
  .cta-banner__inner{ flex-direction:column; align-items:flex-start; text-align:left; }
}

@media (max-width:640px){
  .section{ padding:76px 0; }
  .services{ grid-template-columns:1fr; }
  .why__grid{ grid-template-columns:1fr; }
  .why__grid--7{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:1fr; }
  .inventory{ grid-template-columns:1fr; }
  .industries{ grid-template-columns:1fr 1fr; }
  .contact-cards{ grid-template-columns:1fr; }
  .timeline__list{ grid-template-columns:1fr; }
  .form-row--split{ grid-template-columns:1fr; }
  .hero__meta{ gap:26px; }
  .contact-form{ padding:26px; }
  .footer__grid{ grid-template-columns:1fr; padding:56px 24px 40px; }
  .footer__col--brand{ grid-column:auto; }
  .footer__desc{ max-width:none; }
  .topbar__contact{ gap:14px; }
  .cta-banner__inner{ padding:48px 0; }
}
