/* base.css — Reset, Font Declarations, Typography Scale, Accessibility Primitives */

/* === Reset === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img, video { max-width: 100%; display: block; }

/* === Font Declarations === */

@font-face {
  font-family: 'Spectral';
  src: url('../fonts/spectral-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  src: url('../fonts/inter-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

/* D-03: Italic synthesized from Regular file — no separate inter-400-italic.woff2 needed */
@font-face {
  font-family: 'Inter';
  src: url('../fonts/inter-400.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  src: url('../fonts/inter-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

/* D-02: Inter 600 required for card headlines, eyebrows, CTA buttons */
@font-face {
  font-family: 'Inter';
  src: url('../fonts/inter-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  src: url('../fonts/inter-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: optional;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

/* === HTML Base === */

/* INT-01: smooth scroll for all internal anchor links */
html { scroll-behavior: smooth; font-size: 100%; }

body {
  font-family: var(--font-sans);
  font-size: 1.0625rem;       /* 17px — body text fixed size, FONT-05 */
  font-weight: 400;
  line-height: 1.65;
  color: var(--color-text-dark);
  background: var(--color-bg-light);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* === Heading Type Scale (FONT-05 — fluid clamp values) === */

h1 {
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: 1.15;
  font-size: clamp(2.25rem, 4.444vw + 0.528rem, 3.25rem); /* 36px → 52px */
}

h2 {
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: 1.2;
  font-size: clamp(1.75rem, 3.333vw + 0.458rem, 2.5rem); /* 28px → 40px */
}

h3 { /* Card headlines — Inter */
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 1.125rem;   /* 18px fixed */
  line-height: 1.3;
}

p { margin-bottom: 0; }

/* === Links === */
a { color: inherit; text-decoration: none; }

/* === Focus Visible (A11Y-04) === */
/* A11Y-04: visible keyboard navigation ring; hidden for mouse users */
:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
  border-radius: 2px;
}
:focus:not(:focus-visible) { outline: none; }
