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

html { scroll-padding-top: 90px; }

::selection { background: #ffdcc7; color: #311300; }

.nav-link {
  color: #43474f;
  font-weight: 500;
  font-size: 0.95rem;
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}
.nav-link:hover { color: #964900; }
.nav-link-active {
  color: #964900;
  font-weight: 700;
  border-bottom-color: #964900;
}

/* Header shadow on scroll */
#site-header.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,0.06); }

/* ---------- Signature texture: dotted "route line" motif ---------- */
.route-dots {
  background-image: radial-gradient(circle, rgba(150,73,0,0.35) 1.5px, transparent 1.5px);
  background-size: 14px 14px;
}

/* Glass card */
.glass-card {
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.4);
}

/* Numbered step outline text */
.step-number {
  -webkit-text-stroke: 1.5px rgba(0,30,64,0.18);
  color: transparent;
}

/* Reveal-on-scroll */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in-view { opacity: 1; transform: translateY(0); }

/* Card hover lift */
.lift { transition: transform .35s ease, box-shadow .35s ease; }
.lift:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0,30,64,0.12); }

/* Custom scrollbar for horizontal carousels */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Focus visibility for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #964900;
  outline-offset: 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .lift:hover { transform: none; }
}

/* Loading spinner for form button */
.spin { animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
