/* ── Base ── */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* ── Hero cards ── */
.card-hero {
  box-shadow: 0 25px 50px -12px rgba(0,0,0,0.45);
  transition: transform 0.4s cubic-bezier(.22,.61,.36,1);
}
.card-hero:hover { transform: translateY(-6px); }

/* ── Scroll reveal (progressive enhancement) ── */
@media (prefers-reduced-motion: no-preference) {
  .reveal-up,
  .reveal-left,
  .reveal-right {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s ease, transform 0.6s ease;
  }

  .reveal-up.hidden,
  .reveal-left.hidden,
  .reveal-right.hidden {
    opacity: 0;
  }

  .reveal-up.hidden { transform: translateY(32px); }
  .reveal-left.hidden { transform: translateX(-32px); }
  .reveal-right.hidden { transform: translateX(32px); }
}

/* ── Mobile menu ── */
#mobileMenu { transition: opacity 0.25s ease; }
#mobileMenu[aria-hidden="false"] { display: flex; }
#mobileMenu[aria-hidden="true"]  { display: none; }

/* ── Focus styles ── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid #53774f;
  outline-offset: 2px;
}

/* ── Selection ── */
::selection { background: #1a3c2a; color: #f4f0e6; }
