/* Texture belongs to its page or scrolling panel, never to the viewport. */
.legal-page::before,
.business-card-page::before,
.business-card-page__grain,
.strain-page::before,
.strain-page__grain { position: absolute; }

.legal-paper {
  clip-path: none;
  border: 24px solid transparent;
  border-image: url("../images/cards/reason-paper-card.webp") 200 fill / 24px / 0 stretch;
  background: transparent;
  box-shadow: none;
  filter: none;
}
.legal-paper::after {
  content: none;
}

/* Each scroll container carries its own grain; do not paint the document's
   static overlay over independent dialogs and menus. */
body:has(.membership-optin:not([hidden]))::before,
body:has(.membership-optin:not([hidden]))::after,
body:has(.cookie-settings:not([hidden]))::before,
body:has(.cookie-settings:not([hidden]))::after,
html:not(.age-confirmed) body::before,
html:not(.age-confirmed) body::after,
body.is-menu-open::before,
body.is-menu-open::after { display: none; }

.membership-optin__panel {
  clip-path: none;
  border: 18px solid transparent;
  border-image: url("../images/cards/reason-paper-card.webp") 200 / 18px / 0 stretch;
  background: linear-gradient(rgb(241 229 202 / .82), rgb(241 229 202 / .82)),
    url("../images/textures/paper-grain.jpg") center top / 1200px auto repeat-y;
  background-attachment: local;
  overscroll-behavior: contain;
}
.cookie-consent,
.cookie-settings__panel,
.age-gate {
  background: linear-gradient(rgb(23 53 45 / .86), rgb(23 53 45 / .86)),
    url("../images/textures/paper-grain.jpg") center top / 1200px auto repeat-y !important;
  background-attachment: local !important;
  overscroll-behavior: contain;
}
.cookie-consent { max-height: calc(100dvh - 32px); overflow-y: auto; }
.age-gate__masthead { position: absolute !important; }

/* A single opaque, full-width grain layer avoids the rectangular blend seam
   Safari exposed behind the entry ticket. It scrolls with the overlay. */
.age-gate {
  width: 100% !important;
  max-width: none !important;
  background: linear-gradient(rgb(23 53 45 / .92), rgb(23 53 45 / .92)),
    url("../images/textures/paper-grain.jpg") center top / cover repeat-y !important;
  background-color: #17352d !important;
  background-attachment: local !important;
}
.age-gate::before,
.age-gate::after { content: none !important; display: none !important; }

.why .accordion-panel,
.why .accordion-item.is-open .accordion-panel {
  box-sizing: border-box;
  max-height: none;
  padding-bottom: 0;
  transition: none;
  overflow-anchor: none;
}
.why .accordion-panel-inner { margin-bottom: var(--accordion-paper-edge); }
.why .accordion-panel[hidden] { display: none; }

/* One transition owner prevents the legacy keyframes from snapping back. */
@media (max-width: 1100px) {
  .site-header { animation: none !important; transform: none !important; opacity: 1 !important; }
  .main-nav,
  .main-nav.is-open {
    display: flex !important;
    inset: 0 !important;
    overflow: auto !important;
    justify-content: flex-start;
    background: linear-gradient(rgb(23 53 45 / .85), rgb(23 53 45 / .85)),
      url("../images/textures/paper-grain.jpg") center top / 1200px auto repeat-y !important;
    background-attachment: local !important;
    overscroll-behavior: contain;
    animation: none !important;
  }
  .main-nav a { animation: none !important; }
}

/* Preserve the original image mask, darken only its photographic layer. */
.join-photo {
  background-image: linear-gradient(rgb(8 19 16 / .57), rgb(8 19 16 / .57)),
    url("../images/backgrounds/join-membership-planning.png");
}
.join-content { text-shadow: 0 2px 4px rgb(0 0 0 / .35); }

/* Secondary pages and dialogs share the main site's square orange CTA. */
.cookie-button,
.card-button,
.launch-button,
.preview-login button,
.strain-profile__cta,
.membership-optin__direct,
.legal-header a:last-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 9px 16px;
  border: 3px solid var(--orange, #bb5a32);
  border-radius: 0;
  background: var(--orange, #bb5a32);
  color: var(--paper, #f1e5ca);
  font: 22px/1 "Bebas Neue", Impact, sans-serif;
  text-decoration: none;
  text-align: center;
  box-shadow: 4px 4px 2px rgb(0 0 0 / .25);
  cursor: pointer;
}
.membership-optin__footer .membership-optin__direct { color: var(--paper); text-decoration: none; }
.cookie-button:not(.cookie-button--primary),
.card-button:not(.card-button--primary) { background: var(--green); }
.membership-optin__close { border-radius: 0; background: var(--orange); border-color: var(--orange); color: var(--paper); box-shadow: 3px 3px 0 rgb(0 0 0 / .25); }
@media (max-width: 620px) {
  .legal-header { flex-wrap: wrap; }
  .legal-paper { border-width: 12px; border-image-width: 18px; padding-inline: 28px; }
}
