/* ============================================================
   HEREDIA TRANSPORT INC. — Sistema de diseño
   Cross-border freight carrier · México – Estados Unidos
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Barlow+Condensed:wght@600;700&display=swap');

:root{
  /* --- Paleta (azul cielo + azul marino del logotipo, negro, plata) --- */
  --negro:        #0a0d12;
  --negro-2:      #12161e;
  --negro-3:      #1b212b;
  --vino:         #0b2d63;
  --vino-2:       #071c40;
  --vino-brillo:  #1487d9;
  --vino-glow:    #0ea5f9;
  --azul:         #0c4a8c;
  --azul-2:       #0a5fae;
  --azul-brillo:  #38b6ff;
  --plata:        #c7cdd6;
  --plata-2:      #8b93a1;
  --blanco:       #f8f7f4;
  --blanco-2:     #eeece6;
  --texto-claro:  #f4f2ee;
  --texto-tenue:  #b7bcc4;
  --texto-tenue-oscuro: #565b63;
  --texto-oscuro: #171a1f;
  --linea:        rgba(199,205,214,.14);

  --gradiente-heroe: linear-gradient(180deg, rgba(10,13,18,.08) 0%, rgba(10,13,18,.22) 38%, rgba(10,13,18,.58) 74%, rgba(10,13,18,.86) 100%), linear-gradient(100deg, rgba(10,13,18,.55) 0%, rgba(10,13,18,.2) 32%, transparent 58%);
  --gradiente-vino: linear-gradient(135deg, var(--vino-2) 0%, var(--vino) 55%, var(--vino-brillo) 100%);
  --gradiente-oscuro: linear-gradient(180deg, var(--negro) 0%, var(--negro-2) 100%);

  --fuente-titulo: 'Oswald', 'Barlow Condensed', sans-serif;
  --fuente-cuerpo: 'Barlow', 'Inter', sans-serif;

  --radio: 6px;
  --radio-lg: 14px;
  --sombra: 0 20px 50px -20px rgba(0,0,0,.55);
  --transicion: .35s cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--fuente-cuerpo);
  background:var(--blanco);
  color:var(--texto-oscuro);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}

/* ============================================================
   TEXTURA DE FONDO — abstracta, ligada al movimiento (no cuadriculada)
   ============================================================ */
.textura-flujo{
  position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  opacity:.55; mix-blend-mode:normal;
}
.textura-flujo span{
  position:absolute; border-radius:50%; filter:blur(60px);
  opacity:.16; will-change:transform;
}
.textura-flujo span:nth-child(1){ width:52vw; height:52vw; left:-18vw; top:-14vw; background:radial-gradient(circle, var(--vino-brillo), transparent 70%); animation:flujo1 34s ease-in-out infinite; }
.textura-flujo span:nth-child(2){ width:44vw; height:44vw; right:-14vw; top:22vw; background:radial-gradient(circle, var(--azul-brillo), transparent 70%); animation:flujo2 40s ease-in-out infinite; }
.textura-flujo span:nth-child(3){ width:38vw; height:38vw; left:18vw; bottom:-16vw; background:radial-gradient(circle, var(--vino-glow), transparent 70%); animation:flujo3 46s ease-in-out infinite; }
@keyframes flujo1{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(6vw,8vw) scale(1.15); } }
@keyframes flujo2{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-8vw,-6vw) scale(1.1); } }
@keyframes flujo3{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(5vw,-7vw) scale(1.08); } }
@media (prefers-reduced-motion:reduce){
  .textura-flujo span{ animation:none !important; }
}
.contenedor, section, .navbar, .footer, .wa-flotante{ position:relative; z-index:1; }
@media (max-width:640px){ .textura-flujo{ opacity:.4; } .textura-flujo span{ filter:blur(40px); } }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{
  font-family:var(--fuente-titulo);
  text-transform:uppercase;
  letter-spacing:.02em;
  margin:0 0 .5em;
  line-height:1.08;
  color:var(--negro);
}
p{ margin:0 0 1em; line-height:1.65; color:var(--texto-oscuro); }
.contenedor{ width:100%; max-width:1240px; margin:0 auto; padding:0 28px; }
section{ position:relative; }
.oculto-movil{ display:initial; }

