/* Pro redemption inherits the iOS warm-black / warm-yellow membership palette. */
.redeem-page { width:100%; max-width:1160px; margin:0 auto; padding:40px 44px; }
.redeem-page > .page-title { margin:0 0 24px; }
.pro-redemption { --pro-gold:#f2c14e; --pro-text:#f7f4ee; --pro-muted:#bdb6aa; color:var(--pro-text); background:linear-gradient(145deg,#2a2826 0%,#151413 55%,#090909 100%); border-radius:28px; overflow:hidden; }
.pro-redemption ::selection { background:#f2c14e; color:#211b10; }
.pro-redemption-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:28px 36px; }
.pro-wordmark { font-size:23px; font-weight:750; letter-spacing:-.025em; }
.pro-wordmark span { color:var(--pro-gold); }
.pro-current { color:var(--pro-muted); font-size:13px; }
.pro-current.is-pro { color:var(--pro-gold); }
.pro-redemption-body { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:12px 44px 48px; align-items:center; }
.pro-intro { min-width:0; }
.pro-cat { display:block; width:216px; max-width:100%; height:216px; object-fit:contain; margin:0 auto 20px; }
.pro-intro h2 { margin:0 0 24px; font-size:clamp(25px,2.8vw,34px); font-weight:700; letter-spacing:-.025em; line-height:1.35; }
.pro-perks { list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.pro-perks li { display:flex; align-items:flex-start; gap:12px; font-size:14px; line-height:1.65; color:#e0dbd2; }
.pro-perks svg { color:var(--pro-gold); width:18px; height:18px; flex:none; margin-top:3px; }
.pro-redeem-form { padding:30px 0 12px; min-width:0; }
.pro-redeem-form h2 { font-size:25px; line-height:1.4; margin:0 0 10px; letter-spacing:-.02em; }
.pro-redeem-description { font-size:14px; color:var(--pro-muted); line-height:1.8; margin:0 0 26px; }
.pro-redeem-form label { display:block; font-size:13px; color:#e0dbd2; margin-bottom:10px; }
.pro-code-input { box-sizing:border-box; width:100%; height:56px; padding:0 16px; border:1px solid #6e675b; border-radius:12px; background:#ffffff08; color:var(--pro-text); caret-color:var(--pro-gold); font:inherit; font-size:15px; transition:border-color .16s ease,background .16s ease; }
.pro-code-input::placeholder { color:#aaa296; }
.pro-code-input:hover { border-color:#aaa08e; }
.pro-code-input:focus-visible { outline:2px solid var(--pro-gold); outline-offset:3px; border-color:var(--pro-gold); }
.pro-code-input[aria-invalid=true] { border-color:#eea995; }
.pro-redemption button:focus-visible,.pro-redemption a:focus-visible { outline:2px solid var(--pro-gold); outline-offset:4px; }
.pro-action { display:flex; align-items:center; justify-content:center; gap:10px; box-sizing:border-box; width:100%; min-height:54px; padding:14px 22px; border:0; border-radius:999px; margin-top:20px; background:var(--pro-gold); color:#282014; font:inherit; font-size:15px; font-weight:650; cursor:pointer; text-decoration:none; transition:background .16s ease,transform .16s ease; }
.pro-action:hover:not(:disabled) { background:#ffcf62; transform:translateY(-1px); }
.pro-action:active:not(:disabled) { transform:translateY(0); }
.pro-action:disabled { background:#71623e; color:#e4dccb; cursor:not-allowed; }
.pro-redeem-note { color:var(--pro-muted); font-size:12px; line-height:1.8; margin:14px 0 0; }
.pro-redeem-error { color:#ffc1ac; font-size:13px; line-height:1.7; margin:12px 0 0; }
.pro-success { padding:30px 0 12px; animation:pro-confirm .28s ease-out; }
.pro-success-mark { color:var(--pro-gold); width:38px; height:38px; margin-bottom:20px; }
.pro-success h2 { font-size:28px; margin:0 0 12px; line-height:1.35; }
.pro-success p { font-size:14px; line-height:1.8; color:var(--pro-muted); margin:0 0 12px; }
.pro-success .pro-expiry { color:var(--pro-gold); font-size:17px; font-variant-numeric:tabular-nums; }
.pro-redeem-again { display:block; margin:18px auto 0; padding:8px; background:none; border:0; color:var(--pro-muted); font:inherit; font-size:13px; cursor:pointer; text-decoration:underline; text-underline-offset:5px; }
.pro-redemption-footer { border-top:1px solid #ffffff16; padding:20px 36px; display:flex; gap:24px; justify-content:space-between; align-items:baseline; }
.pro-redemption-footer p { color:var(--pro-muted); font-size:12px; line-height:1.75; margin:0; max-width:58ch; }
.pro-redemption-footer nav { display:flex; flex:none; gap:16px; }
.pro-redemption-footer a { color:var(--pro-muted); font-size:12px; text-underline-offset:4px; }
@keyframes pro-confirm { from { opacity:.6; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1050px) { .redeem-page {padding:28px 24px;} .pro-redemption-body {gap:30px;padding:4px 30px 36px;} .pro-redemption-header{padding:26px 30px;} .pro-redemption-footer{padding:20px 30px;flex-wrap:wrap;gap:12px;} }
@media(max-width:760px) { .redeem-page{padding:24px 16px;} .pro-redemption{border-radius:22px;} .pro-redemption-header{padding:24px;} .pro-redemption-body{grid-template-columns:1fr;gap:28px;padding:0 24px 32px;} .pro-cat{height:166px;width:166px;margin-bottom:14px;} .pro-intro h2{font-size:26px;margin-bottom:20px;} .pro-perks{gap:10px;} .pro-redeem-form,.pro-success{padding:24px 0 0;border-top:1px solid #ffffff20;} .pro-redeem-form h2{font-size:22px;} .pro-redeem-description{margin-bottom:22px;} .pro-redemption-footer{padding:20px 24px;} }
@media(prefers-reduced-motion:reduce) { .pro-success{animation:none;} .pro-action,.pro-code-input{transition:none;} }
.public-redeem-page { box-sizing:border-box; max-width:1040px; min-height:100dvh; padding:32px 28px 48px; margin:0 auto; }
.gift-home { display:inline-block; color:var(--text-primary,#272520); font-size:18px; font-weight:650; text-decoration:none; margin:0 0 24px; }
.public-redeem-page .pro-intro h1 { margin:0 0 24px; font-size:clamp(25px,2.8vw,34px); font-weight:700; letter-spacing:-.025em; line-height:1.35; }
.pro-redeem-form .gift-code-label { margin-top:20px; }
.gift-recipient { overflow-wrap:anywhere; font-weight:600; color:var(--pro-gold)!important; }
.gift-confirm { --pro-gold:#f2c14e; --pro-muted:#c8bfb1; box-sizing:border-box; width:min(440px,calc(100% - 32px)); padding:30px; border:1px solid #615544; border-radius:22px; background:#24211e; color:#f7f4ee; box-shadow:0 18px 60px #0005; }
.gift-confirm::backdrop { background:#0009; }
.gift-confirm h2 { font-size:22px; margin:0 0 18px; line-height:1.45; }
.gift-confirm p { font-size:14px; color:#c8bfb1; line-height:1.8; margin:12px 0; }
.gift-confirm .gift-confirm-email { overflow-wrap:anywhere; color:#f2c14e; font-size:19px; font-weight:650; padding:12px 0; }
.gift-confirm button:focus-visible { outline:2px solid #f2c14e; outline-offset:4px; }
@media(max-width:760px) { .public-redeem-page { padding:24px 16px 32px; } .public-redeem-page .pro-intro h1 {font-size:26px;margin-bottom:20px;} }
