/* =========================================================================
   Ferretería Terranova — Estilos personalizados (complemento de Tailwind)
   Solo se incluye aquí lo que Tailwind por CDN no resuelve con utilidades:
   tokens de marca, tipografías, patrón de grilla del hero y la animación
   del botón flotante de WhatsApp.
   Identidad visual tomada del Manual de Marca (handoff oficial).
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Tokens de color de marca (paleta oficial del manual)
   ------------------------------------------------------------------------- */
:root {
  --verde:       #00843D; /* Color principal: marca, CTAs, enlaces        */
  --verde-dark:  #00602C; /* Hover de botones verdes / estados activos    */
  --verde-deep:  #003F1C; /* Fondos verdes oscuros, bandas institucionales */
  --oxido:       #E1523D; /* Acento (uso <= 10-15%): badges, destacados   */
  --oxido-dark:  #B33C28; /* Hover de elementos óxido                     */
  --gris:        #97999B; /* Texto secundario, bordes, metadatos          */
  --gris-tech:   #3C4043; /* Texto de cuerpo sobre fondo claro            */
  --gris-dark:   #2A2C2E; /* Texto de alto contraste                      */
  --negro:       #141414; /* Texto principal / fondos oscuros             */
  --crema:       #F6F4EF; /* Fondo base del sitio (no blanco puro)        */
  --crema-2:     #ECE8DF; /* Fondos de tarjetas/secciones alternas        */
  --linea:       #C9CAB9; /* Bordes, divisores, reglas                    */
}

/* -------------------------------------------------------------------------
   2. Base tipográfica
   Fuentes finales del manual cargadas desde Google Fonts en el <head>.
   ------------------------------------------------------------------------- */
body {
  background-color: var(--crema);
  color: var(--gris-tech);
  font-family: "IBM Plex Sans", system-ui, sans-serif; /* Cuerpo */
  -webkit-font-smoothing: antialiased;
}

/* Titulares: Barlow Condensed, versalitas, tracking cerrado */
.font-titular {
  font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  line-height: 0.98;
}

/* Subtítulos / lead / navegación */
.font-sub  { font-family: "Montserrat", system-ui, sans-serif; }

/* Datos, códigos, cifras técnicas */
.font-mono { font-family: "IBM Plex Mono", ui-monospace, monospace; }

/* -------------------------------------------------------------------------
   3. Eyebrow institucional (etiqueta sobre los títulos de sección)
   Barlow Condensed, tracking amplio, con una línea corta antes.
   ------------------------------------------------------------------------- */
.eyebrow {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  font-weight: 600;
  color: var(--verde);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.95rem;
}
.eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background-color: var(--verde);
  display: inline-block;
}

/* -------------------------------------------------------------------------
   4. Patrón de grilla sutil del hero (4.5% de opacidad sobre crema)
   Refuerza el carácter técnico/industrial sin restar legibilidad.
   ------------------------------------------------------------------------- */