/* --- Utilidades de reveal --- */
.rv{ opacity:0; transform:translateY(34px) scale(.98); transition:opacity .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1); }
.rv.visible{ opacity:1; transform:translateY(0) scale(1); }
.rv-1{ transition-delay:.08s; } .rv-2{ transition-delay:.16s; } .rv-3{ transition-delay:.24s; } .rv-4{ transition-delay:.32s; } .rv-5{ transition-delay:.4s; }

/* --- Etiqueta / kicker --- */
.etiqueta{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--fuente-titulo); font-size:.78rem; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--vino-brillo);
  margin-bottom:16px;
}
.etiqueta::before{ content:''; width:34px; height:2px; background:var(--vino-brillo); }
.etiqueta.clara{ color:var(--plata); }
.etiqueta.clara::before{ background:var(--vino-glow); }

/* --- Botones --- */
.boton{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--fuente-titulo); font-size:.92rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  padding:16px 30px; border-radius:var(--radio); border:1px solid transparent;
  cursor:pointer; transition:var(--transicion); white-space:nowrap;
}
.boton svg{ width:18px; height:18px; flex-shrink:0; }
.boton-primario{ background:var(--gradiente-vino); color:var(--blanco); box-shadow:0 14px 30px -12px rgba(11,45,99,.65); }
.boton-primario:hover{ transform:translateY(-3px); box-shadow:0 20px 38px -14px rgba(11,45,99,.75); }
.boton-secundario{ background:transparent; color:var(--blanco); border-color:rgba(248,247,244,.4); }
.boton-secundario:hover{ background:rgba(248,247,244,.12); border-color:var(--blanco); transform:translateY(-3px); }
.boton-oscuro{ background:var(--negro); color:var(--blanco); }
.boton-oscuro:hover{ background:var(--vino); transform:translateY(-3px); }
.boton-whatsapp{ background:#1f7a52; color:#fff; }
.boton-whatsapp:hover{ background:#22935f; transform:translateY(-3px); }

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar{
  position:fixed; inset:0 0 auto 0; z-index:900;
  padding:20px 0; transition:var(--transicion);
  background:var(--blanco); box-shadow:0 2px 24px rgba(23,26,31,.08);
}
.navbar.fijo{ padding:13px 0; background:var(--blanco); box-shadow:0 8px 30px -14px rgba(23,26,31,.22); border-bottom:1px solid var(--linea); }
.navbar .contenedor{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo{ display:flex; align-items:center; gap:12px; }
.logo-img{ height:52px; width:auto; flex-shrink:0; transition:var(--transicion); }
.navbar.fijo .logo-img{ height:42px; }
.nav-links{ display:flex; align-items:center; gap:36px; }
.nav-links a{
  font-family:var(--fuente-titulo); font-size:.86rem; font-weight:500; letter-spacing:.06em;
  text-transform:uppercase; color:var(--texto-oscuro); position:relative; padding:6px 0;
}
.nav-links a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--vino-glow); transition:var(--transicion); }
.nav-links a:hover::after, .nav-links a.activo::after{ width:100%; }
.nav-links a.activo{ color:var(--vino-brillo); }
.nav-cta-item{ margin-left:4px; }
.nav-cta{
  display:inline-flex !important; align-items:center; gap:8px; white-space:nowrap; font-size:.8rem !important;
  background:linear-gradient(135deg, var(--vino-brillo) 0%, var(--vino-glow) 100%) !important;
  color:#fff !important; padding:11px 18px !important; border-radius:999px;
  box-shadow:0 10px 24px -8px rgba(14,165,249,.55); transition:var(--transicion);
}
.nav-cta svg{ width:16px; height:16px; color:#fff; }
.nav-cta::after{ display:none !important; }
.nav-cta:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -8px rgba(14,165,249,.7); }
.nav-derecha{ display:flex; align-items:center; gap:18px; }
.nav-tel{ display:flex; align-items:center; gap:9px; color:var(--texto-oscuro); font-family:var(--fuente-titulo); font-size:.92rem; letter-spacing:.03em; }
.nav-tel svg{ width:18px; height:18px; color:var(--vino-brillo); }
.lang-toggle{
  display:flex; align-items:center; background:rgba(23,26,31,.05); border:1px solid rgba(23,26,31,.14);
  border-radius:999px; padding:3px; gap:2px; flex-shrink:0;
}
.lang-toggle button{
  font-family:var(--fuente-titulo); font-size:.72rem; font-weight:700; letter-spacing:.08em;
  padding:6px 12px; border-radius:999px; border:none; background:transparent; color:var(--plata-2);
  cursor:pointer; transition:var(--transicion);
}
.lang-toggle button.activo{ background:var(--gradiente-vino); color:#fff; }
.hamburger{ display:none; flex-direction:column; gap:5px; width:30px; cursor:pointer; z-index:901; background:none; border:none; padding:6px; }
.hamburger span{ display:block; height:2px; width:100%; background:var(--texto-oscuro); transition:var(--transicion); }
.hamburger.abierto span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.abierto span:nth-child(2){ opacity:0; }
.hamburger.abierto span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  min-height:100svh; display:flex; align-items:flex-end; position:relative;
  background:var(--negro); overflow:hidden;
}
.hero-img{
  position:absolute; inset:0; width:100%; height:112%; object-fit:cover;
  transform:scale(1.06) translateY(0); animation:heroZoom 16s ease-out forwards;
  will-change:transform;
}
@keyframes heroZoom{ to{ transform:scale(1) translateY(0); } }
.hero::before{ content:''; position:absolute; inset:0; background:var(--gradiente-heroe); z-index:1; }
.hero .contenedor{ position:relative; z-index:2; padding-bottom:110px; padding-top:200px; }
.hero-linea{ display:flex; align-items:center; gap:12px; margin-bottom:22px; opacity:0; animation:apFade .9s .3s ease forwards; }
.hero-linea .barra{ width:52px; height:3px; background:var(--vino-glow); }
.hero-linea span{ font-family:var(--fuente-titulo); font-size:.82rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--plata); }
.hero h1{
  color:var(--blanco); font-size:clamp(1.5rem,2.6vw,2rem); font-weight:600; letter-spacing:.015em;
  line-height:1.2; max-width:920px; margin-bottom:10px; text-shadow:0 2px 18px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.7);
  opacity:0; animation:apFade .9s .45s ease forwards;
}
.hero p.hero-tagline{
  font-family:var(--fuente-titulo); color:var(--blanco); font-size:clamp(2.3rem,5.6vw,4.4rem); font-weight:600; letter-spacing:.015em;
  line-height:1.14; max-width:920px; margin-bottom:20px; text-transform:uppercase;
  text-shadow:0 4px 24px rgba(0,0,0,.6), 0 1px 4px rgba(0,0,0,.75);
  opacity:0; animation:apFade .9s .6s ease forwards;
}
.hero p.hero-tagline em{ font-style:normal; color:#7fd0ff; }
.hero p.hero-sub{
  color:rgba(248,247,244,.92); font-size:clamp(1.02rem,1.6vw,1.22rem); max-width:560px; margin-bottom:38px;
  text-shadow:0 2px 14px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.7);
  opacity:0; animation:apFade .9s .75s ease forwards;
}
.hero-botones{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:64px; opacity:0; animation:apFade .9s .9s ease forwards; }
@keyframes apFade{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:translateY(0); } }
.hero-garantias{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid rgba(248,247,244,.18);
  opacity:0; animation:apFade .9s 1.1s ease forwards;
}
.hero-garantias li{ display:flex; align-items:center; gap:12px; padding:22px 24px 0 0; }
.hero-garantias li:not(:last-child){ border-right:1px solid rgba(248,247,244,.14); }
.hero-garantias svg{ width:26px; height:26px; color:var(--vino-glow); flex-shrink:0; }
.hero-garantias strong{ display:block; color:var(--blanco); font-family:var(--fuente-titulo); font-size:.94rem; letter-spacing:.02em; }
.hero-garantias small{ color:var(--texto-tenue); font-size:.78rem; }
.scroll-abajo{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--texto-tenue); font-family:var(--fuente-titulo); font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; pointer-events:none;
}
.scroll-abajo .linea{ width:1px; height:46px; background:linear-gradient(var(--vino-glow), transparent); animation:scrollLinea 2s ease-in-out infinite; }
@keyframes scrollLinea{ 0%,100%{ opacity:.3; } 50%{ opacity:1; } }

