/** Shopify CDN: Minification failed

Line 15:37 Unexpected "*"
Line 18:73 Unterminated string token

**/
/* ==========================================================================
   Super Arbor — design tokens (Wave 1 theme port, redesign/v9 HEAD)
   Source of truth: src/styles.css (:root + @theme) per Arbor Visual Identity
   Guidelines v1.0. oklch values are translated to plain hex (older Safari).

   SCOPING DECISION (documented per foundation brief):
   - Token custom properties live on :root. Custom properties are inert until
     referenced, so they cannot restyle Dawn; names are checked against Dawn
     (Dawn uses --color-*/--gradient-*/--font-*-family — no collisions).
   - Everything with rendering effect (fonts, colors, mini-preflight,
     focus ring) is scoped under the .sa-page wrapper class, NOT html/body,
     so Dawn's settings-driven typography keeps working on its own pages.
     RULE FOR SECTION AGENTS: the outermost element of every ported section
     must carry class="sa-page".
   - Value fonts intentionally absent (desktop-licensed only — must not ship;
     Fraunces/Mulish lead the stacks, matching the launch rule in styles.css).
   ========================================================================== */

/* ---- self-hosted variable fonts (files staged in this assets folder) ---- */
@font-face {
  font-family: "Fraunces";
  src: url("arbor-fraunces.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Fraunces";
  src: url("arbor-fraunces-italic.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Mulish";
  src: url("arbor-mulish.woff2") format("woff2");
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Surfaces + ink */
  --cream: #faf7f2;
  --paper: #efe9dd;
  --charcoal: #161616;

  /* Brand greens */
  --forest: #00774d;
  --forest-dark: #00603e;
  --forest-deep: #0c3826;
  --sage: #d5e0cf;

  /* Brand blue / orange / yellow + secondaries */
  --ink: #07597f;
  --terracotta: #e86b3d;
  --sun: #ebab3d;
  --blush: #f7cfc5;
  --mist: #c2d5d9;
  --butter: #fbe5ce;

  /* CTA + terra ramp */
  --cta: #d65f33;
  --peach: #f2a57e;
  --terra-text: #b34a20;
  --terra-mid: #c7501f;
  --terra-deep: #b3401a;
  --terra-ink: #8f3312;
  --terra-hover-a: #a03d15;
  --terra-hover-b: #993d15;
  --terra-band: #d85c2e;
  --ink-deep: #064a6a;

  /* Neutrals */
  --border: #dad5cb;
  --muted: #f2efe8;
  --muted-foreground: #4f5763;

  /* Layout */
  --max-w: 1280px;

  /* Type stacks */
  --font-sans: "Mulish", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Fraunces", ui-serif, Georgia, "Times New Roman", serif;

  /* Radius scale (source: --radius 8px, Tailwind calc steps resolved) */
  --radius: 8px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 12px;
  --radius-2xl: 16px;
  --radius-3xl: 20px;
}

/* ---- .sa-page scope: the React layout wrapper + Tailwind preflight,
        reduced to exactly what the ported markup relies on ---- */
.sa-page {
  font-family: var(--font-sans);
  /* Dawn sets html { font-size: calc(var(--font-body-scale) * 62.5%) } (10px
     root). The sa- port is authored against a 16px web-standard base: all sa-
     CSS uses px (rem would resolve against Dawn's 10px root), and this rule
     pins inherited text so Dawn's 15px body sizing never leaks in. */
  font-size: 16px;
  line-height: 1.5;
  /* Activate Fraunces' variable optical-size axis (opsz 9..144) so the
     high-contrast display cut appears at large sizes. Big heads force
     opsz 144 via .display-opt (sa-base.css). */
  font-optical-sizing: auto;
  background-color: var(--cream); /* HomeLayout: bg-background — sections with
                                     their own grounds override, as in the TSX */
  color: var(--charcoal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.sa-page,
.sa-page *,
.sa-page *::before,
.sa-page *::after {
  box-sizing: border-box;
}

/* Display face defaults — mirrors the source @layer base html/h1-h4 rules.
   ALL preflight-style rules below use :where(...) to stay at (0,1,0)
   specificity: section class rules load later in document order and must
   win ties — .sa-page <element> at (0,1,1) was overriding them. */
.sa-page :where(h1, h2, h3, h4) {
  font-family: var(--font-display);
  font-feature-settings: "ss01", "ss02";
  letter-spacing: -0.01em;
  line-height: 1.02;
  text-wrap: balance;
}

/* Mini-preflight — Dawn ships classic UA-ish margins/bullets; the ported
   markup (Tailwind-authored) assumes preflight zeros. Scoped, minimal. */
.sa-page :where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) {
  margin: 0;
}
.sa-page :where(ul, ol) {
  list-style: none;
  margin: 0;
  padding: 0;
}
/* :where() keeps these at (0,1,0) so section-level class rules (which load
   later in document order) can size images — .sa-page img at (0,1,1) was
   overriding e.g. .sa-header__logo-img { height: 44px } and blowing images
   up to their attribute/natural size. */
.sa-page :where(img, svg, video, picture) {
  display: block;
}
.sa-page :where(img) {
  max-width: 100%;
  height: auto;
}
.sa-page :where(a) {
  color: inherit;
  text-decoration: none;
}
.sa-page :where(button, input, select, textarea) {
  font: inherit;
  color: inherit;
}
.sa-page :where(button) {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

/* Focus ring — source @layer base :focus-visible, scoped */
.sa-page :focus-visible {
  outline: 2px solid var(--forest);
  outline-offset: 3px;
  border-radius: 3px;
}
