/* ═══════════════════════════════════════════════════════════
   event-slug.css  —  SportzLive Event Detail Page
   Flow: Verify → Type/Group → Details → Pay
═══════════════════════════════════════════════════════════ */

:root {
  --green:          #34d399;
  --red:            #ff6b6b;
  --border2:        rgba(61, 104, 240, 0.26);
  --border-accent:  rgba(238, 79, 3, 0.35);
  --card-bg:        #141620;
  --card-bg2:       #1a1d2b;
  --r-sm:  12px;
  --r-md:  18px;
  --r-lg:  24px;
  --r-xl:  32px;
  --transition: 0.25s cubic-bezier(0.22, 0.68, 0, 1.21);
}

/* ── HERO ── */
.slug-hero { position: relative; padding: 148px 64px 80px; overflow: hidden; background: var(--bg); }
.slug-hero-mesh { position: absolute; inset: 0; background: radial-gradient(ellipse 65% 65% at 88% 8%, rgba(61,104,240,0.22) 0%, transparent 60%), radial-gradient(ellipse 45% 55% at 4% 92%, rgba(249,115,22,0.16) 0%, transparent 60%), radial-gradient(ellipse 40% 40% at 50% 50%, rgba(13,16,30,0.7) 0%, transparent 100%), linear-gradient(160deg,#07091000 0%,#0d1020 45%,#100f0d 100%); }
.slug-hero-dots { position: absolute; inset: 0; background-image: radial-gradient(circle,rgba(255,255,255,0.055) 1px,transparent 1px); background-size: 28px 28px; opacity: 0.5; mask-image: radial-gradient(ellipse 90% 90% at 50% 50%,black 30%,transparent 100%); }
.slug-hero-blob1 { position: absolute; top: -100px; right: -60px; width: 560px; height: 560px; border-radius: 50%; background: radial-gradient(circle,rgba(61,104,240,0.28) 0%,rgba(4,19,64,0.1) 70%); filter: blur(80px); animation: blobMove 10s ease-in-out infinite; pointer-events: none; }
.slug-hero-blob2 { position: absolute; bottom: -80px; left: -80px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle,rgba(249,115,22,0.22) 0%,rgba(251,146,60,0.08) 70%); filter: blur(70px); animation: blobMove 13s ease-in-out infinite reverse; pointer-events: none; }
@keyframes blobMove { 0%,100%{transform:translate(0,0) scale(1);} 33%{transform:translate(20px,-20px) scale(1.05);} 66%{transform:translate(-15px,15px) scale(0.97);} }
.slug-hero-inner { position: relative; z-index: 2; max-width: 1200px; margin: 0 auto; }

.slug-breadcrumb { display: flex; align-items: center; gap: 8px; font-family: "IBM Plex Mono",monospace; font-size: 0.62rem; color: var(--muted2); margin-bottom: 24px; flex-wrap: wrap; letter-spacing: 0.04em; }
.slug-breadcrumb a { color: var(--muted); text-decoration: none; transition: color 0.2s; }
.slug-breadcrumb a:hover { color: var(--accent2); }
.bc-sep { opacity: 0.4; }
.slug-breadcrumb span:last-child { color: var(--accent2); font-weight: 700; }

.hero-pill { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); border-radius: 100px; padding: 6px 14px 6px 10px; font-family: "IBM Plex Mono",monospace; font-size: 0.62rem; letter-spacing: 0.1em; color: var(--muted); text-transform: uppercase; margin-bottom: 22px; animation: fadeInUp 0.6s ease 0.05s both; }
.pill-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 8px rgba(52,211,153,0.8); animation: blink 2.2s ease infinite; flex-shrink: 0; }
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:0.35;} }

.slug-title { font-family: "Montserrat",sans-serif; font-size: clamp(2.8rem,5.8vw,5.2rem); font-weight: 900; line-height: 0.93; letter-spacing: -0.045em; color: var(--ink); margin-bottom: 20px; animation: fadeInUp 0.7s ease 0.1s both; }
.slug-title .line2 { display: block; background: linear-gradient(135deg,var(--accent) 0%,var(--accent2) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.slug-subtitle { font-size: 1.02rem; color: var(--muted); font-weight: 500; line-height: 1.7; margin-bottom: 20px; max-width: 620px; animation: fadeInUp 0.7s ease 0.18s both; }
.slug-tagline { display: inline-flex; align-items: center; gap: 8px; background: rgba(238,79,3,0.08); border: 1px solid rgba(238,79,3,0.3); border-radius: 100px; padding: 7px 18px; font-family: "IBM Plex Mono",monospace; font-size: 0.68rem; color: var(--accent2); letter-spacing: 0.06em; margin-bottom: 28px; animation: fadeInUp 0.7s ease 0.25s both; }
.slug-meta-chips { display: flex; flex-wrap: wrap; gap: 10px; animation: fadeInUp 0.7s ease 0.32s both; }
.meta-chip { display: flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.04); border: 1px solid var(--border); border-radius: 100px; padding: 8px 18px; font-size: 0.78rem; font-weight: 600; color: var(--ink2); font-family: "Manrope",sans-serif; backdrop-filter: blur(4px); transition: border-color 0.2s,background 0.2s; }
.meta-chip:hover { border-color: var(--border2); background: rgba(255,255,255,0.07); }
.mc-icon { font-size: 0.9rem; }
@keyframes fadeInUp { from{opacity:0;transform:translateY(18px);} to{opacity:1;transform:translateY(0);} }

/* ── BANNER ── */
.slug-banner-section { padding: 0 64px; background: var(--bg2); }
.slug-banner-wrap { max-width: 1200px; margin: 0 auto; position: relative; aspect-ratio: 2800/1575; border-radius: var(--r-xl); overflow: hidden; box-shadow: 0 30px 90px rgba(0,0,0,0.7),0 0 0 1px rgba(255,255,255,0.04); border: 1.5px solid rgba(61,104,240,0.14); transform: translateY(-36px); transition: box-shadow 0.4s ease,transform 0.4s ease; }
.slug-banner-wrap:hover { box-shadow: 0 40px 100px rgba(0,0,0,0.75),0 0 0 1px rgba(61,104,240,0.2); transform: translateY(-38px); }
.slug-banner-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.slug-banner-wrap:hover .slug-banner-img { transform: scale(1.025); }
.slug-banner-overlay { position: absolute; inset: 0; background: linear-gradient(to top,rgba(9,11,19,0.65) 0%,rgba(9,11,19,0.15) 40%,transparent 70%); pointer-events: none; }
.slug-banner-badge { position: absolute; bottom: 20px; left: 22px; display: inline-flex; align-items: center; gap: 8px; background: rgba(9,11,19,0.82); backdrop-filter: blur(16px); border: 1px solid rgba(61,104,240,0.28); border-radius: 100px; padding: 6px 16px; font-family: "IBM Plex Mono",monospace; font-size: 0.58rem; color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; }

/* ── MAIN ── */
.slug-main { padding: 0 64px 140px; background: var(--bg); }
.slug-main-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 0; }

/* ── SLUG CARD ── */
.slug-card { background: var(--card-bg); border: 1.5px solid var(--border); border-radius: var(--r-lg); padding: 32px 36px; margin-bottom: 18px; box-shadow: var(--shadow-sm); transition: border-color var(--transition),box-shadow var(--transition); position: relative; overflow: hidden; }
.slug-card::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 60% 40% at 100% 0%,rgba(61,104,240,0.05) 0%,transparent 60%); pointer-events:none; }
.slug-card:last-child { margin-bottom: 0; }
.slug-card:hover { border-color: var(--border2); box-shadow: var(--shadow-md); }
.slug-card-race:hover { border-color: rgba(238,79,3,0.22); }
.slug-card-header { display:flex; align-items:center; gap:12px; margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,0.05); }
.scard-icon { font-size:1.2rem; flex-shrink:0; width:38px; height:38px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:10px; }
.scard-title { font-family:"Montserrat",sans-serif; font-size:1.05rem; font-weight:800; color:var(--ink); letter-spacing:-0.02em; -webkit-text-fill-color:var(--ink); }
.slug-about-text { font-size:0.93rem; color:var(--muted); line-height:1.9; font-weight:400; }

.slug-details-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.sd-item { background:var(--card-bg2); border:1px solid var(--border); border-radius:var(--r-md); padding:16px 20px; transition:background 0.2s,border-color 0.2s; }
.sd-item:hover { background:rgba(61,104,240,0.07); border-color:var(--border2); }
.sd-label { font-family:"IBM Plex Mono",monospace; font-size:0.58rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--accent2); font-weight:700; margin-bottom:7px; }
.sd-value { font-family:"Manrope",sans-serif; font-size:0.86rem; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sd-badge { display:inline-block; background:rgba(56,189,248,0.12); border:1px solid rgba(56,189,248,0.28); color:var(--teal); font-family:"IBM Plex Mono",monospace; font-size:0.56rem; padding:2px 9px; border-radius:100px; font-weight:700; letter-spacing:0.06em; }
.sd-badge-muted { background:rgba(90,96,128,0.1); border-color:rgba(90,96,128,0.25); color:var(--muted2); }

.perks-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.perk-item { display:flex; align-items:center; gap:10px; background:var(--card-bg2); border:1px solid var(--border); border-radius:var(--r-sm); padding:12px 16px; font-size:0.81rem; color:var(--ink2); font-weight:600; transition:all 0.2s; font-family:"Manrope",sans-serif; }
.perk-item:hover { background:rgba(61,104,240,0.07); border-color:var(--border2); color:var(--ink); }
.perk-check { color:var(--green); font-size:0.72rem; font-weight:800; flex-shrink:0; width:18px; height:18px; display:flex; align-items:center; justify-content:center; background:rgba(52,211,153,0.12); border-radius:50%; border:1px solid rgba(52,211,153,0.25); }

.supported-list { display:flex; flex-direction:column; gap:10px; }
.supported-item { display:flex; align-items:center; gap:14px; background:var(--card-bg2); border:1px solid var(--border); border-radius:var(--r-sm); padding:14px 18px; font-size:0.87rem; color:var(--ink2); font-weight:600; font-family:"Manrope",sans-serif; transition:all 0.2s; }
.supported-item:hover { border-color:var(--border2); color:var(--ink); }
.sup-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); flex-shrink:0; box-shadow:0 0 10px rgba(238,79,3,0.6); animation:blink 2s ease infinite; }