/* ============================================================
   FRANJA DE CONFIANZA / STATS
   ============================================================ */
.franja-stats{ background:var(--negro-2); padding:0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:52px 30px; text-align:center; border-right:1px solid var(--linea); }
.stat:last-child{ border-right:none; }
.stat strong{ display:block; font-family:var(--fuente-titulo); font-size:clamp(2.2rem,3.4vw,3rem); color:var(--blanco); font-weight:700; }
.stat strong span{ color:var(--vino-glow); }
.stat small{ display:block; margin-top:8px; font-size:.84rem; letter-spacing:.08em; text-transform:uppercase; color:var(--texto-tenue); }

/* ============================================================
   SECCIONES GENERALES
   ============================================================ */
.seccion{ padding:120px 0; }
.seccion-oscura{ background:var(--gradiente-oscuro); color:var(--blanco); }
.seccion-oscura h2, .seccion-oscura h3{ color:var(--blanco); }
.seccion-oscura p{ color:var(--texto-tenue); }
.encabezado-seccion{ max-width:660px; margin-bottom:64px; }
.encabezado-seccion.centrado{ margin-left:auto; margin-right:auto; text-align:center; }
h2.titulo-grande{ font-size:clamp(2.1rem,4.4vw,3.4rem); }

/* --- Sobre / dos columnas --- */
.dos-columnas{ display:grid; grid-template-columns:1.05fr .95fr; gap:80px; align-items:center; }
.dos-columnas.invertido{ grid-template-columns:.95fr 1.05fr; }
.dos-columnas.invertido .col-img{ order:2; }
.col-img{ position:relative; }
.col-img img{ border-radius:var(--radio-lg); box-shadow:var(--sombra); width:100%; height:520px; object-fit:cover; }
.col-img .marco{ position:absolute; top:26px; left:-26px; width:100%; height:100%; border:3px solid var(--vino-brillo); border-radius:var(--radio-lg); z-index:-1; }
.lista-check{ margin:26px 0 34px; }
.lista-check li{ display:flex; align-items:flex-start; gap:14px; padding:11px 0; border-bottom:1px solid var(--linea); }
.lista-check li:last-child{ border-bottom:none; }
.lista-check svg{ width:22px; height:22px; color:var(--vino-brillo); flex-shrink:0; margin-top:2px; }
.lista-check strong{ display:block; font-family:var(--fuente-titulo); font-size:1rem; letter-spacing:.01em; text-transform:uppercase; }
.lista-check p{ margin:2px 0 0; font-size:.92rem; color:var(--texto-tenue); }
.seccion:not(.seccion-oscura) .lista-check p{ color:var(--texto-tenue-oscuro); }

