/* demand-definition — generated by tools/generate-tokens.mjs from
   clients/demand-definition/contract.tokens.json. DO NOT EDIT: change the contract
   and regenerate. `node tools/generate-tokens.mjs demand-definition --check` fails
   when this file and the contract disagree. */

:root {
  /* Brand palette: private. Only the roles below may use these. */
  --_market-type:           #0077D1;
  --_market-ink:            #0060AE;
  --_market:                #2495F1;
  --_journey-products:      #148222;
  --_journey-provider:      #007215;
  --_journey-information:   #70D377;
  --_journey-problem:       #5ABF60;
  --_audience-brand:        #B31419;
  --_state-review:          #FFE81A;
  --_surface-muted:         #6E6A63;
  --_surface-anchor:        #03445F;
  --_journey-wash:          rgba(50,152,57,0.15);
  --_market-wash:           rgba(36,149,241,0.15);
  --_audience:              #D52529;
  --_audience-wash:         rgba(213,37,41,0.15);
  --_journey:               #329839;

  /* fg */
  --fg-strong:              #1A1A1A;
  --fg-medium:              #3E3E3E;
  --fg-secondary:           #3E3E3E;
  --fg-muted:               #5E5E5E;
  --fg-on-dark:             #FFFFFF;
  --fg-on-dark-soft:        #B9B9B7;
  --fg-on-accent:           #FFFFFF;
  --fg-on-accent-soft:      #FFFFFF;
  --fg-eyebrow:             #1A1A1A;
  --fg-emphasis-on-dark:    #FFFFFF;
  --fg-link:                #1A1A1A;
  --fg-link-on-dark:        #FFFFFF;
  --fg-on-badge:            #FFFFFF;
  --fg-link-hover:          #1A1A1A;
  --fg-link-visited:        #1A1A1A;
  --fg-caption:             #5E5E5E;
  --fg-cite:                #5E5E5E;
  --fg-quote:               #1A1A1A;
  --fg-nav-current:         #1A1A1A;
  --fg-nav-ancestor:        #1A1A1A;
  --fg-label:               #1A1A1A;
  --fg-placeholder:         #737373;

  /* field */
  --field-bg:               #FBFBF9;
  --field-fg:               #1A1A1A;
  --field-border:           var(--border-table);
  --field-border-focus:     #1A1A1A;
  --field-radius:           0;
  --field-height:           47px;

  /* status */
  --status-error-bg:        rgba(213,37,41,0.15);
  --status-error-fg:        #B31419;
  --status-warning-bg:      rgba(255,232,26,0.25);
  --status-warning-fg:      #1A1A1A;
  --status-success-bg:      rgba(50,152,57,0.15);
  --status-success-fg:      #007215;

  /* link */
  --link-rule:              var(--_market);
  --link-rule-thickness:    3px;
  --link-rule-offset:       0;
  --link-hover-flood:       var(--_market-wash);

  /* surface */
  --surface-page:           #FBFBF9;
  --surface-raised:         #FFFFFF;
  --surface-sunken:         #F2F2F0;
  --surface-inverse:        #1A1A1A;
  --surface-inverse-raised: #2A2A28;
  --surface-accent:         var(--_market-type);
  --surface-badge:          #1A1A1A;
  --surface-table-header:   #F2F2F0;
  --surface-code:           #F2F2F0;
  --surface-tint:           var(--_market-wash);

  /* ground */
  --ground-text:            var(--fg-strong);

  /* gradient */
  --gradient-hero:          none;

  /* action */
  --action-primary-bg:      #1A1A1A;
  --action-primary-fg:      #FFFFFF;
  --action-on-dark-bg:      #FFFFFF;
  --action-on-dark-fg:      #1A1A1A;
  --action-on-accent-bg:    #FFFFFF;
  --action-on-accent-fg:    #1A1A1A;
  --action-primary-bg-hover: #F2F2F0;
  --action-on-dark-bg-hover: #F2F2F0;
  --action-on-accent-bg-hover: #F2F2F0;
  --action-disabled-bg:     #DEDED8;
  --action-disabled-fg:     #757575;
  --action-press-shift:     2px;
  --action-radius:          0;
  --action-border-width:    2px;
  --action-shadow:          4px 4px 0 0 var(--fg-strong);
  --action-shadow-hover:    6px 6px 0 0 var(--fg-strong);

  /* border */
  --border-faint:           #DEDED8;
  --border-card:            #1A1A1A;
  --border-soft:            #DEDED8;
  --border-on-dark:         rgba(255,255,255,0.3);
  --border-accent:          var(--_journey-provider);
  --border-accent-on-dark:  #FFFFFF;
  --border-quote:           var(--_market);
  --border-table:           #757575;

  /* focus */
  --focus-ring:             #1A1A1A;
  --focus-ring-width:       3px;
  --focus-ring-offset:      3px;

  /* motion */
  --motion-base:            160ms;

  /* ease */
  --ease-standard:          cubic-bezier(0, 0, 0.58, 1);

  /* tracking */
  --tracking-tight:         -0.03em;
  --tracking-wide:          0;

  /* font */
  --font-body:              Poppins, sans-serif;
  --font-heading:           Poppins, sans-serif;
  --font-mono:              ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --font-heading-variation: normal;

  /* hairline */
  --hairline:               1px;

  /* radius */
  --radius-sm:              0;
  --radius-md:              0;
  --radius-lg:              0;
  --radius-pill:            999px;
  --radius-xs:              0;
  --radius-org:             0;

  /* shadow */
  --shadow-card-tinted:     6px 6px 0 0 var(--_market);
  --shadow-card-sm:         3px 3px 0 0 #1A1A1A;
  --shadow-card-md:         4px 4px 0 0 #1A1A1A;
  --shadow-card-lg:         8px 8px 0 0 #1A1A1A;
  --shadow-image:           none;

  /* t */
  --t-hero:                 54px;
  --t-section:              38px;
  --t-h3:                   22px;
  --t-card-title:           22px;
  --t-lead:                 21.6px;
  --t-body:                 18px;
  --t-small:                15.2px;
  --t-eyebrow:              14px;
  --t-stat:                 88px;
  --t-label:                14px;
  --t-tag:                  12.8px;

  /* lh */
  --lh-tight:               1.08;
  --lh-snug:                1.12;
  --lh-normal:              1.45;
  --lh-relaxed:             1.65;
  --lh-flush:               1;

  /* fw */
  --fw-regular:             400;
  --fw-semi:                600;
  --fw-bold:                700;
  --fw-medium:              500;

  /* space */
  --space-0:                0;
  --space-1:                4px;
  --space-2:                8px;
  --space-3:                12px;
  --space-4:                16px;
  --space-5:                20px;
  --space-6:                24px;
  --space-7:                32px;
  --space-8:                40px;
  --space-9:                48px;
  --space-10:               64px;
  --space-11:               96px;
  --space-12:               104px;

  /* measure */
  --measure-site:           1600px;
  --measure-banner:         1320px;
  --measure-content:        calc(var(--measure-banner) - var(--gutter) - var(--measure-banner) * 0.27 - var(--sidebar-gap));
  --measure-prose:          68ch;
  --measure-prose-tight:    345px;

  /* gutter */
  --gutter:                 64px;
  --gutter-page-edge:       48px;

  /* breakpoint */
  --breakpoint-mobile:      48em;

  /* sidebar */
  --sidebar-width:          27%;
  --sidebar-gap:            var(--space-7);

  /* main */
  --main-basis:             1124px;

  /* banner */
  --banner-art-cap:         368px;
  --banner-art-bg-radius:   0;
  --banner-art-bg-opacity:  1;
  --banner-text-max:        34em;
  --banner-padding-start:   126px;
  --banner-padding-end:     82px;
  --banner-overlap:         0;

  /* nav */
  --nav-hover-flood:        var(--surface-sunken);
  --nav-hover-rule:         var(--fg-strong);
  --nav-rule-current:       var(--fg-strong);

  /* card */
  --card-radius:            0;
  --card-border-width:      2px;

  /* list */
  --list-marker-size:       6px;
  --list-marker-color:      var(--fg-strong);

  /* image */
  --image-radius:           0;

  /* header */
  --header-height:          64px;

  /* layer */
  --layer-base:             0;
  --layer-raised:           1;
  --layer-sticky:           10;
  --layer-header:           20;
  --layer-overlay:          30;
}

