/**
 * APCC design tokens ("network" system: the cohort map as identity; green + ochre) — the single source of truth for colour, radius, shadow,
 * focus and motion across the theme, the conference portal and the cohort
 * library. Loaded before every other APCC stylesheet. Legacy variable names in
 * those stylesheets are aliased to these tokens; edit values here only.
 *
 * Anchored on the approved Cohorts directory design. Contrast (on white):
 * green-600 5.4:1, green-700 7.6:1, green-900 12.4:1, muted 4.8:1 (AA).
 */
:root {
	/* Greens */
	--apcc-green-950: #062a17;  /* hero shade */
	--apcc-green-900: #0b3a20;  /* headings, footer, deepest brand green */
	--apcc-green-700: #125c2e;  /* strong text, hover, hero gradient end */
	--apcc-green-600: #16763a;  /* action: links, buttons, focus (AA on white + mint) */
	--apcc-green-500: #1b8c3b;  /* decorative only: icons, rules, chart accents (not text) */

	/* Tints and lines */
	--apcc-mint-50:  #f3f6f2;   /* page surface */
	--apcc-mint-100: #e6f1e9;   /* tinted panels, pills, hovers */
	--apcc-mint-200: #d6e3da;   /* borders, dividers */
	--apcc-mint-300: #b2c7b8;   /* input borders */

	/* Text */
	--apcc-ink:      #102218;
	--apcc-text:     #33473b;   /* body copy on light */
	--apcc-muted:    #5b6e63;   /* secondary text (4.8:1) */

	/* Accents */
	--apcc-ochre:       #a9521a; /* network accent: cohort sites, data marks (5.4:1 on white) */
	--apcc-ochre-soft:  #f6e7d9;
	--apcc-sand:        #e7e2d6; /* land without cohorts on the map */
	--apcc-gold:        #ffc107;
	--apcc-gold-dark:   #e0a800; /* gold hover */
	--apcc-gold-soft:   #fff3cd;
	--apcc-gold-bright: #ffde17; /* on dark green only */
	--apcc-cyan:        #3ec6e0;

	/* Status */
	--apcc-danger: #b42318;  --apcc-danger-bg: #fef3f2;  --apcc-danger-line: #fecdca;
	--apcc-info:   #175cd3;  --apcc-info-bg:   #eff8ff;  --apcc-info-line:   #b2ddff;
	--apcc-warn:   #b54708;  --apcc-warn-bg:   #fffaeb;  --apcc-warn-line:   #fedf89;
	--apcc-warn-ink: #7a5b00; /* dark amber text on gold tints (AA) */
	--apcc-ok:     var(--apcc-green-600); --apcc-ok-bg: var(--apcc-mint-100); --apcc-ok-line: #bce7cc;

	/* Surfaces, shape, depth */
	--apcc-white: #ffffff;
	--apcc-radius-sm: 8px;
	--apcc-radius:    14px;
	--apcc-radius-lg: 20px;
	--apcc-shadow-sm: 0 1px 0 var(--apcc-mint-200);
	--apcc-shadow:    0 10px 28px rgba(13, 61, 26, .06);
	--apcc-shadow-lg: 0 24px 60px -24px rgba(4, 23, 13, .35);

	/* Hero: one deep gradient everywhere (no bright-green corner) */
	--apcc-hero-gradient: linear-gradient(160deg, var(--apcc-green-950) 0%, var(--apcc-green-900) 70%, #0f4626 100%);

	/* Interaction */
	--apcc-focus: 0 0 0 3px #fff, 0 0 0 6px var(--apcc-green-600);
	--apcc-ease: cubic-bezier(.2, .7, .2, 1);
	--apcc-tap: 44px;         /* minimum touch target */
	--apcc-header-h: 87px;    /* fixed header height */

	/* Type */
	--apcc-font-display: "Atkinson Hyperlegible Next", "Noto Sans", system-ui, sans-serif;
	--apcc-grid-line: rgba(233, 244, 236, .10); /* Lexis hairlines on dark */
	--apcc-font: "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Un-styled form controls (e.g. WordPress login, third-party widgets) share the palette. */
:where(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="range"], [type="color"], [type="file"]), select, textarea) {
	border-color: var(--apcc-mint-300);
}
:where(input, select, textarea)::placeholder { color: var(--apcc-muted); opacity: 1; }
::selection { background: var(--apcc-gold); color: var(--apcc-green-900); }
:where(a) { text-underline-offset: 3px; }

/* One visible, consistent keyboard focus ring for the whole site. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--apcc-green-600);
	outline-offset: 2px;
	border-radius: 4px;
}
:where(.hero-section, .apcc-hero, .cohort-discovery-hero, .site-footer, [class*="page-header"]) :where(a, button, input, select, textarea):focus-visible {
	outline-color: var(--apcc-gold-bright);
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}