/* ── RACE CARDS ── */
.race-cats-list { display:flex; flex-direction:column; gap:14px; }
.race-cat-card { background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-md); padding:22px 24px 20px; transition:all 0.28s cubic-bezier(.22,.68,0,1.21); position:relative; overflow:hidden; }
.race-cat-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--accent),var(--accent2)); opacity:0; transition:opacity 0.25s; border-radius:4px 0 0 4px; }
.race-cat-card::after { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 50% 80% at 100% 50%,rgba(238,79,3,0.04) 0%,transparent 60%); opacity:0; transition:opacity 0.3s; pointer-events:none; }
.race-cat-card:hover { border-color:var(--border2); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.race-cat-card:hover::before { opacity:0.6; }
.race-cat-card:hover::after  { opacity:1; }
.race-cat-card.rc-selected { border-color:var(--accent)!important; background:rgba(238,79,3,0.07)!important; box-shadow:0 0 0 3px rgba(238,79,3,0.12),var(--shadow-md); }
.race-cat-card.rc-selected::before { opacity:1!important; }
.race-cat-card.rc-closed { opacity:0.45; pointer-events:none; }
.rc-top { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.rc-info { flex:1; min-width:0; }
.rc-name { font-family:"Montserrat",sans-serif; font-size:1.05rem; font-weight:800; color:var(--ink); letter-spacing:-0.02em; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rc-close-info { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rc-status { font-family:"IBM Plex Mono",monospace; font-size:0.62rem; font-weight:700; letter-spacing:0.04em; }
.rc-status.open   { color:var(--green); }
.rc-status.closed { color:var(--red); }
.rc-close-date { font-family:"IBM Plex Mono",monospace; font-size:0.6rem; color:var(--muted2); }
.rc-price-block { text-align:right; flex-shrink:0; }
.rc-price { font-family:"Montserrat",sans-serif; font-size:1.65rem; font-weight:900; background:linear-gradient(135deg,var(--accent),var(--accent2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; }
.rc-tax { font-family:"IBM Plex Mono",monospace; font-size:0.55rem; color:var(--muted2); margin-top:4px; letter-spacing:0.06em; text-align:right; }
.rc-includes { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.rc-inc-tag { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); color:var(--muted); font-family:"IBM Plex Mono",monospace; font-size:0.6rem; padding:4px 11px; border-radius:100px; font-weight:500; letter-spacing:0.03em; transition:all 0.2s; }
.race-cat-card:hover .rc-inc-tag { border-color:rgba(255,255,255,0.13); color:var(--muted2); }
.rc-action { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.rc-btn { font-family:"Manrope",sans-serif; font-size:0.8rem; font-weight:800; border-radius:100px; padding:10px 28px; cursor:pointer; border:1.5px solid transparent; transition:all 0.22s cubic-bezier(.22,.68,0,1.21); letter-spacing:0.03em; white-space:nowrap; }
.rc-btn-select { background:rgba(238,79,3,0.1); border-color:rgba(238,79,3,0.3); color:var(--accent2); }
.rc-btn-select:hover { background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; border-color:transparent; transform:scale(1.04); box-shadow:0 8px 24px rgba(238,79,3,0.45); }
.rc-btn-select.rc-btn-active { background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; border-color:transparent; box-shadow:0 6px 20px rgba(238,79,3,0.4); }
.rc-btn-select.rc-btn-active:hover { opacity:0.85; transform:scale(1.02); }
.rc-btn-disabled { background:rgba(30,32,42,0.5); border-color:rgba(41,82,217,0.1); color:var(--muted2); cursor:not-allowed; opacity:0.55; }

/* ── CHECKOUT BAR ── */
.slug-checkout-bar { position:fixed; bottom:-140px; left:0; right:0; z-index:600; padding:0 64px; opacity:0; pointer-events:none; transition:bottom 0.45s cubic-bezier(.22,.68,0,1.21),opacity 0.35s ease; }
.slug-checkout-bar.visible { bottom:28px; opacity:1; pointer-events:all; }
.checkout-bar-inner { max-width:1200px; margin:0 auto; background:rgba(12,14,22,0.96); backdrop-filter:blur(32px); border:1.5px solid var(--border-accent); border-radius:var(--r-xl); padding:18px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; box-shadow:0 0 0 1px rgba(255,255,255,0.04),0 32px 70px rgba(0,0,0,0.7),0 0 50px rgba(238,79,3,0.15); flex-wrap:wrap; }
.checkout-bar-left { flex:1; min-width:0; }
.cb-label { font-family:"IBM Plex Mono",monospace; font-size:0.57rem; text-transform:uppercase; letter-spacing:0.13em; color:var(--muted2); margin-bottom:4px; }
.cb-cat-name { font-family:"Montserrat",sans-serif; font-size:1rem; font-weight:800; color:var(--ink); letter-spacing:-0.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.checkout-bar-total { flex-shrink:0; text-align:right; border-left:1px solid rgba(255,255,255,0.06); padding-left:24px; }
.cb-total-label { font-family:"IBM Plex Mono",monospace; font-size:0.57rem; text-transform:uppercase; letter-spacing:0.13em; color:var(--muted2); margin-bottom:4px; }
.cb-price { font-family:"Montserrat",sans-serif; font-size:1.55rem; font-weight:900; background:linear-gradient(135deg,var(--accent),var(--accent2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; white-space:nowrap; }
.checkout-bar-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.cb-clear { font-family:"Manrope",sans-serif; font-size:0.75rem; font-weight:700; background:rgba(255,60,60,0.07); border:1.5px solid rgba(255,60,60,0.22); color:var(--red); border-radius:100px; padding:9px 18px; cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.cb-clear:hover { background:rgba(255,60,60,0.15); border-color:#ff4444; color:#ff4444; }
.cb-proceed { font-family:"Manrope",sans-serif; font-size:0.82rem; font-weight:800; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; border-radius:100px; padding:10px 26px; text-decoration:none; transition:all 0.22s; box-shadow:0 6px 20px rgba(238,79,3,0.4); letter-spacing:0.02em; white-space:nowrap; display:inline-flex; align-items:center; gap:6px; }
.cb-proceed:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(238,79,3,0.55); }

/* ── REG FORM ── */
.reg-hidden   { display:none!important; }
.reg-form-section { display:none; padding:60px 64px 140px; background:var(--bg); animation:fadeInUp 0.45s ease both; }
.reg-form-section.reg-visible { display:block; }
.reg-form-inner { max-width:1200px; margin:0 auto; }

.reg-back-btn { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,0.04); border:1.5px solid var(--border); border-radius:100px; padding:9px 20px; font-family:"Manrope",sans-serif; font-size:0.8rem; font-weight:700; color:var(--muted); cursor:pointer; transition:all 0.2s; margin-bottom:32px; }
.reg-back-btn:hover { border-color:var(--border2); color:var(--ink); background:rgba(255,255,255,0.07); }
.reg-back-arrow { font-size:1rem; line-height:1; transition:transform 0.2s; }
.reg-back-btn:hover .reg-back-arrow { transform:translateX(-3px); }

.reg-cat-pill { display:flex; align-items:center; justify-content:space-between; gap:20px; background:var(--card-bg); border:1.5px solid var(--border-accent); border-radius:var(--r-lg); padding:20px 28px; margin-bottom:20px; box-shadow:0 0 0 3px rgba(238,79,3,0.08),var(--shadow-sm); position:relative; overflow:hidden; }
.reg-cat-pill::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--accent),var(--accent2)); border-radius:4px 0 0 4px; }
.reg-cat-pill-left { display:flex; align-items:center; gap:14px; }
.reg-cat-icon { font-size:1.6rem; flex-shrink:0; width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:rgba(238,79,3,0.1); border:1px solid rgba(238,79,3,0.2); border-radius:14px; }
.reg-cat-pill-label { font-family:"IBM Plex Mono",monospace; font-size:0.58rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--muted2); margin-bottom:5px; }
.reg-cat-pill-name { font-family:"Montserrat",sans-serif; font-size:1.3rem; font-weight:900; color:var(--ink); letter-spacing:-0.02em; }
.reg-cat-pill-sub { font-family:"Manrope",sans-serif; font-size:0.75rem; color:var(--muted); font-weight:600; margin-top:4px; }
.reg-cat-pill-price { font-family:"Montserrat",sans-serif; font-size:2rem; font-weight:900; background:linear-gradient(135deg,var(--accent),var(--accent2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; flex-shrink:0; }

/* ══ STEPPER ══ */
.reg-stepper { margin-bottom:28px; padding:24px 32px; background:var(--card-bg); border:1.5px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); position:relative; overflow:hidden; }
.reg-stepper::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(61,104,240,0.06) 0%,transparent 70%); pointer-events:none; }
.stepper-track { display:flex; align-items:flex-start; justify-content:center; position:relative; }
.stepper-connector { flex:1; height:2px; background:rgba(255,255,255,0.07); position:relative; margin:24px 0 0; border-radius:2px; overflow:hidden; max-width:100px; transition:background 0.4s ease; }
.stepper-connector::after { content:""; position:absolute; left:0; top:0; bottom:0; width:0%; background:linear-gradient(90deg,var(--accent),var(--accent2)); border-radius:2px; transition:width 0.5s cubic-bezier(0.22,0.68,0,1.21); }
.stepper-connector.conn-filled::after { width:100%; }
.stepper-step { display:flex; flex-direction:column; align-items:center; gap:10px; position:relative; flex-shrink:0; width:76px; }
.stepper-node { width:48px; height:48px; border-radius:50%; background:var(--card-bg2); border:2px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; position:relative; transition:all 0.35s cubic-bezier(0.22,0.68,0,1.21); }
.stepper-node-inner { position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.stepper-node-icon,.stepper-node-check,.stepper-node-num { position:absolute; transition:opacity 0.25s ease,transform 0.25s ease; }
.stepper-node-icon  { font-size:1rem; opacity:0.3; transform:scale(0.85); }
.stepper-node-check { opacity:0; transform:scale(0.7); font-size:0.95rem; color:#fff; font-weight:900; }
.stepper-node-num   { opacity:0; transform:scale(0.9); font-family:"Montserrat",sans-serif; font-size:0.88rem; font-weight:900; color:var(--muted2); }
.stepper-step.active .stepper-node { border-color:var(--accent); background:rgba(238,79,3,0.15); box-shadow:0 0 0 6px rgba(238,79,3,0.1),0 4px 18px rgba(238,79,3,0.35); }
.stepper-step.active .stepper-node-icon  { opacity:1; transform:scale(1); }
.stepper-step.active .stepper-node-check { opacity:0; }
.stepper-step.active .stepper-node-num   { opacity:0; }
.stepper-step.completed .stepper-node { border-color:var(--green); background:rgba(52,211,153,0.12); box-shadow:0 0 0 4px rgba(52,211,153,0.1),0 4px 14px rgba(52,211,153,0.22); }
.stepper-step.completed .stepper-node-icon  { opacity:0; transform:scale(0.5); }
.stepper-step.completed .stepper-node-check { opacity:1; transform:scale(1); color:var(--green); }
.stepper-step.completed .stepper-node-num   { opacity:0; }
.stepper-step.pending .stepper-node { border-color:rgba(255,255,255,0.09); background:rgba(255,255,255,0.02); }
.stepper-step.pending .stepper-node-icon  { opacity:0; }
.stepper-step.pending .stepper-node-check { opacity:0; }
.stepper-step.pending .stepper-node-num   { opacity:1; transform:scale(1); }
.stepper-label { text-align:center; width:100%; }
.stepper-label-title { font-family:"Montserrat",sans-serif; font-size:0.7rem; font-weight:800; color:rgba(255,255,255,0.3); letter-spacing:-0.01em; transition:color 0.25s; white-space:nowrap; }
.stepper-label-sub   { font-family:"IBM Plex Mono",monospace; font-size:0.5rem; color:var(--muted2); letter-spacing:0.04em; margin-top:2px; opacity:0.5; transition:color 0.25s,opacity 0.25s; white-space:nowrap; }
.stepper-step.active .stepper-label-title    { color:var(--accent2); }
.stepper-step.active .stepper-label-sub      { opacity:1; color:var(--muted); }
.stepper-step.completed .stepper-label-title { color:var(--green); }
.stepper-step.completed .stepper-label-sub   { opacity:0.75; color:var(--green); }

/* ══ STEP PANELS ══ */
.reg-step-panel { animation:stepPanelIn 0.38s cubic-bezier(0.22,0.68,0,1.21) both; }
.reg-step-panel-hidden { display:none; }
@keyframes stepPanelIn { from{opacity:0;transform:translateY(14px);} to{opacity:1;transform:translateY(0);} }

.reg-step-card { background:var(--card-bg); border:1.5px solid var(--border); border-radius:var(--r-lg); padding:32px 36px; margin-bottom:18px; box-shadow:var(--shadow-sm); position:relative; overflow:hidden; }
.reg-step-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--accent),var(--accent2)); border-radius:4px 0 0 4px; }
.reg-step-card-header { display:flex; align-items:center; gap:16px; margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,0.05); }
.reg-step-card-icon-wrap { width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:rgba(238,79,3,0.1); border:1px solid rgba(238,79,3,0.22); border-radius:14px; flex-shrink:0; font-size:1.4rem; }
.reg-step-card-title { font-family:"Montserrat",sans-serif; font-size:1.1rem; font-weight:900; color:var(--ink); letter-spacing:-0.02em; margin-bottom:4px; }
.reg-step-card-sub   { font-family:"Manrope",sans-serif; font-size:0.78rem; color:var(--muted); font-weight:500; }

/* ══ OTP ══ */
.otp-field-label { font-family:"IBM Plex Mono",monospace; font-size:0.59rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--ink); font-weight:700; margin-bottom:10px; }
.otp-mobile-input-wrap { display:flex; align-items:center; gap:0; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-md); overflow:hidden; transition:border-color 0.22s,box-shadow 0.22s; }
.otp-mobile-input-wrap:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px rgba(238,79,3,0.1); }
.otp-country-code { display:flex; align-items:center; gap:7px; padding:0 16px; border-right:1px solid var(--border); height:52px; background:rgba(255,255,255,0.025); flex-shrink:0; }
.otp-flag { font-size:1.1rem; }
.otp-code { font-family:"IBM Plex Mono",monospace; font-size:0.82rem; font-weight:700; color:var(--muted); }
.otp-mobile-input { flex:1; background:transparent; border:none; outline:none; padding:0 16px; height:52px; font-family:"Manrope",sans-serif; font-size:1rem; font-weight:700; color:var(--ink); letter-spacing:0.05em; min-width:0; }
.otp-mobile-input::placeholder { color:var(--muted2); font-weight:400; font-size:0.88rem; letter-spacing:0; }
.otp-send-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:52px; padding:0 24px; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; font-family:"Manrope",sans-serif; font-size:0.82rem; font-weight:800; border:none; cursor:pointer; letter-spacing:0.03em; white-space:nowrap; transition:opacity 0.2s,transform 0.18s; flex-shrink:0; }
.otp-send-btn:hover  { opacity:0.88; }
.otp-send-btn:active { transform:scale(0.97); }
.otp-send-btn:disabled { opacity:0.4; cursor:not-allowed; }
.otp-send-btn-spinner { width:14px; height:14px; border:2px solid rgba(255,255,255,0.4); border-top-color:#fff; border-radius:50%; animation:spin 0.7s linear infinite; display:none; }
.otp-send-btn.sending .otp-send-btn-text    { display:none; }
.otp-send-btn.sending .otp-send-btn-spinner { display:block; }
@keyframes spin { to{transform:rotate(360deg);} }
.otp-mobile-hint { font-family:"Manrope",sans-serif; font-size:0.72rem; color:var(--muted2); margin-top:8px; font-style:italic; }
.otp-mobile-hint.hint-error   { color:var(--red); font-style:normal; font-weight:600; }
.otp-mobile-hint.hint-success { color:var(--green); font-style:normal; font-weight:600; }
.otp-sent-banner { display:flex; align-items:center; gap:10px; background:rgba(52,211,153,0.07); border:1px solid rgba(52,211,153,0.25); border-radius:var(--r-sm); padding:11px 16px; font-family:"Manrope",sans-serif; font-size:0.82rem; color:var(--green); font-weight:600; }
.otp-sent-icon { font-size:1rem; flex-shrink:0; }
.otp-sent-text { flex:1; color:var(--muted); font-weight:500; }
.otp-sent-text strong { color:var(--ink); }
.otp-change-num { background:none; border:1px solid rgba(255,255,255,0.1); border-radius:100px; padding:4px 12px; font-family:"Manrope",sans-serif; font-size:0.72rem; font-weight:700; color:var(--muted); cursor:pointer; transition:all 0.2s; flex-shrink:0; }
.otp-change-num:hover { border-color:var(--accent); color:var(--accent2); }
.otp-boxes-wrap { margin-bottom:4px; }
.otp-boxes { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.otp-box { width:52px; height:58px; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-sm); text-align:center; font-family:"Montserrat",sans-serif; font-size:1.4rem; font-weight:900; color:var(--ink); outline:none; caret-color:var(--accent); transition:border-color 0.2s,box-shadow 0.2s,background 0.2s; -moz-appearance:textfield; }
.otp-box::-webkit-outer-spin-button,.otp-box::-webkit-inner-spin-button { -webkit-appearance:none; }
.otp-box:focus { border-color:var(--accent); background:rgba(238,79,3,0.06); box-shadow:0 0 0 3px rgba(238,79,3,0.12); }
.otp-box.otp-box-filled { border-color:rgba(52,211,153,0.5); background:rgba(52,211,153,0.05); }
.otp-box.otp-box-error  { border-color:var(--red)!important; background:rgba(255,107,107,0.07)!important; animation:boxShake 0.4s ease; }
@keyframes boxShake { 0%,100%{transform:translateX(0);} 20%{transform:translateX(-5px);} 40%{transform:translateX(5px);} 60%{transform:translateX(-4px);} 80%{transform:translateX(4px);} }
.otp-box-sep { font-family:"IBM Plex Mono",monospace; font-size:1.2rem; color:var(--muted2); opacity:0.5; user-select:none; padding:0 2px; }
.otp-status { font-family:"Manrope",sans-serif; font-size:0.78rem; font-weight:600; margin-top:8px; min-height:20px; transition:color 0.2s; }
.otp-status.status-error   { color:var(--red); }
.otp-status.status-success { color:var(--green); }
.otp-verify-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:16px; height:48px; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; font-family:"Manrope",sans-serif; font-size:0.9rem; font-weight:800; border:none; border-radius:var(--r-md); cursor:pointer; letter-spacing:0.03em; box-shadow:0 6px 20px rgba(238,79,3,0.35); transition:all 0.22s cubic-bezier(0.22,0.68,0,1.21); position:relative; overflow:hidden; }
.otp-verify-btn:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 10px 28px rgba(238,79,3,0.5); }
.otp-verify-btn:disabled { opacity:0.45; cursor:not-allowed; transform:none; box-shadow:none; }
.otp-verify-btn.otp-verify-btn-success { background:linear-gradient(135deg,#22c55e,#16a34a); box-shadow:0 6px 20px rgba(34,197,94,0.35); }
.otp-verify-btn.otp-verify-btn-loading { opacity:0.7; cursor:wait; }
.otp-verify-btn-spinner { width:16px; height:16px; border:2px solid rgba(255,255,255,0.4); border-top-color:#fff; border-radius:50%; animation:spin 0.7s linear infinite; display:none; }
.otp-verify-btn.otp-verify-btn-loading .otp-verify-btn-text    { opacity:0.5; }
.otp-verify-btn.otp-verify-btn-loading .otp-verify-btn-spinner { display:block; }
.otp-resend-row { display:flex; align-items:center; gap:16px; margin-top:14px; flex-wrap:wrap; }
.otp-timer-text { font-family:"IBM Plex Mono",monospace; font-size:0.65rem; color:var(--muted2); letter-spacing:0.04em; }
.otp-timer-text strong { color:var(--accent2); }
.otp-resend-btn { background:none; border:1.5px solid var(--border); border-radius:100px; padding:7px 18px; font-family:"Manrope",sans-serif; font-size:0.75rem; font-weight:700; color:var(--muted2); cursor:pointer; transition:all 0.2s; }
.otp-resend-btn:not(:disabled):hover { border-color:var(--accent); color:var(--accent2); background:rgba(238,79,3,0.06); }
.otp-resend-btn:disabled { opacity:0.35; cursor:not-allowed; }
.otp-verify-row { display:none; margin-top:20px; animation:fadeInUp 0.3s ease both; }
.otp-verify-row.otp-row-visible { display:block; }

/* ══ REG TYPE ══ */
.reg-type-card { background:var(--card-bg); border:1.5px solid var(--border); border-radius:var(--r-lg); padding:28px 32px; box-shadow:var(--shadow-sm); margin-bottom:18px; }
.reg-type-label { font-family:"IBM Plex Mono",monospace; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--muted2); margin-bottom:18px; font-weight:700; }
.reg-type-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.reg-type-option { display:flex; align-items:center; gap:14px; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-md); padding:18px 20px; cursor:pointer; transition:all 0.22s cubic-bezier(.22,.68,0,1.21); position:relative; user-select:none; }
.reg-type-option:hover { border-color:var(--border2); background:rgba(61,104,240,0.06); }
.reg-type-option input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.reg-type-radio-box { width:20px; height:20px; border-radius:50%; border:2px solid var(--muted2); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:border-color 0.2s,background 0.2s; }
.reg-type-radio-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); transform:scale(0); transition:transform 0.2s cubic-bezier(.22,.68,0,1.21); }
.reg-type-option.reg-type-checked { border-color:var(--accent)!important; background:rgba(238,79,3,0.07)!important; box-shadow:0 0 0 3px rgba(238,79,3,0.1); }
.reg-type-option.reg-type-checked .reg-type-radio-box { border-color:var(--accent); background:rgba(238,79,3,0.1); }
.reg-type-option.reg-type-checked .reg-type-radio-dot { transform:scale(1); }
.reg-type-option-content { display:flex; flex-direction:column; gap:4px; }
.reg-type-option-title { font-family:"Montserrat",sans-serif; font-size:0.95rem; font-weight:800; color:var(--ink); letter-spacing:-0.01em; }
.reg-type-option-desc  { font-family:"Manrope",sans-serif; font-size:0.76rem; color:var(--muted); font-weight:500; line-height:1.4; }

