/* ═══════════════════════════════════════════
   Horizon Custom Pools — Architectural Minimal
   ═══════════════════════════════════════════ */

/* ── Pico overrides ── */
:root {
  --pico-font-family: "Inter", system-ui, sans-serif;
  --pico-font-size: 100%;
  --pico-border-radius: 0;
  --pico-primary: #0ea5e9;
}

/* Prevent Pico from fighting Tailwind */
a { color: inherit; }
a:hover { color: inherit; }
h1, h2, h3, h4, h5, h6 { margin: 0; color: inherit; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font-family: inherit; }
img { max-width: 100%; height: auto; }

/* ── Header states ── */
#site-header {
  background: transparent;
}
#site-header.scrolled {
  background: rgba(254, 253, 251, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(0,0,0,0.05);
}

/* ── Nav link underline ── */
.nav-link {
  position: relative;
}
.nav-link::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width 0.3s ease;
}
.nav-link:hover::after,
.nav-link.active::after {
  width: 100%;
}

/* ── Mobile menu toggle animation ── */
.menu-open #bar-1 {
  transform: translateY(5px) rotate(45deg);
}
.menu-open #bar-2 {
  opacity: 0;
}
.menu-open #bar-3 {
  width: 1.5rem;
  transform: translateY(-5px) rotate(-45deg);
}
.menu-open #mobile-menu {
  opacity: 1;
  pointer-events: auto;
}

/* ── Hero animations ── */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
  animation: fadeIn 1s ease both;
}
.animate-fade-in-up {
  animation: fadeInUp 1s ease both;
  animation-delay: 0.2s;
}
.animate-fade-in-up-delay {
  animation: fadeInUp 1s ease both;
  animation-delay: 0.5s;
}
.animate-fade-in-up-delay-2 {
  animation: fadeInUp 1s ease both;
  animation-delay: 0.8s;
}

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── 404 ripple animation ── */
.ripple-ring {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(14, 165, 233, 0.25);
  border-radius: 50%;
  animation: ripple 3s ease-out infinite;
}
.ripple-2 { animation-delay: 1s; }
.ripple-3 { animation-delay: 2s; }

@keyframes ripple {
  0% {
    transform: scale(0.6);
    opacity: 1;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

/* ── Form focus states ── */
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #0ea5e9 !important;
  box-shadow: 0 0 0 1px #0ea5e9;
}

/* ── Smooth scroll ── */
html {
  scroll-behavior: smooth;
}

/* ── Selection color ── */
::selection {
  background: rgba(14, 165, 233, 0.15);
  color: #0f172a;
}

/* ── Print ── */
@media print {
  #site-header, #mobile-menu, .main-cta { display: none; }
  body { font-size: 12pt; }
}
