/* ============================================================
   Agency. — the cookie banner (Julian, 12 Sep 2026, §9). Built by
   assets/js/consent.js; on every page after base.css.
   A band at the foot of the screen, ink ground and cream type (a
   brand pairing), above the nav and every chapter. The text in the
   body face, the policy link in the nav's mono, and Accept and
   Decline as two identical chips (the Send chip, cream on ink) —
   declining is as easy as accepting. A rule in cream at 28% marks its
   top edge over the ink close. No transition in or out: a cut (§4.2).
   Tokens only.
   ============================================================ */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--ink);color:var(--cream);
  border-top:1px solid color-mix(in srgb, var(--cream) 28%, transparent);
  display:flex;align-items:center;gap:clamp(16px,2vw,32px);
  padding:clamp(14px,1.4vw,20px) var(--m)}
.consent-text{margin:0;flex:1 1 auto;min-width:0;
  font-family:var(--deck);font-weight:400;font-size:clamp(15px,1.18vw,17px);line-height:1.5}
.consent-link{flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:underline;text-underline-offset:.2em;
  padding:8px 0;min-height:44px;display:inline-flex;align-items:center}   /* the §8 tap floor */
.consent-row{flex:none;display:flex;gap:10px}
.consent-btn{font-family:var(--mono);font-size:clamp(11px,0.9vw,13px);letter-spacing:.16em;
  text-transform:uppercase;line-height:1;
  background:var(--cream);color:var(--ink);border:0;cursor:pointer;
  padding:clamp(11px,1.05vw,15px) clamp(14px,1.4vw,20px);min-height:44px;min-width:44px;
  border-radius:clamp(10px,.972vw,16px)}
/* focus on the ink: acid, the close's alert colour (coral is 2.9:1 on ink) */
.consent a:focus-visible,.consent button:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
/* high-contrast mode (forced colours, 25 Sep 2026): the chips' shape is
   all background, which the mode drops — Accept and Decline read as
   loose words. A system-coloured border gives them back their edge */
@media(forced-colors:active){
  .consent-btn{border:1px solid ButtonText}
}

/* phones: the text, the link, then the two chips filling a row */
@media(max-width:760px),(pointer:fine) and (max-height:560px){
  .consent{flex-wrap:wrap;gap:6px 16px;padding-top:14px;padding-bottom:14px}
  .consent-text{flex-basis:100%;font-size:15px}
  .consent-row{flex:1 1 auto;justify-content:flex-end}
  .consent-btn{flex:1 1 0;padding-left:16px;padding-right:16px;text-align:center}
}
