/* Analytics consent banner and Cookie settings button (all 5 pages). Shown only when JS runs. */
.consent-banner { position: fixed; z-index: 90; left: 12px; right: 12px; bottom: 12px; max-width: 560px; margin-left: auto; box-sizing: border-box;
  background: #0a1628; color: #eff3fb; border: 1px solid #3b5069; border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.5);
  padding: 12px 14px; font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; font-size: 14px; line-height: 1.45; }
.consent-banner[hidden] { display: none; }
.consent-banner p { margin: 0 0 10px; color: #c9d5e6; }
.consent-banner a { color: #76b2ff; display: inline-flex; align-items: center; min-height: 44px; vertical-align: middle; }
.consent-actions { display: flex; gap: 10px; }
.consent-actions button { flex: 1 1 0; min-height: 44px; min-width: 44px; border-radius: 10px; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.2; cursor: pointer; padding: 10px 14px; }
/* R-5: Accept and Decline share one neutral style so neither choice is visually favored. */
.consent-accept, .consent-decline { background: #10213a; color: #eff3fb; border: 2px solid #76b2ff; }
.consent-accept:hover, .consent-decline:hover { background: #18304f; }
.consent-banner button:focus-visible, .consent-banner a:focus-visible, .cookie-settings:focus-visible { outline: 3px solid #ff9b59; outline-offset: 3px; }
/* Keep the end of the page reachable above the banner. */
.consent-open body { padding-bottom: 150px; }
@media (min-width: 801px) { .consent-banner { left: auto; right: 20px; bottom: 20px; } .consent-open body { padding-bottom: 0; } }
/* Fix round 1 (Stage M3): compact banner. Mobile: 110px or less with both buttons in one row.
   Desktop: about 420px wide, bottom-left. Wording is unchanged. The Cookie Notice link sits at the end of the
   button row (44px tap target), so the text needs two lines at most. */
.consent-banner { left: 8px; right: 8px; bottom: 8px; padding: 9px 10px; font-size: 13px; line-height: 1.35; }
.consent-banner p { margin: 0 0 7px; }
.consent-actions .consent-notice-link { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 2px; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.consent-actions { gap: 8px; }
.consent-actions button { padding: 6px 10px; font-size: 14px; white-space: nowrap; }
.consent-actions .consent-decline { flex: 0.7 1 0; }
.consent-open body { padding-bottom: 124px; }
@media (min-width: 801px) {
  .consent-banner { left: 20px; right: auto; bottom: 20px; width: 420px; max-width: calc(100vw - 40px); margin-left: 0; padding: 12px 14px; }
  .consent-open body { padding-bottom: 0; }
}
/* Footer button styled like the footer links. */
.cookie-settings { background: none; border: 0; padding: 0; margin: 0; color: #9daec5; font: inherit; cursor: pointer; display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; text-decoration: none; }
.cookie-settings[hidden] { display: none; }
.cookie-settings:hover { color: #fff; }
/* N2 (Relay, Nov 2 2026, v2.3 review build): under 375px the one-row action bar overflowed ("Accept analytics" clipped
   behind Decline at 320 and 360). Below 375px the actions wrap: Accept and Decline share the first row with identical
   sizing and styling (R-5), 8px side padding keeps each label on one line at 320px, labels may wrap on narrower screens instead of overflowing, and the Cookie Notice link gets its own full-width 44px row.
   375px and wider are unchanged. Wording unchanged. */
@media (max-width: 374.98px) {
  .consent-actions { flex-wrap: wrap; }
  .consent-actions button, .consent-actions .consent-decline { flex: 1 1 0; min-width: 44px; padding: 6px 8px; white-space: normal; overflow-wrap: anywhere; }
  .consent-actions .consent-notice-link { flex: 1 0 100%; justify-content: flex-start; min-height: 44px; padding: 0 2px; }
  .consent-open body { padding-bottom: 192px; }
}
