/* ==========================================================================
   Fonts (self-hosted, variable)
   ========================================================================== */
@font-face {
  font-family: 'Geist';
  src: url('../fonts/geist-latin.woff2') format('woff2');
  font-weight: 400 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist';
  src: url('../fonts/geist-latin-ext.woff2') format('woff2');
  font-weight: 400 900;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist';
  src: url('../fonts/geist-symbols.woff2') format('woff2');
  font-weight: 400 900;
  font-display: swap;
  unicode-range: U+2190-2197, U+2260;
}
@font-face {
  font-family: 'Archivo Narrow';
  src: url('../fonts/archivo-narrow-latin.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo Narrow';
  src: url('../fonts/archivo-narrow-latin-ext.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo Narrow';
  src: url('../fonts/archivo-narrow-symbols.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
  unicode-range: U+2190-2197, U+2260;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/inter-latin.woff2') format('woff2');
  font-weight: 400 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, 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-symbols.woff2') format('woff2');
  font-weight: 400 800;
  font-display: swap;
  unicode-range: U+2190-2197, U+2260, U+2318;
}
@font-face {
  font-family: 'Manrope';
  src: url('../fonts/manrope-latin.woff2') format('woff2');
  font-weight: 500 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
  --f-sans: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-narrow: 'Archivo Narrow', 'Arial Narrow', sans-serif;
  --f-inter: 'Inter', system-ui, sans-serif;
  --f-manrope: 'Manrope', system-ui, sans-serif;

  --c-ink: #1A1A1A;
  --c-text: #3A3A3A;
  --c-muted: #3A3A3A;
  --c-paper: #F5F2ED;
  --c-paper-2: #ECEAE5;
  --c-white: #FFFFFF;
  --c-accent: #E8712A;
  --c-accent-hover: #D4611C;
  --c-success: #10B981;
  --c-line: #E5E2DC;
  --c-line-2: #D4D0CB;
  --c-dark: #1A1A1A;
  --c-dark-2: #2A2A2A;
  --c-dark-line: #2D2D2D;
  --c-gray: #B5B5B5;
  --c-gray-2: #999999;

  --pad-x: 80px;
  --container: 1440px;
  --header-h: 92px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 1199.98px) {
  :root { --pad-x: 40px; }
}
@media (max-width: 767.98px) {
  :root {
    --pad-x: 20px;
    --c-muted: #77776F;
    --c-line: #DADAD2;
  }
}

/* ==========================================================================
   Reset
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--c-paper);
  color: var(--c-ink);
  font: 400 15px/20px var(--f-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, ol, ul { margin: 0; }
ol, ul { padding: 0; list-style: none; }
img, svg, video, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
table { border-collapse: collapse; }
address { font-style: normal; }
b, strong { font-weight: 700; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
::selection { background: var(--c-accent); color: #fff; }

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--pad-x);
}

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 1000;
  background: var(--c-accent); color: #fff; padding: 10px 16px;
  font: 700 13px/17px var(--f-sans);
}
.skip-link:focus { top: 8px; }

.icon { display: inline-block; flex: none; fill: currentColor; }

.upper { text-transform: uppercase; }

@media (max-width: 767.98px) { .d-only { display: none !important; } }
@media (min-width: 768px) { .m-only { display: none !important; } }

/* ==========================================================================
   Buttons & links
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 2px;
  border: 1px solid transparent;
  font: 700 13px/17px var(--f-sans);
  white-space: nowrap;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--c-accent); color: #fff; }
.btn--primary:hover { background: var(--c-accent-hover); }
.btn--outline { border-color: var(--c-ink); color: var(--c-ink); }
.btn--outline:hover { background: var(--c-ink); color: #fff; }
.btn--light-outline { border-color: #fff; color: #fff; }
.btn--light-outline:hover { background: #fff; color: var(--c-ink); }
.btn[disabled], .btn.is-loading { opacity: .65; pointer-events: none; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--c-accent);
  font: 700 14px/19px var(--f-narrow);
  text-transform: uppercase;
  transition: gap .25s var(--ease), color .2s;
}
.link-arrow .icon { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.link-arrow:hover .icon { transform: translateX(3px); }

.badge-18 {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: 2px;
  background: var(--c-accent);
  color: #fff;
  font: 800 10px/13px var(--f-sans);
  white-space: nowrap;
}

/* Reveal on scroll (progressive enhancement: only hidden when JS is on) */
.js [data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s var(--ease) var(--reveal-delay, 0s), transform .6s var(--ease) var(--reveal-delay, 0s);
}
.js [data-reveal].is-visible { opacity: 1; transform: none; }

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