/* ══ GROUP PANEL ══ */
.reg-group-panel { display:none; margin-top:16px; }
.reg-group-panel.reg-group-visible { display:block; animation:groupPanelIn 0.32s cubic-bezier(0.22,0.68,0,1.21) both; }
@keyframes groupPanelIn { from{opacity:0;transform:translateY(-10px);} to{opacity:1;transform:translateY(0);} }
.reg-group-panel-inner { background:var(--card-bg); border:1.5px solid var(--border-accent); border-radius:var(--r-lg); padding:26px 32px 28px; box-shadow:0 0 0 3px rgba(238,79,3,0.07),var(--shadow-sm); position:relative; overflow:hidden; }
.reg-group-panel-inner::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--accent),var(--accent2)); pointer-events:none; }
.reg-group-header { display:flex; align-items:center; gap:14px; margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,0.05); }
.reg-group-icon { font-size:1.4rem; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:rgba(238,79,3,0.1); border:1px solid rgba(238,79,3,0.22); border-radius:12px; flex-shrink:0; }
.reg-group-label { font-family:"Montserrat",sans-serif; font-size:0.95rem; font-weight:800; color:var(--ink); letter-spacing:-0.01em; margin-bottom:3px; }
.reg-group-sub   { font-family:"Manrope",sans-serif; font-size:0.74rem; color:var(--muted); font-weight:500; }
.reg-group-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.rgl-field-label { font-family:"IBM Plex Mono",monospace; font-size:0.59rem; text-transform:uppercase; letter-spacing:0.13em; color:var(--ink); font-weight:700; margin-bottom:8px; }
.rgl-field-optional { color:var(--muted2); font-style:italic; font-weight:400; text-transform:none; letter-spacing:0; font-size:0.58rem; }
.reg-group-dropdown-wrap { position:relative; z-index:200; }
.rgl-search-wrap { display:flex; align-items:center; gap:8px; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-md); padding:0 14px; transition:border-color 0.22s,box-shadow 0.22s,background 0.22s; cursor:text; }
.rgl-search-wrap:focus-within,.rgl-search-wrap.rgl-has-value { border-color:var(--accent); background:rgba(238,79,3,0.05); box-shadow:0 0 0 3px rgba(238,79,3,0.1); }
.rgl-search-icon { font-size:0.82rem; flex-shrink:0; opacity:0.4; user-select:none; }
.rgl-search-input { flex:1; background:transparent; border:none; outline:none; padding:13px 0; font-family:"Manrope",sans-serif; font-size:0.86rem; font-weight:600; color:var(--ink); min-width:0; cursor:text; }
.rgl-search-input::placeholder { color:var(--muted2); font-weight:500; }
.rgl-search-input:disabled { opacity:0.4; cursor:not-allowed; }
.rgl-search-input.rgl-input-selected { color:var(--ink); font-weight:700; }
.rgl-chevron { font-size:0.82rem; color:var(--muted2); flex-shrink:0; pointer-events:none; transition:transform 0.22s,color 0.2s; user-select:none; }
.rgl-search-wrap.rgl-open-state .rgl-chevron { transform:rotate(180deg); color:var(--accent2); }
.rgl-clear-btn { background:none; border:none; color:var(--muted2); font-size:0.7rem; cursor:pointer; padding:3px 5px; border-radius:4px; transition:color 0.15s,background 0.15s; flex-shrink:0; line-height:1; display:none; align-items:center; justify-content:center; }
.rgl-clear-btn.rgl-clear-visible { display:flex; }
.rgl-clear-btn:hover { color:var(--red); background:rgba(255,60,60,0.08); }
.rgl-listbox { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:9999; background:#0d0f1e; border:1.5px solid rgba(238,79,3,0.4); border-radius:14px; list-style:none; margin:0; padding:6px; max-height:260px; overflow-y:auto; box-shadow:0 8px 16px rgba(0,0,0,0.4),0 24px 64px rgba(0,0,0,0.7),0 0 0 1px rgba(255,255,255,0.03); display:none; scrollbar-width:thin; scrollbar-color:rgba(238,79,3,0.3) transparent; }
.rgl-listbox.rgl-open { display:block; animation:rglDrop 0.2s cubic-bezier(0.22,0.68,0,1.21) both; }
@keyframes rglDrop { from{opacity:0;transform:translateY(-8px) scale(0.98);} to{opacity:1;transform:translateY(0) scale(1);} }
.rgl-listbox::-webkit-scrollbar { width:4px; }
.rgl-listbox::-webkit-scrollbar-track { background:transparent; }
.rgl-listbox::-webkit-scrollbar-thumb { background:rgba(238,79,3,0.35); border-radius:4px; }
.rgl-option { padding:11px 14px; border-radius:10px; font-family:"Manrope",sans-serif; font-size:0.85rem; font-weight:600; color:#b0b8d0; cursor:pointer; transition:background 0.12s,color 0.12s; user-select:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rgl-option:hover,.rgl-option.rgl-active { background:rgba(238,79,3,0.12); color:#ffffff; }
.rgl-option.rgl-option-current { color:var(--accent2); background:rgba(238,79,3,0.08); }
.rgl-option.rgl-option-current::after { content:" ✓"; font-size:0.7rem; }
.rgl-mark { background:transparent; color:var(--accent2); font-weight:800; text-decoration:underline; text-underline-offset:2px; }
.rgl-empty { padding:14px; font-family:"IBM Plex Mono",monospace; font-size:0.62rem; color:var(--muted2); text-align:center; user-select:none; }
.rgo-input-wrap { display:flex; align-items:center; gap:10px; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-md); padding:0 14px; transition:border-color 0.22s,box-shadow 0.22s,background 0.22s; }
.rgo-input-wrap:focus-within { border-color:rgba(61,104,240,0.6); background:rgba(61,104,240,0.04); box-shadow:0 0 0 3px rgba(61,104,240,0.1); }
.rgo-input-icon { font-size:0.9rem; flex-shrink:0; opacity:0.5; user-select:none; }
.rgo-input { flex:1; background:transparent; border:none; outline:none; padding:13px 0; font-family:"Manrope",sans-serif; font-size:0.86rem; font-weight:600; color:var(--ink); min-width:0; }
.rgo-input::placeholder { color:var(--muted2); font-weight:500; }
.rgo-hint { font-family:"Manrope",sans-serif; font-size:0.7rem; color:var(--muted2); margin-top:7px; font-style:italic; }

/* ══ PARTICIPANT CARDS ══ */
.participants-wrapper { display:flex; flex-direction:column; gap:20px; margin-bottom:20px; }

.participant-card { background:var(--card-bg); border:1.5px solid var(--border); border-radius:var(--r-lg); padding:28px 32px; position:relative; overflow:visible; transition:border-color 0.25s,box-shadow 0.25s; animation:stepPanelIn 0.35s cubic-bezier(0.22,0.68,0,1.21) both; }
.participant-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--accent),var(--accent2)); border-radius:4px 0 0 4px; opacity:0.75; }
.participant-card:nth-child(even)::before { background:linear-gradient(180deg,rgba(61,104,240,0.9),rgba(99,130,255,0.9)); }
.participant-card:hover { border-color:var(--border2); box-shadow:var(--shadow-md); }

