/* ============================================================================
 * Grand Tour #17 — "Breadcrumbs by zone" / the route-line  (re-skin, 20 Jul 2026)
 * ----------------------------------------------------------------------------
 * CONCEPT
 *   The breadcrumb trail is the reader's route through the network. This file
 *   re-skins the EXISTING JS-injected breadcrumb (<nav class="cnp-bc">, built and
 *   inserted at the top of the pf-hero / ph-hero wrap) so it reads like a line on
 *   a transit map: stations (crumbs) connected by thin route-line segments, with
 *   the CURRENT crumb marked "you are here" by a small burnt-orange node.
 *
 *   Adds NO markup and NO second injector. The per-page ZONE / platform identity
 *   is already printed in the same hero by the GT#2 mu-plugin as a mono
 *   "PLATFORM N" token (Methods=1 … Glossary=6); duplicating it in the breadcrumb
 *   would be noise, so "by zone" is delivered here purely as the structural
 *   route-line motif that sits directly beneath that PLATFORM token. Pure CSS:
 *   reversible by dequeuing.
 *
 * LIVE STRUCTURE (verified against method + regional pages, 20 Jul 2026)
 *   <nav class="cnp-bc" aria-label="Breadcrumb">
 *     <a>Home</a><i>/</i><a>Methods & concepts</a><i>/</i>
 *     <span aria-current="page">…current…</span>
 *   </nav>
 *   Separators are <i>/</i> elements. Current crumb is the trailing
 *   <span aria-current="page"> (also :last-child). Two hero variants:
 *     .cnp-bc          -> DARK  hero (default, injected into .cc-pf .pf-hero .pf-wrap)
 *     .cnp-bc.bcdark   -> LIGHT/cream hero (.ph-hero .wrap)
 *
 * PALETTE (Instrument, exact — monochrome + the single burnt-orange accent)
 *   cream #F5EEE1 · card #FBF6EB · ink #2A211B · soft-ink #6E6253
 *   hairline #DED3BF · burnt-orange #C75B22
 *   No per-zone colour-coding: the zone cue is textual/structural, never a hue.
 * FONTS  IBM Plex Mono (breadcrumb labels)
 *
 * SPECIFICITY / SAFETY
 *   The site prints its own <style> for .cnp-bc LATE in <body> (right beside the
 *   builder script), which would beat an equal-specificity head stylesheet. Every
 *   rule here is therefore prefixed with `body` so it out-specifies the inline
 *   base rules (.cnp-bc a = 0,2,1  ->  body .cnp-bc a = 0,2,2, etc.). No
 *   !important is used. All colours are driven through two local custom
 *   properties (--gt17-line, --gt17-accent) set once per hero variant, so the
 *   route-line and node pseudo-elements retint automatically in both contexts.
 *   The container keeps its base flex-wrap, so long crumbs wrap — never overflow.
 * ========================================================================== */

/* --- 1. Container: mono voice, calm tracking, transit spacing ---------------
 * DARK-hero defaults live here; the .bcdark block below overrides the line tone
 * for the light/cream hero. Text colours are inherited from the base rules
 * (already tuned per hero) — we only add the route-line + node + accent. */
body .cnp-bc{
	--gt17-line:#7A6F60;    /* route-line track on the DARK hero (soft-ink tone) */
	--gt17-accent:#C75B22;  /* the single burnt-orange accent (node + hover)     */
	font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
	letter-spacing:.04em;   /* consistent, restrained mono tracking              */
	gap:4px 8px;
	align-items:center;     /* keeps text baseline aligned with the route-line   */
}

/* Light / cream hero: the track becomes a true hairline. */
body .cnp-bc.bcdark{
	--gt17-line:#DED3BF;    /* hairline route-line on the cream hero */
}

/* --- 2. Stations (the crumb links) ----------------------------------------- */
body .cnp-bc a{
	text-decoration:none;
	transition:color .18s ease;
}
/* Unify hover/focus to the single accent in both hero variants. */
body .cnp-bc a:hover,
body .cnp-bc a:focus-visible{
	color:var(--gt17-accent);
}

/* --- 3. The route-line separator (replaces each "/") -----------------------
 * Hide the literal slash glyph and draw a short track segment + a small ">"
 * chevron (direction of travel) in the hairline/soft-ink tone. Reads as the
 * connecting line between two stations on a transit map. */
body .cnp-bc i{
	display:inline-block;
	position:relative;
	width:22px;
	height:10px;
	font-size:0;            /* hide the "/" text            */
	line-height:0;
	color:transparent;
	vertical-align:middle;
	overflow:visible;
	font-style:normal;
}
/* the track */
body .cnp-bc i::before{
	content:"";
	position:absolute;
	top:50%;
	left:1px;
	right:6px;
	height:1.5px;
	transform:translateY(-50%);
	background:var(--gt17-line);
	border-radius:1px;
}
/* the arrowhead / chevron at the leading end */
body .cnp-bc i::after{
	content:"";
	position:absolute;
	top:50%;
	right:5px;
	width:4px;
	height:4px;
	transform:translateY(-50%) rotate(45deg);
	border-top:1.5px solid var(--gt17-line);
	border-right:1.5px solid var(--gt17-line);
	border-radius:.5px;
}

/* --- 4. "You are here": the current station (terminus) ---------------------
 * Semantic selector (aria-current) rather than :last-child — precise and it IS
 * the last child. A small burnt-orange node with a soft static ring marks the
 * reader's position; the text firms up to read as the destination. */
body .cnp-bc span[aria-current="page"]{
	position:relative;
	padding-left:16px;
	font-weight:500;
	color:#E7DDCB;          /* light terminus on the DARK hero */
}
body .cnp-bc span[aria-current="page"]::before{
	content:"";
	position:absolute;
	left:0;
	top:50%;
	width:7px;
	height:7px;
	transform:translateY(-50%);
	border-radius:50%;
	background:var(--gt17-accent);
	box-shadow:0 0 0 3px rgba(199,91,34,.18);  /* soft "you are here" ring, static */
}
/* Cream hero: terminus text in ink for a clear end-of-line. */
body .cnp-bc.bcdark span[aria-current="page"]{
	color:#2A211B;
}

/* --- 5. Reduced motion: neutralise the only transition (link hover) --------- */
@media (prefers-reduced-motion: reduce){
	body .cnp-bc a{
		transition:none;
	}
}
