/* Shanghai Lindy Festival: SoCal tenant pattern on a warm, uncluttered canvas. */
.reg-shell .content-left { background: #fbf4df; }
.content-left .bg-holder { background: radial-gradient(ellipse at 30% 20%, #fffaf0, #f4e8ca) !important; }
.content-left .bg-holder::after { background: none; }
.reg-shell .content-left-wrapper { padding: 3rem; }
.reg-shell .content-left-wrapper .logo-wrap { top: 43%; left: 50%; width: 78%; transform: translate(-50%, -50%); }
.reg-shell .content-left-wrapper .logo-wrap img { width: 100%; height: auto; max-height: 48vh; object-fit: contain; }
.content-left .content-left-wrapper h2 { color: #234f3e; text-shadow: none; font-size: clamp(1.5rem, 2.5vw, 2.2rem); }
.content-left .content-left-wrapper h2::before { content: 'DECEMBER 10–14, 2026 · SHANGHAI'; display: block; font: 700 .76rem/1.6 Inter, sans-serif; letter-spacing: .12em; margin-bottom: .85rem; color: #7f5f2d; }
.reg-shell .content-left-wrapper .powered-by, .reg-shell .content-left-wrapper .powered-by a { color: #546451; }
.reg-shell .content-right { background: #fffdf8; }
.reg-shell #wizard_container { width: 100%; max-width: 620px; }
.reg-shell .preview-banner { font-family: Inter, sans-serif; font-size: .875rem; }
@media (max-width: 900px) {
    .reg-shell .content-left { height: 360px; }
    .reg-shell .content-left-wrapper { padding: 1.5rem; }
    .reg-shell .content-left-wrapper .logo-wrap { top: 36%; width: min(300px, 72%); }
    .reg-shell .content-left-wrapper .logo-wrap img { max-height: 195px; }
    .content-left .content-left-wrapper h2 { font-size: 1.5rem; }
    .content-left .content-left-wrapper h2::before { font-size: .66rem; margin-bottom: .35rem; }
    .reg-shell .content-left-wrapper .powered-by { margin: .4rem 0 0; }
}
.status-shell .status-art { background: #fbf4df; }
.status-art .status-art__fallback { background: radial-gradient(ellipse at 30% 20%, #fffaf0, #f4e8ca); }
.status-shell .status-art::after { background: none; }
.status-art .status-logo { top: 36%; left: 50%; transform: translate(-50%, -50%); width: 78%; padding: 0; background: none; box-shadow: none; }
.status-art .status-logo img { width: 100%; max-width: 100%; max-height: 240px; }
.status-art .status-art__content h2 { color: #234f3e; letter-spacing: -.035em; }
.status-art .status-art__content p, .status-art .status-art__content a { color: #546451; }
@media (max-width: 800px) { .status-art .status-logo img { max-height: 150px; } }


.reg-shell .content-left-wrapper .logo-wrap img,.status-art .status-logo img{filter:brightness(0) saturate(100%);opacity:.85}
@media(max-width:900px){
 .reg-shell .content-left-wrapper .logo-wrap{top:16px;width:min(235px,65%);transform:translateX(-50%)}
 .reg-shell .content-left-wrapper .logo-wrap img{max-height:155px}
}

/* Pass selection: same visual hierarchy as SoCal Shuffle. */
 clear ticket header, benefits, exceptions and live inventory. */
.registration-wizard .pack-card:has(.socal-pass-details) { align-items:flex-start; padding:24px; border:1px solid #dcded4; border-radius:16px; background:#fffefa; box-shadow:0 3px 12px #263f3010; }
.registration-wizard .pack-card:has(.socal-pass-details).selected { border:2px solid #285440; padding:23px; background:#fffefa; box-shadow:0 0 0 3px #28544014,0 6px 18px #263f3010; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-radio { margin-top:32px; flex-shrink:0; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-body { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 16px; width:100%; min-width:0; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-name { color:#243c32; font:700 1.35rem/1.25 Georgia,serif; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-name::before { content:'SOCIAL DANCING'; display:block; font:700 .67rem/1.5 'Trebuchet MS',sans-serif; letter-spacing:.12em; color:#8b662e; margin-bottom:7px; }
.registration-wizard .pack-card:has(.socal-pass-details--full) .pack-name::before { content:'WORKSHOPS + SOCIALS'; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-price { text-align:right; color:#234f3e; font:700 1.55rem/1.2 'Trebuchet MS',sans-serif; margin-top:23px; white-space:nowrap; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-price::after { content:'CNY / person'; display:block; margin-top:5px; font:400 .73rem/1.4 'Trebuchet MS',sans-serif; color:#657068; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-price-old { font-size:.8rem; display:block; }
.registration-wizard .pack-card:has(.socal-pass-details) .pack-eb { display:block; width:fit-content; margin:7px 0 0; font:600 .7rem/1.4 'Trebuchet MS',sans-serif; }
.socal-pass-details { grid-column:1/-1; margin-top:20px; padding-top:17px; border-top:1px solid #e6e7de; color:#394b42; font:400 .91rem/1.55 'Trebuchet MS',sans-serif; }
.socal-pass-heading { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:#647168; margin-bottom:10px; }
.socal-pass-benefits { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.socal-pass-benefits li { position:relative; padding-left:24px; }
.socal-pass-benefits li::before { content:'✓'; position:absolute; left:0; top:1px; color:#2c664b; font-weight:700; }
.socal-pass-exclusions { margin-top:15px; padding:11px 13px; background:#f6f0e5; border-left:3px solid #b9904b; border-radius:0 7px 7px 0; color:#72582d; font-size:.82rem; }
.socal-pass-exclusions strong { display:block; margin-bottom:3px; }
.socal-pass-exclusions p { margin:0; }
.socal-pass-extra { margin:13px 0 0; color:#69736d; font-size:.8rem; }
.registration-wizard .pack-card .socal-pass-details + p { grid-column:1/-1; margin:16px 0 0!important; padding:11px 13px; background:#edf3ed; border-radius:8px; color:#315341!important; font:600 .78rem/1.5 'Trebuchet MS',sans-serif!important; }
@media(max-width:480px) {
 .registration-wizard .pack-card:has(.socal-pass-details) { padding:17px 14px; gap:10px; }
 .registration-wizard .pack-card:has(.socal-pass-details).selected { padding:16px 13px; }
 .registration-wizard .pack-card:has(.socal-pass-details) .pack-body { column-gap:10px; }
 .registration-wizard .pack-card:has(.socal-pass-details) .pack-name { font-size:1.13rem; }
 .registration-wizard .pack-card:has(.socal-pass-details) .pack-price { font-size:1.25rem; }
 .registration-wizard .pack-card:has(.socal-pass-details) .pack-name::before { font-size:.58rem; letter-spacing:.06em; }
 .socal-pass-details { font-size:.88rem; }
}

.registration-wizard .pack-card:has(.socal-pass-details) .pack-body > p{display:none}
.registration-wizard .pack-card:has(.socal-pass-details--invited) .pack-name::before{content:'BY INVITATION'}
.registration-wizard .pack-card:has(.socal-pass-details--invited) .pack-price::after{content:'Organizer confirmation'}
.shanghai-invitation-copy{margin:0;font-size:.95rem;line-height:1.6}
