  /* ── Base ── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
  body { margin: 0; }
  img { max-width: 100%; height: auto; display: block; }
  a { text-decoration: none; }
  button { cursor: pointer; border: none; background: none; font-family: inherit; }
  ::selection { background: rgba(200, 164, 78, 0.2); }

  /* ── Scroll Reveal (progressive enhancement) ── */
  @media (prefers-reduced-motion: no-preference) {
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.7s cubic-bezier(0.23, 1, 0.32, 1), transform 0.7s cubic-bezier(0.23, 1, 0.32, 1);
    }
    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; }
  }

  /* ── Mobile Menu Animations ── */
  #mobile-menu.open { opacity: 1; pointer-events: all; }
  #mobile-menu.closed { opacity: 0; pointer-events: none; }

  #menu-btn[aria-expanded="true"] #bar1 { transform: translateY(4px) rotate(45deg); }
  #menu-btn[aria-expanded="true"] #bar2 { opacity: 0; }
  #menu-btn[aria-expanded="true"] #bar3 { transform: translateY(-4px) rotate(-45deg); width: 1.25rem; }

  /* ── Nav Scroll State ── */
  #nav.scrolled { box-shadow: 0 1px 0 rgba(15, 28, 63, 0.06); }

  /* ── Service Card ── */
  .service-card { border-bottom: none !important; }