/* --- Servicios --- */
.grid-servicios{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.tarjeta-servicio{
  position:relative; border-radius:var(--radio-lg); overflow:hidden; height:360px;
  box-shadow:0 24px 40px -26px rgba(0,0,0,.5); transition:var(--transicion);
}
.tarjeta-servicio img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%; transition:transform .7s ease; }
.tarjeta-servicio::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,13,18,.15) 0%, rgba(10,13,18,.55) 55%, rgba(10,13,18,.95) 100%); z-index:1; transition:var(--transicion); }
.tarjeta-servicio:hover img{ transform:scale(1.08); }
.tarjeta-servicio:hover{ transform:translateY(-8px); box-shadow:0 30px 50px -22px rgba(11,45,99,.5); }
.tarjeta-servicio-contenido{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:28px 24px; }
.tarjeta-servicio-icono{ width:50px; height:50px; border-radius:10px; background:var(--gradiente-vino); display:flex; align-items:center; justify-content:center; margin-bottom:16px; box-shadow:0 10px 22px -8px rgba(11,45,99,.7); }
.tarjeta-servicio-icono svg{ width:26px; height:26px; color:#fff; }
.tarjeta-servicio h3{ color:#fff; font-size:1.28rem; margin-bottom:8px; }
.tarjeta-servicio p{ color:var(--texto-tenue); font-size:.9rem; margin-bottom:0; max-height:0; overflow:hidden; opacity:0; transition:var(--transicion); }
.tarjeta-servicio:hover p{ max-height:120px; opacity:1; margin-bottom:6px; }
.tarjeta-servicio-linea{ width:0; height:3px; background:var(--vino-glow); margin-top:14px; transition:width .5s ease; }
.tarjeta-servicio:hover .tarjeta-servicio-linea{ width:60px; }

/* --- Franja de proceso / pasos --- */
.pasos{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; counter-reset:paso; }
.paso{ position:relative; padding:0 30px 0 0; }
.paso:not(:last-child)::after{ content:''; position:absolute; top:34px; right:-16px; width:32px; height:1px; background:var(--linea); display:none; }
.paso-num{ font-family:var(--fuente-titulo); font-size:3.2rem; font-weight:700; color:transparent; -webkit-text-stroke:1.5px var(--vino-brillo); line-height:1; margin-bottom:18px; }
.paso h4{ font-size:1.05rem; margin-bottom:10px; }
.paso p{ font-size:.92rem; }

/* --- Flota: grid de fotos, sin texto --- */
.grid-flota{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:300px; gap:20px; }
.foto-flota{ position:relative; border-radius:var(--radio-lg); overflow:hidden; box-shadow:0 20px 40px -24px rgba(0,0,0,.6); cursor:pointer; }
.foto-flota img{ width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.22,.61,.36,1), filter .5s ease; }
.foto-flota:hover img{ transform:scale(1.1) rotate(.3deg); }
.foto-flota::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 62%, rgba(10,13,18,.5) 100%); opacity:0; transition:var(--transicion); }
.foto-flota:hover::after{ opacity:1; }
.foto-flota.grande{ grid-column:span 2; grid-row:span 2; }