.pc-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,0.05); }
.pc-header-left { display:flex; align-items:center; gap:12px; }
.pc-num-badge { width:32px; height:32px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; font-family:"Montserrat",sans-serif; font-size:0.82rem; font-weight:900; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 4px 12px rgba(238,79,3,0.35); }
.participant-card:nth-child(even) .pc-num-badge { background:linear-gradient(135deg,#3d68f0,#6382ff); box-shadow:0 4px 12px rgba(61,104,240,0.35); }
.pc-label { font-family:"Montserrat",sans-serif; font-size:0.9rem; font-weight:800; color:var(--ink); letter-spacing:-0.01em; }
.pc-sub   { font-family:"IBM Plex Mono",monospace; font-size:0.56rem; color:var(--accent2); letter-spacing:0.08em; text-transform:uppercase; margin-top:2px; }
.pc-delete-btn { display:inline-flex; align-items:center; gap:7px; background:rgba(255,60,60,0.06); border:1.5px solid rgba(255,60,60,0.2); border-radius:100px; padding:7px 14px; font-family:"Manrope",sans-serif; font-size:0.74rem; font-weight:700; color:rgba(255,107,107,0.8); cursor:pointer; transition:all 0.2s; flex-shrink:0; }
.pc-delete-btn:hover { background:rgba(255,60,60,0.13); border-color:var(--red); color:var(--red); transform:scale(1.03); }
.pc-delete-icon { font-size:0.82rem; }

/* Personal details grid */
.pd-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.pd-field { display:flex; flex-direction:column; gap:0; position:relative; }
.pd-field-full { grid-column: 1 / -1; }
.pd-label { font-family:"IBM Plex Mono",monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.13em; color:var(--ink); font-weight:700; margin-bottom:8px; }
.pd-req   { color:var(--accent2); margin-left:2px; }
.pd-label-auto { font-style:italic; text-transform:none; letter-spacing:0; color:var(--muted2); font-weight:400; }

.pd-input-wrap { display:flex; align-items:center; gap:0; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-sm); overflow:hidden; transition:border-color 0.22s,box-shadow 0.22s,background 0.22s; }
.pd-input-wrap:focus-within { border-color:var(--accent); background:rgba(238,79,3,0.04); box-shadow:0 0 0 3px rgba(238,79,3,0.09); }
.pd-input-wrap:has(.pd-invalid) { border-color:rgba(255,107,107,0.55)!important; background:rgba(255,107,107,0.04)!important; box-shadow:0 0 0 3px rgba(255,107,107,0.07)!important; }
.pd-input-icon { padding:0 12px; font-size:0.85rem; flex-shrink:0; color:var(--muted2); opacity:0.5; user-select:none; border-right:1px solid var(--border); height:46px; display:flex; align-items:center; background:rgba(255,255,255,0.02); }
.pd-input { flex:1; background:transparent; border:none; outline:none; padding:0 14px; height:46px; font-family:"Manrope",sans-serif; font-size:0.88rem; font-weight:600; color:var(--ink); min-width:0; }
.pd-input::placeholder { color:var(--muted2); font-weight:400; font-size:0.82rem; }

.pd-mobile-wrap .pd-flag-code { font-family:"IBM Plex Mono",monospace; font-size:0.72rem; font-weight:700; padding:0 12px; white-space:nowrap; opacity:0.65; letter-spacing:0.02em; }
.pd-mobile-input { letter-spacing:0.06em; }

/* Portal dropdown wraps for gender / dob / relation */
.pd-select-portal-wrap { background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-sm); overflow:visible; padding:0; transition:border-color 0.22s,box-shadow 0.22s,background 0.22s; }
.pd-select-portal-wrap:hover { border-color:rgba(255,255,255,0.14); }
.pd-select-portal-wrap.rgl-has-value,
.pd-select-portal-wrap.rgl-open-state { border-color:var(--accent); background:rgba(238,79,3,0.04); box-shadow:0 0 0 3px rgba(238,79,3,0.09); }
.pd-select-portal-wrap.pd-portal-invalid { border-color:rgba(255,107,107,0.55)!important; background:rgba(255,107,107,0.04)!important; box-shadow:0 0 0 3px rgba(255,107,107,0.07)!important; }

