/* ============================================================
   The cookie bar (consent.js). Linked from the footer, so it reaches every
   page. Colours, type and spacing are the site's own tokens (site.css,
   base.css, ds.css); the bar is a `.dark` band, so its buttons are the
   site's own buttons on black. Since 2026-10-29 it has one answer, "OK",
   and a link to Privacy: the site sets no cookies, so there is no choice to
   offer. No motion:
   the bar is simply there, and gone once you choose.
   ============================================================ */

/* No visible "AI-generated image" label. Brand guidelines 4.4.0, §10 rule 5
   (approvals 55M1nTNnde38OpnHJO74 and FlAOUWUapSa4rdXQpjkf, Guy Duncan,
   2026-10-22): a published image no longer needs one, in any channel. Every
   photograph's alt text still says it is AI-generated, and this rule never
   touches it. The label's markup is still in the pages and its placement
   rules are still in ds.css; this one rule, on every page, hides it for every
   visitor until those are taken out. */
.fv-site .ai-label{ display:none; }

/* Under the nav (100), so an open phone menu still covers it. */
.fv-site .cookie-bar{ position:fixed; left:0; right:0; bottom:0; z-index:90;
  border-top:0; max-height:calc(100svh - var(--nav-h)); overflow-y:auto; overscroll-behavior:contain; }
/* Glass (the owner, 2026-10-22: "Make the cookie bar background 50% opacity,
   and glassmorphic"). At 50% the bar failed the contrast check over the white
   page (2.38:1 to 3.94:1), so on 2026-10-23 the owner approved 70% ("proceed
   with all decisions and recommendations"): black at 70% over the page,
   still blurred, with nothing else darkening what shows through. Over white
   it reads as #4d4d4d, and every line and button in it holds 4.5:1 or more
   (axe, phone and desktop, 2026-10-23). Where the browser cannot blur, or
   the visitor asks for less transparency, the bar is solid black again. */
.fv-site .cookie-bar.dark{ background:var(--black);
  -webkit-backdrop-filter:none; backdrop-filter:none; }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .fv-site .cookie-bar.dark{ background:var(--black); }
}
@media (prefers-reduced-transparency:reduce){
  .fv-site .cookie-bar.dark{ background:var(--black); -webkit-backdrop-filter:none; backdrop-filter:none; }
}
.fv-site .cookie-bar[hidden]{ display:none; }
.fv-site .cookie-bar .cb-inner{ max-width:calc(var(--container) + 2 * var(--space-gutter)); margin:0 auto;
  padding:var(--space-3) var(--space-gutter); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-3) var(--space-block); align-items:center; }
.fv-site .cookie-bar h2{ margin:0 0 var(--space-2); font-size:1rem; line-height:1.3; font-weight:800; letter-spacing:0; color:var(--white); }
.fv-site .cookie-bar h2:focus{ outline:none; }
.fv-site .cookie-bar h2:focus-visible{ outline:3px solid var(--white); outline-offset:3px; }
.fv-site .cookie-bar p{ margin:0; max-width:68ch; color:var(--muted-dark); font-size:.92rem; line-height:1.5; }
.fv-site .cookie-bar .btn-row{ gap:var(--space-3); }
.fv-site .cookie-bar .btn{ min-height:44px; justify-content:center; }
/* "Options": a plain underlined button, so the two answers stay the two big ones */
.fv-site .cookie-bar .cb-text{ min-height:44px; padding:0 var(--space-2); background:none; border:0; font:inherit; font-size:.86rem;
  color:var(--white); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.fv-site .cookie-bar .cb-text:focus-visible{ outline:3px solid var(--white); outline-offset:3px; }
/* The compact bar (Guy, 2026-10-29): one line, one answer and a link to Privacy.
   The site sets no cookies (Privacy, "Cookies"), so there is nothing to choose
   between; the bar says so and remembers that it was read. */
.fv-site .cookie-bar #cb-title{ color:var(--white); }
.fv-site .cookie-bar #cb-title:focus{ outline:none; }
.fv-site .cookie-bar #cb-title:focus-visible{ outline:3px solid var(--white); outline-offset:3px; }
.fv-site .cookie-bar a.cb-text{ display:inline-flex; align-items:center; }

/* the options, opened under the bar's words */
.fv-site .cb-options{ grid-column:1 / -1; display:grid; gap:var(--space-4); padding-top:var(--space-4); border-top:1px solid var(--line-dark); }
.fv-site .cb-options[hidden]{ display:none; }
.fv-site .cb-group{ margin:0; padding:0; border:0; display:grid; gap:var(--space-2); }
.fv-site .cb-group h3{ margin:0; font-size:.92rem; font-weight:800; color:var(--white); }
.fv-site .cb-options .btn-row{ margin-top:var(--space-2); }

/* the footer's way back in */
.fv-site .footer-bottom .f-cookie{ background:none; border:0; padding:0; font:inherit; color:var(--grey-2);
  text-decoration:underline; text-underline-offset:4px; cursor:pointer; min-height:24px; }
.fv-site .footer-bottom .f-cookie:hover{ color:var(--white); }
.fv-site .footer-bottom .f-cookie:focus-visible{ outline:3px solid var(--white); outline-offset:3px; }
.fv-site .footer-bottom .f-cookie[hidden]{ display:none; }

@media (max-width:760px){
  .fv-site .cookie-bar .cb-inner{ grid-template-columns:minmax(0,1fr); padding-block:var(--space-3); }
  .fv-site .cookie-bar .cb-main .btn{ flex:1 1 0; }
}