/* --- Lista de rutas --- */
.lista-rutas{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:44px; }
.ruta-fila{ display:flex; align-items:center; gap:14px; background:rgba(248,247,244,.05); border:1px solid rgba(248,247,244,.12); border-radius:var(--radio); padding:18px 22px; transition:var(--transicion); }
.ruta-fila:hover{ background:rgba(248,247,244,.09); border-color:rgba(248,247,244,.22); }
.ruta-fila svg{ width:18px; height:18px; flex-shrink:0; }
.ruta-fila .icono-pin{ color:var(--vino-glow); }
.ruta-fila .icono-flecha{ color:var(--plata-2); }
.ruta-origen, .ruta-destino{ color:var(--blanco); font-weight:600; font-size:.92rem; }

/* --- Franja logos / rutas --- */
.franja-rutas{ background:var(--negro-2); padding:70px 0; overflow:hidden; }
.rutas-titulo{ text-align:center; margin-bottom:38px; }
.rutas-titulo span{ color:var(--plata-2); font-family:var(--fuente-titulo); font-size:.8rem; letter-spacing:.3em; text-transform:uppercase; }
.marquee{ display:flex; width:max-content; animation:marquee 26s linear infinite; }
.marquee-grupo{ display:flex; align-items:center; gap:70px; padding-right:70px; }
.marquee-item{ display:flex; align-items:center; gap:14px; color:var(--plata); font-family:var(--fuente-titulo); font-size:1.1rem; letter-spacing:.04em; white-space:nowrap; }
.marquee-item svg{ width:22px; height:22px; color:var(--vino-glow); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* --- Testimonios --- */
.grid-testimonios{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.testimonio{ background:#fff; border:1px solid var(--linea); border-top:3px solid var(--vino-brillo); border-radius:var(--radio-lg); padding:34px 30px; box-shadow:0 20px 40px -30px rgba(0,0,0,.3); }
.testimonio .estrellas{ display:flex; gap:4px; margin-bottom:18px; }
.testimonio .estrellas svg{ width:17px; height:17px; color:var(--vino-brillo); }
.testimonio p{ font-size:.98rem; font-style:italic; color:var(--texto-oscuro); }
.testimonio-autor{ display:flex; align-items:center; gap:12px; margin-top:20px; }
.testimonio-autor .avatar{ width:44px; height:44px; border-radius:50%; background:var(--gradiente-vino); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--fuente-titulo); font-weight:700; }
.testimonio-autor strong{ display:block; font-size:.92rem; }
.testimonio-autor span{ font-size:.8rem; color:var(--texto-tenue-oscuro); }

/* --- CTA final --- */
.cta-final{ position:relative; padding:150px 0; background:var(--negro); overflow:hidden; text-align:center; }
.cta-final img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.42; }
.cta-final::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,13,18,.55), var(--negro) 88%); }
.cta-final .contenedor{ position:relative; z-index:2; }
.cta-final h2{ color:var(--blanco); font-size:clamp(2.2rem,4.8vw,3.6rem); max-width:760px; margin:0 auto 20px; }
.cta-final p{ color:var(--texto-tenue); max-width:520px; margin:0 auto 40px; font-size:1.06rem; }
.cta-botones{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--negro); color:var(--texto-tenue); padding:90px 0 0; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:50px; padding-bottom:70px; border-bottom:1px solid var(--linea); }
.footer-logo{ display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.footer-logo img{ height:76px; width:auto; }
.footer p{ font-size:.92rem; color:var(--texto-tenue); }
.footer h4{ color:var(--blanco); font-size:.86rem; letter-spacing:.14em; margin-bottom:22px; }
.footer-links li{ margin-bottom:12px; }
.footer-links a{ font-size:.92rem; color:var(--texto-tenue); transition:var(--transicion); }
.footer-links a:hover{ color:var(--vino-glow); padding-left:4px; }
.footer-contacto li{ display:flex; gap:12px; margin-bottom:16px; font-size:.9rem; align-items:flex-start; }
.footer-contacto svg{ width:19px; height:19px; color:var(--vino-glow); flex-shrink:0; margin-top:2px; }
.footer-social{ display:flex; gap:12px; margin-top:22px; }
.footer-social a{ width:38px; height:38px; border-radius:50%; border:1px solid var(--linea); display:flex; align-items:center; justify-content:center; transition:var(--transicion); }
.footer-social a:hover{ background:var(--vino); border-color:var(--vino); }
.footer-social svg{ width:17px; height:17px; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; font-size:.82rem; flex-wrap:wrap; gap:10px; }
.footer-bottom a{ color:var(--plata-2); }
.footer-bottom a:hover{ color:var(--vino-glow); }

/* ============================================================
   WHATSAPP FLOTANTE
   ============================================================ */
.wa-flotante{
  position:fixed; right:26px; bottom:26px; z-index:800; width:60px; height:60px; border-radius:50%;
  background:#1f7a52; display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -10px rgba(31,122,82,.7);
  animation:waPulso 2.6s ease-in-out infinite;
}
.wa-flotante svg{ width:30px; height:30px; color:#fff; }
@keyframes waPulso{ 0%,100%{ box-shadow:0 14px 30px -10px rgba(31,122,82,.7); } 50%{ box-shadow:0 14px 30px -6px rgba(31,122,82,.95),0 0 0 10px rgba(31,122,82,.12); } }

/* ============================================================
   HERO INTERIOR (páginas internas)
   ============================================================ */
.hero-interior{ position:relative; min-height:52vh; display:flex; align-items:flex-end; background:var(--negro); overflow:hidden; }
.hero-interior img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.08); animation:heroZoom 14s ease-out forwards; }
.hero-interior::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,13,18,.35) 0%, rgba(10,13,18,.7) 60%, var(--negro) 100%); z-index:1; }
.hero-interior .contenedor{ position:relative; z-index:2; padding:190px 28px 60px; }
.migas{ display:flex; align-items:center; gap:8px; font-family:var(--fuente-titulo); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--plata-2); margin-bottom:18px; }
.migas svg{ width:12px; height:12px; }
.migas .activa{ color:var(--vino-glow); }
.hero-interior h1{ color:var(--blanco); font-size:clamp(2.4rem,5.6vw,4.2rem); max-width:820px; }

