.meditation-portal,
.commerce-dialog {
  --commerce-ink: #141a24;
  --commerce-paper: #fdf4da;
  --commerce-gold: #dbad4f;
  --commerce-gold-deep: #a85f00;
}
.library-invitation {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .7rem;
  margin: 18px 0 0;
  color: #5f6c89;
  font-size: .76rem;
  line-height: 1.6;
}
.library-invitation a, .account-link { color: #98550d; }
.account-link {
  border: 0;
  padding: 0;
  background: transparent;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.bundle-cta {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  min-height: 46px;
  padding: 11px 17px;
  border: 1px solid #dbad4f;
  border-radius: 3px;
  color: #fbefcd;
  background: var(--commerce-ink);
  font: 600 .72rem/1.2 var(--sans);
  letter-spacing: .03em;
  cursor: pointer;
  white-space: nowrap;
}
.bundle-cta:hover { background: #1a222f; }
/* Paid cards retain the original gallery colors. Access is indicated by the CTA. */
.meditation-card.featured { border: 1px solid rgba(219,173,79,.75); }
.meditation-card.featured .cover-type > span:first-child,
.meditation-card.featured .celestial-note { color: #f6dea2; }
.paid-access {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 13px 16px;
  margin-top: auto;
  padding: 15px 0 11px;
  border-top: 1px solid #263148;
}
.lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #dbad4f;
  font: 600 .58rem/1.2 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.lock-badge span { font-size: .95rem; line-height: 1; }
.paid-price { display: flex; align-items: baseline; gap: 8px; margin: 0; grid-column: 1; }
.paid-price strong { color: #fdf5dd; font: 400 1.45rem/1 var(--serif); }
.paid-price span { color: #e8d3a0; font: .58rem/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.paid-unlock { grid-column: 2; grid-row: 1 / span 2; align-self: center; min-height: 44px; padding-inline: 15px; white-space: nowrap; }
.celestial-note { margin: -3px 0 14px; color: #dbad4f; font-size: .71rem; line-height: 1.5; }
.celestial-note strong { font-weight: 700; }
.member-audio {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
  padding: 12px 0 10px;
  border-top: 1px solid #263148;
}
.member-audio[hidden] { display: none; }
.member-play { width: 42px; height: 42px; min-width: 42px; padding: 0; font-size: .8rem; }
.member-audio-label { color: #dbad4f; font-size: .67rem; text-transform: uppercase; letter-spacing: .12em; }
.member-track { flex: 1; min-width: 120px; }
.member-track .audio-time { color: #e8d39f; }
.member-track .member-seek { margin: 1px 0 -8px; }
.member-audio audio { display: none; }
.member-audio .audio-status { flex-basis: 100%; }
.member-download { display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:5px 2px;margin-left:auto;border:0;background:transparent;color:#dbad4f;font:400 .72rem/1.3 var(--sans);cursor:pointer; }
.member-download svg { width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5; }
.member-download:hover { color:#fcf1d1; }
.member-download:focus-visible { outline:2px solid #dbad4f;outline-offset:4px;border-radius:2px; }
.member-download:disabled { opacity:.65;cursor:wait; }
.commerce-dialog {
  width: min(620px, calc(100% - 30px));
  padding: 0;
  border: 1px solid #dbad4f;
  border-radius: 8px;
  color: var(--commerce-ink);
  background: var(--commerce-paper);
  box-shadow: 0 25px 80px rgba(16,22,31,.32);
}
.commerce-dialog::backdrop { background: rgba(16,22,31,.66); backdrop-filter: blur(4px); }
.commerce-dialog__surface { position: relative; padding: 38px clamp(24px, 5vw, 52px) 32px; }
.commerce-dialog h2 { margin: 13px 0 10px; font: 400 clamp(2rem, 5vw, 3.3rem)/1.05 var(--serif); letter-spacing: -.035em; }
.commerce-dialog .portal-eyebrow { color: var(--commerce-gold-deep); }
.dialog-copy { max-width: 42rem; margin: 0; color: #5c6986; font-size: .9rem; line-height: 1.7; }
.dialog-close {
  position: absolute; top: 15px; right: 17px; width: 40px; height: 40px; border: 0;
  border-radius: 50%; color: #242e44; background: transparent; font-size: 1.7rem; cursor: pointer;
}
.dialog-close:hover { background: #f0deaf; }
.checkout-choices { display: grid; gap: 11px; margin: 26px 0 14px; }
.checkout-choice {
  display: grid; gap: 7px; width: 100%; min-height: 86px; padding: 16px 18px;
  border: 1px solid #dbad4f; border-radius: 5px; color: var(--commerce-ink); background: #fef9ea;
  text-align: left; cursor: pointer;
}
.checkout-choice:hover, .checkout-choice:focus-visible { border-color: #a85f00; background: #f8e9be; }
.checkout-choice--bundle { border-color: #a85f00; background: #f0deb0; }
.checkout-choice__eyebrow { color: #a85f00; font: 600 .58rem/1.2 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.checkout-choice strong { font: 400 1.33rem/1.1 var(--serif); }
.checkout-choice > span:last-child { color: #626f8c; font: .67rem/1.2 var(--mono); letter-spacing: .04em; }
.dialog-note { margin: 18px 0 0; color: #6b7895; font-size: .68rem; line-height: 1.55; }
.commerce-status { min-height: 1.3em; margin: 10px 0 0; color: #a05a07; font-size: .76rem; line-height: 1.5; }
.auth-field { display: grid; gap: 7px; margin-top: 20px; color: #242f44; font-size: .76rem; font-weight: 650; }
.auth-field input { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #dbad4f; border-radius: 4px; color: var(--commerce-ink); background: #fffdf6; font: 1rem/1.2 var(--sans); }
.auth-submit, .auth-verify { margin-top: 17px; border: 1px solid var(--commerce-ink); cursor: pointer; }
.auth-code { margin-top: 3px; }
.account-signout { margin-top: 17px; border: 0; background: none; cursor: pointer; }
@media (max-width: 1020px) { .collection-toolbar { flex-wrap: wrap; } .bundle-cta { margin-left: auto; } }
@media (max-width: 700px) {
  .library-invitation { display: block; }
  .library-invitation a, .library-invitation .account-link { display: inline; }
  .bundle-cta { width: 100%; justify-content: center; margin-left: 0; }
  .paid-access { grid-template-columns: 1fr; }
  .paid-unlock { grid-column: 1; grid-row: auto; width: 100%; }
  .commerce-dialog__surface { padding: 35px 20px 25px; }
}
