@font-face {
  font-family: '360Node Geist';
  src: url('./fonts/Geist-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: light;
  --canvas: #f5f4f0;
  --surface: #fffefa;
  --ink: #102d24;
  --muted: #52625c;
  --link: #0f5745;
  --border: #ccd4ce;
  --hover: #edf1eb;
  --focus: #b13b27;
  --sans: '360Node Geist', Arial, sans-serif;
  --heading: Georgia, 'Times New Roman', serif;
  font-family: var(--sans);
  font-size: 16px;
  background: var(--canvas);
  color: var(--ink);
  scroll-padding-block-start: 1.5rem;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 0; font-size: .96875rem; line-height: 1.7; }
a { color: var(--link); text-underline-offset: .2em; text-decoration-thickness: .08em; }
a:hover { text-decoration-thickness: .12em; }
:where(a, button, summary):focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
:where(h1, h2, h3, p) { overflow-wrap: anywhere; }
button { font: inherit; }
[hidden] { display: none !important; }

.skip-link {
  position: absolute;
  top: .75rem;
  left: 1rem;
  z-index: 5;
  min-height: 44px;
  padding: .65rem 1rem;
  border-radius: .5rem;
  background: var(--ink);
  color: var(--canvas);
  transform: translateY(-180%);
}
.skip-link:focus-visible { transform: translateY(0); }
.site-header { border-bottom: 1px solid var(--border); }
.header-inner {
  width: min(calc(100% - 3rem), 75rem);
  min-height: 80px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding-block: 1rem;
}
.brand {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.2;
}
.brand-mark { flex: 0 0 auto; }
.brand-mark-dark { display: none; }
.brand-name { font-size: 1.5rem; font-weight: 700; letter-spacing: -.045em; }
.brand-product { margin-left: .2rem; padding-left: 1rem; border-left: 1px solid var(--border); color: var(--muted); font-size: 1.15rem; }
.back-link { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.privacy-page { width: min(calc(100% - 3rem), 56rem); margin-inline: auto; padding-block: 2.5rem 6rem; }
.privacy-page:focus { outline: none; }
.privacy-header { margin-bottom: 1.5rem; }
.updated { color: var(--muted); margin: 0 0 1rem; font-size: .875rem; }
h1 { margin: 0 0 1rem; font-family: var(--heading); font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 400; line-height: 1.12; letter-spacing: -.035em; }
h2 { margin: 0 0 .75rem; font-family: var(--heading); font-size: 1.5rem; font-weight: 400; line-height: 1.4; letter-spacing: -.025em; }
h3 { margin: 0 0 .75rem; font-size: 1rem; line-height: 1.5; }
p { margin: 0 0 1rem; }
p:last-child { margin-bottom: 0; }
.controller { margin-bottom: 2.5rem; padding-block: 1.25rem; border-block: 1px solid var(--border); scroll-margin-block-start: 1.5rem; }
.processing-intro { margin-bottom: 1.25rem; }
.disclosure-controls { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.disclosure-controls button {
  min-height: 44px;
  padding: .5rem 1rem;
  border: 1px solid var(--border);
  border-radius: .65rem;
  background: var(--surface);
  color: var(--ink);
  font-size: .875rem;
  cursor: pointer;
}
.disclosure-controls button:hover { border-color: var(--link); background: var(--hover); }
.disclosure-controls button:active { background: var(--border); }
.v2-disclosure { border-block: 1px solid var(--border); scroll-margin-block-start: 1.5rem; }
.v2-disclosure + .v2-disclosure { border-top: 0; }
.v2-disclosure > summary {
  min-height: 44px;
  padding-block: 1rem;
  font-weight: 650;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.v2-disclosure > summary:hover { color: var(--link); }
.v2-disclosure > summary:focus-visible { outline-offset: 2px; }
.v2-disclosure__body { padding-block: .5rem 1.25rem; }
.v2-disclosure__body p { max-width: 75ch; }
.site-footer { border-top: 1px solid var(--border); color: var(--muted); }
.footer-inner {
  width: min(calc(100% - 3rem), 56rem);
  margin-inline: auto;
  padding-block: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem 1.5rem;
  font-size: .875rem;
}
.footer-inner nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.footer-inner a { min-height: 44px; display: inline-flex; align-items: center; }

@media (max-width: 600px) {
  .header-inner, .privacy-page, .footer-inner { width: calc(100% - 2rem); }
  .header-inner { min-height: 76px; flex-wrap: wrap; gap: .25rem .75rem; padding-block: .75rem; }
  .brand { gap: .55rem; }
  .brand-mark { width: 30px; height: 30px; }
  .brand-name { font-size: 1.3rem; }
  .brand-product { padding-left: .65rem; font-size: 1.05rem; }
  .back-link { font-size: .875rem; }
  .privacy-page { padding-top: 1.5rem; padding-bottom: 4rem; }
  .footer-inner { flex-wrap: wrap; }
}

@media (max-width: 374px) {
  .header-inner { align-items: flex-start; flex-direction: column; }
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --canvas: #071d19;
    --surface: #102d24;
    --ink: #edf3ee;
    --muted: #bdcec4;
    --link: #c0d9c8;
    --border: #426154;
    --hover: #1d3b30;
    --focus: #f0a18d;
  }
  .brand-mark-light { display: none; }
  .brand-mark-dark { display: block; }
}

/* Instant native disclosure state is deliberate: no animated legal text or
   height transitions that move a reader's current line. */
@media (prefers-reduced-motion: reduce) { :root { scroll-behavior: auto; } }

@media (forced-colors: active) {
  :root { --border: CanvasText; --ink: CanvasText; --link: LinkText; --focus: Highlight; }
  .brand-mark { forced-color-adjust: auto; }
}

@media print {
  :root { color-scheme: light; --canvas: #fff; --surface: #fff; --ink: #000; --muted: #333; --link: #000; background: #fff; color: #000; }
  body { color: #000; font-size: 10pt; }
  .site-header, .site-footer, .skip-link, .disclosure-controls { display: none !important; }
  .privacy-page { width: 100%; padding: 0; }
  .privacy-page h1 { font-size: 24pt; }
  .privacy-page a { color: #000; }
  .v2-disclosure { content-visibility: visible; border-color: #aaa; }
  .v2-disclosure::details-content { display: block; content-visibility: visible; }
  .v2-disclosure__body { display: block !important; }
  h2, h3, summary { break-after: avoid; }
}
