.cookie-consent,
.cookie-settings {
  --cookie-bg: #151914;
  --cookie-panel: #1c211b;
  --cookie-paper: #eee8dc;
  --cookie-muted: #aaa99f;
  --cookie-brass: #d6b172;
  --cookie-line: rgba(214, 177, 114, .3);
  color: var(--cookie-paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.cookie-consent[hidden] { display: none; }

.cookie-consent {
  position: fixed;
  z-index: 10000;
  right: clamp(1rem, 3vw, 2.5rem);
  bottom: clamp(1rem, 3vw, 2.5rem);
  left: clamp(1rem, 3vw, 2.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 25rem);
  gap: clamp(1.2rem, 3vw, 3rem);
  align-items: end;
  width: min(74rem, calc(100% - clamp(2rem, 6vw, 5rem)));
  margin-left: auto;
  padding: clamp(1.3rem, 3vw, 2rem);
  border: 1px solid var(--cookie-line);
  background: rgba(21, 25, 20, .98);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .55);
}

.cookie-consent__eyebrow {
  margin: 0 0 .55rem;
  color: var(--cookie-brass);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cookie-consent h2,
.cookie-settings h2 { margin: 0; color: var(--cookie-paper); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 3vw, 2.35rem); font-weight: 400; }
.cookie-consent__copy > p:not(.cookie-consent__eyebrow) { max-width: 62ch; margin: .75rem 0; color: var(--cookie-muted); font-size: .88rem; line-height: 1.6; }
.cookie-consent a,
.cookie-settings a { color: var(--cookie-brass); font-size: .75rem; text-underline-offset: .22em; }

.cookie-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.cookie-consent__actions button,
.cookie-settings__footer button {
  min-height: 3rem;
  border: 1px solid var(--cookie-brass);
  background: transparent;
  color: var(--cookie-paper);
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.cookie-consent__choice:hover,
.cookie-consent__choice:focus-visible { background: var(--cookie-brass); color: #10120f; }
.cookie-consent__configure { grid-column: 1 / -1; border-color: rgba(238, 232, 220, .3) !important; }
.cookie-consent__configure:hover,
.cookie-consent__configure:focus-visible { border-color: var(--cookie-paper) !important; }

.cookie-preferences-link {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.footer-links .cookie-preferences-link { color: rgba(238, 232, 220, .62); font-family: var(--serif); }
.footer-links .cookie-preferences-link:hover { color: var(--paper); }
.store-footer__links .cookie-preferences-link { color: var(--store-paper-dim); font-size: .8rem; }
.store-footer__links .cookie-preferences-link:hover { color: var(--store-paper); }

.cookie-settings {
  width: min(42rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--cookie-line);
  background: var(--cookie-bg);
  box-shadow: 0 30px 100px rgba(0, 0, 0, .7);
}
.cookie-settings::backdrop { background: rgba(5, 7, 5, .78); backdrop-filter: blur(4px); }
.cookie-settings__panel { margin: 0; padding: clamp(1.3rem, 4vw, 2rem); }
.cookie-settings__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.cookie-settings__close { width: 2.6rem; height: 2.6rem; border: 1px solid var(--cookie-line); background: transparent; color: var(--cookie-paper); cursor: pointer; font: inherit; font-size: 1.5rem; line-height: 1; }
.cookie-settings__panel > p { margin: 1rem 0 1.5rem; color: var(--cookie-muted); font-size: .88rem; line-height: 1.6; }
.cookie-settings__categories { border-top: 1px solid var(--cookie-line); }
.cookie-settings__category { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; padding: 1.2rem 0 .45rem; cursor: pointer; }
.cookie-settings__category span { display: grid; gap: .3rem; }
.cookie-settings__category strong { color: var(--cookie-paper); font-size: .88rem; }
.cookie-settings__category small,
.cookie-settings__status { color: var(--cookie-muted); font-size: .74rem; line-height: 1.45; }
.cookie-settings__status { margin: 0 !important; padding: 0 4.25rem 1.2rem 0; border-bottom: 1px solid rgba(214, 177, 114, .14); }
.cookie-settings__category input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.cookie-settings__category i { position: relative; width: 3.1rem; height: 1.7rem; border: 1px solid #686c64; border-radius: 1rem; background: #292e28; }
.cookie-settings__category i::after { position: absolute; top: .2rem; left: .2rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: #a6a99f; content: ""; transition: transform .18s ease, background .18s ease; }
.cookie-settings__category input:focus-visible + i { outline: 2px solid var(--cookie-paper); outline-offset: 3px; }
.cookie-settings__category input:checked + i { border-color: var(--cookie-brass); background: rgba(214, 177, 114, .2); }
.cookie-settings__category input:checked + i::after { background: var(--cookie-brass); transform: translateX(1.4rem); }
.cookie-settings__category.is-required { cursor: default; }
.cookie-settings__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; }
.cookie-settings__footer button { padding: 0 1.2rem; background: var(--cookie-brass); color: #10120f; }
.cookie-consent__sr-only { position: fixed; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@media (max-width: 720px) {
  .cookie-consent { grid-template-columns: 1fr; gap: 1rem; width: auto; }
  .cookie-settings__footer { align-items: stretch; flex-direction: column; }
  .cookie-settings__footer button { width: 100%; }
}

@media (max-width: 380px) {
  .cookie-consent { right: .6rem; bottom: .6rem; left: .6rem; padding: 1rem; }
  .cookie-consent__actions { gap: .45rem; }
  .cookie-consent__actions button { font-size: .65rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-settings__category i::after { transition: none; }
}
