/* REWAP Brokerage — Concept 1 design tokens.
   Source of truth: tools/palette.py (OKLCH). Hex values are the sRGB fallback. */
@font-face { font-family: "Libre Caslon Display"; src: url("../fonts/libre-caslon-display.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url("../fonts/libre-caslon-text-var.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url("../fonts/libre-caslon-text-italic-var.woff2") format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-var.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-italic-var.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; }

:root {
  /* Primitive color (sRGB fallback) */
  --c-night: #0C1827;
  --c-navy: #17283F;
  --c-navy-700: #273A54;
  --c-navy-500: #4D5F77;
  --c-navy-200: #C9D2DD;
  --c-navy-100: #E5EAF0;
  --c-bronze-700: #7C532E;
  --c-bronze: #AD7E50;
  --c-bronze-300: #D8B38A;
  --c-bronze-100: #F4E8D8;
  --c-gallery: #FAFAF9;
  --c-plaster: #F4F2EF;
  --c-limestone: #E5E3DE;
  --c-hairline: #D9D7D3;
  --c-granite: #7C8187;
  --c-slate: #545C66;
  --c-ink: #192331;
  --c-success: #2C6C47;
  --c-warning: #875814;
  --c-warning-fill: #F0D49B;
  --c-error: #B1322D;
  --c-white: #FFFFFF;

  /* Semantic color */
  --surface-page: var(--c-gallery);
  --surface-alt: var(--c-plaster);
  --surface-statement: var(--c-navy);
  --surface-deep: var(--c-night);
  --text: var(--c-ink);
  --text-secondary: var(--c-slate);
  --text-on-dark: var(--c-gallery);
  --text-on-dark-secondary: var(--c-navy-200);
  --accent: var(--c-bronze);
  --accent-text: var(--c-bronze-700);
  --accent-on-dark: var(--c-bronze-300);
  --rule: var(--c-hairline);
  --rule-strong: var(--c-limestone);
  --rule-on-dark: color-mix(in oklab, var(--c-gallery) 18%, transparent);
  --control-border: var(--c-granite);
  --link: var(--c-navy);
  --link-underline: var(--c-bronze);
  --focus: var(--c-bronze-700);
  --focus-on-dark: var(--c-bronze-300);

  /* Type */
  --font-display: "Libre Caslon Display", Georgia, serif;
  --font-text: "Libre Caslon Text", Georgia, serif;
  --font-ui: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-display: clamp(3rem, 1.9rem + 4.2vw, 6rem);
  --fs-h1: clamp(2.5rem, 1.75rem + 2.8vw, 4.25rem);
  --fs-h2: clamp(1.875rem, 1.45rem + 1.5vw, 2.75rem);
  --fs-h3: clamp(1.375rem, 1.22rem + .55vw, 1.75rem);
  --fs-lead: clamp(1.1875rem, 1.08rem + .4vw, 1.4375rem);
  --fs-body: 1.0625rem;
  --fs-ui: 1rem;
  --fs-small: .875rem;
  --fs-label: .75rem;
  --lh-display: 1.02;
  --lh-heading: 1.12;
  --lh-body: 1.6;
  --lh-ui: 1.45;
  --track-display: -.012em;
  --track-label: .14em;
  --measure: 66ch;

  /* Space (4px base) */
  --s-1: .25rem; --s-2: .5rem; --s-3: .75rem; --s-4: 1rem; --s-5: 1.5rem; --s-6: 2rem;
  --s-7: 3rem; --s-8: 4rem; --s-9: 6rem; --s-10: 8rem; --s-11: 12rem;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --col-gap: clamp(1rem, 2vw, 2rem);
  --page-max: 90rem;
  --section-pad: clamp(4rem, 3rem + 5vw, 9rem);

  /* Form */
  --radius: 0;
  --rule-w: 1px;
  --lift: 0 1px 2px rgb(12 24 39 / .06), 0 10px 20px -12px rgb(12 24 39 / .2);

  /* Motion */
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-inout: cubic-bezier(.65, 0, .35, 1);
  --dur-1: 160ms; --dur-2: 320ms; --dur-3: 640ms; --dur-reveal: 1100ms;
}

@supports (color: oklch(50% 0 0)) {
  :root {
    --c-night: oklch(20.5% 0.035 256);
    --c-navy: oklch(27.5% 0.048 256);
    --c-navy-700: oklch(34.5% 0.052 256);
    --c-navy-500: oklch(48.0% 0.045 256);
    --c-navy-200: oklch(86.0% 0.018 256);
    --c-navy-100: oklch(93.5% 0.010 256);
    --c-bronze-700: oklch(48.0% 0.075 62);
    --c-bronze: oklch(63.0% 0.085 65);
    --c-bronze-300: oklch(79.0% 0.070 70);
    --c-bronze-100: oklch(93.5% 0.025 75);
    --c-gallery: oklch(98.5% 0.002 90);
    --c-plaster: oklch(96.2% 0.004 85);
    --c-limestone: oklch(91.5% 0.006 85);
    --c-hairline: oklch(88.0% 0.006 85);
    --c-granite: oklch(60.0% 0.012 256);
    --c-slate: oklch(47.0% 0.020 256);
    --c-ink: oklch(25.5% 0.030 256);
    --c-success: oklch(48.0% 0.090 155);
    --c-warning: oklch(50.0% 0.100 70);
    --c-warning-fill: oklch(88.0% 0.080 85);
    --c-error: oklch(51.0% 0.165 27);
    --c-white: oklch(100.0% 0.000 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-1: 0ms; --dur-2: 0ms; --dur-3: 0ms; --dur-reveal: 0ms; }
}
