/* Consent controls use the existing DEN palette and button typography. */
.cookie-banner { position: fixed; inset: auto 0 0; z-index: 180; background: var(--cream); border-top: 2px solid var(--gold-500); box-shadow: var(--shadow); }
.cookie-banner[hidden], .cookie-status[hidden], .cookie-signal[hidden] { display: none; }
.cookie-banner__inner { display: flex; align-items: center; gap: 32px; padding-block: 22px; }
.cookie-banner__copy { flex: 1; min-width: 0; }
.cookie-banner__detail { display: block; }
.cookie-banner__inner > .cookie-actions { margin-inline-start: auto; max-width: 100%; justify-content: flex-end; }
.cookie-banner h2, .cookie-dialog h2 { font-size: 1.25rem; margin: 0 0 10px; }
.cookie-banner p { font-size: 1rem; line-height: 1.5; max-width: 70ch; margin: 0; }
.cookie-banner a, .cookie-dialog a { text-decoration: underline; text-underline-offset: .15em; }
.cookie-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; flex-shrink: 0; }
.cookie-choice { border-color: var(--navy-800); background: var(--surface); color: var(--navy-800); padding: 10px 18px; font-family: inherit; }
.cookie-choice:hover { background: var(--navy-800); color: var(--surface); transform: none; }
.cookie-choice:disabled { opacity: .6; cursor: not-allowed; }
.cookie-choice:disabled:hover { background: var(--surface); color: var(--navy-800); }
.cookie-link, .cookie-settings { background: none; border: 0; border-radius: 0; padding: 4px 0; font: inherit; color: var(--navy-600); cursor: pointer; text-decoration: underline; text-underline-offset: .15em; }
.cookie-settings { color: inherit; text-align: left; }
.cookie-status { font-size: .9rem; margin-top: 8px; color: inherit; }
.cookie-banner :focus-visible, .cookie-dialog :focus-visible, .cookie-settings:focus-visible { outline: 2px solid var(--gold-600); outline-offset: 4px; }
.cookie-banner-open { padding-bottom: calc(var(--cookie-banner-height, 0px) + var(--cookie-bar-space, 0px)); }
.cookie-banner-open .mobile-bar { bottom: var(--cookie-banner-height, 0px); }
.cookie-dialog { box-sizing: border-box; width: min(580px, calc(100% - 32px)); max-height: 90vh; max-height: 90dvh; overflow-y: auto; border: 1px solid var(--line); border-top: 3px solid var(--gold-500); border-radius: var(--radius); padding: 28px; background: var(--surface); color: var(--ink); font-family: var(--font-body); }
.cookie-dialog::backdrop { background: rgba(14, 26, 48, .6); }
.cookie-dialog__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.cookie-dialog__heading h2 { margin: 0; }
.cookie-dialog h3 { font-size: 1.15rem; margin-bottom: 6px; }
.cookie-dialog p { font-size: 1rem; line-height: 1.5; }
.cookie-toggle { display: flex; align-items: center; gap: 10px; font-weight: 600; margin: 24px 0 6px; cursor: pointer; }
.cookie-toggle input { width: 20px; height: 20px; accent-color: var(--navy-800); flex-shrink: 0; }
.cookie-signal { font-weight: 600; }
.cookie-banner .cookie-signal { margin-top: 8px; }
@media (max-width: 1100px) {
  .cookie-banner__inner { align-items: flex-start; flex-direction: column; gap: 16px; }
  .cookie-banner__inner > .cookie-actions { align-self: flex-end; }
}
@media (max-width: 900px) { .cookie-banner-open { --cookie-bar-space: 70px; } }
@media (max-width: 560px) {
  .cookie-banner__inner { padding-block: 16px; gap: 12px; }
  .cookie-banner h2 { font-size: 1.1rem; }
  .cookie-banner p { font-size: .95rem; }
  .cookie-actions { gap: 10px; }
  .cookie-dialog { padding: 22px; }
}