/* rgl-display acts like the text display inside portal trigger */
.rgl-display { font-family:"Manrope",sans-serif; font-size:0.88rem; font-weight:500; color:var(--muted2); }
.rgl-display.rgl-input-selected { color:var(--ink); font-weight:700; }

.pd-select-wrap { display:flex; align-items:center; gap:0; background:var(--card-bg2); border:1.5px solid var(--border); border-radius:var(--r-sm); overflow:hidden; transition:border-color 0.22s,box-shadow 0.22s; position:relative; }
.pd-select-wrap:focus-within { border-color:var(--accent); background:rgba(238,79,3,0.04); box-shadow:0 0 0 3px rgba(238,79,3,0.09); }
.pd-select-wrap:has(.pd-invalid) { border-color:rgba(255,107,107,0.55)!important; background:rgba(255,107,107,0.04)!important; box-shadow:0 0 0 3px rgba(255,107,107,0.07)!important; }
.pd-select { flex:1; background:transparent; border:none; outline:none; padding:0 14px; height:46px; font-family:"Manrope",sans-serif; font-size:0.88rem; font-weight:600; color:var(--ink); cursor:pointer; -webkit-appearance:none; min-width:0; }
.pd-select option { background:#1a1d2b; color:var(--ink); }
.pd-select-arrow { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--muted2); font-size:0.72rem; pointer-events:none; user-select:none; }

.pd-error { font-family:"Manrope",sans-serif; font-size:0.7rem; font-weight:600; color:var(--red); margin-top:5px; min-height:16px; opacity:0; transform:translateY(-4px); transition:opacity 0.2s,transform 0.2s; }
.pd-error.pd-error-visible { opacity:1; transform:translateY(0); }

