/**
 * Pacific Poster — design tokens.
 *
 * The single source of truth for colour, type and the poster "hard shadow"
 * geometry. Loaded on the front end AND in the block editor so the two can
 * never drift apart. Nothing else in this theme hard-codes a hex value, so a
 * child theme re-skins the whole site by overriding :root.
 *
 * @package Pacific_Poster
 */

:root {
	/* ---- Core palette (brand sheet 2d) ---- */
	--pp-cream: #f6ecd9;   /* page background          */
	--pp-ink: #27224f;     /* text, every border, hard shadows */
	--pp-coral: #f4674f;   /* primary CTA, category hero bands */
	--pp-amber: #f5a83c;   /* secondary accent, shadow offsets */
	/*
	 * Teal, 6.5% darker than the comp's #2E7D8C. That single shift fixes
	 * two AA failures at once: cream text on the teal band (was 4.05,
	 * now 4.51) and the teal kicker on cream (same numbers). The hue is
	 * indistinguishable side by side; don't restore the comp value.
	 */
	--pp-teal: #2b7583;    /* section bands, kickers   */
	--pp-sky: #8fcadb;     /* badges, tints, hero sky  */
	--pp-paper: #fff9ec;   /* card background          */
	--pp-sand: #ead9bc;    /* image placeholder ground */
	--pp-card-1: #efe0c6;  /* alt band fill            */
	--pp-card-2: #eddcc0;  /* alt tile fill            */

	/* ---- Derived / support ---- */
	--pp-ink-mid: #4a4570;    /* dek + card summary text. 6.1:1 on cream.  */
	--pp-ink-soft: #6f6796;   /* on-ink footer body text.                  */
	--pp-ink-deep: #1d1940;   /* mountain silhouette, pressed states.      */
	--pp-slate: #514b85;      /* mid mountain range.                       */
	--pp-slate-2: #3a3566;    /* rear mountain range.                      */
	--pp-cream-dim: #efe3cb;  /* hover fill on cream surfaces.             */

	/*
	 * Mono meta text. The comp used #8a7a5c, which lands at 3.6:1 on cream —
	 * short of AA for the 10-11px sizes this token is used at. Darkened until
	 * it clears 4.5:1 against BOTH --pp-cream and --pp-paper. Keep it here.
	 */
	--pp-meta: #6d5f43;

	/*
	 * Coral as TEXT, not as a fill. The brand coral is only 2.6:1 on cream,
	 * so small coral labels (card kickers, "ON THIS PAGE", link hovers) use
	 * this darker cousin: 5.05 on cream, 5.64 on paper, 4.55 on --pp-card-1.
	 *
	 * The brand coral above is untouched and still fills every band, chip and
	 * button — those carry INK text, which clears AA on coral at 4.83, and is
	 * what the theme spec's accessibility note prescribes.
	 *
	 * The one deliberate exception is .pp-dot, the signature full stop that
	 * closes a headline: it stays full-strength coral. It is aria-hidden
	 * decorative punctuation that carries no information, so it is not
	 * subject to the text-contrast minimum.
	 */
	--pp-coral-text: #a64636;

	/* Reversed text on the ink footer. #b9b4d6 from the comp is 5.9:1 — kept. */
	--pp-on-ink: #f6ecd9;
	--pp-on-ink-dim: #b9b4d6;

	/* ---- Type ---- */
	--pp-font-display: "Bricolage Grotesque", "Trebuchet MS", "Segoe UI", system-ui, sans-serif;
	--pp-font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, monospace;

	/*
	 * Every heading size is a clamp() token. An earlier theme in this family
	 * shipped a literal 52px archive title that blew out the layout under
	 * 400px; sizes live here so that cannot happen again.
	 */
	--pp-size-display: clamp(2.75rem, 1.6rem + 5.6vw, 5.25rem); /* 44 -> 84 */
	--pp-size-h1: clamp(2.25rem, 1.35rem + 4.4vw, 3.5rem);      /* 36 -> 56 */
	--pp-size-h2: clamp(1.6rem, 1.2rem + 1.9vw, 1.875rem);      /* 26 -> 30 */
	--pp-size-h3: clamp(1.25rem, 1.05rem + 1vw, 1.5rem);        /* 20 -> 24 */
	--pp-size-section: clamp(1.75rem, 1.15rem + 2.9vw, 2.125rem); /* 28 -> 34 */
	--pp-size-body: 1.03125rem;   /* 16.5px */
	--pp-size-dek: clamp(1rem, 0.94rem + 0.3vw, 1.1875rem);
	--pp-size-ui: 0.8125rem;      /* 13px */
	--pp-size-meta: 0.65625rem;   /* 10.5px */

	--pp-track-caps: 0.08em;
	--pp-track-kicker: 0.24em;

	/* ---- Poster geometry ---- */
	--pp-radius: 12px;
	--pp-radius-lg: 14px;
	--pp-radius-sm: 8px;
	--pp-pill: 999px;
	--pp-border: 2.5px;
	--pp-border-lg: 3px;
	--pp-shadow: 4px 4px 0 var(--pp-ink);
	--pp-shadow-lg: 6px 6px 0 var(--pp-ink);
	--pp-shadow-amber: 4px 4px 0 var(--pp-amber);
	--pp-shadow-hover: 6px 6px 0 var(--pp-ink);
	--pp-lift: translate(-2px, -2px);
	--pp-ease: 120ms ease-out;

	/* ---- Layout ---- */
	--pp-wide: 1180px;   /* header, grids, bands   */
	--pp-column: 920px;  /* article measure        */
	--pp-body: 640px;    /* article body measure   */
	--pp-gutter: clamp(1rem, 0.4rem + 2.4vw, 1.875rem);

	/* Diagonal-stripe ground used wherever an image is missing. */
	--pp-stripes: repeating-linear-gradient(45deg, rgba(39, 34, 79, 0.09) 0 12px, transparent 12px 24px);
}
