/* Account visit tiers; shared type preference remains inherited. */
:root { --member-ink:#1c1b39; --member-muted:#756b89; --member-purple:#79539e; --member-line:#e7dff0; --member-wash:#f8f4fc; }
.side-drawer { width:min(450px,calc(100vw - 28px)); }
.side-drawer .drawer-header { min-height:94px; padding-top:calc(18px + env(safe-area-inset-top)); padding-bottom:14px; }
.side-drawer .drawer-header h2 { font-size:24px; letter-spacing:-.7px; }
.side-drawer .drawer-eyebrow { font-size:12px; color:#9270ac; margin-bottom:7px; }
.side-drawer .drawer-close { background:#f8f4fc; }
.side-drawer .drawer-nav-link { min-height:52px; font-size:15px; }
.side-drawer .drawer-body { padding-top:5px; }
.membership-icon { display:block; width:100%; height:100%; }
.membership-eyebrow { margin:0 0 12px; color:var(--member-purple); font-size:12px; font-weight:650; line-height:1.5; }
.membership-name { min-width:0; overflow-wrap:anywhere; }
.drawer-membership { margin:3px 0 22px; padding:22px 20px 18px; border:1px solid var(--member-line); border-radius:20px; background:linear-gradient(125deg,#faf7fd,#f6f1fb); color:var(--member-ink); }
.membership-profile { display:flex; flex-wrap:wrap; align-items:center; gap:9px; text-decoration:none; }
.membership-profile .membership-name { flex:0 1 auto; font-size:21px; line-height:1.35; letter-spacing:-.6px; }
.membership-profile > .icon { width:17px; height:17px; flex-shrink:0; margin-left:auto; color:#9471b0; }
.membership-badge { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; color:var(--member-purple); font-size:11px; font-weight:650; }
.membership-badge .membership-icon { width:25px; height:25px; flex:none; }
.membership-badge > span { background:#eee5f5; padding:4px 9px; border-radius:20px; }
.membership-days { margin:13px 0 0; color:var(--member-muted); font-size:12px; line-height:1.7; }
.membership-days strong { color:var(--member-purple); }
.membership-divider { height:1px; background:var(--member-line); margin:18px 0; }
.membership-progress-label { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:6px; font-size:12px; line-height:1.6; margin:0 0 9px; }
.membership-progress-label strong { font-weight:600; }
.membership-progress-label > span { color:var(--member-muted); font-variant-numeric:tabular-nums; }
.membership-meter { height:10px; width:100%; background:#e9e3f2; border-radius:30px; overflow:hidden; }
.membership-meter > span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#bd9bce,#9a78b9); }
.membership-meter.is-complete > span { background:linear-gradient(90deg,#d6ba82,#b69251); }
.membership-remaining { margin:11px 0 0; font-size:12px; color:var(--member-muted); line-height:1.7; }
.membership-record-link { display:flex; align-items:center; justify-content:flex-end; gap:2px; min-height:44px; margin-top:5px; color:var(--member-purple); font-size:12px; font-weight:600; }
.membership-record-link .icon { width:14px; height:14px; }
.membership-unavailable { font-size:12px; color:var(--member-muted); line-height:1.8; margin-top:14px; }
.membership-page { max-width:450px; margin:0 auto; padding:24px 20px 30px; color:var(--member-ink); }
body[data-page="membership"] .category-nav { display:none; }
.membership-page-heading { display:flex; align-items:center; gap:10px; margin:0 0 22px; }
.membership-page-heading h1 { font-size:22px; letter-spacing:-.7px; line-height:1.4; }
.membership-back { display:grid; place-items:center; width:38px; height:44px; flex:none; margin-left:-8px; }
.membership-back .icon { width:24px; height:24px; transform:rotate(180deg); }
.membership-current { padding:24px 19px 20px; border-radius:20px; border:1px solid var(--member-line); background:linear-gradient(125deg,#faf7fd,#f6f2fa); }
.membership-current-top { display:flex; align-items:center; gap:16px; }
.membership-current-top > div { min-width:0; flex:1; }
.membership-current-top .membership-eyebrow { font-size:12px; margin:0 0 6px; }
.membership-current h2 { font-size:26px; letter-spacing:-.7px; margin:0; line-height:1.4; }
.membership-emblem { display:grid; place-items:center; width:76px; height:76px; padding:13px; border-radius:50%; background:#f0e8f7; color:#784391; flex:none; }
.membership-description { color:var(--member-muted); font-size:12px; line-height:1.8; margin:8px 0 0; word-break:keep-all; }
.membership-today { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; margin:0 0 15px; font-size:13px; line-height:1.5; }
.membership-today span { color:var(--member-purple); font-size:12px; }
.membership-tiers { margin-top:26px; }
.membership-tiers > h2 { color:#62526f; font-size:16px; margin:0 4px 13px; }
.membership-tiers ol { list-style:none; margin:0; padding:0; border:1px solid var(--member-line); border-radius:17px; overflow:hidden; }
.membership-tier { display:flex; align-items:center; gap:12px; min-height:76px; padding:12px 15px; }
.membership-tier + .membership-tier { border-top:1px solid #eee8f3; }
.membership-tier.is-current { background:#f3edf9; }
.membership-tier-icon { display:block; flex:none; width:46px; height:46px; padding:8px; border-radius:50%; border:1px solid #e5dbee; color:#78568d; background:#fbf8fd; }
.membership-tier-copy { min-width:0; }
.membership-tier-copy h3 { font-size:14px; margin:0 0 4px; letter-spacing:-.3px; }
.membership-tier-copy p { font-size:11px; color:var(--member-muted); margin:0; }
.membership-tier-state { font-size:10px; color:var(--member-muted); margin-left:auto; text-align:right; max-width:80px; line-height:1.6; }
.membership-tier-state.is-current { background:#a581ba; color:white; padding:5px 10px; border-radius:20px; font-size:11px; }
.membership-achieved { display:grid; place-items:center; width:23px; height:23px; margin-left:auto; border-radius:50%; background:#c6c1cd; color:#fff; font-size:14px; }
.tier-visitor,.tier-guest { color:#45405d; }
.tier-honored { color:#9a7135; }
.tier-honored .membership-tier-icon { border-color:#dec899; color:#9a7135; background:#fffaf1; }
.membership-emblem.tier-honored { background:#fbf1dd; }
.tier-honored.membership-badge > span { background:#f4e9d2; }
.membership-note { display:flex; gap:12px; padding:18px 17px; background:#f7f3fb; border-radius:16px; margin:14px 0 2px; }
.membership-info { flex:none; display:grid; place-items:center; width:20px; height:20px; border:1.5px solid currentColor; border-radius:50%; font-family:serif; font-size:13px; color:#785193; }
.membership-note strong { font-size:12px; color:#684484; line-height:1.7; }
.membership-note p { font-size:12px; color:var(--member-muted); line-height:1.8; margin:5px 0 8px; }
.membership-note small { display:block; color:var(--member-muted); font-size:10px; line-height:1.8; }
.membership-account-link { display:flex; align-items:center; justify-content:space-between; min-height:56px; font-size:13px; padding:10px; }
.membership-account-link .icon { width:18px; height:18px; color:#a08aae; }
.membership-footnote { font-size:10px; color:var(--member-muted); line-height:1.7; margin:3px 10px 0; }
.membership-guest { text-align:center; padding:28px 20px; }
.membership-guest .membership-emblem { margin:0 auto 18px; }
.membership-guest h2 { font-size:21px; word-break:keep-all; }
.membership-guest > p:not(.membership-eyebrow) { color:var(--member-muted); font-size:13px; line-height:1.8; margin:13px 0; }
.membership-primary { display:flex; justify-content:center; align-items:center; min-height:48px; margin:20px auto 0; padding:12px 16px; background:#29213d; color:#fff; border-radius:12px; font-size:13px; font-weight:600; }
.membership-page a:focus-visible,.drawer-membership a:focus-visible { outline:2px solid #8e69af; outline-offset:4px; border-radius:5px; }
@media(max-width:360px) {
  .membership-page { padding-inline:14px; }
  .membership-current { padding-inline:15px; }
  .membership-current-top { gap:10px; }
  .membership-emblem { width:62px; height:62px; padding:10px; }
  .membership-current h2 { font-size:24px; }
  .membership-tier { gap:9px; padding-inline:12px; }
  .membership-tier-state { max-width:61px; font-size:9px; }
  .drawer-membership { padding:18px 15px 12px; }
  .membership-profile .membership-name { font-size:19px; }
}
