:root {
  --color-bordeaux: #7a1f2b;
  --color-bordeaux-dark: #4a121a;
  --color-anthracite: #1f2326;
  --color-steel-gray: #596066;
  --color-concrete: #b8b4aa;
  --color-concrete-light: #e7e3da;
  --color-off-white: #f7f4ee;
  --color-white: #ffffff;
  --radius-sm: 3px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --shadow-soft: 0 12px 32px rgba(31, 35, 38, 0.08);
  --shadow-raised: 0 22px 54px rgba(31, 35, 38, 0.14);
  --content-width: 1180px;
  --text-width: 720px;
  --font-heading: 'DM Sans Variable', 'Arial', system-ui, sans-serif;
  --font-body: 'Inter Variable', 'Arial', system-ui, sans-serif;
  --space-section: clamp(4rem, 7vw, 6.5rem);
  --ease-gasser: cubic-bezier(.16, 1, .3, 1);
  --duration-fast: 180ms;
  --duration-medium: 280ms;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; background: var(--color-off-white); color: var(--color-anthracite); font-family: var(--font-body); }
body { margin: 0; min-width: 320px; min-height: 100vh; overflow-x: clip; background: var(--color-off-white); font-size: 1rem; line-height: 1.65; }
body.mobile-menu-open { overflow: hidden; }
main { display: block; }
img, picture, svg, video, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
p { text-wrap: pretty; }
h1, h2, h3, h4 { font-family: var(--font-heading); line-height: 1.08; letter-spacing: -0.02em; text-wrap: balance; }

.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 1000; padding: .75rem 1rem;
  border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-anthracite);
  font-weight: 800; transform: translateY(-180%); transition: transform var(--duration-fast) ease;
}
.skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #a83848; outline-offset: 3px;
}

.container { width: min(var(--content-width), calc(100% - 2.5rem)); margin-inline: auto; }
.text-width { max-width: var(--text-width); }
.section { padding-block: var(--space-section); }
.section + .section { padding-top: 0; }
.section-heading { max-width: var(--text-width); margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.section-heading--split { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.section-heading h2 { margin: .45rem 0 .75rem; font-size: clamp(1.9rem, 3.5vw, 2.95rem); }
.section-heading p:last-child { margin-bottom: 0; color: var(--color-steel-gray); }
.eyebrow { margin: 0; color: var(--color-bordeaux); font-family: var(--font-heading); font-size: .8rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }

.button {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 48px;
  padding: .8rem 1.15rem; border: 1px solid transparent; border-radius: var(--radius-sm);
  font-family: var(--font-heading); font-weight: 800; line-height: 1.2; text-decoration: none;
  transition: transform var(--duration-fast) ease, background var(--duration-fast) ease, border-color var(--duration-fast) ease;
}
.button:hover { transform: translateY(-1px); }
.button-primary, .button:not(.button-secondary) { background: var(--color-bordeaux); color: var(--color-white); }
.button-primary:hover, .button:not(.button-secondary):hover { background: var(--color-bordeaux-dark); }
.button-secondary { border-color: currentColor; background: transparent; }
.button-secondary:hover { background: rgba(255,255,255,.08); }
.card { border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-soft); }

[data-reveal] { transform: translateY(.55rem); transition: transform 420ms var(--ease-gasser); }
[data-reveal].is-visible { transform: none; }
body.page-enter main { animation: page-enter 240ms ease-out both; }
@keyframes page-enter { from { opacity: .72; transform: translateY(.25rem); } to { opacity: 1; transform: none; } }

@media (max-width: 767px) {
  body { padding-bottom: calc(4rem + env(safe-area-inset-bottom)); font-size: 1rem; }
  .container { width: min(100% - 1.5rem, var(--content-width)); }
  .section { padding-block: clamp(3.25rem, 12vw, 4.75rem); }
  .section-heading--split { display: block; }
  .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
}
