/* Member rewards: ivory on warm coffee. No changes to financial or login logic. */
header:has(.vigour-member-brand){background:linear-gradient(115deg,#4b382b,#2c2521);border-bottom:1px solid #9d8464;color:#f5efe6}
.vigour-member-brand b{color:#f5efe6!important;font-weight:650;letter-spacing:.07em!important}.vigour-member-brand small{color:#ddcbae!important}
header:has(.vigour-member-brand) [data-member-language-button]{color:#f5efe6;background:transparent;border-color:#90775f}header:has(.vigour-member-brand) [data-member-language-button][aria-pressed=true]{background:#f5efe6;color:#35261d}
/* Separate the spendable balance from supporting earning rules. */
.rewards-points{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.6fr);gap:24px;align-items:stretch;padding:18px;border-radius:20px;background:#fffdf9;border:1px solid #dfd1bf;color:#49392e;margin-bottom:20px}
.rewards-balance{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:26px 22px;border-radius:15px;background:linear-gradient(135deg,#63472f,#30231b);box-shadow:0 6px 18px #3d29151a;color:#fffaf0}
.rewards-balance-heading>small{display:block;color:#efdfc5;font-size:15px;font-weight:700;letter-spacing:.08em;line-height:1.5}
.rewards-balance .rewards-balance-value{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;margin:10px 0 12px;color:#fffaf0;line-height:1.08;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.rewards-balance-number{min-width:0;font-size:clamp(48px,9vw,64px);overflow-wrap:anywhere}
.rewards-balance-unit{font-size:22px;font-weight:650;letter-spacing:0;white-space:nowrap}
.rewards-balance-caption{font-size:12px;line-height:1.6;color:#efdfc5}
.rewards-points-details{min-width:0;align-self:center;padding:6px 2px}
.rewards-points-details>strong{display:block;font-size:17px;font-weight:750;line-height:1.5;color:#674a2f;margin:0 0 10px}
.rewards-points-details p{font-size:13px;line-height:1.75;margin:7px 0;color:#63584b}
.rewards-points-details .error{color:#a33b26}

.rewards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.reward-item,.collectible{min-width:0;background:#fffdf9;border:1px solid #e3d8c9;border-radius:18px;overflow:hidden;box-shadow:0 5px 20px #4b372808}
.reward-item img,.collectible img{display:block;width:100%;height:auto;aspect-ratio:1.52;object-fit:cover}.collectible img{object-fit:contain;background:#f0e9df}.reward-no-image{display:grid;place-items:center;aspect-ratio:1.52;background:linear-gradient(125deg,#eee7dc,#e5d6bf);color:#a48b66;font-size:64px}
.reward-item-body{padding:20px}.reward-item h3,.collectible h3{margin:0 0 8px;font-size:21px;color:#423226;overflow-wrap:anywhere}.reward-item small,.collectible small{display:block;margin:8px 0;color:#675b4e}.reward-description{white-space:pre-wrap;line-height:1.6;min-height:2.8em;overflow-wrap:anywhere}.reward-price{font-size:25px;font-weight:750;color:#84603b;margin-top:16px}.reward-item button{width:100%;margin-top:12px;background:#58412f;color:#fff8ee;border:1px solid #76583d}
.rewards-pager{display:flex;align-items:center;justify-content:center;gap:15px;margin:18px 0}.rewards-pager button{font-size:14px}.reward-order{border-left:4px solid #b29b75;padding:18px 20px;background:#fffdf9;margin:14px 0;border-radius:12px}.reward-order h3{margin:0 0 10px;color:#4b3828}.reward-order p{font-size:14px}.reward-rules{background:#f2ece1;padding:18px;border:1px solid #dcccaf;border-radius:12px;line-height:1.7;margin:18px 0}
.collectible-art{position:relative}.collectible.unowned .collectible-art>img,.collectible.unowned .reward-no-image{opacity:.28;filter:grayscale(.6)}.collectible-lock{position:absolute;inset:0;display:grid;place-items:center;color:#4f463a;text-shadow:0 1px #fff;font-size:19px;font-weight:700}.collectible.owned{border-color:#bba179}.collectible.owned .reward-item-body>b{color:#7b552e}.collectible .muted{font-size:13px;line-height:1.6}
.reward-dialog{color:#34291f;border:1px solid #b59a71;border-radius:20px;padding:24px;width:calc(100% - 32px);max-width:480px;max-height:88vh;box-sizing:border-box;overflow:auto;background:#fffcf7}.reward-dialog::backdrop{background:#19110dd0}.reward-dialog button{min-height:44px}.reward-dialog-bar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.reward-dialog-bar select{max-width:170px}.reward-dialog h2{font-size:25px;line-height:1.4}.reward-dialog h3{font-size:20px}.reward-dialog p{line-height:1.7}.pickup-qr{display:block;width:min(100%,310px);height:auto;margin:20px auto;background:#fff;image-rendering:pixelated}#rewardCountdown{display:block;text-align:center;font:750 30px ui-monospace,monospace;letter-spacing:.03em}.reward-history-row{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #dfd6c8}.reward-history-row small{display:block;font-size:12px;color:#746c62;margin-top:6px}
@media(max-width:820px){.rewards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.rewards-points{grid-template-columns:1fr;gap:16px;padding:12px}.rewards-balance{padding:24px 22px}.rewards-points-details{padding:0 8px 6px}.rewards-grid{grid-template-columns:1fr}.reward-dialog{padding:18px}.portal-nav{gap:7px}.portal-nav button{font-size:13px}}
@media(prefers-reduced-motion:reduce){.rewards-grid *{scroll-behavior:auto!important}}
.member-digital-card{max-width:640px;margin:12px auto 22px;border:1px solid #bfa781;border-radius:25px;padding:26px;color:#f5efe6;background:radial-gradient(ellipse at 100% 0,#9a7452aa,transparent 60%),linear-gradient(130deg,#694931,#31241d);box-shadow:0 15px 36px #40291924;position:relative;overflow:hidden}.member-digital-card::after{content:'';position:absolute;width:350px;height:350px;border:1px solid #f5efe618;border-radius:50%;top:-195px;right:-90px;pointer-events:none}.member-digital-card.rank-2{background:linear-gradient(115deg,#6a7178,#30373f)}.member-digital-card.rank-3{background:radial-gradient(ellipse at 100% 0,#d2b46b80,transparent 65%),linear-gradient(120deg,#715319,#392d18)}.member-digital-card.rank-4{background:linear-gradient(115deg,#454140,#211e1c)}.member-digital-card.rank-5{background:radial-gradient(ellipse at 100% 0,#3677a870,transparent 65%),linear-gradient(110deg,#203f61,#15243b)}.digital-brand{display:flex;align-items:center;gap:12px}.digital-brand img{background:#fff;border-radius:50%;flex-shrink:0}.digital-brand b{display:block;letter-spacing:.22em;font-size:19px}.digital-brand small{display:block;font-size:8px;letter-spacing:.12em;color:#f1e3ce;margin-top:4px}.digital-tier{margin-left:auto;font-size:14px;border:1px solid #d7bd9766;padding:8px;border-radius:20px;white-space:nowrap}.digital-identity{margin-top:30px}.digital-identity small{font-size:10px;letter-spacing:.14em;color:#e7d7bd}.digital-identity h3{color:#f5efe6!important;font-size:25px;margin:6px 0;overflow-wrap:anywhere}.digital-identity p{font-size:13px;letter-spacing:.15em;color:#f5efe6}.digital-numbers{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:24px 0}.digital-numbers small{display:block;color:#e9dcc7;font-size:11px;letter-spacing:.08em}.digital-numbers strong{display:block;font-size:35px;color:#f5efe6;font-variant-numeric:tabular-nums}.digital-numbers>div>span{font-size:11px;display:block;color:#eddbc0}.digital-foot{font-size:11px;border-top:1px solid #f5efe627;padding-top:13px;color:#e5d6be}.digital-notice{max-width:695px;margin:0 auto;box-sizing:border-box}.digital-notice p{line-height:1.7}.digital-actions{display:flex;gap:12px;flex-wrap:wrap}.digital-actions button{background:#594130;color:#f5efe6;border:1px solid #a58965}#rewardModal canvas[hidden]{display:none!important}.reward-rules{border-left:4px solid #997344}.reward-dialog .check{align-items:flex-start}.reward-dialog .check input{flex-shrink:0}
@media(max-width:420px){.member-digital-card{padding:22px 19px}.digital-brand img{width:50px;height:50px}.digital-brand b{font-size:16px}.digital-tier{font-size:12px;padding:6px}.digital-identity h3{font-size:23px}}

.reward-cooldown{padding:10px 12px;border-radius:8px;background:#f5f0e7;color:#625039;font-size:13px;line-height:1.6}.reward-cooldown.is-waiting{background:#f7edda;color:#754913;border:1px solid #dbc398}.reward-item button:disabled{opacity:.65;cursor:not-allowed}.reward-cancel{margin:8px 0 0 8px;background:transparent!important;color:#765334!important;border:1px solid #d5c4aa!important}.reward-order button{max-width:100%;white-space:normal}.reward-dialog p{overflow-wrap:anywhere}

/* Compact catalog; full artwork and descriptions open in an accessible dialog. */
#rewardsCatalog{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.reward-compact{border-radius:14px;box-shadow:none}
.reward-item .reward-preview{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;width:100%;margin:0;padding:14px 10px;border:0;border-radius:13px;background:transparent;color:#423226;text-align:center;font:inherit;cursor:pointer;white-space:normal}
.reward-preview:focus-visible{outline:3px solid #a7814f;outline-offset:-3px}
.reward-preview:hover{background:#f7f0e4}
.reward-thumb{display:block;width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden;background:#f2ece2}
.reward-thumb img,.reward-thumb .reward-no-image{width:100%;height:100%;aspect-ratio:1;object-fit:contain;font-size:34px}
.reward-preview-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;font-weight:650;line-height:1.45;min-height:2.9em;overflow-wrap:anywhere}
.reward-preview .reward-price{margin:0;font-size:17px;line-height:1.4}
.reward-compact-status{font-size:11px;line-height:1.5;color:#675b4e;overflow-wrap:anywhere}
.reward-compact-status.is-waiting{color:#80521a}
.reward-detail-link{margin-top:auto;font-size:11px;line-height:1.5;color:#806644}
.reward-detail-link>span[aria-hidden]{font-size:15px;margin-left:3px}
.reward-detail-image{border-radius:14px;overflow:hidden;background:#f2ece2}
.reward-detail-image img{display:block;width:100%;height:auto;max-height:36vh;object-fit:contain}
.reward-detail-image .reward-no-image{aspect-ratio:1.5;font-size:64px}
.reward-product-dialog h2{margin:20px 0 8px;overflow-wrap:anywhere}
.reward-product-dialog .reward-price{margin:0 0 18px;font-size:23px}
.reward-product-dialog .reward-description{font-size:15px;min-height:0}
.reward-product-dialog .reward-stock{font-size:13px;color:#675b4e}
.reward-detail-redeem{width:100%;margin-top:8px}
.reward-detail-redeem:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:820px){#rewardsCatalog{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){#rewardsCatalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reward-item .reward-preview{padding:12px 8px;gap:6px}.reward-thumb{width:72px;height:72px}}



/* Optional limited-time reward prices: no extra labels for regular products. */
.reward-offer{display:flex;flex-direction:column;align-items:flex-start;gap:5px;white-space:normal}
.reward-offer-badge{display:inline-flex;background:#9b3e24;color:#fff;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:800;line-height:1.4;letter-spacing:.03em}
.reward-offer-prices{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.reward-offer-prices del{color:#6d665e;font-size:12px;font-weight:400}
.reward-offer-prices strong{color:#96371f;font-size:22px;line-height:1.25;font-variant-numeric:tabular-nums}
.reward-offer-saving{color:#96371f;font-weight:700;font-size:12px}
.reward-offer-deadline{color:#615a51;font-size:11px;line-height:1.5}
.reward-compact .reward-offer-prices strong{font-size:20px}
.reward-product-dialog .reward-offer,.reward-dialog .reward-offer{margin:12px 0}

.rewards-pending{background:#f4eee3;border:1px solid #dcd1bc;border-radius:16px;padding:24px;min-width:0}.rewards-pending small{letter-spacing:.06em;color:#66543d}.rewards-pending strong{display:block;font-size:36px;line-height:1.35;margin:8px 0;color:#59452c}.rewards-pending p{font-size:14px;line-height:1.6;margin:0;color:#665c4e}.rewards-points{grid-template-columns:repeat(2,minmax(0,1fr))}.rewards-points-details{grid-column:1/-1}@media(max-width:560px){.rewards-points{grid-template-columns:1fr}}

/* Owner-controlled availability remains prominent on both product surfaces. */
.reward-unavailable{display:block;color:#b91c1c!important;font-size:clamp(1.5rem,5vw,2.25rem);line-height:1.2;font-weight:900;margin:.65rem 0;overflow-wrap:anywhere}.reward-compact .reward-unavailable{font-size:1.25rem}.reward-credit-terms{padding:1rem;background:#f6f4ef;border-radius:12px;line-height:1.7}

/* Compact disclosures keep campaign and redemption rules available on demand. */
.rewards-disclosure{border:1px solid #dfd1bf;border-radius:12px;padding:0 14px;background:#fffaf2;color:#57412d}
.rewards-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;box-sizing:border-box;padding:12px 0;list-style:none;cursor:pointer;font-size:15px;font-weight:700;line-height:1.5}
.rewards-disclosure>summary::-webkit-details-marker{display:none}
.rewards-disclosure>summary:focus-visible{outline:3px solid #b69564;outline-offset:4px;border-radius:4px}
.rewards-disclosure-chevron{width:8px;height:8px;flex:0 0 8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 3px 4px 0}
.rewards-disclosure[open]>summary{border-bottom:1px solid #dfd1bf}
.rewards-disclosure[open]>summary .rewards-disclosure-chevron{transform:rotate(225deg);margin-top:6px;margin-bottom:0}
.rewards-disclosure-content{padding:8px 0 14px;overflow-wrap:anywhere}
.reward-rules.rewards-disclosure{border-left:1px solid #dfd1bf;background:#f2ece1}
.rewards-balance-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.rewards-balance-heading>small{flex:1;min-width:0}
.rewards-balance-heading .rewards-refresh{flex:0 0 auto;max-width:55%;min-height:42px;padding:8px 10px;border:1px solid #cbb79e;border-radius:10px;background:#ffffff12;color:#fff5e7;font-size:12px;font-weight:600;line-height:1.4;text-align:center;white-space:normal;letter-spacing:0}
.rewards-balance-heading .rewards-refresh:focus-visible{outline:3px solid #e4c38c;outline-offset:3px}
@media(max-width:370px){.rewards-balance{padding-inline:16px}.rewards-balance-heading{gap:8px}.rewards-balance-heading>small{font-size:13px}.rewards-balance-heading .rewards-refresh{font-size:11px;padding-inline:8px}}
