/*
 * QAZ.WINE v2 component owner.
 *
 * v2.css supplies the snapshot foundation.  This file owns the interactive
 * catalogue, comparison and atlas components; it intentionally does not
 * impose a font on descendants or replace editorial content with a visual
 * treatment.
 */
:root {
  /* The public shell loads the AVDS-bound local IBM Plex Sans subsets before
     this component layer; no operating-system fallback is part of the design contract. */
  --av-font-family-system: "IBM Plex Sans";
  --qaz-wine-avds-font-sans: var(--av-font-family-system);
  --av-text-heading-font-family: var(--qaz-wine-avds-font-sans);
  --av-text-body-font-family: var(--qaz-wine-avds-font-sans);
  --qaz-wine-surface: #fffdf8;
  --qaz-wine-surface-muted: #f2ede5;
  --qaz-wine-ink: #231d1a;
  --qaz-wine-muted: #655d56;
  --qaz-wine-line: #d7cdc0;
  --qaz-wine-accent: #6c2638;
  --qaz-wine-accent-deep: #471520;
  --qaz-wine-accent-soft: #efe0e3;
  --qaz-wine-night: #2c1d22;
  --qaz-wine-focus: #b77e1f;
  --qaz-wine-shell: 1360px;
}

body {
  color: var(--qaz-wine-ink);
  background: var(--paper);
  font-family: var(--qaz-wine-avds-font-sans);
  font-synthesis: none;
}

.site-header {
  width: 100%;
  max-width: none;
  min-height: 72px;
  margin: 0;
  padding: 0 clamp(24px, 5vw, 80px);
  border-bottom: 1px solid var(--qaz-wine-line);
  background: var(--qaz-wine-surface);
}

.wordmark {
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.site-header nav a {
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.site-header nav a:hover,
.site-header nav a:focus-visible {
  color: var(--qaz-wine-accent);
}

main,
footer {
  width: min(calc(100% - 64px), var(--qaz-wine-shell));
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}

main {
  padding-bottom: clamp(56px, 7vw, 108px);
}

footer {
  color: var(--qaz-wine-muted);
}

a {
  color: var(--qaz-wine-accent);
}

:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--qaz-wine-focus) 78%, white);
  outline-offset: 3px;
}

.intro--catalog {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.62fr);
  gap: 14px clamp(32px, 5vw, 80px);
  max-width: none;
  padding: clamp(44px, 6vw, 82px) 0 clamp(22px, 3vw, 42px);
  border-bottom: 1px solid var(--qaz-wine-line);
}

.intro--catalog .eyebrow {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.intro--catalog h1 {
  max-width: 11ch;
  margin: 0;
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: clamp(2.65rem, 5.1vw, 4.7rem);
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 0.98;
  text-wrap: balance;
}

.intro--catalog > p:last-child {
  max-width: 45ch;
  margin: 0 0 0.2rem;
  padding-left: 1.25rem;
  border-left: 2px solid var(--qaz-wine-accent);
  color: var(--qaz-wine-muted);
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.58;
}

.catalog-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 24px 0 0;
  padding: 0;
  border: 1px solid var(--qaz-wine-line);
  border-left: 3px solid var(--qaz-wine-accent);
  background: var(--qaz-wine-surface);
}

.catalog-filters__primary {
  display: grid;
  grid-template-columns: minmax(18rem, 1.45fr) minmax(11rem, 0.72fr) auto;
  gap: 16px;
  align-items: end;
  padding: 20px;
}

.catalog-filters label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--qaz-wine-muted);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.015em;
  line-height: 1.25;
}

.catalog-filters input,
.catalog-filters select,
.catalog-filters button {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--qaz-wine-line);
  border-radius: 0;
  background: var(--qaz-wine-surface-muted);
  color: var(--qaz-wine-ink);
  font: inherit;
}

.catalog-filters input:focus,
.catalog-filters select:focus {
  border-color: var(--qaz-wine-accent);
  outline: 3px solid rgb(119 35 58 / 16%);
  outline-offset: 1px;
}

.catalog-filters__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  min-width: 18rem;
}

.catalog-filters button {
  border-color: var(--qaz-wine-accent);
  background: var(--qaz-wine-accent);
  color: #fff;
  font-family: var(--qaz-wine-avds-font-sans);
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.catalog-filters button:hover {
  border-color: var(--qaz-wine-accent-deep);
  background: var(--qaz-wine-accent-deep);
}

.catalog-reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding-inline: 10px;
  border: 1px solid var(--qaz-wine-line);
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.84rem;
  font-weight: 600;
  text-decoration: none;
}