.pd-age-display { height:46px; background:rgba(255,255,255,0.02); border:1.5px solid rgba(255,255,255,0.05); border-radius:var(--r-sm); display:flex; align-items:center; gap:6px; padding:0 14px; transition:all 0.3s; }
.pd-age-placeholder { font-family:"IBM Plex Mono",monospace; font-size:0.62rem; color:var(--muted2); letter-spacing:0.04em; font-style:italic; }
.pd-age-value { font-family:"Montserrat",sans-serif; font-size:1.3rem; font-weight:900; background:linear-gradient(135deg,#34d399,#10b981); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; }
.pd-age-unit   { font-family:"Manrope",sans-serif; font-size:0.72rem; font-weight:700; color:var(--muted); }
.pd-age-months { font-family:"IBM Plex Mono",monospace; font-size:0.6rem; color:var(--muted2); }
.pd-age-error  { font-family:"Manrope",sans-serif; font-size:0.72rem; color:var(--red); font-weight:600; }

/* ── SECTION DIVIDER ── */
.pd-emergency-header { margin-top:8px; }
.pd-section-divider { display:flex; align-items:center; gap:10px; background:rgba(255,107,107,0.05); border:1.5px solid rgba(255,107,107,0.18); border-radius:var(--r-sm); padding:10px 16px; }
.pd-section-icon { font-size:1rem; flex-shrink:0; }
.pd-section-label { font-family:"Montserrat",sans-serif; font-size:0.82rem; font-weight:900; color:var(--ink); letter-spacing:-0.01em; flex:1; }
.pd-section-req { font-family:"IBM Plex Mono",monospace; font-size:0.55rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--red); font-weight:700; background:rgba(255,107,107,0.1); border:1px solid rgba(255,107,107,0.22); border-radius:100px; padding:2px 9px; flex-shrink:0; }

/* ── FILE UPLOAD ── */
.pd-file-upload-wrap { position:relative; }
.pd-file-input { position:absolute; width:0; height:0; opacity:0; pointer-events:none; }
.pd-file-label { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; background:var(--card-bg2); border:1.5px dashed rgba(255,255,255,0.12); border-radius:var(--r-sm); padding:18px 14px; cursor:pointer; transition:all 0.22s; text-align:center; min-height:90px; }
.pd-file-label:hover { border-color:rgba(238,79,3,0.45); background:rgba(238,79,3,0.04); }
.pd-file-has-file .pd-file-label { display:none; }
.pd-file-icon { font-size:1.5rem; }
.pd-file-text { font-family:"Manrope",sans-serif; font-size:0.78rem; font-weight:700; color:var(--muted); }
.pd-file-hint { font-family:"IBM Plex Mono",monospace; font-size:0.55rem; color:var(--muted2); letter-spacing:0.06em; }
.pd-file-preview { display:none; align-items:center; justify-content:center; background:var(--card-bg2); border:1.5px solid rgba(238,79,3,0.25); border-radius:var(--r-sm); padding:8px; position:relative; min-height:90px; overflow:hidden; }
.pd-file-preview img { max-height:74px; max-width:100%; border-radius:6px; object-fit:contain; }
.pd-file-remove { position:absolute; top:6px; right:6px; width:22px; height:22px; border-radius:50%; background:rgba(255,60,60,0.15); border:1px solid rgba(255,60,60,0.35); color:var(--red); font-size:0.65rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; }
.pd-file-remove:hover { background:rgba(255,60,60,0.3); }
.pd-file-error .pd-file-label { border-color:rgba(255,107,107,0.55); background:rgba(255,107,107,0.04); }
.pd-file-error .pd-file-icon { filter: grayscale(1) opacity(0.5); }

/* ══ CUSTOM DOB PICKER ══ */
.dob-portal-picker { background:#0d0f1e; border:1.5px solid rgba(238,79,3,0.4); border-radius:16px; box-shadow:0 8px 24px rgba(0,0,0,0.5),0 32px 72px rgba(0,0,0,0.7),0 0 0 1px rgba(255,255,255,0.03); overflow:hidden; min-width:280px; animation:rglDrop 0.22s cubic-bezier(0.22,0.68,0,1.21) both; }
.dob-picker-inner { padding:14px; }
.dob-picker-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
.dob-nav-btn { width:32px; height:32px; border-radius:8px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); color:var(--muted); font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.18s; flex-shrink:0; line-height:1; }
.dob-nav-btn:hover { background:rgba(238,79,3,0.12); border-color:rgba(238,79,3,0.35); color:var(--accent2); }
.dob-month-year { display:flex; align-items:center; gap:6px; flex:1; justify-content:center; }
.dob-month-sel,
.dob-year-sel { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:8px; color:var(--ink); font-family:"Manrope",sans-serif; font-size:0.82rem; font-weight:700; padding:5px 8px; cursor:pointer; outline:none; -webkit-appearance:none; appearance:none; transition:border-color 0.18s,background 0.18s; }
.dob-month-sel:hover, .dob-year-sel:hover { border-color:rgba(238,79,3,0.4); background:rgba(238,79,3,0.08); }
.dob-month-sel:focus, .dob-year-sel:focus { border-color:var(--accent); box-shadow:0 0 0 2px rgba(238,79,3,0.12); }
.dob-month-sel option, .dob-year-sel option { background:#1a1d2b; color:var(--ink); }
.dob-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }
.dob-weekday { text-align:center; font-family:"IBM Plex Mono",monospace; font-size:0.55rem; color:var(--muted2); letter-spacing:0.06em; padding:4px 0; }
.dob-days-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.dob-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-family:"Manrope",sans-serif; font-size:0.78rem; font-weight:600; color:var(--muted); border-radius:8px; cursor:pointer; transition:all 0.15s; }
.dob-day:hover:not(.dob-day-disabled):not(.dob-day-selected) { background:rgba(238,79,3,0.12); color:var(--ink); }
.dob-day-empty { pointer-events:none; }
.dob-day-disabled { color:rgba(255,255,255,0.12); cursor:not-allowed; }
.dob-day-selected { background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff!important; font-weight:800; box-shadow:0 2px 8px rgba(238,79,3,0.4); }
.dob-day-today { border:1.5px solid rgba(238,79,3,0.4); color:var(--accent2); }
.dob-picker-footer { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:10px; padding-top:10px; border-top:1px solid rgba(255,255,255,0.05); }
.dob-clear-btn,
.dob-today-btn { font-family:"Manrope",sans-serif; font-size:0.72rem; font-weight:700; border-radius:100px; padding:6px 14px; cursor:pointer; transition:all 0.18s; }
.dob-clear-btn { background:rgba(255,60,60,0.07); border:1px solid rgba(255,60,60,0.22); color:var(--red); }
.dob-clear-btn:hover { background:rgba(255,60,60,0.14); border-color:var(--red); }
.dob-today-btn { background:rgba(238,79,3,0.1); border:1px solid rgba(238,79,3,0.3); color:var(--accent2); }
.dob-today-btn:hover { background:rgba(238,79,3,0.18); border-color:var(--accent); color:#fff; }

/* Add participant button */
.add-participant-btn { display:inline-flex; align-items:center; gap:10px; background:rgba(61,104,240,0.07); border:1.5px dashed rgba(61,104,240,0.35); border-radius:var(--r-md); padding:14px 28px; font-family:"Manrope",sans-serif; font-size:0.85rem; font-weight:700; color:rgba(99,130,255,0.85); cursor:pointer; transition:all 0.22s cubic-bezier(.22,.68,0,1.21); width:100%; justify-content:center; margin-bottom:20px; }
.add-participant-btn:hover { background:rgba(61,104,240,0.12); border-color:rgba(99,130,255,0.6); color:#6382ff; transform:translateY(-2px); box-shadow:0 8px 24px rgba(61,104,240,0.2); }
.add-participant-btn-icon { width:24px; height:24px; background:rgba(99,130,255,0.15); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1rem; font-weight:900; line-height:1; }

/* ══ STEP NAV ══ */
.reg-step-nav { display:flex; align-items:center; gap:12px; margin-top:8px; margin-bottom:8px; }
.reg-step-nav-right { justify-content:flex-end; }
.reg-step-nav-both  { justify-content:space-between; }
.reg-step-next-btn { display:inline-flex; align-items:center; gap:10px; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; font-family:"Manrope",sans-serif; font-size:0.88rem; font-weight:800; border:none; border-radius:100px; padding:13px 30px; cursor:pointer; letter-spacing:0.02em; box-shadow:0 6px 22px rgba(238,79,3,0.38); transition:all 0.22s cubic-bezier(0.22,0.68,0,1.21); white-space:nowrap; }
.reg-step-next-btn:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 10px 30px rgba(238,79,3,0.52); }
.reg-step-next-btn:disabled { opacity:0.38; cursor:not-allowed; transform:none!important; box-shadow:none!important; }
.reg-step-next-btn-pay { background:linear-gradient(135deg,#22c55e,#16a34a); box-shadow:0 6px 22px rgba(34,197,94,0.35); }
.reg-step-next-btn-pay:hover:not(:disabled) { box-shadow:0 10px 30px rgba(34,197,94,0.5); }
.reg-step-nav-arrow { font-size:1rem; transition:transform 0.2s; }
.reg-step-next-btn:hover:not(:disabled) .reg-step-nav-arrow { transform:translateX(3px); }
.reg-step-back-btn:hover .reg-step-nav-arrow { transform:translateX(-3px); }
.reg-step-back-btn { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,0.04); border:1.5px solid var(--border); border-radius:100px; padding:12px 24px; font-family:"Manrope",sans-serif; font-size:0.82rem; font-weight:700; color:var(--muted); cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.reg-step-back-btn:hover { border-color:var(--border2); color:var(--ink); background:rgba(255,255,255,0.07); }

/* ══ CONFIRM / PAY ══ */
.confirm-section-title { grid-column:1/-1; font-family:"IBM Plex Mono",monospace; font-size:0.6rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--muted2); font-weight:700; padding:8px 0 4px; border-bottom:1px solid rgba(255,255,255,0.05); margin-bottom:4px; }
.confirm-section-title:first-child { padding-top:0; }

.confirm-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:20px; }
.confirm-row { background:var(--card-bg2); border:1px solid var(--border); border-radius:var(--r-md); padding:14px 18px; }
.confirm-row-label { font-family:"IBM Plex Mono",monospace; font-size:0.57rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--accent2); font-weight:700; margin-bottom:5px; }
.confirm-row-value { font-family:"Manrope",sans-serif; font-size:0.88rem; font-weight:700; color:var(--ink); }

