/* Minimal shared styles: page transitions, active nav, and responsive menu */
:root { --brand:#FF6B35; --ink:#1a1a1a; }
html { scroll-behavior: smooth; }
body.page-enter { opacity: 0; }
body.page-enter.page-enter-active { opacity: 1; transition: opacity .35s ease; }
.fade-link { transition: opacity .25s ease; }
.fade-out { opacity: 0 !important; transition: opacity .25s ease; }

/* Active nav state */
.nav-links a.active { color: var(--brand) !important; position: relative; }
.nav-links a.active::after {
  content:''; position:absolute; left:0; right:0; bottom:-8px; height:2px; background:var(--brand);
}

/* Basic mobile nav */
.menu-toggle { display:none; background:var(--ink); color:#fff; padding:.5rem 1rem; border:0; border-radius:6px; }
@media (max-width: 768px) {
  .nav-links { display:none !important; flex-direction:column; gap:1rem; background:#fff; position:absolute; top:60px; right:16px; padding:1rem 1.25rem; border:1px solid rgba(0,0,0,.08); border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.1); }
  .nav-links.open { display:flex !important; }
  .menu-toggle { display:inline-block; }
}
/* Ensure fixed headers don't overlap anchors */
:target { scroll-margin-top: 96px; }