.hero-grid {
  background-color: var(--crema);
  background-image:
    linear-gradient(to right,  rgba(20, 20, 20, 0.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(20, 20, 20, 0.045) 1px, transparent 1px);
  background-size: 46px 46px;
}

/* -------------------------------------------------------------------------
   4b. Hero con foto y parallax nativo
   Foto real del local de fondo con background-attachment: fixed (parallax
   en escritorio). Overlay oscuro —más intenso a la izquierda, donde va el
   texto— para máxima legibilidad del texto blanco. El parallax se desactiva
   en móvil por rendimiento (y por el bug de iOS con fixed).
   ------------------------------------------------------------------------- */
.hero-foto {
  position: relative;
  background-color: var(--negro);            /* fallback mientras carga */
  background-image: url("assets/img/hero-parallax.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
.hero-foto__overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  /* Oscurecido uniforme (el logo va centrado) con tinte verde profundo */
  background: linear-gradient(180deg, rgba(13, 15, 13, 0.55), rgba(0, 40, 18, 0.62));
}
@media (max-width: 768px) {
  .hero-foto { background-attachment: scroll; }
}

/* Pista de scroll de la entrada (chevron animado) */
.hero-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 1.75rem;
  transform: translateX(-50%);
  z-index: 10;
  color: rgba(255, 255, 255, 0.85);
  animation: scroll-cue 1.8s ease-in-out infinite;
}
.hero-scroll-cue:hover { color: #fff; }
@keyframes scroll-cue {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(7px); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-scroll-cue { animation: none; }
}

/* -------------------------------------------------------------------------
   4c. Sección de transición "Respaldo Técnico" (parallax nativo)
   Fondo de textura de acero con background-attachment: fixed para el efecto
   parallax en escritorio. En móvil se desactiva (scroll) por rendimiento y
   por el bug conocido de iOS con fixed. Overlay oscuro para legibilidad.
   ------------------------------------------------------------------------- */
.respaldo-parallax {
  position: relative;
  background-color: var(--negro);             /* fallback mientras carga */
  background-image: url("assets/img/respaldo-parallax.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;               /* parallax nativo (escritorio) */
}
.respaldo-overlay {
  position: absolute;
  inset: 0;
  /* Oscurecido con tinte verde profundo de marca para legibilidad del
     texto blanco sobre la foto. */
  background: linear-gradient(180deg, rgba(20, 20, 20, 0.74), rgba(0, 63, 28, 0.66));
}
/* Desactiva el parallax en móvil/tablet por rendimiento */
@media (max-width: 768px) {
  .respaldo-parallax { background-attachment: scroll; }
}

/* -------------------------------------------------------------------------
   5. Botones de marca
   Esquinas marcadas (radio 0-4px) acordes al carácter robusto/industrial.
   ------------------------------------------------------------------------- */
.btn {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: 1.05rem;
  border-radius: 3px;
  padding: 0.85rem 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
  cursor: pointer;
}
.btn-primario {                 /* CTA principal: verde sólido            */
  background-color: var(--verde);
  color: #fff;
}
.btn-primario:hover { background-color: var(--verde-dark); }

.btn-acento {                   /* CTA de alto contraste: óxido           */
  background-color: var(--oxido);
  color: #fff;
}
.btn-acento:hover { background-color: var(--oxido-dark); }

.btn-secundario {               /* Secundario: outline verde              */
  background-color: transparent;
  color: var(--verde);
  border: 2px solid var(--verde);
}
.btn-secundario:hover { background-color: var(--verde); color: #fff; }

/* Variante outline para fondos oscuros (hero/bandas) */
.btn-outline-claro {
  background-color: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.55);
}
.btn-outline-claro:hover { background-color: #fff; color: var(--verde-deep); }

/* -------------------------------------------------------------------------
   6. Tarjetas (marcas, capacidades): superficie blanca, borde fino,
   esquinas marcadas. Sin sombras exageradas: la marca es sobria.
   ------------------------------------------------------------------------- */
.card {
  background-color: #fff;
  border: 1px solid var(--linea);
  border-radius: 4px;
}

/* -------------------------------------------------------------------------
   6b. Carrusel de marcas
   Mobile-first: en celular/tablet el carrusel se desliza MANUALMENTE
   (scroll táctil con snap), sin animación, para evitar el "tirón" o
   congelamiento del marquee automático en móviles.
   En escritorio (lg+) corre AUTOMÁTICAMENTE como marquee continuo.
   ------------------------------------------------------------------------- */

/* --- Base (móvil / tablet): deslizamiento manual --- */
.marquee {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;   /* inercia en iOS */
  scroll-snap-type: x proximity;
  scrollbar-width: none;               /* Firefox: oculta la barra */
}
.marquee::-webkit-scrollbar { display: none; } /* WebKit: oculta la barra */
.marquee__track {
  display: flex;
  width: max-content;
}
.marquee__track .marca-card { scroll-snap-align: start; }
/* En móvil no se muestran duplicados (solo sirven para el loop de escritorio) */
.marquee__track .marca-dup { display: none; }

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* --- Escritorio (lg+): marquee automático y continuo --- */
@media (min-width: 1024px) {
  .marquee {
    overflow: hidden;
    scroll-snap-type: none;
    /* Difuminado suave en los bordes al entrar/salir las marcas */
    -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
  }
  .marquee__track {
    animation: marquee-scroll 45s linear infinite;
  }
  .marquee:hover .marquee__track { animation-play-state: paused; }
  /* El set duplicado vuelve a mostrarse para lograr el loop sin saltos */
  .marquee__track .marca-dup { display: flex; }
}

/* --- Accesibilidad: si el usuario prefiere menos movimiento, manual siempre --- */
@media (prefers-reduced-motion: reduce) {
  .marquee {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-mask-image: none;
            mask-image: none;
  }
  .marquee__track { animation: none !important; }
  .marquee__track .marca-dup { display: none; }
}

/* -------------------------------------------------------------------------
   7. Botón flotante de WhatsApp con pulsación suave permanente
   ------------------------------------------------------------------------- */
.wsp-flotante {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 60;
  width: 60px;
  height: 60px;
  border-radius: 9999px;
  background-color: #25D366;       /* verde institucional de WhatsApp     */
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  transition: transform .2s ease;
}
.wsp-flotante:hover { transform: scale(1.08); }

/* Anillo de pulsación */
.wsp-flotante::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 9999px;
  background-color: #25D366;
  z-index: -1;
  animation: wsp-pulse 2s ease-out infinite;
}
@keyframes wsp-pulse {
  0%   { transform: scale(1);   opacity: 0.55; }
  70%  { transform: scale(1.6); opacity: 0;    }
  100% { transform: scale(1.6); opacity: 0;    }
}

/* Respeta la preferencia de movimiento reducido del usuario */
@media (prefers-reduced-motion: reduce) {
  .wsp-flotante::after { animation: none; }
  .btn, .wsp-flotante, .card { transition: none; }
}

/* -------------------------------------------------------------------------
   8. Header sticky: transición a fondo oscuro al hacer scroll (JS añade
   la clase .header-scroll). El logo cambia de verde a blanco.
   ------------------------------------------------------------------------- */
#site-header {
  transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease;
}
#site-header.header-scroll {
  /* Verde profundo (no negro) para contrastar con el footer oscuro */
  background-color: var(--verde-deep);
  box-shadow: 0 2px 18px rgba(0, 0, 0, 0.18);
  border-color: transparent !important;
}
/* Cruce de logos según estado del header */
#logo-blanco { display: none; }
/* En la entrada (sin scroll) se oculta el logo del header: es redundante
   con el logo gigante del hero. Aparece (en blanco) al hacer scroll. */
#site-header:not(.header-scroll) #logo-verde { display: none; }
#site-header.header-scroll #logo-verde  { display: none; }
#site-header.header-scroll #logo-blanco { display: block; }
#site-header.header-scroll .nav-link    { color: #fff; }