.confirm-participant-block { grid-column:1/-1; background:rgba(255,255,255,0.02); border:1.5px solid rgba(61,104,240,0.2); border-radius:var(--r-md); overflow:hidden; }
.confirm-participant-header { display:flex; align-items:center; gap:10px; padding:12px 18px; background:rgba(61,104,240,0.07); border-bottom:1px solid rgba(61,104,240,0.15); }
.cpb-badge { width:26px; height:26px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#fff; font-family:"Montserrat",sans-serif; font-size:0.75rem; font-weight:900; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 3px 8px rgba(238,79,3,0.3); }
.confirm-participant-block:nth-child(even) .cpb-badge { background:linear-gradient(135deg,#3d68f0,#6382ff); box-shadow:0 3px 8px rgba(61,104,240,0.3); }
.cpb-name { font-family:"Montserrat",sans-serif; font-size:0.88rem; font-weight:800; color:var(--ink); letter-spacing:-0.01em; flex:1; }
.cpb-primary-tag { font-family:"IBM Plex Mono",monospace; font-size:0.54rem; color:var(--accent2); background:rgba(238,79,3,0.1); border:1px solid rgba(238,79,3,0.22); border-radius:100px; padding:2px 9px; letter-spacing:0.06em; text-transform:uppercase; flex-shrink:0; }
.cpb-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; padding:12px; }
.cpb-row { background:var(--card-bg2); border-radius:10px; }

.confirm-notice { display:flex; align-items:flex-start; gap:12px; background:rgba(61,104,240,0.06); border:1px solid rgba(61,104,240,0.18); border-radius:var(--r-sm); padding:14px 18px; font-family:"Manrope",sans-serif; font-size:0.76rem; color:var(--muted); font-weight:500; line-height:1.55; }
.confirm-notice-icon { font-size:1rem; flex-shrink:0; margin-top:1px; }

.payment-summary { background:linear-gradient(135deg,rgba(238,79,3,0.08) 0%,rgba(249,115,22,0.05) 100%); border:1.5px solid rgba(238,79,3,0.25); border-radius:var(--r-lg); padding:24px 28px; margin-bottom:20px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; position:relative; overflow:hidden; }
.payment-summary::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--accent),var(--accent2)); }
.payment-summary-label { font-family:"IBM Plex Mono",monospace; font-size:0.6rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--muted2); font-weight:700; margin-bottom:6px; }
.payment-summary-desc { font-family:"Manrope",sans-serif; font-size:0.82rem; color:var(--muted); font-weight:500; }
.payment-summary-amount { font-family:"Montserrat",sans-serif; font-size:2.4rem; font-weight:900; background:linear-gradient(135deg,var(--accent),var(--accent2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; flex-shrink:0; }

/* ── RESPONSIVE ── */
@media (max-width:1200px) { .slug-hero{padding:140px 48px 72px;} .slug-banner-section{padding:0 48px;} .slug-main{padding:0 48px 130px;} .slug-checkout-bar{padding:0 32px;} .reg-form-section{padding:60px 48px 130px;} }
@media (max-width:1024px) { .slug-hero{padding:130px 36px 64px;} .slug-banner-section{padding:0 36px;} .slug-main{padding:0 36px 130px;} .slug-checkout-bar{padding:0 24px;} .reg-form-section{padding:48px 36px 120px;} .perks-grid{grid-template-columns:repeat(2,1fr);} .slug-details-grid{grid-template-columns:repeat(2,1fr);} .stepper-connector{max-width:70px;} .pd-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:768px) { .slug-hero{padding:110px 20px 52px;} .slug-banner-section{padding:0 16px;} .slug-banner-wrap{transform:translateY(-24px);border-radius:18px;} .slug-main{padding:0 16px 130px;} .slug-card{padding:22px 20px;} .slug-details-grid{grid-template-columns:1fr;} .perks-grid{grid-template-columns:1fr 1fr;} .slug-checkout-bar{padding:0 12px;} .slug-checkout-bar.visible{bottom:16px;} .checkout-bar-inner{padding:14px 18px;gap:14px;} .rc-top{flex-wrap:wrap;gap:12px;} .rc-price-block{text-align:left;} .checkout-bar-total{border-left:none;padding-left:0;border-top:1px solid rgba(255,255,255,0.06);padding-top:10px;width:100%;display:flex;justify-content:space-between;align-items:center;} .cb-total-label{margin-bottom:0;} .reg-form-section{padding:36px 20px 120px;} .reg-type-options{grid-template-columns:1fr;} .reg-cat-pill{flex-wrap:wrap;gap:12px;} .reg-group-row{grid-template-columns:1fr;gap:14px;} .confirm-grid{grid-template-columns:1fr;} .cpb-grid{grid-template-columns:1fr;} .stepper-connector{max-width:36px;} .stepper-node{width:40px;height:40px;} .stepper-step{width:60px;} .stepper-label-title{font-size:0.64rem;} .stepper-label-sub{display:none;} .otp-boxes{gap:7px;} .otp-box{width:44px;height:52px;font-size:1.2rem;} .reg-step-card{padding:22px 20px;} .participant-card{padding:20px 18px;} .pd-grid{grid-template-columns:1fr;} }
@media (max-width:540px) { .slug-title{font-size:2.5rem;letter-spacing:-0.035em;} .perks-grid{grid-template-columns:1fr;} .checkout-bar-left{display:none;} .checkout-bar-inner{border-radius:18px;} .slug-card{border-radius:16px;padding:18px 16px;} .reg-form-section{padding:28px 16px 120px;} .reg-cat-pill{padding:16px 18px;} .reg-cat-pill-name{font-size:1.1rem;} .reg-type-card{padding:20px 18px;} .otp-mobile-input-wrap{flex-wrap:wrap;border-radius:var(--r-sm);} .otp-send-btn{width:100%;height:46px;border-radius:0 0 var(--r-sm) var(--r-sm);justify-content:center;} .otp-box{width:40px;height:48px;font-size:1.1rem;border-radius:10px;} .stepper-connector{max-width:20px;} .reg-stepper{padding:18px 14px;} .stepper-step{width:52px;} .payment-summary{flex-direction:column;align-items:flex-start;gap:12px;} }
@media (max-width:380px) { .slug-hero{padding:100px 14px 44px;} .checkout-bar-inner{padding:12px 14px;} .cb-proceed{padding:9px 18px;font-size:0.76rem;} .cb-clear{padding:9px 12px;font-size:0.7rem;} .otp-box{width:36px;height:44px;font-size:1rem;} .stepper-connector{max-width:10px;} }

.reg-form-section,.reg-form-inner,.reg-type-card,.slug-card,.participant-card { overflow:visible!important; }

/* ═══════════════════════════════════════════════════════════
   ADDITIONS TO event-slug.css
   Paste these rules at the end of your existing event-slug.css
═══════════════════════════════════════════════════════════ */

/* ── Nationality dropdown panel (matches group dropdown) ── */
.rgl-nationality-panel {
  background: #0d0f1e;
  border: 1.5px solid rgba(238, 79, 3, 0.4);
  border-radius: 14px;
  box-shadow:
    0 8px 16px rgba(0,0,0,0.4),
    0 24px 64px rgba(0,0,0,0.7),
    0 0 0 1px rgba(255,255,255,0.03);
  overflow: hidden;
  animation: rglDrop 0.2s cubic-bezier(0.22,0.68,0,1.21) both;
}

.rgl-nat-search-row {
  padding: 8px 8px 0;
  background: #0d0f1e;
  position: sticky;
  top: 0;
  z-index: 1;
}

.rgl-nat-inner-search {
  /* Inherits .rgl-search-wrap styles; just ensure border-radius stays full */
  border-radius: 10px !important;
  overflow: hidden;
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  margin-bottom: 4px;
}

.rgl-nat-inner-search:focus-within {
  border-color: rgba(238,79,3,0.5) !important;
  background: rgba(238,79,3,0.06) !important;
  box-shadow: 0 0 0 2px rgba(238,79,3,0.1) !important;
}

.rgl-nat-list {
  /* Reset positioning — it's inside the panel, not fixed */
  max-height: 220px;
  overflow-y: auto;
  border-radius: 0 0 12px 12px;
  scrollbar-width: thin;
  scrollbar-color: rgba(238,79,3,0.3) transparent;
}

.rgl-nat-list::-webkit-scrollbar { width: 4px; }
.rgl-nat-list::-webkit-scrollbar-track { background: transparent; }
.rgl-nat-list::-webkit-scrollbar-thumb { background: rgba(238,79,3,0.35); border-radius: 4px; }


/* ── Personal details section dividers ── */

/* Base style shared by all section dividers inside participant cards */
.pd-section-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: var(--r-sm);
  padding: 10px 16px;
}

/* Personal Information — blue accent */
.pd-section-divider-personal {
  background: rgba(61, 104, 240, 0.07);
  border: 1.5px solid rgba(61, 104, 240, 0.22);
}
.pd-section-divider-personal .pd-section-icon { color: rgba(99, 130, 255, 0.85); }
.pd-section-divider-personal .pd-section-label { color: var(--ink); }

/* Contact & Address — teal accent */
.pd-section-divider-contact {
  background: rgba(56, 189, 248, 0.06);
  border: 1.5px solid rgba(56, 189, 248, 0.2);
}
.pd-section-divider-contact .pd-section-icon { color: #38bdf8; }
.pd-section-divider-contact .pd-section-label { color: var(--ink); }

/* Documents — amber accent */
.pd-section-divider-docs {
  background: rgba(251, 191, 36, 0.07);
  border: 1.5px solid rgba(251, 191, 36, 0.22);
}
.pd-section-divider-docs .pd-section-icon { color: #fbbf24; }
.pd-section-divider-docs .pd-section-label { color: var(--ink); }
.pd-section-divider-docs .pd-section-req {
  background: rgba(251, 191, 36, 0.1);
  border-color: rgba(251, 191, 36, 0.3);
  color: #fbbf24;
}

/* Emergency Contact — red accent (original, preserved) */
.pd-section-divider-emergency {
  background: rgba(255, 107, 107, 0.05);
  border: 1.5px solid rgba(255, 107, 107, 0.18);
}
.pd-section-divider-emergency .pd-section-icon { color: var(--red); }
.pd-section-divider-emergency .pd-section-label { color: var(--ink); }
.pd-section-divider-emergency .pd-section-req {
  background: rgba(255, 107, 107, 0.1);
  border-color: rgba(255, 107, 107, 0.22);
  color: var(--red);
}

/* ═══════════════════════════════════════════════════════════
   CONSENT STEP  —  Add to end of event-slug.css
═══════════════════════════════════════════════════════════ */

/* ── Consent step card override ── */
.consent-step-card::before {
  background: linear-gradient(180deg, #3b82f6, #6366f1);
}

.consent-icon-wrap {
  background: rgba(59, 130, 246, 0.12) !important;
  border-color: rgba(59, 130, 246, 0.28) !important;
}

/* ── Consent intro banner ── */
.consent-intro-banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(59, 130, 246, 0.07);
  border: 1px solid rgba(59, 130, 246, 0.22);
  border-radius: var(--r-sm);
  padding: 14px 18px;
  font-family: "Manrope", sans-serif;
  font-size: 0.82rem;
  color: var(--muted);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 22px;
}

.consent-intro-icon {
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── Agree all shortcut ── */
.consent-agree-all {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(238, 79, 3, 0.06);
  border: 1.5px solid rgba(238, 79, 3, 0.25);
  border-radius: var(--r-md);
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
  transition: all 0.22s;
  margin-bottom: 16px;
}

.consent-agree-all:hover {
  background: rgba(238, 79, 3, 0.1);
  border-color: rgba(238, 79, 3, 0.45);
}

.consent-agree-all input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.consent-agree-all .consent-agree-all-box {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 2px solid rgba(238, 79, 3, 0.45);
  background: rgba(238, 79, 3, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s;
}

.consent-agree-all input[type="checkbox"]:checked ~ .consent-agree-all-box {
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(238, 79, 3, 0.35);
}

.consent-agree-all-label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.01em;
}

/* ── Divider between agree-all and items ── */
.consent-items-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.05);
  margin-bottom: 16px;
}

/* ── Individual consent items ── */
.consent-items-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}

.consent-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--card-bg2);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  padding: 16px 18px;
  cursor: pointer;
  user-select: none;
  transition: all 0.22s cubic-bezier(0.22, 0.68, 0, 1.21);
  position: relative;
  overflow: hidden;
}