/* --- Valores / iconos en grid --- */
.grid-valores{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.valor{ background:#fff; border:1px solid var(--linea); border-radius:var(--radio-lg); padding:34px 28px; transition:var(--transicion); }
.valor:hover{ transform:translateY(-8px); box-shadow:0 24px 44px -28px rgba(0,0,0,.35); border-color:var(--vino-brillo); }
.valor-icono{ width:56px; height:56px; border-radius:12px; background:var(--negro-2); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.valor-icono svg{ width:28px; height:28px; color:var(--vino-glow); }
.valor h3{ font-size:1.08rem; margin-bottom:10px; }
.valor p{ font-size:.9rem; }

/* --- Timeline (nosotros) --- */
.timeline{ position:relative; padding-left:44px; }
.timeline::before{ content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:var(--linea); }
.timeline-item{ position:relative; padding-bottom:44px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{ content:''; position:absolute; left:-44px; top:2px; width:20px; height:20px; border-radius:50%; background:var(--gradiente-vino); box-shadow:0 0 0 5px rgba(11,45,99,.15); }
.timeline-item strong{ display:block; font-family:var(--fuente-titulo); font-size:1.1rem; letter-spacing:.02em; color:var(--vino-brillo); margin-bottom:6px; }
.timeline-item p{ font-size:.94rem; margin:0; }

/* --- Servicios página: detalle alterno --- */
.servicio-detalle{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; padding:90px 0; border-bottom:1px solid var(--linea); }
.servicio-detalle:last-child{ border-bottom:none; }
.servicio-detalle.invertido{ direction:rtl; }
.servicio-detalle.invertido > *{ direction:ltr; }
.servicio-detalle .col-img img{ height:440px; }
.servicio-num{ font-family:var(--fuente-titulo); font-size:.85rem; font-weight:600; letter-spacing:.2em; color:var(--vino-brillo); margin-bottom:16px; display:block; }
.especs{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:26px 0 30px; }
.especs li{ background:var(--blanco-2); border-radius:8px; padding:14px 16px; font-size:.86rem; }
.especs li strong{ display:block; font-family:var(--fuente-titulo); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--vino-brillo); margin-bottom:4px; }

/* --- Formulario contacto --- */
.contacto-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:70px; }
.info-contacto-item{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--linea); }
.info-contacto-item:first-child{ padding-top:0; }
.info-contacto-item svg{ width:24px; height:24px; color:var(--vino-glow); flex-shrink:0; }
.info-contacto-item strong{ display:block; font-family:var(--fuente-titulo); font-size:.92rem; letter-spacing:.04em; text-transform:uppercase; margin-bottom:4px; color:var(--texto-oscuro); }
.info-contacto-item a, .info-contacto-item span{ font-size:.92rem; color:var(--texto-tenue-oscuro); }
.formulario{ background:var(--negro-2); border-radius:var(--radio-lg); padding:44px; }
.campo{ margin-bottom:20px; }
.campo label{ display:block; font-family:var(--fuente-titulo); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--plata); margin-bottom:8px; }
.campo input, .campo select, .campo textarea{
  width:100%; padding:14px 16px; background:var(--negro); border:1px solid var(--linea); border-radius:var(--radio);
  color:var(--blanco); font-family:var(--fuente-cuerpo); font-size:.94rem; transition:var(--transicion);
}
.campo input:focus, .campo select:focus, .campo textarea:focus{ outline:none; border-color:var(--vino-brillo); box-shadow:0 0 0 3px rgba(11,45,99,.25); }
.campo-fila{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.formulario .boton{ width:100%; margin-top:6px; }
.mapa-wrap{ border-radius:var(--radio-lg); overflow:hidden; height:340px; margin-top:30px; filter:grayscale(.3) contrast(1.05); }
.mapa-wrap iframe{ width:100%; height:100%; border:0; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .dos-columnas, .dos-columnas.invertido{ grid-template-columns:1fr; gap:50px; }
  .dos-columnas.invertido .col-img{ order:0; }
  .grid-servicios{ grid-template-columns:repeat(2,1fr); }
  .grid-valores{ grid-template-columns:repeat(2,1fr); }
  .pasos{ grid-template-columns:repeat(2,1fr); row-gap:40px; }
  .footer-grid{ grid-template-columns:1fr 1fr; row-gap:44px; }
  .contacto-grid{ grid-template-columns:1fr; gap:50px; }
  .servicio-detalle, .servicio-detalle.invertido{ grid-template-columns:1fr; direction:ltr; gap:36px; }
  .grid-flota{ grid-template-columns:repeat(2,1fr); }
  .foto-flota.grande{ grid-column:span 2; grid-row:span 1; }
}
@media (max-width:860px){
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:min(340px,84vw); height:100vh; background:var(--negro-2);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:8px; padding:0 44px;
    transform:translateX(100%); transition:transform .45s cubic-bezier(.22,.61,.36,1); z-index:895;
  }
  .nav-links.abierto{ transform:translateX(0); box-shadow:-30px 0 60px rgba(0,0,0,.4); }
  .nav-links a{ font-size:1.15rem; padding:14px 0; width:100%; border-bottom:1px solid var(--linea); color:var(--blanco); }
  .nav-links a.activo{ color:var(--vino-glow); }
  .nav-cta-item{ margin-left:0; margin-top:10px; }
  .nav-cta{ justify-content:center; border-bottom:none !important; font-size:.95rem !important; }
  .hamburger{ display:flex; }
  .nav-tel.oculto-movil{ display:none; }
  .logo-img{ height:46px; }
  .navbar.fijo .logo-img{ height:40px; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .stat{ border-bottom:1px solid var(--linea); }
  .stat:nth-child(2n){ border-right:none; }
  .hero-garantias{ grid-template-columns:repeat(2,1fr); row-gap:20px; }
  .hero-garantias li:nth-child(2n){ border-right:none; }
  .seccion{ padding:80px 0; }
}
@media (max-width:640px){
  .contenedor{ padding:0 20px; }
  .grid-servicios{ grid-template-columns:1fr; }
  .tarjeta-servicio{ height:320px; }
  .grid-valores{ grid-template-columns:1fr; }
  .lista-rutas{ grid-template-columns:1fr; }
  .ruta-fila{ flex-wrap:wrap; }
  .pasos{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .grid-testimonios{ grid-template-columns:1fr; }
  .grid-flota{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; gap:12px; }
  .foto-flota.grande{ grid-column:1/-1; grid-row:span 1; }
  .campo-fila{ grid-template-columns:1fr; }
  .hero-botones .boton{ width:100%; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .hero .contenedor{ padding-top:150px; padding-bottom:70px; }
  .lang-toggle button{ padding:6px 10px; font-size:.68rem; }
  .scroll-abajo{ display:none; }
}
