/* =========================================================
   TAAF Logistics — estilos custom
   Lo que NO se puede expresar fácil con clases de Tailwind.
   ========================================================= */

body {
    font-family: 'Montserrat', sans-serif;
    background-color: #050a1f;
    color: white;
    margin: 0;
    overflow-x: hidden;
}

.h-logo {
    height: 80px;
}

/* =====================================================
   OVERLAYS / GRADIENTES
   ===================================================== */

.hero-overlay {
    background: linear-gradient(
        to right,
        #111e63 0%,
        #111e63 40%,
        rgba(17, 30, 99, 0) 100%
    );
}

/* Hero principal del Home — foto de camiones */
.hero-gradient-home {
    background:
        linear-gradient(rgba(17, 30, 99, 0.78), rgba(10, 15, 40, 0.85)),
        url('../assets/hero-trucks.jpg');
    background-size: cover;
    background-position: center;
}

.servicios-hero-overlay {
    background: linear-gradient(
        to right,
        rgb(17, 30, 99) 0%,
        rgba(17, 30, 99, 0.4) 100%
    );
}

.bg-secondary {
    background: #080D28;

}

.bg-accent-purple {
    background: #7C3AED;
}

.bg-white {
    background: #FFFFFF;
}

.bg-dark-navy {
    --tw-bg-opacity: 1;
    background-color: rgb(10 15 30 / var(--tw-bg-opacity, 1));
}

/* Overlay gradiente reutilizable — aplica sobre cualquier hero con foto de fondo */
.bg-hero-gradient {
    position: relative;
}
.bg-hero-gradient::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(17, 30, 99, 0.95) 0%,
        rgba(5, 7, 20, 0.85) 40%,
        rgba(17, 30, 99, 0.25) 80%,
        rgba(17, 30, 99, 0.05) 100%
    );
    z-index: 1;
}

/* Hero de Nosotros — foto de almacén con overlay navy a la izquierda */
.nosotros-hero-bg {
    background:
        url('../assets/nosotros.jpeg');
    background-size: cover;
    background-position: center;
}

/* CTA final — contenedores portuarios. Overlay ligero (40-50%)
   para que se vean nítidos los contenedores. */
.cta-final-bg {
    background:
        linear-gradient(rgba(10, 15, 40, 0.55), rgba(10, 15, 40, 0.65)),
        url('../assets/containers-port.jpeg');
    background-size: cover;
    background-position: center;
}

/* =====================================================
   CONTACTO — ocultar slider en pantallas ≤ 1280px
   ===================================================== */

@media (max-width: 1280px) {
    .contact-hero-slider {
        display: none;
    }
}

/* =====================================================
   MAPA DE RUTAS — animación de dash
   ===================================================== */

@keyframes routeDash {
    from { stroke-dashoffset: 0; }
    to   { stroke-dashoffset: -26; }
}
.route-line {
    animation: routeDash 1.4s linear infinite;
}

/* =====================================================
   FORMULARIOS
   ===================================================== */

input::placeholder,
textarea::placeholder,
select::placeholder {
    color: rgba(255, 255, 255) !important;
    opacity: 1 !important;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: rgba(255, 255, 255) !important;
    opacity: 1 !important;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
    color: rgba(255, 255, 255) !important;
    opacity: 1 !important;
}

/* =====================================================
   PATRONES Y EFECTOS
   ===================================================== */

/* Patrón de cruces (+) blanco al 25% sobre navy brillante.
   Usado en la sección "Nuestra forma de trabajar". */
.workflow-pattern {
    background-color: #1a37a8;
    background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 8h2v4h4v2h-4v4h-2v-4h-4v-2h4z' fill='%23ffffff' fill-opacity='0.25'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 40px 40px;
}

.hex-icon {
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 54px;
    background-color: #1d4ed8;
}

.shadow-glow {
    box-shadow: 0 0 20px rgba(45, 99, 242, 0.4);
}

.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* =====================================================
   MARQUEE (Carrusel infinito de industrias)
   ===================================================== */

@keyframes marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.animate-marquee {
    animation: marquee 35s linear infinite;
}

/* Pausa al hover sobre el contenedor padre con .marquee-pause */
.marquee-pause:hover .animate-marquee {
    animation-play-state: paused;
}

/* Fade-out a izquierda y derecha con mask */
.marquee-mask {
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 8%,
        #000 92%,
        transparent 100%
    );
            mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 8%,
        #000 92%,
        transparent 100%
    );
}

/* Pill de industria con borde gradiente azul/púrpura al 30% */
.industry-pill {
    position: relative;
    background: rgba(17, 30, 99, 0.35);
    backdrop-filter: blur(6px);
    border-radius: 999px;
    padding: 12px 28px;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    white-space: nowrap;
}
.industry-pill::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    background: linear-gradient(
        90deg,
        rgba(85, 194, 227, 0.3),
        rgba(124, 58, 237, 0.3)
    );
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    pointer-events: none;
}

/* =====================================================
   GLASSMORPHISM — botones con fondo transparente
   ===================================================== */

.glass-card {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(11px);
  -webkit-backdrop-filter: blur(11px);
  border-radius: 0.375rem;
  border: 1px solid rgba(255, 255, 255, 0.45);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    inset 0 -1px 0 rgba(255, 255, 255, 0.1),
    inset 0 0 14px 7px rgba(255, 255, 255, 0.07);
  position: relative;
  overflow: hidden;
  transition: background 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.glass-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.8),
    transparent
  );
  pointer-events: none;
}

.glass-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 100%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.8),
    transparent,
    rgba(255, 255, 255, 0.3)
  );
  pointer-events: none;
}

/* Variante opaca para el drawer del menú móvil */
.glass-drawer {
  background: rgba(5, 10, 31, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.glass-card:hover {
  background: rgba(255, 255, 255, 0.20);
  border-color: rgba(255, 255, 255, 0.65);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    inset 0 -1px 0 rgba(255, 255, 255, 0.12),
    inset 0 0 18px 7px rgba(255, 255, 255, 0.10);
}

/* =====================================================
   PANEL DE OPERACIONES (Sistema CENTRAL — mockup)
   ===================================================== */

.panel-window {
    background: #0a1029;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.6);
}

.panel-metric-card {
    background: rgba(45, 99, 242, 0.10);
    border: 1px solid rgba(45, 99, 242, 0.20);
    border-radius: 10px;
}

.panel-shipment-row {
    background: rgba(45, 99, 242, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
}

.panel-progress-track {
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    height: 6px;
    overflow: hidden;
}
.panel-progress-fill {
    background: linear-gradient(90deg, #55C2E3, #2D63F2);
    height: 100%;
    border-radius: inherit;
}

.w-caintra {
    width: 150px;
}