body:not(.has-sidebar) { --measure-content: 1124px; }

.c-ground--sunken { background: var(--surface-sunken); }

.c-ground--raised {
  background: var(--surface-raised);
  --fg-muted:           #5E5E5E;
  color: var(--ground-text);
}

.c-ground--inverse {
  background: var(--surface-inverse);
  --ground-text:        var(--fg-on-dark);
  --fg-strong:          #FFFFFF;
  --fg-medium:          #FFFFFF;
  --fg-secondary:       #B9B9B7;
  --fg-muted:           #9C9C9A;
  --fg-eyebrow:         #B9B9B7;
  --fg-link:            #FFFFFF;
  --border-faint:       #3A3A38;
  --border-card:        #3A3A38;
  --surface-raised:     #2A2A28;
  --focus-ring:         #FFFFFF;
  --shadow-card-tinted: none;
  color: var(--ground-text);
}

.c-ground--accent {
  background: var(--surface-accent);
  --ground-text:        var(--fg-on-accent);
  --fg-strong:          #FFFFFF;
  --fg-medium:          #FFFFFF;
  --fg-secondary:       #FFFFFF;
  --fg-muted:           #FFFFFF;
  --fg-eyebrow:         #FFFFFF;
  --fg-link:            #FFFFFF;
  --border-faint:       rgba(255,255,255,0.3);
  --border-card:        #1A1A1A;
  --focus-ring:         #FFFFFF;
  --shadow-card-tinted: 8px 8px 0 0 #1A1A1A;
  color: var(--ground-text);
}

.c-ground--tint {
  background: var(--surface-tint);
  --fg-strong:          #1A1A1A;
  --fg-medium:          #3E3E3E;
  --fg-muted:           #5E5E5E;
  --fg-eyebrow:         #FFFFFF;
  --fg-link:            #1A1A1A;
  --border-faint:       transparent;
  color: var(--ground-text);
}

.c-ground--page {
  background: var(--surface-page);
  --fg-muted:           #5E5E5E;
  --ground-text:        #1A1A1A;
  --fg-strong:          #1A1A1A;
  --fg-medium:          #3E3E3E;
  --fg-secondary:       #3E3E3E;
  --fg-eyebrow:         #1A1A1A;
  --fg-link:            #1A1A1A;
  --border-faint:       #DEDED8;
  --border-card:        #1A1A1A;
  --surface-raised:     #FFFFFF;
  --focus-ring:         #1A1A1A;
  --shadow-card-tinted: 6px 6px 0 0 var(--_market);
  color: var(--ground-text);
}

.cw-hub--market {
  --nav-rule-current:   var(--_market);
  --link-rule:          var(--_market);
  --link-hover-flood:   var(--_market-wash);
}

.cw-hub--journey {
  --nav-rule-current:   var(--_journey);
  --link-rule:          var(--_journey);
  --link-hover-flood:   var(--_journey-wash);
}

.cw-hub--audience {
  --nav-rule-current:   var(--_audience);
  --link-rule:          var(--_audience);
  --link-hover-flood:   var(--_audience-wash);
}
