/* Swift Partners PLLC - Watershed design tokens. Generated from tokens.json - edit that, not this. */
/* Fonts: <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700;800&display=swap" rel="stylesheet">
   or self-host fonts/Manrope-VariableFont_wght.ttf with the @font-face below. */

/* Static instances. The variable font is not shipped with the web kit used here. */
@font-face {
  font-family: 'Manrope';
  src: url('fonts/static/Manrope-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Manrope';
  src: url('fonts/static/Manrope-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Manrope';
  src: url('fonts/static/Manrope-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Manrope';
  src: url('fonts/static/Manrope-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Brand palette (locked) */
  --sp-teal: #0F6E74; /* Deep Teal: Primary: one-color logo, buttons, links, headers */
  --sp-teal-rgb: 15, 110, 116;
  --sp-blue: #1F4E9C; /* Basin Blue: Secondary; gradient end */
  --sp-blue-rgb: 31, 78, 156;
  --sp-green: #1F9D63; /* Canopy Green: Accent: highlights, icons, gradient start. Never small text on white */
  --sp-green-rgb: 31, 157, 99;
  --sp-charcoal: #1D2A2F; /* Charcoal: Text and wordmark */
  --sp-charcoal-rgb: 29, 42, 47;
  --sp-mist: #EAF3F0; /* Mist: Background tint */
  --sp-mist-rgb: 234, 243, 240;
  --sp-white: #FFFFFF; /* White: Surfaces */
  --sp-white-rgb: 255, 255, 255;

  /* Semantic aliases */
  --sp-color-primary: var(--sp-teal);
  --sp-color-secondary: var(--sp-blue);
  --sp-color-accent: var(--sp-green);
  --sp-color-text: var(--sp-charcoal);
  --sp-color-bg: var(--sp-white);
  --sp-color-bg-tint: var(--sp-mist);
  --sp-color-link: var(--sp-teal);
  --sp-color-link-hover: var(--sp-teal-hover);

  /* Derived UI tokens */
  --sp-text-muted: #4F6468; /* Muted/secondary text (6.26:1 on White, 5.54:1 on Mist) */
  --sp-teal-hover: #0C585D; /* Deep Teal hover / dark (Deep Teal mixed 20% toward black) */
  --sp-teal-active: #0A4D51; /* Deep Teal pressed / extra dark (30% toward black) */
  --sp-green-ink: #157549; /* Text-safe green for success messages and small green text (5.72:1 White, 5.06:1 Mist) */
  --sp-border: #D3E0DC; /* Hairlines, dividers, card borders (decorative, not for form controls) */
  --sp-border-strong: #6F8589; /* Form-control borders, focusable outlines (3.89:1 White, 3.45:1 Mist; meets 3:1 non-text) */
  --sp-teal-100: #E2EEEE; /* Teal tint 12%: selected rows, info panels */
  --sp-teal-200: #CFE2E3; /* Teal tint 20% */
  --sp-blue-100: #E4EAF3; /* Blue tint 12% */
  --sp-blue-200: #D2DCEB; /* Blue tint 20% */
  --sp-green-100: #E4F3EC; /* Green tint 12%: success panels */
  --sp-green-200: #D2EBE0; /* Green tint 20% */
  --sp-focus: #1F4E9C; /* Focus ring (Basin Blue, 7.99:1 on White) */
  --sp-danger: #B53F2A; /* Errors / critical constraints (Piedmont Clay, 5.66:1 on White) */
  --sp-warning: #E8B85A; /* Warning fills/badges only; put Charcoal text on it (not text on white) */

  /* Signature gradient: mark + large hero moments only */
  --sp-gradient: linear-gradient(90deg, #1F9D63 0%, #1F4E9C 100%);
  --sp-gradient-start: #1F9D63;
  --sp-gradient-end: #1F4E9C;

  /* Map / chart: sequential (light -> dark) */
  --sp-seq-1: #EAF3F0;
  --sp-seq-2: #A9D1CC;
  --sp-seq-3: #6AB1AF;
  --sp-seq-4: #379092;
  --sp-seq-5: #0F6E74;
  /* Map / chart: categorical (use in order) */
  --sp-cat-1: #0F6E74; /* Deep Teal */
  --sp-cat-2: #E8B85A; /* Harvest Amber */
  --sp-cat-3: #1F4E9C; /* Basin Blue */
  --sp-cat-4: #B53F2A; /* Piedmont Clay */
  --sp-cat-5: #1F9D63; /* Canopy Green */
  --sp-cat-6: #7CCCF2; /* Rain Sky */
  /* Map overlays on imagery (always draw the casing first) */
  --sp-map-parcel-stroke: #FFFFFF;
  --sp-map-parcel-adjacent-stroke: #FFFFFF;
  --sp-map-buffer-stroke: #E8B85A;
  --sp-map-wetland-stroke: #7FD9A8;
  --sp-map-wetland-fill: #1F9D63; --sp-map-wetland-fill-opacity: 0.3;
  --sp-map-flood-1pct-stroke: #7CCCF2;
  --sp-map-flood-1pct-fill: #1F4E9C; --sp-map-flood-1pct-fill-opacity: 0.35;
  --sp-map-flood-0-2pct-stroke: #7CCCF2;
  --sp-map-flood-0-2pct-fill: #7CCCF2; --sp-map-flood-0-2pct-fill-opacity: 0.18;
  --sp-map-casing: #1D2A2F; --sp-map-casing-opacity: 0.85;
  --sp-map-label: #FFFFFF; --sp-map-label-halo: #1D2A2F;

  /* Typography */
  --sp-font-sans: 'Manrope', 'Segoe UI', Arial, Helvetica, sans-serif;
  --sp-font-heading: var(--sp-font-sans);
  --sp-weight-regular: 400;
  --sp-weight-medium: 500;
  --sp-weight-bold: 700;
  --sp-weight-extrabold: 800;
  --sp-weight-heading: 800;
  --sp-weight-body: 400;
  --sp-weight-label: 500;
  --sp-text-display: 3.75rem; --sp-leading-display: 1.07; --sp-weight-display: 800; --sp-tracking-display: -0.02em; /* 60px/64px */
  --sp-text-h1: 3rem; --sp-leading-h1: 1.17; --sp-weight-h1: 800; --sp-tracking-h1: -0.015em; /* 48px/56px */
  --sp-text-h2: 2.25rem; --sp-leading-h2: 1.22; --sp-weight-h2: 800; --sp-tracking-h2: -0.01em; /* 36px/44px */
  --sp-text-h3: 1.875rem; --sp-leading-h3: 1.2; --sp-weight-h3: 800; --sp-tracking-h3: -0.01em; /* 30px/36px */
  --sp-text-h4: 1.5rem; --sp-leading-h4: 1.33; --sp-weight-h4: 800; --sp-tracking-h4: -0.005em; /* 24px/32px */
  --sp-text-h5: 1.25rem; --sp-leading-h5: 1.4; --sp-weight-h5: 700; --sp-tracking-h5: 0em; /* 20px/28px */
  --sp-text-lead: 1.25rem; --sp-leading-lead: 1.5; --sp-weight-lead: 400; --sp-tracking-lead: 0em; /* 20px/30px */
  --sp-text-body-lg: 1.125rem; --sp-leading-body-lg: 1.56; --sp-weight-body-lg: 400; --sp-tracking-body-lg: 0em; /* 18px/28px */
  --sp-text-body: 1rem; --sp-leading-body: 1.5; --sp-weight-body: 400; --sp-tracking-body: 0em; /* 16px/24px */
  --sp-text-body-sm: 0.875rem; --sp-leading-body-sm: 1.43; --sp-weight-body-sm: 400; --sp-tracking-body-sm: 0em; /* 14px/20px */
  --sp-text-label: 0.75rem; --sp-leading-label: 1.33; --sp-weight-label: 500; --sp-tracking-label: 0.08em; /* 12px/16px */
  --sp-text-caption: 0.75rem; --sp-leading-caption: 1.33; --sp-weight-caption: 400; --sp-tracking-caption: 0em; /* 12px/16px */
  /* PDF (8.5x11, pt) */
  --sp-pdf-cover-title: 28pt; --sp-pdf-leading-cover-title: 34pt;
  --sp-pdf-h1: 20pt; --sp-pdf-leading-h1: 26pt;
  --sp-pdf-h2: 14pt; --sp-pdf-leading-h2: 19pt;
  --sp-pdf-h3: 11pt; --sp-pdf-leading-h3: 15pt;
  --sp-pdf-body: 10pt; --sp-pdf-leading-body: 14pt;
  --sp-pdf-table: 8.5pt; --sp-pdf-leading-table: 11pt;
  --sp-pdf-table-header: 8pt; --sp-pdf-leading-table-header: 11pt;
  --sp-pdf-label: 7.5pt; --sp-pdf-leading-label: 10pt;
  --sp-pdf-caption: 7.5pt; --sp-pdf-leading-caption: 10pt;
  --sp-pdf-footer: 7pt; --sp-pdf-leading-footer: 9pt;

  /* Radius */
  --sp-radius-sm: 6px;
  --sp-radius-md: 10px;
  --sp-radius-lg: 14px;
  --sp-radius-pill: 999px;

  /* Logo */
  --sp-logo-clear-space: 0.432; /* x mark height, each side */
  --sp-logo-min-stacked: 48px; /* mark height */
  --sp-logo-min-horizontal: 24px; /* mark height */
}

/* Optional base styles */
body { font-family: var(--sp-font-sans); font-weight: 400; color: var(--sp-charcoal); background: var(--sp-white); }
h1, h2, h3, h4 { font-weight: 800; color: var(--sp-charcoal); }
a { color: var(--sp-teal); } a:hover { color: var(--sp-teal-hover); }
:focus-visible { outline: 2px solid var(--sp-focus); outline-offset: 2px; }
