*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 18px); }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  color: var(--color-text);
  background: var(--color-white);
  font-family: var(--font-main);
  font-size: 16px;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--color-primary); line-height: 1.28; letter-spacing: -0.025em; }
p { color: var(--color-text-secondary); }
::selection { background: rgba(217, 4, 40, 0.18); color: var(--color-primary); }
:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; border-radius: 6px; }
.container { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.section { position: relative; padding-block: clamp(72px, 8.5vw, 124px); }
.section--muted { background: var(--color-surface); }
.section[id] { scroll-margin-top: calc(var(--header-height) + 18px); }
.skip-link {
  position: fixed;
  inset-block-start: 10px;
  inset-inline-start: 16px;
  z-index: 9999;
  padding: 10px 16px;
  border-radius: 8px;
  color: var(--color-white);
  background: var(--color-accent);
  transform: translateY(-160%);
  transition: transform var(--transition-fast);
}
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 24px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-weight: 800;
  line-height: 1.3;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.button::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 34%;
  height: 180%;
  inset-block-start: -40%;
  inset-inline-end: -55%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
  transform: translateX(145%) skewX(-18deg);
}
.button:hover { transform: translateY(-3px); }
.button:hover::before { animation: buttonSheen 720ms ease-out; }
.button svg { transition: transform var(--transition-fast); }
.button:hover svg { transform: translateX(-3px); }
.button--primary { color: #fff; background: var(--color-primary); box-shadow: 0 12px 28px rgba(11,29,51,.18); }
.button--primary:hover { background: var(--color-primary-2); box-shadow: 0 16px 34px rgba(11,29,51,.23); }
.button--accent { color: #fff; background: var(--color-accent); box-shadow: 0 14px 32px rgba(217,4,40,.22); }
.button--accent:hover { background: var(--color-accent-dark); box-shadow: 0 18px 40px rgba(217,4,40,.28); }
.button--outline { color: var(--color-primary); border-color: rgba(11,29,51,.24); background: rgba(255,255,255,.86); }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-primary);
  font-weight: 800;
  border-block-end: 1px solid rgba(11,29,51,.25);
  padding-block-end: 3px;
  transition: color var(--transition-fast), border-color var(--transition-fast), gap var(--transition-fast);
}
.text-link:hover { color: var(--color-accent); border-color: var(--color-accent); gap: 12px; }
.text-link--light { color: #fff; border-color: rgba(255,255,255,.4); }
.text-link--light:hover { color: #fff; border-color: #fff; }
.section-heading { max-width: 720px; margin-block-end: 42px; }
.section-heading--center { text-align: center; margin-inline: auto; }
.section-heading__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-block-end: 12px;
  color: var(--color-accent);
  font-size: .92rem;
  font-weight: 850;
}
.section-heading__eyebrow > span { width: 30px; height: 2px; background: currentColor; transform-origin: right; flex: 0 0 auto; }
.section-heading h2 { margin-block-end: 15px; font-size: clamp(1.9rem, 4vw, 3.15rem); }
.section-heading h2 > span { display: inline-block; }
.section-heading__description { margin: 0; font-size: clamp(1rem, 1.5vw, 1.1rem); }
.section-heading--dark h2 { color: #fff; }
.section-heading--dark .section-heading__description { color: rgba(255,255,255,.72); }
@media (min-width: 768px) { .container { width: min(calc(100% - 64px), var(--container)); } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
