.page-purchase { background: #0e0d0d; }
.purchase-main { position: relative; min-height: 760px; overflow: hidden; padding: clamp(54px,6vw,100px) var(--pad); }
.purchase-backdrop { position: absolute; inset: 0; background: radial-gradient(circle at 15% 20%,rgba(137,50,222,.22),transparent 34%),radial-gradient(circle at 85% 75%,rgba(181,203,93,.1),transparent 30%),linear-gradient(135deg,#0d0c0c,#181518); }
.purchase-backdrop::after { content:""; position:absolute; inset:0; opacity:.16; background:repeating-linear-gradient(120deg,transparent 0 48px,rgba(255,255,255,.025) 48px 50px); }
.purchase-modal { position:relative; z-index:1; width:min(980px,100%); margin:auto; overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:24px; background:#1b1919; box-shadow:0 34px 100px rgba(0,0,0,.52); }
.purchase-test-mode { display:flex; align-items:center; justify-content:center; gap:10px; padding:10px 18px; background:var(--lime-soft); color:#151515; font-size:11px; }
.purchase-test-mode strong { font:900 12px var(--font-wide); letter-spacing:.05em; text-transform:uppercase; }
.purchase-test-mode span { opacity:.72; }
.purchase-head { display:flex; gap:18px; padding:30px 34px 25px; border-bottom:1px solid rgba(255,255,255,.08); }
.purchase-head h1 { margin-top:6px; font:700 clamp(26px,2.2vw,36px) var(--font-bold); }
.purchase-head p:last-child { margin-top:7px; color:#aaa; font-size:12px; }
.purchase-close { display:grid; width:36px; height:36px; flex:0 0 auto; place-items:center; border-radius:50%; background:#2b2929; font-size:24px; line-height:1; }
.purchase-alert { margin:22px 34px 0; padding:13px 16px; border:1px solid rgba(226,134,93,.55); border-radius:10px; background:rgba(226,134,93,.12); font-size:13px; }
.purchase-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:28px; padding:32px 34px 0; }
.purchase-fields { display:grid; align-content:start; gap:18px; }
.purchase-fields label { display:grid; gap:7px; color:#d9d7d7; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.purchase-fields label > span { color:var(--lime-soft); }
.purchase-fields input { width:100%; height:48px; padding:0 14px; border:1px solid #3a3737; border-radius:9px; outline:0; background:#201e1e; color:#fff; font:400 14px var(--font-ui); text-transform:none; letter-spacing:0; }
.purchase-fields input:focus { border-color:var(--lime-soft); box-shadow:0 0 0 3px rgba(181,203,93,.12); }
.purchase-fields input.invalid { border-color:#ff756b; }.purchase-fields small,.terms-error { display:none; color:#ff8c82; font-size:10px; font-weight:500; text-transform:none; letter-spacing:0; }.purchase-fields small.show,.terms-error.show { display:block; }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.purchase-summary { min-width:0; padding:18px; border-radius:16px; background:#111; }
.summary-kicker { margin-bottom:13px; color:#aaa; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.summary-ticket { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:83px; margin-top:9px; padding:14px 15px; border-radius:10px; color:#151515; }
.summary-ticket--lime { background:linear-gradient(135deg,#d1ef2b,#a9c622); }.summary-ticket--violet { background:linear-gradient(135deg,#a931ec,#7620c2); color:#fff; }
.summary-ticket strong { display:block; font:900 16px var(--font-wide); text-transform:uppercase; line-height:1.05; }.summary-ticket span { display:block; margin-top:5px; font-size:10px; font-weight:700; }.summary-ticket > b { white-space:nowrap; font-size:13px; }
.summary-numbers { margin-top:18px; padding-top:14px; border-top:1px solid #292626; }.summary-numbers > div { display:flex; justify-content:space-between; gap:16px; color:#aaa; font-size:12px; }.summary-numbers .discount { margin-top:8px; color:var(--lime-soft); }
.purchase-foot { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; gap:14px 30px; margin:4px -34px 0; padding:25px 34px 28px; border-top:1px solid rgba(255,255,255,.08); background:#151414; }
.purchase-total { display:flex; align-items:end; gap:18px; }.purchase-total span { color:#aaa; font-size:13px; }.purchase-total strong { font:400 clamp(38px,3.5vw,54px) var(--font-display); line-height:.85; }
.terms-check { display:flex; align-items:flex-start; gap:9px; grid-column:1; color:#aaa; font-size:11px; }.terms-check input { width:16px; height:16px; flex:0 0 auto; accent-color:var(--lime-soft); }.terms-check a { color:#fff; text-decoration:underline; }
.purchase-consent{grid-column:1;color:#aaa;font-size:11px;line-height:1.55}.purchase-consent a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.terms-error { grid-column:1; margin-top:-10px; }.purchase-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; grid-column:2; grid-row:1/span 3; }
.purchase-change { border:1px solid #454141; color:#ddd; }.purchase-pay { min-height:50px; gap:18px; font-weight:700; }.purchase-pay b { padding-left:16px; border-left:1px solid rgba(0,0,0,.22); }
.purchase-pay:disabled { opacity:.55; cursor:wait; }.secure-note { grid-column:1; color:#6f6c6c; font-size:10px; }

.confirmation-main { min-height:760px; padding:clamp(60px,7vw,110px) var(--pad); background:#0d0c0c; }
.confirmation-card { width:min(900px,100%); margin:auto; text-align:center; }.confirmation-brand { font:900 18px var(--font-wide); text-transform:uppercase; }.confirmation-hero { margin-top:28px; padding:44px 26px; border-radius:18px; background:radial-gradient(circle at 28% 40%,rgba(255,255,255,.04),transparent 35%),#1b1b1b; }.confirmation-check { display:grid; width:58px; height:58px; place-items:center; margin:auto; border-radius:50%; background:#2ea843; font-size:28px; }.confirmation-hero h1 { max-width:680px; margin:22px auto 0; color:var(--lime-soft); font:900 clamp(36px,5vw,70px)/.9 var(--font-wide); text-transform:uppercase; }.confirmation-hero p { margin-top:16px; color:#aaa; font-size:12px; }
.digital-ticket { display:grid; grid-template-columns:1fr 210px; margin:28px auto 0; overflow:hidden; border-radius:16px; background:var(--lime-soft); color:#121212; text-align:left; }.digital-ticket__body { padding:28px; }.digital-ticket__body h2 { font:900 clamp(28px,3vw,42px) var(--font-wide); text-transform:uppercase; }.digital-ticket__lines { margin-top:22px; }.digital-ticket__line { display:flex; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid rgba(0,0,0,.16); font-size:13px; }.digital-ticket__meta { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; font-size:11px; }.digital-ticket__meta span { display:block; opacity:.65; text-transform:uppercase; }.digital-ticket__qr { display:grid; place-items:center; padding:22px; background:#1c1c1c; color:#fff; text-align:center; }.digital-ticket__qr img { width:145px; height:145px; padding:8px; background:#fff; }.digital-ticket__qr p { margin-top:11px; font-size:10px; }.confirmation-actions { display:flex; justify-content:center; gap:12px; margin-top:24px; }.confirmation-actions .btn { min-height:48px; }.confirmation-actions .secondary { border:1px solid #494646; }

.recovery-form { display:grid; width:min(560px,100%); gap:17px; margin:26px auto 0; padding:28px; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:#191717; text-align:left; }
.recovery-form label { display:grid; gap:7px; color:#ddd; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.recovery-form input { height:48px; padding:0 14px; border:1px solid #3b3838; border-radius:9px; outline:0; background:#211f1f; color:#fff; font:400 14px var(--font-ui); text-transform:none; letter-spacing:0; }
.recovery-form input:focus { border-color:var(--lime-soft); }.recovery-form .purchase-alert { margin:0; }
.recovery-notice { padding:13px 16px; border:1px solid rgba(94,208,79,.42); border-radius:10px; background:rgba(94,208,79,.1); color:#b9ebb2; font-size:12px; }

@media(max-width:720px){.purchase-main{padding:22px 12px}.purchase-modal{border-radius:18px}.purchase-head{padding:23px 20px 19px}.purchase-grid{grid-template-columns:1fr;padding:23px 20px 0}.field-pair{grid-template-columns:1fr}.purchase-foot{grid-column:auto;grid-template-columns:1fr;margin:2px -20px 0;padding:22px 20px}.purchase-actions{grid-column:1;grid-row:auto;display:grid}.purchase-pay,.purchase-change{width:100%}.secure-note{text-align:center}.digital-ticket{grid-template-columns:1fr}.digital-ticket__meta{grid-template-columns:1fr}.confirmation-actions{flex-direction:column}.confirmation-actions .btn{width:100%}.recovery-form{padding:20px}}
