.cookie-banner[hidden] { display: none; }
.cookie-banner { position: fixed; z-index: 50; inset: auto 1rem 1rem; max-width: 72rem; margin-inline: auto; padding: 1.25rem; background: #fff; color: #122943; border: 1px solid #94a7bc; border-radius: 12px; box-shadow: 0 8px 40px #10243c30; display: grid; grid-template-columns: 1fr auto; gap: 1.25rem; max-height: 70dvh; overflow: auto; }
.cookie-banner h2, .cookie-dialog h2 { margin: 0 0 .5rem; font: 700 1.2rem/1.3 system-ui, sans-serif; color: #122943; }
.cookie-banner p, .cookie-dialog p { margin: 0 0 .75rem; font: 400 .95rem/1.5 system-ui, sans-serif; }
.cookie-banner a { color: #2144bc; text-decoration: underline; }
.cookie-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.cookie-actions button { appearance: none; cursor: pointer; min-height: 44px; padding: .7rem 1rem; border: 1px solid #122943; border-radius: 6px; background: #122943; color: white; font: 600 .9rem/1.3 system-ui, sans-serif; }
.cookie-actions button:hover { background: #254667; }
.cookie-actions button:focus-visible, .cookie-option input:focus-visible { outline: 3px solid #2759ef; outline-offset: 3px; }
.cookie-dialog { width: min(36rem, calc(100% - 2rem)); max-height: 85dvh; padding: 1.5rem; border: 1px solid #94a7bc; border-radius: 12px; color: #122943; background: #fff; }
.cookie-dialog::backdrop { background: #0d203c99; }
.cookie-option { display: flex; align-items: flex-start; gap: .7rem; margin: 1.25rem 0; font: 400 1rem/1.5 system-ui, sans-serif; }
.cookie-option input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin-top: .15rem; accent-color: #2144bc; }
@media (max-width: 900px) { .cookie-banner { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .cookie-banner { inset: auto .5rem .5rem; padding: 1rem; } .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; } .cookie-actions button { padding: .65rem; } }
/* Presentation refinements only: consent actions and tracking remain unchanged. */
.cookie-banner { inset: auto 1rem 1rem auto; width: min(34rem, calc(100% - 2rem)); margin: 0; grid-template-columns: 1fr; gap: .875rem; }
.cookie-banner .cookie-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cookie-banner .cookie-actions button { padding-inline: .5rem; }
.cookie-dialog { overflow-y: auto; }
.cookie-dialog .cookie-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem; margin-top: 1.25rem; }
.cookie-dialog .cookie-actions button { min-height: 48px; padding: .8rem 1rem; line-height: 1.5; }
@media (max-width: 480px) {
  .cookie-banner { inset: auto .5rem .5rem; width: auto; padding: .875rem; gap: .75rem; }
  .cookie-banner h2 { margin-bottom: .375rem; }
  .cookie-banner p { line-height: 1.45; margin-bottom: .5rem; }
  .cookie-banner .cookie-actions { gap: .375rem; }
  .cookie-banner .cookie-actions button { min-height: 52px; padding: .5rem .25rem; }
  .cookie-dialog { padding: 1.25rem; }
  .cookie-dialog .cookie-actions { gap: .75rem; }
  .cookie-dialog .cookie-actions button { padding-inline: .5rem; }
  .cookie-dialog [data-consent="save"], .cookie-dialog [data-consent="close"] { grid-column: 1 / -1; }
}
.cookie-banner .cookie-actions { align-items: stretch; }
@media (max-width: 480px) {
  .cookie-banner .cookie-actions { grid-template-columns: 1fr 1fr 1.25fr; }
  .cookie-banner h2, .cookie-actions button { overflow-wrap: anywhere; }
}
