.cookie-banner[hidden] { display: none; }
.cookie-banner {
  position: fixed;
  inset: auto max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  z-index: 180;
  max-width: 1120px;
  margin-inline: auto;
  padding: 24px 28px;
  border: 1px solid var(--sand-300);
  border-top: 3px solid var(--orange-500);
  border-radius: 20px;
  background: var(--cream);
  color: var(--navy-800);
  box-shadow: 0 12px 60px #071c3033;
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  font: 15px/1.55 var(--font-body);
  animation: cookie-arrive .3s ease-out;
}
.cookie-main { display: flex; align-items: center; gap: 24px; }
.cookie-icon { flex: 0 0 46px; height: 46px; padding: 11px; border-radius: 14px; background: var(--orange-soft); color: var(--navy-800); }
.cookie-copy { flex: 1; }
.cookie-banner h2 { margin: 0 0 5px; font: 700 21px/1.25 var(--font-display); letter-spacing: -.3px; }
.cookie-banner p { margin: 0; }
.cookie-copy p { max-width: 62ch; color: var(--ink-soft); }
.cookie-actions { display: flex; gap: 10px; flex-shrink: 0; }
.cookie-choice { padding: 12px 20px; min-height: 48px; border: 1px solid var(--navy-800); border-radius: 100px; background: var(--navy-800); color: white; font: 700 15px var(--font-display); cursor: pointer; }
.cookie-choice:hover { background: var(--navy-600); border-color: var(--navy-600); }
.cookie-banner details { margin-top: 12px; }
.cookie-banner summary { width: fit-content; cursor: pointer; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cookie-details { padding-top: 14px; border-top: 1px solid var(--sand-300); margin-top: 12px; }
.cookie-details p + p { margin-top: 10px; }
.cookie-details a { text-decoration: underline; }
.cookie-settings { padding: 4px 0; border: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.cookie-banner :focus-visible, .cookie-settings:focus-visible { outline: 3px solid var(--sea-600); outline-offset: 4px; }
body:has(.cookie-banner:not([hidden])) .to-top { visibility: hidden; }
@keyframes cookie-arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) { .cookie-main { flex-wrap: wrap; gap: 14px; } .cookie-actions { margin-left: 60px; } }
@media (max-width: 560px) {
  .cookie-banner { padding: 18px; border-radius: 16px; }
  .cookie-icon { display: none; }
  .cookie-copy { flex-basis: 100%; }
  .cookie-actions { margin: 0; width: 100%; }
  .cookie-choice { flex: 1; padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) { .cookie-banner { animation: none; } }
