/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

/* ── Focus ring ── */
*:focus-visible { outline: 2px solid #1140EE; outline-offset: 2px; }

/* ── Transitions ── */
a, button { transition-property: color, background-color, border-color, opacity;
             transition-duration: 150ms;
             transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1); }

/* ── Nav border on scroll ── */
#site-nav { border-bottom: 1px solid transparent; transition: border-color 200ms ease, background-color 200ms ease; }
#site-nav.scrolled { border-color: #E5E3DD; }

/* ── Marquee ── */
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-track { animation: marquee 40s linear infinite; display: flex; white-space: nowrap; }
.marquee-wrap:hover .marquee-track { animation-play-state: paused; }

/* ── Mobile menu ── */
#mobile-menu { display: none; }
#mobile-menu.open { display: flex; }

/* ── Sector card hover ── */
.sector-card { transition: border-color 150ms ease; }
.sector-card:hover { border-color: #C8C5BC; }
.sector-icon { transition: color 150ms ease, border-color 150ms ease; }
.sector-card:hover .sector-icon { color: #0A0A0A; border-color: #C8C5BC; }

/* ── Case card hover ── */
.case-card { transition: background-color 150ms ease; }
.case-card:hover { background-color: #FAFAF7; }
.case-title { transition: color 150ms ease; }
.case-card:hover .case-title { color: #1140EE; }

/* ── Input focus ring ── */
.field:focus { border-color: #1140EE; outline: none; box-shadow: 0 0 0 3px #EEF1FF; }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
  html { scroll-behavior: auto; }
}
