/*
 * GCS Design Tokens
 * Source of values: Brand Guidelines v3.7, except where marked below.
 * Tokens marked 'session decision' are recorded in the Notion page
 * 'GCS Design Tokens — Decision Record', not in v3.7.
 * NAMESPACE RULE: --wp--preset--* is authoritative for palette and font families
 * (defined in wavlt-goodrichcaroling.json). Never redefine a palette color here.
 * --gcs-* covers only what the variation does not express.
 * Type in rem per v3.7 D6. Geometry stays px: focus outline, touch targets, borders, breakpoints.
 */

:root {

/* ---- Fluid range ---- */
	/* Technique parameters, not v3.7 values. See Notion token record.
	   COUPLED: --gcs-fluid-span = vw-max − vw-min in rem, unitless.
	   Change an endpoint without the span and every clamp() below mis-terminates.
	   --gcs-fluid-vw-max is documentation only — no clamp() reads it. */
	--gcs-fluid-vw-min: 20rem;   /* 320px — WCAG 1.4.10 reflow floor */
	--gcs-fluid-vw-max: 75rem;   /* 1200px — theme.json wideSize */
	--gcs-fluid-span: 55;        /* 75 − 20 */

	/* ---- Heading scale: min / max ---- */
	--gcs-h1-min: 2.5rem;
	--gcs-h1-max: 4rem;
	--gcs-h2-min: 1.75rem;
	--gcs-h2-max: 2.25rem;
	--gcs-h3-min: 1.375rem;
	--gcs-h3-max: 1.75rem;
	--gcs-h4-min: 1.125rem;
	--gcs-h4-max: 1.375rem;
	--gcs-h5-min: 1rem;
	--gcs-h5-max: 1.125rem;
	--gcs-h6-min: 0.9375rem;
	--gcs-h6-max: 1rem;

	/* ---- Heading scale: composed fluid ---- */
	--gcs-h1: clamp(var(--gcs-h1-min), calc(var(--gcs-h1-min) + 1.5 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-h1-max));
	--gcs-h2: clamp(var(--gcs-h2-min), calc(var(--gcs-h2-min) + 0.5 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-h2-max));
	--gcs-h3: clamp(var(--gcs-h3-min), calc(var(--gcs-h3-min) + 0.375 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-h3-max));
	--gcs-h4: clamp(var(--gcs-h4-min), calc(var(--gcs-h4-min) + 0.25 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-h4-max));
	--gcs-h5: clamp(var(--gcs-h5-min), calc(var(--gcs-h5-min) + 0.125 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-h5-max));
	--gcs-h6: clamp(var(--gcs-h6-min), calc(var(--gcs-h6-min) + 0.0625 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-h6-max));

	/* ---- Body ---- */
	--gcs-body-min: 1.125rem;
	--gcs-body-max: 1.25rem;
	--gcs-body: clamp(var(--gcs-body-min), calc(var(--gcs-body-min) + 0.125 * ((100vw - var(--gcs-fluid-vw-min)) / var(--gcs-fluid-span))), var(--gcs-body-max));

	/* ---- Non-heading text roles ---- */
	--gcs-small: 1rem;              /* captions, footer. Session decision: fixed, at the 16px floor */
	--gcs-input: 1rem;              /* interactive text: form fields. Session decision: at the 16px floor */
	--gcs-form-error: 1.125rem;     /* matches field label; never below --gcs-small. Session decision */

	/* ---- Weights ---- */
	--gcs-weight-body: 400;         /* mandatory on IM Fell DW Pica per v3.7 */
	--gcs-weight-heading: 600;      /* browser-synthesized on Sorts Mill Goudy — intentional */
	--gcs-weight-h1: 400;
	--gcs-weight-link: 400;
	--gcs-weight-button: 400;
	--gcs-weight-signature: 600;
	--gcs-weight-emphasis: 600;     /* bold on body-face text, not headings. Session decision */

	/* ---- Line heights ---- */
	--gcs-lh-body: 1.7;
	--gcs-lh-display: 1.2;          /* H1–H2 */
	--gcs-lh-heading: 1.3;          /* H3–H6 */
	--gcs-lh-signature: 1.4;

	/* ---- Color roles (alias the variation palette — do not hardcode) ---- */
	--gcs-color-body: var(--wp--preset--color--contrast);
	--gcs-color-heading: var(--wp--preset--color--brand-alt);
	--gcs-color-heading-minor: var(--wp--preset--color--contrast);
	--gcs-color-h1: var(--wp--preset--color--brand);
	--gcs-color-h1-on-dark: var(--wp--preset--color--brand-accent);
	--gcs-color-link: var(--wp--preset--color--brand-alt);
	--gcs-color-link-hover: var(--wp--preset--color--brand);
	--gcs-color-link-on-dark: var(--wp--preset--color--brand-accent);
	--gcs-color-link-on-dark-hover: var(--wp--preset--color--border-base);
	--gcs-color-focus: var(--wp--preset--color--border-base);
	--gcs-color-focus-on-dark: var(--wp--preset--color--brand-accent);
	--gcs-color-signature: var(--wp--preset--color--brand-alt);

	/* ---- Testimonial signature ---- */
	--gcs-signature-size: 1.5rem;

	/* ---- Geometry (px per v3.7 D6) ---- */
	--gcs-focus-width: 3px;
	--gcs-focus-offset: 4px;
	--gcs-focus-style: solid;
	--gcs-touch-min: 44px;
	--gcs-touch-preferred: 48px;

}