.consent-item:hover {
  border-color: rgba(59, 130, 246, 0.3);
  background: rgba(59, 130, 246, 0.04);
}

.consent-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Custom checkbox box */
.consent-checkbox-box {
  width: 22px;
  height: 22px;
  min-width: 22px;
  border-radius: 6px;
  border: 2px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.03);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
  transition: all 0.22s cubic-bezier(0.22, 0.68, 0, 1.21);
}

.consent-checkbox-check {
  font-size: 0.7rem;
  font-weight: 900;
  color: #fff;
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.18s cubic-bezier(0.22, 0.68, 0, 1.21);
  line-height: 1;
}

/* Checked state */
.consent-item input[type="checkbox"]:checked ~ .consent-checkbox-box {
  background: linear-gradient(135deg, #3b82f6, #6366f1);
  border-color: transparent;
  box-shadow: 0 2px 10px rgba(59, 130, 246, 0.4);
}

.consent-item input[type="checkbox"]:checked ~ .consent-checkbox-box .consent-checkbox-check {
  opacity: 1;
  transform: scale(1);
}

/* Checked item card state */
.consent-item:has(input[type="checkbox"]:checked) {
  border-color: rgba(59, 130, 246, 0.35) !important;
  background: rgba(59, 130, 246, 0.07) !important;
}

.consent-item:has(input[type="checkbox"]:checked)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #3b82f6, #6366f1);
  border-radius: 3px 0 0 3px;
}

/* Item text */
.consent-item-text {
  font-family: "Manrope", sans-serif;
  font-size: 0.83rem;
  font-weight: 500;
  color: var(--muted);
  line-height: 1.65;
  transition: color 0.2s;
}

.consent-item:has(input[type="checkbox"]:checked) .consent-item-text {
  color: var(--ink2);
}

/* ── Consent error ── */
.consent-error {
  font-family: "Manrope", sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--red);
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 20px;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.2s, transform 0.2s;
  margin-top: 4px;
}

.consent-error.consent-error-visible {
  opacity: 1;
  transform: translateY(0);
}

.consent-error::before {
  content: "⚠️";
  font-size: 0.85rem;
}

/* Consent step uses standard active stepper state */

/* ── Responsive ── */
@media (max-width: 768px) {
  .consent-item { padding: 14px 14px; gap: 12px; }
  .consent-item-text { font-size: 0.79rem; }
  .consent-agree-all { padding: 12px 14px; }
}

@media (max-width: 540px) {
  .consent-intro-banner { font-size: 0.76rem; padding: 12px 14px; }
  .consent-agree-all-label { font-size: 0.82rem; }
}


/* ═══════════════════════════════════════════════════════════
   PINCODE LOOKUP — State autofill + City portal dropdown
═══════════════════════════════════════════════════════════ */

/* Spinner inside pincode input */
.pd-pin-spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,0.12);
  border-top-color: var(--accent, #f97316);
  border-radius: 50%;
  animation: pin-spin 0.7s linear infinite;
  margin-right: 12px;
  flex-shrink: 0;
  display: inline-block;
}
@keyframes pin-spin { to { transform: rotate(360deg); } }

/* Green success tick */
.pd-pin-ok {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(34,197,94,0.15);
  border: 1.5px solid rgba(34,197,94,0.4);
  color: #22c55e;
  font-size: 0.72rem;
  font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  margin-right: 10px;
  flex-shrink: 0;
}

/* ── STATE display chip ── */
.pd-state-display-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  height: 46px;
  border-radius: 10px;
  border: 1.5px solid var(--border, rgba(255,255,255,0.1));
  background: rgba(255,255,255,0.03);
  overflow: hidden;
  transition: border-color 0.25s, background 0.25s;
}

.pd-state-icon {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 100%;
  font-size: 1rem;
  border-right: 1px solid var(--border, rgba(255,255,255,0.08));
  flex-shrink: 0;
  background: rgba(255,255,255,0.02);
}

.pd-state-value {
  flex: 1;
  padding: 0 14px;
  font-family: "Manrope", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(255,255,255,0.25);
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  user-select: none;
  transition: color 0.25s;
}

/* Filled state — after pincode lookup succeeds */
.pd-state-display-wrap.pd-state-filled {
  border-color: rgba(249,115,22,0.35);
  background: rgba(249,115,22,0.05);
}
.pd-state-display-wrap.pd-state-filled .pd-state-value {
  color: var(--fg, #f0f0f0);
  font-style: normal;
  font-weight: 600;
}
.pd-state-display-wrap.pd-state-filled .pd-state-icon {
  border-right-color: rgba(249,115,22,0.2);
}

/* ── CITY select wrap ── */
.pd-city-select-wrap {
  display: flex;
  align-items: center;
  height: 46px;
  border-radius: 10px;
  border: 1.5px solid var(--border, rgba(255,255,255,0.1));
  background: rgba(255,255,255,0.03);
  overflow: hidden;
  cursor: not-allowed;
  transition: border-color 0.25s, background 0.25s, box-shadow 0.2s;
  user-select: none;
}

.pd-city-icon {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 100%;
  font-size: 1rem;
  border-right: 1px solid var(--border, rgba(255,255,255,0.08));
  flex-shrink: 0;
  background: rgba(255,255,255,0.02);
  transition: border-right-color 0.25s;
}

.pd-city-display {
  flex: 1;
  padding: 0 12px;
  font-family: "Manrope", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(255,255,255,0.25);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.2s;
}

.pd-city-chevron {
  width: 16px; height: 16px;
  margin-right: 12px;
  flex-shrink: 0;
  color: rgba(255,255,255,0.3);
  transition: transform 0.22s ease, color 0.2s;
}

/* Disabled — before pincode entered */
.pd-city-select-wrap[data-disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

/* Active — pincode loaded, ready to pick */
.pd-city-select-wrap.pd-city-active {
  opacity: 1;
  cursor: pointer;
  border-color: rgba(255,255,255,0.18);
}
.pd-city-select-wrap.pd-city-active:hover {
  border-color: var(--accent, #f97316);
  background: rgba(249,115,22,0.04);
  box-shadow: 0 0 0 3px rgba(249,115,22,0.08);
}
.pd-city-select-wrap.pd-city-active .pd-city-display {
  color: rgba(255,255,255,0.5);
}
.pd-city-select-wrap.pd-city-active .pd-city-chevron {
  color: var(--accent, #f97316);
}

/* Selected — a city has been chosen */
.pd-city-select-wrap.pd-city-selected {
  border-color: rgba(249,115,22,0.4);
  background: rgba(249,115,22,0.06);
}
.pd-city-select-wrap.pd-city-selected .pd-city-display {
  color: var(--fg, #f0f0f0);
  font-weight: 600;
}
.pd-city-select-wrap.pd-city-selected .pd-city-icon {
  border-right-color: rgba(249,115,22,0.2);
}

/* Chevron rotates when dropdown open */
.pd-city-select-wrap .pd-city-chevron.open {
  transform: rotate(180deg);
  color: var(--accent, #f97316);
}

/* Invalid state */
.pd-city-select-wrap.pd-portal-invalid {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,0.15) !important;
}

/* City portal dropdown */
.pincode-city-portal {
  position: fixed;
  z-index: 9999;
  min-width: 220px;
  max-height: 260px;
  overflow-y: auto;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: var(--card-solid, #16162a);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.1) transparent;
}
.pincode-city-portal::-webkit-scrollbar { width: 4px; }
.pincode-city-portal::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 4px; }

.pincode-city-portal .rgl-option {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  font-family: "Manrope", sans-serif;
  font-size: 0.855rem;
  font-weight: 500;
  color: var(--fg, #e2e2e2);
  cursor: pointer;
  transition: background 0.13s, color 0.13s;
  list-style: none;
  gap: 8px;
}
.pincode-city-portal .rgl-option::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  flex-shrink: 0;
  transition: background 0.13s;
}
.pincode-city-portal .rgl-option:hover {
  background: rgba(249,115,22,0.12);
  color: var(--accent, #f97316);
}
.pincode-city-portal .rgl-option:hover::before {
  background: var(--accent, #f97316);
}

/* Other option */
.pincode-city-portal .pincode-city-other-opt {
  border-top: 1px solid rgba(255,255,255,0.07);
  margin-top: 4px;
  padding-top: 10px;
  color: var(--accent, #f97316);
  font-weight: 600;
}
.pincode-city-portal .pincode-city-other-opt::before {
  content: '✏️';
  width: auto; height: auto;
  background: none;
  border-radius: 0;
  font-size: 0.8rem;
}
.pincode-city-portal .pincode-city-other-opt:hover {
  background: rgba(249,115,22,0.1);
}