.catalog-reset:hover {
  border-color: var(--qaz-wine-accent);
  color: var(--qaz-wine-accent);
}

.catalog-filters__advanced {
  border-top: 1px solid var(--qaz-wine-line);
}

.catalog-filters__advanced summary {
  display: flex;
  min-height: 43px;
  align-items: center;
  padding: 10px 18px;
  color: var(--qaz-wine-ink);
  cursor: pointer;
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.83rem;
  font-weight: 600;
}

.catalog-filters__advanced summary::marker {
  color: var(--qaz-wine-accent);
}

.catalog-filters__advanced-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  padding: 0 18px 18px;
}

.catalog-filters + [role="status"] {
  margin: 0 0 18px;
  padding: 11px 0 12px;
  border-bottom: 1px solid var(--qaz-wine-line);
  color: var(--qaz-wine-muted);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.84rem;
  font-weight: 700;
}

.catalog-compare-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
  margin: 0 0 22px;
  padding: 18px 0;
  border-top: 1px solid var(--qaz-wine-line);
  border-bottom: 1px solid var(--qaz-wine-line);
  background: transparent;
}

.catalog-compare-action__copy {
  display: grid;
  gap: 5px;
}

.catalog-compare-action__kicker {
  margin: 0;
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.catalog-compare-action h2 {
  margin: 0;
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: clamp(1.2rem, 1.6vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.catalog-compare-action__copy > p:not(.catalog-compare-action__kicker) {
  max-width: 52ch;
  margin: 0;
  color: var(--qaz-wine-ink);
  font-size: 0.83rem;
  line-height: 1.35;
}

.catalog-compare-action__actions {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.catalog-compare-action p.catalog-compare-action__status {
  flex: 1 1 100%;
  min-width: 0;
  max-width: none;
  color: var(--qaz-wine-muted);
  font-size: 0.84rem;
}

.catalog-compare-action button {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--qaz-wine-accent-deep);
  border-radius: 0;
  background: var(--qaz-wine-accent-deep);
  color: #fff;
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.catalog-compare-action button:disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.catalog-compare-action button:hover {
  background: var(--qaz-wine-accent-deep);
}

.catalog-compare-action a {
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* Retain the existing card treatment outside the catalog module. */
.cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding-bottom: 72px;
}

.card {
  display: flex;
  /* Row height is already derived from the tallest card in a grid row, so a
     fixed floor only padded short records with dead space. */
  min-height: 0;
  flex-direction: column;
  padding: 22px;
  border-color: var(--qaz-wine-line);
  border-top: 3px solid var(--qaz-wine-accent);
  border-radius: 0;
  background: var(--qaz-wine-surface);
  box-shadow: none;
}

.card:hover {
  border-color: color-mix(in srgb, var(--qaz-wine-accent) 52%, var(--qaz-wine-line));
  box-shadow: 0 18px 38px rgb(57 30 36 / 12%);
  transform: translateY(-2px);
}

.card-type {
  margin: 0 0 18px;
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.card h2,
.card h3 {
  margin: 0;
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: clamp(1.32rem, 1.55vw, 1.68rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.card h2 a,
.card h3 a {
  color: inherit;
  text-decoration: none;
}

.card h2 a:hover,
.card h3 a:hover {
  color: var(--qaz-wine-accent);
}

.card > p:not(.card-type, .catalog-card-source-label) {
  color: var(--qaz-wine-muted);
}

.cards--catalog {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--qaz-wine-line);
  border-left: 1px solid var(--qaz-wine-line);
  padding-bottom: 72px;
}

.catalog-card {
  display: flex;
  min-height: 0;
  flex-direction: column;
  padding: 20px;
  border: 0;
  border-right: 1px solid var(--qaz-wine-line);
  border-bottom: 1px solid var(--qaz-wine-line);
  border-radius: 0;
  background: var(--qaz-wine-surface);
  box-shadow: none;
}

.catalog-card:hover {
  background: #fffaf2;
  box-shadow: none;
  transform: none;
}

.catalog-card__header {
  display: grid;
  gap: 8px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--qaz-wine-accent);
}

.catalog-card .card-type {
  margin: 0 0 18px;
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.catalog-card .card-type {
  margin: 0;
}

.catalog-card h2 {
  margin: 0;
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: clamp(1.32rem, 1.55vw, 1.68rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.catalog-card h2 a {
  color: inherit;
  text-decoration: none;
}

.catalog-card h2 a:hover {
  color: var(--qaz-wine-accent);
}

.catalog-card > p:not(.card-type, .catalog-card-source-label) {
  margin: 14px 0 0;
  color: var(--qaz-wine-muted);
}

.catalog-card-facts {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 5px 12px;
  margin: 14px 0 0;
  padding-top: 0;
  border-top: 0;
  font-size: 0.82rem;
}

.catalog-card-facts dt,
.catalog-card-source-label {
  color: var(--qaz-wine-muted);
}

.catalog-card-facts dd {
  margin: 0;
}

.catalog-card-source-label {
  margin: 14px 0 5px;
  padding-top: 12px;
  border-top: 1px solid var(--qaz-wine-line);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.78rem;
  font-weight: 700;
}

.catalog-card-sources {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 17px;
  color: var(--qaz-wine-muted);
  font-size: 0.79rem;
}

.catalog-card-sources a {
  color: inherit;
}

.catalog-select {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px solid var(--qaz-wine-line);
  color: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.81rem;
  font-weight: 600;
}

.catalog-select input {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--qaz-wine-accent);
}

/* Atlas draws the published points in frame and repeats them as records. */
.atlas-workbench {
  margin: 0 0 32px;
  padding: 22px;
  border: 1px solid var(--qaz-wine-line);
  background: var(--qaz-wine-surface);
}

.atlas-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 0.4fr) auto auto;
  gap: 12px;
  align-items: end;
}

.atlas-filters label {
  display: grid;
  gap: 6px;
  color: var(--qaz-wine-muted);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.82rem;
  font-weight: 600;
}

.atlas-filters input,
.atlas-filters select,
.atlas-filters button {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid var(--qaz-wine-line);
  border-radius: 0;
  background: #fff;
  color: var(--qaz-wine-ink);
  font: inherit;
}

.atlas-filters button {
  background: var(--qaz-wine-accent);
  color: #fff;
  cursor: pointer;
}

.atlas-reset {
  align-self: center;
  color: var(--qaz-wine-accent);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.84rem;
  font-weight: 600;
}

.atlas-status,
.atlas-map-note {
  max-width: 780px;
  color: var(--qaz-wine-muted);
}

.atlas-status {
  margin: 20px 0 10px;
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 0.84rem;
  font-weight: 700;
}

.atlas-map {
  margin: 18px 0 0;
}

.atlas-map figcaption {
  max-width: 780px;
  margin: 0 0 10px;
  color: var(--qaz-wine-muted);
  font-size: 0.88rem;
}

.atlas-map__frame {
  display: block;
  width: 100%;
  max-width: 860px;
  height: auto;
  border: 1px solid var(--qaz-wine-line);
}

.atlas-map__canvas {
  fill: var(--qaz-wine-surface-muted);
}

.atlas-marker {
  cursor: pointer;
}

.atlas-marker__dot {
  fill: var(--qaz-wine-accent);
  stroke: var(--qaz-wine-surface);
  stroke-width: 2;
}

.atlas-marker__leader {
  stroke: var(--qaz-wine-accent);
  stroke-width: 1.2;
  stroke-opacity: 0.7;
}

.atlas-marker__label {
  fill: var(--qaz-wine-ink);
  font-family: var(--qaz-wine-avds-font-sans);
  font-size: 13px;
  font-weight: 500;
  paint-order: stroke;
  stroke: var(--qaz-wine-surface-muted);
  stroke-linejoin: round;
  stroke-width: 4px;
}

.atlas-marker:focus-visible .atlas-marker__dot,
.atlas-marker:hover .atlas-marker__dot {
  fill: var(--qaz-wine-accent-deep);
  stroke: var(--qaz-wine-focus);
}

.atlas-marker:focus-visible .atlas-marker__label,
.atlas-marker:hover .atlas-marker__label {
  text-decoration: underline;
}

.source-note {
  max-width: 780px;
  margin: 0 0 26px;
  color: var(--qaz-wine-muted);
  font-size: 0.9rem;
}

.source-caveat {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--qaz-wine-line);
  color: var(--qaz-wine-muted);
  font-size: 0.86rem;
}

/* Under this width a label drawn inside the frame would render smaller than
   the map can carry, so the frame keeps the markers and the record list below
   carries the names. */
@media (max-width: 599px) {
  .atlas-marker__label { display: none; }
  .atlas-marker__leader { display: none; }
  /* The frame keeps its projection but drops to a small phone width, so the
     default radius and stroke scale down to a few pixels.  Enlarging both
     keeps every published point a visible, tappable target; the record list
     below the figure still carries the names. */
  .atlas-marker__dot { r: 15px; stroke-width: 4; }
  .atlas-map__frame { max-height: 260px; }
}

@media (max-width: 1120px) {
  .intro--catalog {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .intro--catalog > p:last-child { max-width: 62ch; }

  .catalog-filters__primary {
    grid-template-columns: minmax(0, 1.4fr) minmax(10rem, 0.8fr) auto;
  }

  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards--catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-filters__advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .site-header {
    min-height: 0;
    flex-wrap: wrap;
    gap: 8px 18px;
    padding-block: 12px;
  }

  .site-header nav { width: 100%; }
  main, footer { width: min(calc(100% - 36px), var(--qaz-wine-shell)); }
  .intro--catalog { padding-top: 22px; padding-bottom: 14px; }
  .intro--catalog h1 { font-size: clamp(2.25rem, 11.2vw, 3.35rem); }
  .intro--catalog > p:last-child { line-height: 1.46; }
  .catalog-filters__primary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; }
  .catalog-filters__primary > label:first-child { grid-column: 1 / -1; }
  .catalog-filters__actions { grid-column: 1 / -1; min-width: 0; grid-template-columns: 1fr auto; align-self: end; }
  .catalog-filters__advanced summary { padding-inline: 14px; }
  .catalog-filters__advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 14px 14px; }
  .catalog-compare-action { grid-template-columns: 1fr; align-items: start; gap: 10px; margin-bottom: 16px; padding-block: 14px; }
  .catalog-compare-action__actions { width: 100%; justify-content: space-between; }
  .cards { grid-template-columns: 1fr; }
  .cards--catalog { grid-template-columns: 1fr; }
  .atlas-filters { grid-template-columns: 1fr; }
  .atlas-reset { align-self: start; }
}

@media (max-width: 420px) {
  main, footer { width: min(calc(100% - 28px), var(--qaz-wine-shell)); }
  .site-header { padding-inline: 16px; }
  .catalog-filters__advanced-grid { grid-template-columns: 1fr; }
  .catalog-compare-action__actions { align-items: center; flex-direction: row; flex-wrap: nowrap; gap: 8px; }
  .catalog-compare-action button { min-width: 0; padding-inline: 14px; font-size: 0.78rem; }
  .catalog-compare-action__actions a { flex: none; font-size: 0.76rem; white-space: nowrap; }
}

@media (min-width: 601px) and (max-width: 1120px) {
  .page--wines #catalog-compare-form { grid-template-columns: 1fr; align-items: start; gap: 10px; }
  .page--wines #catalog-compare-form .catalog-compare-action__copy { min-width: 0; }
  .page--wines #catalog-compare-form .catalog-compare-action__actions { width: 100%; justify-content: space-between; }
  .page--wines #catalog-compare-form .catalog-compare-action__status { grid-column: 1; }
}

@media (max-width: 1120px) {
  .page--wines #catalog-compare-form { grid-template-columns: 1fr; align-items: start; gap: 10px; }
  .page--wines #catalog-compare-form .catalog-compare-action__copy { min-width: 0; }
  .page--wines #catalog-compare-form .catalog-compare-action__actions { width: 100%; justify-content: space-between; }
  .page--wines #catalog-compare-form .catalog-compare-action__status { grid-column: 1; }
}

/* Voluntary 21+ reader control. It has no server decision, tracker or cookie:
   public snapshot pages, API responses and data exports remain directly available. */
.age-gate[hidden],
.age-gate [hidden] {
  display: none;
}

.age-gate {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: auto;
  padding: clamp(18px, 4vw, 48px);
  color: #fffaf1;
  background: #211218;
}

.age-gate__wash {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 17%, rgb(205 153 67 / 0.31), transparent 28rem),
    radial-gradient(circle at 88% 91%, rgb(129 33 66 / 0.58), transparent 34rem),
    linear-gradient(135deg, #1f1316 0%, #45212d 50%, #171316 100%);
}

.age-gate__panel {
  position: relative;
  width: min(100%, 39rem);
  padding: clamp(30px, 5.4vw, 68px);
  overflow: hidden;
  border: 1px solid rgb(250 227 180 / 0.38);
  border-radius: 3px;
  background: linear-gradient(135deg, rgb(52 25 33 / 0.9), rgb(23 19 20 / 0.94));
  box-shadow: 0 28px 90px rgb(0 0 0 / 0.44);
}

.age-gate__panel::after {
  position: absolute;
  inset: 12px;
  border: 1px solid rgb(255 250 241 / 0.11);
  content: "";
  pointer-events: none;
}

.age-gate__eyebrow {
  position: relative;
  z-index: 1;
  margin: 0 0 22px;
  color: #e5bb72;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.age-gate__title {
  position: relative;
  z-index: 1;
  max-width: 12ch;
  margin: 0;
  color: #fffaf1;
  font-size: clamp(2.3rem, 6vw, 4.35rem);
  font-weight: 700;
  letter-spacing: -0.055em;
  line-height: 0.96;
  text-wrap: balance;
}

.age-gate__lead {
  position: relative;
  z-index: 1;
  max-width: 36rem;
  margin: 30px 0 0;
  font-size: clamp(1.08rem, 2vw, 1.28rem);
  line-height: 1.45;
}

.age-gate__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.age-gate button {
  min-height: 48px;
  padding: 12px 18px;
  border-radius: 2px;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  cursor: pointer;
}

.age-gate__accept {
  border: 1px solid #eac77e;
  color: #251619;
  background: #eac77e;
}

.age-gate__accept:hover,
.age-gate__accept:focus-visible {
  background: #f6d994;
}

.age-gate__decline {
  border: 1px solid rgb(255 250 241 / 0.44);
  color: #fffaf1;
  background: transparent;
}

.age-gate__decline:hover,
.age-gate__decline:focus-visible {
  border-color: #fffaf1;
  background: rgb(255 250 241 / 0.1);
}

.age-gate__return {
  position: relative;
  z-index: 1;
  margin-top: 34px;
}

.age-gate__return p {
  max-width: 28rem;
  margin: 0 0 18px;
  font-size: 1.04rem;
  line-height: 1.45;
}

html.age-gate-open,
html.age-gate-open body {
  overflow: hidden;
}

@media (max-width: 420px) {
  .age-gate {
    align-items: end;
    padding: 12px;
  }

  .age-gate__panel {
    padding: 28px 24px;
  }

  .age-gate__title {
    font-size: clamp(2.08rem, 11vw, 2.8rem);
  }

  .age-gate__actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 28px;
  }

  .age-gate button {
    width: 100%;
  }
}

/* Native, local confirmation when scripts are disabled. No cookies or requests. */
body:has(.age-fallback[open]) > :not(noscript) { visibility: hidden; }
.age-fallback:not([open]) { display: none; }
.age-fallback[open] {
  position: fixed; inset: 0; z-index: 100; display: grid;
  grid-template-columns: minmax(0, 39rem); align-content: center; justify-content: center;
  gap: 16px; overflow: auto; padding: clamp(24px, 5vw, 64px);
  color: #fffaf1; background: #211218;
}
.age-fallback__message { grid-row: 1; }
.age-fallback > summary { grid-row: 2; }
.age-fallback__decline { grid-row: 3; }
.age-fallback summary {
  display: flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 12px 18px; list-style: none; cursor: pointer; font-weight: 600;
}
.age-fallback summary::-webkit-details-marker { display: none; }
.age-fallback summary:focus-visible { outline: 3px solid #fffaf1; outline-offset: 4px; }
.age-fallback__decline > p { font-size: 1.1rem; line-height: 1.5; }
.age-fallback__back-label { display: none; }
.age-fallback__decline[open] .age-fallback__back-label { display: inline; }
.age-fallback__decline[open] .age-fallback__decline-label { display: none; }
.age-fallback:has(.age-fallback__decline[open]) > summary { display: none; }

/* Standalone secondary controls keep a usable touch area. Inline prose links retain flow. */
.catalog-select { min-height: 44px; align-items: center; }
.catalog-select input, .compare-option input { min-width: 24px; min-height: 24px; }
.atlas-reset, .catalog-reset, .page-actions > a, .pagination a,
footer nav a, .site-header nav a, .text-link { min-height: 44px; display: inline-flex; align-items: center; }

.compare-chooser .compare-option { grid-template-columns: 26px minmax(0, 1fr); }

.age-fallback::details-content { display: contents; }

.compare-chooser__actions > a, .comparison__heading > a, .notice-actions > a {
  display: inline-flex; align-items: center; min-height: 44px;
}
