.open-sale-banner[hidden] { display: none; }
.open-sale-banner { background: #793f48; color: #fff9f5; text-align: center; }
.open-sale-banner button {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem .8rem;
  width: 100%; padding: .75rem 1rem; border: 0; background: transparent;
  color: inherit; font: inherit; cursor: pointer;
}
.open-sale-banner button:focus-visible { outline: 2px solid white; outline-offset: -4px; }
.open-sale-dialog {
  position: fixed; inset: 0; margin: auto; box-sizing: border-box;
  width: min(32rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem);
  overflow: auto; border: 1px solid #e7d2ca; border-radius: 1rem;
  padding: clamp(1.25rem, 5vw, 2.5rem); background: #fff9f5;
  color: #352525; text-align: center;
}
.open-sale-dialog::backdrop { background: rgb(34 20 23 / 65%); }
.open-sale-dialog h2 { font-size: clamp(1.35rem, 5vw, 2.1rem); line-height: 1.35; margin: .5rem 0 1rem; }
.open-sale-dialog p { margin: 0 0 .8rem; }
.open-sale-label { color: #793f48; font-weight: 700; letter-spacing: .14em; }
.open-sale-close {
  position: absolute; top: .5rem; right: .5rem; min-width: 44px; min-height: 44px;
  border: 0; background: transparent; color: inherit; font-size: 1.5rem; cursor: pointer;
}
#open-sale-copy, .open-sale-links a {
  display: inline-block; padding: .65rem 1rem; border: 1px solid #793f48;
  border-radius: .4rem; font: inherit; text-decoration: none; cursor: pointer;
}
#open-sale-copy { color: #793f48; background: transparent; }
#open-sale-copy-status:not(:empty) { display: block; margin-top: .5rem; }
.open-sale-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 1rem 0; }
.open-sale-links a { color: white; background: #793f48; }
