/* E17 Cercos Eléctricos — estilos que Tailwind CDN (utilidades) no cubre */

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', system-ui, sans-serif;
}

.font-display {
  font-family: 'Big Shoulders', 'Inter', system-ui, sans-serif;
}

.font-mono {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

/* Indicador de página activa en el nav de escritorio */
header nav > [data-nav-link][aria-current="page"],
header nav > div > [data-nav-link][aria-current="page"] {
  position: relative;
}
header nav > [data-nav-link][aria-current="page"]::after,
header nav > div > [data-nav-link][aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 2px;
  border-radius: 999px;
  background: #1591CB;
}

/* Foco visible consistente en toda la navegación por teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2px solid #FFC53D;
  outline-offset: 2px;
}

/* ---------- Firma visual: la línea de pulso ----------
   Un cerco eléctrico real no lleva corriente continua: emite pulsos de alto
   voltaje separados por ~1 segundo. Esta línea reproduce ese comportamiento
   como firma visual del sitio, en vez de un divisor decorativo genérico. */
.pulse-wire {
  position: relative;
  height: 2px;
  width: 100%;
  background: rgba(255, 255, 255, 0.12);
  overflow: hidden;
}
.pulse-wire--light {
  background: rgba(11, 42, 61, 0.12);
}
.pulse-wire::after {
  content: '';
  position: absolute;
  top: 0;
  left: -20%;
  height: 100%;
  width: 20%;
  background: linear-gradient(90deg, transparent, #FFC53D, transparent);
  animation: pulse-travel 2.6s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes pulse-travel {
  0% { left: -20%; opacity: 0; }
  8% { opacity: 1; }
  45% { opacity: 1; }
  55% { opacity: 0; }
  100% { left: 100%; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .pulse-wire::after { animation: none; opacity: 0.6; left: 0; width: 100%; }
  html { scroll-behavior: auto; }
}

/* ---------- Marquee de marcas/proveedores ---------- */
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee-scroll 40s linear infinite;
}
.marquee-track:hover {
  animation-play-state: paused;
}
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
}

/* ---------- Revelado suave al hacer scroll ---------- */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------- Acordeón de FAQ ---------- */
details.faq-item summary::-webkit-details-marker {
  display: none;
}
details.faq-item[open] .faq-chevron {
  transform: rotate(180deg);
}
.faq-chevron {
  transition: transform 0.25s ease;
}

/* ---------- Scrollbar sutil (webkit) ---------- */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: #F7F9FA;
}
::-webkit-scrollbar-thumb {
  background: #B9C2C9;
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #1591CB;
}

/* Tarjeta de instalación: encuadre uniforme para fotos reales de distinto tamaño */
.install-photo {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
