/* Privacy controls use the same navy, amber and typography as the news cover. */
.cookie-banner {
  position: fixed;
  z-index: 1050;
  inset: auto 24px 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  align-items: center;
  gap: 40px;
  max-width: 1020px;
  margin: 0 auto;
  padding: 28px 32px;
  border: 1px solid #dce5ee;
  border-top: 3px solid #f2a43a;
  border-radius: 12px;
  background: #fff;
  color: #243b53;
  box-shadow: 0 12px 48px rgb(7 30 57 / 18%);
}
.cookie-banner[hidden], .cookie-status[hidden], [data-cookie-open][hidden], .facebook-placeholder[hidden], .facebook-feed[hidden] { display: none; }
.cookie-eyebrow { display: flex; align-items: center; gap: 8px; color: #52677d; font-size: 10px; line-height: 1.4; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.cookie-eyebrow::before { content: ''; flex: 0 0 18px; height: 2px; background: #df911e; }
.cookie-banner h2, .cookie-dialog h2 { color: #003a70; font-size: 24px; line-height: 1.2; letter-spacing: -.025em; margin: 10px 0; }
.cookie-banner p, .cookie-dialog p { font-size: 14px; line-height: 1.6; color: #52677d; margin: 0; }
.cookie-banner p { max-width: 62ch; }
.cookie-policy-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; color: #8191a1; font-size: 12px; }
.cookie-policy-links a { color: #003a70; text-decoration: underline; text-underline-offset: 3px; }
.cookie-banner-actions { display: grid; gap: 8px; }
.cookie-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 1px solid #003a70;
  border-radius: 6px;
  padding: 10px 16px;
  font: inherit;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 600;
  cursor: pointer;
  transition: background 180ms ease, transform 180ms ease;
}
.cookie-button-primary { background: #003a70; color: #fff; }
.cookie-button-primary:hover { background: #002a52; color: #fff; }
.cookie-button-secondary { background: #fff; color: #003a70; }
.cookie-button-secondary:hover { background: #edf3f8; color: #003a70; }
.cookie-text-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 36px; padding: 4px; border: 0; background: none; color: #003a70; font: inherit; font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.cookie-button:active, .cookie-close:active { transform: translateY(1px); }
.cookie-banner :focus-visible, .cookie-dialog :focus-visible, .cookie-footer-button:focus-visible, .facebook-placeholder :focus-visible { outline: 3px solid #df911e; outline-offset: 3px; }
.cookie-dialog {
  width: 560px;
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 14px;
  color: #243b53;
  background: #fff;
  overflow: auto;
  box-shadow: 0 24px 80px rgb(7 30 57 / 25%);
}
.cookie-dialog::backdrop { background: rgb(7 30 57 / 65%); }
.cookie-dialog-header { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 28px 20px; border-bottom: 1px solid #e3eaf0; background: #fff; }
.cookie-dialog-header h2 { margin-bottom: 0; font-size: 30px; }
.cookie-close { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; padding: 0; border: 1px solid #dce5ee; border-radius: 50%; background: #fff; color: #003a70; font-size: 28px; line-height: 1; cursor: pointer; }
.cookie-close:hover { background: #edf3f8; }
.cookie-dialog form { margin: 0; }
.cookie-dialog-body { padding: 22px 28px; }
.cookie-option { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 22px 0; border-bottom: 1px solid #e3eaf0; }
.cookie-option h3, .cookie-option > div > label { display: block; color: #003a70; font-size: 15px; line-height: 1.4; font-weight: 700; margin: 0 0 6px; }
.cookie-option > div > label { cursor: pointer; }
.cookie-option p { font-size: 13px; }
.cookie-required { flex-shrink: 0; padding: 4px 0; font-size: 11px; color: #52677d; font-weight: 600; }
.cookie-switch { position: relative; display: inline-flex; flex: 0 0 48px; min-height: 44px; align-items: center; margin: 0; cursor: pointer; }
.cookie-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: pointer; }
.cookie-switch input + span { width: 48px; height: 28px; background: #d2dce6; border: 1px solid #9aafc1; border-radius: 20px; pointer-events: none; transition: background 180ms ease; }
.cookie-switch input + span::before { content: ''; display: block; width: 20px; height: 20px; border-radius: 50%; background: #fff; margin: 3px; box-shadow: 0 1px 3px rgb(7 30 57 / 18%); transition: transform 180ms ease; }
.cookie-switch input:checked + span { background: #003a70; border-color: #003a70; }
.cookie-switch input:checked + span::before { transform: translateX(20px); }
.cookie-switch input:focus-visible + span { outline: 3px solid #df911e; outline-offset: 3px; }
.cookie-dialog-actions { position: sticky; bottom: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 18px 28px; border-top: 1px solid #e3eaf0; background: #fff; }
.cookie-footer-button { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.cookie-footer-button:hover { text-decoration: underline; }
.cookie-status { position: fixed; z-index: 1051; right: 24px; bottom: 24px; max-width: min(420px, calc(100vw - 32px)); margin: 0; padding: 14px 20px; border-radius: 8px; background: #003a70; color: #fff; font-size: 13px; box-shadow: 0 8px 32px rgb(7 30 57 / 16%); }
.facebook-placeholder { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 550px; padding: 32px; border: 1px solid #dce5ee; border-radius: 12px; background: #fff; }
.facebook-placeholder .cookie-eyebrow { margin-bottom: 18px; }
.facebook-placeholder h2 { font-size: 24px; color: #003a70; line-height: 1.2; margin-bottom: 14px; }
.facebook-placeholder p { font-size: 14px; color: #52677d; line-height: 1.6; }
.facebook-placeholder .cookie-button { margin-bottom: 16px; }
.facebook-direct-link { color: #003a70; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767.98px) {
  .cookie-banner { inset: auto 12px 12px; max-height: calc(100dvh - 24px); overflow: auto; grid-template-columns: 1fr; gap: 18px; padding: 20px; }
  .cookie-banner h2 { font-size: 21px; }
  .cookie-banner p { font-size: 13px; line-height: 1.5; }
  .cookie-banner-actions { grid-template-columns: 1fr 1fr; }
  .cookie-banner-actions .cookie-text-button { grid-column: 1 / -1; }
  .cookie-button { font-size: 12px; padding: 10px; }
  .cookie-dialog-header { padding: 20px; }
  .cookie-dialog-header h2 { font-size: 27px; }
  .cookie-dialog-body { padding: 18px 20px; }
  .cookie-dialog-actions { padding: 16px 20px; }
  .cookie-option { gap: 16px; }
  .cookie-required { max-width: 64px; text-align: right; }
  .facebook-placeholder { min-height: 240px; padding: 26px; }
}
@media (prefers-reduced-motion: reduce) { .cookie-button, .cookie-switch span, .cookie-switch span::before { transition: none; } }
