/* Compact privacy controls — intentionally similar in visual scale to the Rosselot notice. */
.privacy-banner[hidden], .privacy-panel[hidden], .privacy-gpc-notice[hidden] { display:none!important; }
.privacy-banner {
  position:fixed; left:18px; bottom:18px; z-index:100000;
  width:min(560px, calc(100vw - 36px)); background:#fff; color:#24344b;
  border:1px solid #cfd6df; border-radius:8px; box-shadow:0 8px 28px rgba(13,34,64,.20);
  padding:15px 17px; font-family:Inter,Arial,sans-serif; font-size:14px; line-height:1.45;
}
.privacy-banner h2 { margin:0 0 5px; color:#0d2240; font:700 17px/1.25 Inter,Arial,sans-serif; }
.privacy-banner p { margin:0; font-size:14px; line-height:1.45; }
.privacy-banner a { color:#0d4772; font-weight:700; text-decoration:underline; }
.privacy-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.privacy-actions button, .privacy-panel button {
  min-height:38px; border-radius:5px; border:1px solid #0d2240; padding:8px 14px;
  font:700 13px/1.2 Inter,Arial,sans-serif; cursor:pointer;
}
.privacy-btn-secondary { background:#fff; color:#0d2240; }
.privacy-btn-primary { background:#0d2240; color:#fff; }
.privacy-btn-secondary:hover,.privacy-btn-secondary:focus-visible { background:#eef2f6; }
.privacy-btn-primary:hover,.privacy-btn-primary:focus-visible { background:#173a66; }
.privacy-actions button:focus-visible,.privacy-panel button:focus-visible,.footer-privacy-choices:focus-visible { outline:3px solid #e6b84d; outline-offset:2px; }
.privacy-panel {
  position:fixed; inset:0; z-index:100001; background:rgba(5,18,35,.58); padding:20px;
  display:flex; align-items:center; justify-content:center;
}
.privacy-panel-card {
  width:min(620px,100%); max-height:calc(100vh - 40px); overflow:auto; background:#fff; color:#24344b;
  border-radius:10px; box-shadow:0 16px 48px rgba(0,0,0,.3); padding:22px;
  font-family:Inter,Arial,sans-serif; font-size:14px; line-height:1.45;
}
.privacy-panel-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.privacy-panel h2 { margin:0 0 4px; color:#0d2240; font:700 21px/1.25 Inter,Arial,sans-serif; }
.privacy-panel p { margin:0 0 12px; font-size:14px; }
.privacy-panel-close { border:0!important; background:transparent!important; color:#0d2240!important; padding:3px 7px!important; min-height:34px!important; font-size:23px!important; }
.privacy-optout { padding:12px; margin:14px 0; border:1px solid #d7dee7; border-radius:6px; background:#f6f8fa; }
.privacy-category { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; border-top:1px solid #dde3ea; padding:13px 0; }
.privacy-category strong { display:block; color:#0d2240; font-size:14px; }
.privacy-category span { display:block; margin-top:2px; color:#526176; font-size:13px; }
.privacy-toggle { width:44px; height:24px; accent-color:#0d4772; }
.privacy-always { color:#526176; font-weight:700; font-size:12px; }
.privacy-gpc-notice {
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:100002;
  width:min(700px,calc(100vw - 36px)); padding:10px 14px; background:#0d2240; color:#fff;
  border-radius:6px; box-shadow:0 8px 24px rgba(0,0,0,.25); font:600 13px/1.4 Inter,Arial,sans-serif;
}
.footer-bottom { position:relative; }
.footer-privacy-row { width:100%; text-align:center; margin-top:10px; }
.footer-privacy-choices { appearance:none; border:0; background:transparent; color:#fff; text-decoration:underline; font:600 13px/1.4 Inter,Arial,sans-serif; cursor:pointer; padding:3px 6px; }
.privacy-policy-page .container > p,
.privacy-policy-page .container > ul,
.privacy-policy-page .container > ol { font-size:16px!important; line-height:1.62; }
.privacy-policy-page .container > h2 { font-size:24px!important; line-height:1.25; margin-top:28px!important; }
.privacy-policy-page .container > h1 { font-size:40px!important; line-height:1.12; }
@media (max-width:640px) {
  .privacy-banner { left:8px; right:8px; bottom:8px; width:auto; padding:13px 14px; font-size:13px; }
  .privacy-banner h2 { font-size:16px; }
  .privacy-banner p { font-size:13px; }
  .privacy-actions { gap:6px; }
  .privacy-actions button { flex:1 1 auto; padding:8px 10px; font-size:12px; }
  .privacy-panel { padding:10px; }
  .privacy-panel-card { max-height:calc(100vh - 20px); padding:17px; }
  .privacy-panel h2 { font-size:19px; }
  .privacy-policy-page .container > p,
  .privacy-policy-page .container > ul,
  .privacy-policy-page .container > ol { font-size:15px!important; line-height:1.6; }
  .privacy-policy-page .container > h2 { font-size:21px!important; }
  .privacy-policy-page .container > h1 { font-size:34px!important; }
}

/* ============================================================
   2026-07-29 v8: LARGE-PRINT cookie notice + privacy panel
   Purpose: readability for older visitors. Supersedes the v3/v4/v5
   shrink passes and the v7 partial enlargement above.
   Note: v5/v7 could not take effect on the banner heading/paragraph
   because privacy-consent.js was writing inline style="...!important"
   attributes. Those inline attributes have been removed from the JS,
   so these rules now control the banner typography.
   ============================================================ */
html body section.privacy-banner {
  position: fixed !important;
  left: auto !important;
  right: 18px !important;
  bottom: 18px !important;
  width: min(360px, calc(100vw - 36px)) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  row-gap: 8px !important;
  column-gap: 0 !important;
  padding: 12px 14px 14px !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 9px !important;
  line-height: 1.35 !important;
  color: #24344b !important;
  background: #fff !important;
  border-top: 3px solid #C8922A !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 28px rgba(13, 34, 64, .22) !important;
}
html body section.privacy-banner > h2,
html body section.privacy-banner h2 {
  display: block !important;
  margin: 0 !important;
  white-space: normal !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 9px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #0D2240 !important;
}
html body section.privacy-banner > p,
html body section.privacy-banner p,
html body section.privacy-banner p *,
html body section.privacy-banner > p > a,
html body section.privacy-banner a {
  font-family: Inter, Arial, sans-serif !important;
  font-size: 9px !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  margin: 0 !important;
  max-width: 92ch;
}
html body section.privacy-banner a {
  color: #0d4772 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}
html body section.privacy-banner .privacy-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 2px 0 0 !important;
  justify-content: flex-start !important;
}
html body section.privacy-banner .privacy-actions button {
  min-height: 28px !important;
  padding: 6px 10px !important;
  border-radius: 5px !important;
  border-width: 1px !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

/* ============================================================
   2026-08-03: specificity fix. A sitewide rule elsewhere in this
   site's stylesheet — "section:not(#hero) p { font-size:22px !important; }"
   — was unintentionally winning here: the ":not(#hero)" argument carries
   ID-level CSS specificity even though it's an exclusion, so it beat the
   banner's own font-size rules above despite those being !important too.
   Net effect: the cookie banner was rendering at 22px instead of the
   compact size intended above. This block matches that specificity tier
   (via the harmless ":not(#__spec_fix__)" trick, which never matches a
   real element) so the banner's own sizing wins instead. Sized readably
   rather than as small as the 9px set above, per request to shrink the
   banner without making it hard to read.
   ============================================================ */
html body section.privacy-banner h2:not(#__spec_fix__) {
  font-size: 15px !important;
  line-height: 1.25 !important;
}
html body section.privacy-banner p:not(#__spec_fix__),
html body section.privacy-banner p:not(#__spec_fix__) * {
  font-size: 13px !important;
  line-height: 1.4 !important;
}
@media (max-width: 820px) {
  html body section.privacy-banner h2:not(#__spec_fix__) { font-size: 14px !important; }
  html body section.privacy-banner p:not(#__spec_fix__),
  html body section.privacy-banner p:not(#__spec_fix__) * { font-size: 12px !important; }
}

/* Footer "Your Privacy Choices" re-open link — kept small/quiet per request */
html body .footer-privacy-choices {
  font-size: 9px !important;
  line-height: 1.3 !important;
  padding: 2px 4px !important;
  opacity: 0.7 !important;
}
html body .footer-privacy-choices:hover,
html body .footer-privacy-choices:focus-visible {
  opacity: 1 !important;
}

/* "Your Privacy Choices" panel — matched to the larger banner */
html body .privacy-panel-card {
  width: min(760px, 100%) !important;
  padding: 30px !important;
  font-size: 18px !important;
  line-height: 1.55 !important;
}
html body .privacy-panel h2 { font-size: 27px !important; line-height: 1.25 !important; }
html body .privacy-panel p  { font-size: 18px !important; line-height: 1.55 !important; }
html body .privacy-panel .privacy-category strong { font-size: 19px !important; }
html body .privacy-panel .privacy-category span   { font-size: 17px !important; line-height: 1.5 !important; }
html body .privacy-panel .privacy-always          { font-size: 16px !important; }
html body .privacy-panel .privacy-toggle { width: 30px !important; height: 30px !important; }
html body .privacy-panel .privacy-actions button {
  min-height: 54px !important;
  padding: 13px 24px !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}
html body .privacy-panel-close {
  font-size: 34px !important;
  min-height: 48px !important;
  min-width: 48px !important;
  padding: 2px 10px !important;
}

@media (max-width: 820px) {
  html body section.privacy-banner {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    padding: 12px 14px 14px !important;
    gap: 8px !important;
    row-gap: 8px !important;
    max-height: 72vh !important;
    overflow-y: auto !important;
  }
  html body section.privacy-banner > h2,
  html body section.privacy-banner h2 { display: block !important; font-size: 9px !important; }
  html body section.privacy-banner > p,
  html body section.privacy-banner p,
  html body section.privacy-banner p *,
  html body section.privacy-banner > p > a,
  html body section.privacy-banner a { font-size: 9px !important; line-height: 1.3 !important; }
  html body section.privacy-banner .privacy-actions { gap: 8px !important; }
  html body section.privacy-banner .privacy-actions button {
    flex: 1 1 auto !important;
    min-height: 28px !important;
    padding: 6px 10px !important;
    font-size: 9px !important;
  }
  html body .privacy-panel-card { padding: 22px !important; font-size: 18px !important; }
  html body .privacy-panel h2 { font-size: 24px !important; }
}

@media (max-width: 560px) {
  html body section.privacy-banner { padding: 10px 12px 12px !important; }
  html body section.privacy-banner .privacy-actions button {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
}

/* 2026-08-03: Requested smaller cookie-banner explanatory copy only. */
html body section.privacy-banner p:not(#__cookie_copy_size__),
html body section.privacy-banner p:not(#__cookie_copy_size__) * {
  font-size: 12px !important;
  line-height: 1.35 !important;
}
@media (max-width: 820px) {
  html body section.privacy-banner p:not(#__cookie_copy_size__),
  html body section.privacy-banner p:not(#__cookie_copy_size__) * {
    font-size: 11px !important;
  }
}

/* ============================================================
   2026-08-12: Compact bottom-right consent card redesign.
   Keeps all existing cookie-notice wording and consent choices;
   changes only presentation/placement and adds a dismiss control.
   Brand colors remain Lighthouse navy/gold.
   ============================================================ */
html body section.privacy-banner {
  position: fixed !important;
  left: auto !important;
  right: 18px !important;
  bottom: 18px !important;
  width: min(410px, calc(100vw - 36px)) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 18px 20px 16px !important;
  background: #ffffff !important;
  color: #24344b !important;
  border: 1px solid rgba(13,34,64,.12) !important;
  border-top: 3px solid #C8922A !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 32px rgba(13,34,64,.22) !important;
  overflow: visible !important;
}
html body section.privacy-banner h2:not(#__cookie_card_v4__) {
  margin: 0 32px 2px !important;
  text-align: center !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  color: #0D2240 !important;
}
html body section.privacy-banner p:not(#__cookie_card_v4__),
html body section.privacy-banner p:not(#__cookie_card_v4__) * {
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.42 !important;
}
html body section.privacy-banner .privacy-banner-close {
  position: absolute !important;
  top: 9px !important;
  right: 10px !important;
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: transparent !important;
  color: #0D2240 !important;
  font: 700 24px/28px Arial, sans-serif !important;
  text-align: center !important;
  cursor: pointer !important;
}
html body section.privacy-banner .privacy-banner-close:hover,
html body section.privacy-banner .privacy-banner-close:focus-visible {
  background: #f3f5f7 !important;
  outline: 2px solid #C8922A !important;
  outline-offset: 1px !important;
}
html body section.privacy-banner .privacy-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin: 2px 0 0 !important;
}
html body section.privacy-banner .privacy-actions button {
  min-height: 34px !important;
  padding: 7px 12px !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  border-radius: 6px !important;
}
html body section.privacy-banner .privacy-actions .privacy-btn-primary {
  order: 1 !important;
  flex: 1 1 100% !important;
  width: 100% !important;
  min-height: 42px !important;
  background: #0D2240 !important;
  border-color: #0D2240 !important;
  color: #fff !important;
  font-size: 12px !important;
  box-shadow: 0 3px 8px rgba(13,34,64,.16) !important;
}
html body section.privacy-banner .privacy-actions .privacy-btn-primary:hover,
html body section.privacy-banner .privacy-actions .privacy-btn-primary:focus-visible {
  background: #173A66 !important;
}
html body section.privacy-banner .privacy-actions .privacy-btn-secondary {
  order: 2 !important;
  flex: 1 1 calc(50% - 4px) !important;
  background: #fff !important;
  color: #0D2240 !important;
  border-color: #cfd6df !important;
}
html body section.privacy-banner a {
  color: #0D4772 !important;
}
@media (max-width: 640px) {
  html body section.privacy-banner {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    width: auto !important;
    padding: 16px 16px 14px !important;
    max-height: 75vh !important;
    overflow-y: auto !important;
  }
  html body section.privacy-banner h2:not(#__cookie_card_v4__) {
    font-size: 15px !important;
  }
  html body section.privacy-banner p:not(#__cookie_card_v4__),
  html body section.privacy-banner p:not(#__cookie_card_v4__) * {
    font-size: 11px !important;
  }
  html body section.privacy-banner .privacy-actions .privacy-btn-secondary {
    flex: 1 1 calc(50% - 4px) !important;
  }
}

/* ============================================================
   2026-08-12: Exact reference-popup wording/layout adjustment.
   Lighthouse brand colors retained; visible wording matches supplied reference.
   ============================================================ */
html body section.privacy-banner {
  width: min(440px, calc(100vw - 36px)) !important;
  padding: 16px 18px 14px !important;
  gap: 10px !important;
}
html body section.privacy-banner h2:not(#__cookie_reference__) {
  margin: 0 34px 4px !important;
  text-align: center !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}
html body section.privacy-banner p:not(#__cookie_reference__),
html body section.privacy-banner p:not(#__cookie_reference__) * {
  font-size: 12px !important;
  line-height: 1.42 !important;
}
html body section.privacy-banner .privacy-actions {
  display: block !important;
  margin: 4px 0 0 !important;
}
html body section.privacy-banner .privacy-actions .privacy-btn-primary {
  display: block !important;
  width: 100% !important;
  min-height: 44px !important;
  padding: 9px 14px !important;
  margin: 0 !important;
  background: #0D2240 !important;
  border-color: #0D2240 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
html body section.privacy-banner .privacy-policy-links {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 0 !important;
  text-align: center !important;
}
html body section.privacy-banner .privacy-policy-links a {
  font-size: 11px !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
  color: #0D4772 !important;
  text-decoration: underline !important;
}
@media (max-width: 640px) {
  html body section.privacy-banner {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    width: auto !important;
    padding: 15px 16px 13px !important;
  }
  html body section.privacy-banner h2:not(#__cookie_reference__) { font-size: 15px !important; }
  html body section.privacy-banner p:not(#__cookie_reference__),
  html body section.privacy-banner p:not(#__cookie_reference__) * { font-size: 11px !important; }
  html body section.privacy-banner .privacy-policy-links a { font-size: 10px !important; }
}
