/* Schumer Performance Booking
   Every rule is scoped to #sp-booking, and the key visual properties of cards and
   fields use !important so theme, Divi and addon styles cannot override them. */

#sp-booking{
  --sp-red:#EC1C24; --sp-orange:#F0501E;
  --sp-bg:#000; --sp-card:#111; --sp-card-2:#171717;
  --sp-line:#282828; --sp-line-2:#3a3a3a;
  --sp-tx:#D6D6D6; --sp-tx-dim:#8b8b8b; --sp-white:#fff;
  background:var(--sp-bg)!important; color:var(--sp-tx);
  font-family:"Roboto",Arial,sans-serif; font-size:16px; line-height:1.6;
  padding:clamp(24px,4vw,56px); box-sizing:border-box; text-align:left;
}

/* Reset whatever the theme puts on these elements */
#sp-booking *,#sp-booking *::before,#sp-booking *::after{box-sizing:border-box}
#sp-booking p,#sp-booking dl,#sp-booking dd,#sp-booking dt,#sp-booking h3,#sp-booking ul,#sp-booking ol,#sp-booking li{margin:0;padding:0;list-style:none}
#sp-booking label,#sp-booking button,#sp-booking section,#sp-booking aside,#sp-booking span,#sp-booking li{
  float:none!important; box-shadow:none!important; text-shadow:none!important; letter-spacing:normal;
}
#sp-booking label{display:block;width:auto;max-width:none;height:auto;margin:0;padding:0;border:0;background:none;font-weight:inherit;text-transform:none}
#sp-booking button{font-family:inherit;font-size:inherit;line-height:1.3;color:inherit;margin:0;min-height:0;width:auto;border-radius:0!important;text-transform:none}
#sp-booking button::after,#sp-booking button::before{content:none!important;display:none!important}
#sp-booking svg{display:block}
#sp-booking [hidden]{display:none!important}

/* Progress */
#sp-booking .sp-progress{display:flex;gap:6px;max-width:1100px;margin:0 auto clamp(24px,4vw,40px)!important;counter-reset:none}
#sp-booking .sp-progress li{flex:1 1 0;min-width:0}
#sp-booking .sp-progress button{display:flex!important;align-items:center;gap:10px;width:100%!important;background:transparent!important;border:0!important;border-top:3px solid var(--sp-line-2)!important;padding:12px 0 0!important;cursor:pointer;text-align:left;color:var(--sp-tx-dim)!important}
#sp-booking .sp-progress button:disabled{cursor:default;opacity:.55}
#sp-booking .sp-pnum{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border:1px solid var(--sp-line-2);font-family:"Oswald",sans-serif;font-size:13px;color:var(--sp-tx-dim)}
#sp-booking .sp-plab{font-family:"Oswald",sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sp-booking .sp-progress li.is-done button{border-top-color:#6b2326!important;color:var(--sp-tx)!important}
#sp-booking .sp-progress li.is-done .sp-pnum{border-color:#6b2326;color:var(--sp-tx)}
#sp-booking .sp-progress li.is-current button{border-top-color:var(--sp-red)!important;color:var(--sp-white)!important}
#sp-booking .sp-progress li.is-current .sp-pnum{background:var(--sp-red);border-color:var(--sp-red);color:#fff}
@media(max-width:640px){#sp-booking .sp-plab{display:none}#sp-booking .sp-progress button{justify-content:center}}

/* Layout */
#sp-booking .sp-grid,#sp-booking .sp-done{max-width:1100px;margin:0 auto}
#sp-booking .sp-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:clamp(24px,3vw,48px);align-items:start}
@media(max-width:900px){#sp-booking .sp-grid{grid-template-columns:1fr}}
#sp-booking .sp-main{min-width:0}
#sp-booking .sp-panel{animation:sp-in .25s ease both}
@keyframes sp-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

#sp-booking .sp-kicker{font-family:"Oswald",sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--sp-red);margin-bottom:6px}
#sp-booking .sp-h{font-family:"Bebas Neue",Impact,sans-serif!important;font-size:clamp(32px,4.4vw,48px)!important;line-height:1!important;color:var(--sp-white)!important;letter-spacing:.02em!important;font-weight:400!important;padding:0!important;outline:none}
#sp-booking .sp-help{font-size:14px;color:var(--sp-tx-dim);margin:10px 0 22px;max-width:62ch}
#sp-booking .sp-help b{color:var(--sp-tx);font-weight:500}
#sp-booking .sp-warn{color:var(--sp-orange)}

/* Option cards */
#sp-booking .sp-opt{
  position:relative!important;display:block!important;cursor:pointer;
  background:var(--sp-card)!important;border:1px solid var(--sp-line)!important;
  border-radius:0!important;outline:0;margin:0!important;width:auto!important;
  color:var(--sp-tx)!important;text-align:left!important;
  transition:border-color .15s ease,background-color .15s ease;
}
#sp-booking .sp-opt:hover{border-color:var(--sp-line-2)!important}
#sp-booking .sp-opt input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;margin:0!important;pointer-events:none}
#sp-booking .sp-opt[data-on="1"]{background:var(--sp-card-2)!important;border-color:var(--sp-red)!important}
#sp-booking .sp-opt:focus-within{outline:2px solid var(--sp-orange)!important;outline-offset:2px}
#sp-booking .sp-okmark{position:absolute;top:12px;right:12px;width:22px;height:22px;display:none;place-items:center;background:var(--sp-red)}
#sp-booking .sp-okmark svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.2}
#sp-booking .sp-opt[data-on="1"] .sp-okmark{display:grid}

#sp-booking .sp-progs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
#sp-booking .sp-prog{padding:22px 18px 18px!important;min-height:160px}
#sp-booking .sp-pn{display:block;font-family:"Bebas Neue",Impact,sans-serif!important;font-size:28px!important;line-height:1.05!important;letter-spacing:.02em;color:var(--sp-white)!important;padding-right:24px}
#sp-booking .sp-pd{display:block;font-size:13px!important;line-height:1.5!important;color:var(--sp-tx-dim)!important;margin-top:8px}
#sp-booking .sp-pf{display:block;font-size:12px!important;color:var(--sp-tx-dim)!important;margin-top:14px;font-family:"Oswald",sans-serif!important;letter-spacing:.08em;text-transform:uppercase}
#sp-booking .sp-prog[data-on="1"] .sp-pf{color:var(--sp-red)!important}

#sp-booking .sp-tiers{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
#sp-booking .sp-tier{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:16px 56px 16px 18px!important}
#sp-booking .sp-tier .sp-okmark{top:50%;transform:translateY(-50%)}
#sp-booking .sp-tl{font-family:"Oswald",sans-serif!important;font-size:16px!important;letter-spacing:.04em;text-transform:uppercase;color:var(--sp-tx)!important}
#sp-booking .sp-ts{display:block;font-family:"Roboto",sans-serif!important;font-size:12px!important;letter-spacing:0;text-transform:none;color:var(--sp-tx-dim)!important;margin-top:2px}
#sp-booking .sp-tp{font-family:"Bebas Neue",Impact,sans-serif!important;font-size:26px!important;color:var(--sp-white)!important;letter-spacing:.02em;white-space:nowrap}
#sp-booking .sp-tier[data-on="1"] .sp-tl{color:var(--sp-white)!important}
#sp-booking .sp-tier[data-on="1"] .sp-tp{color:var(--sp-red)!important}

#sp-booking .sp-locs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
#sp-booking .sp-loc{padding:18px 44px 18px 18px!important}
#sp-booking .sp-ln{display:block;font-family:"Oswald",sans-serif!important;font-size:16px!important;letter-spacing:.04em;text-transform:uppercase;color:var(--sp-tx)!important}
#sp-booking .sp-la{display:block;font-size:13px!important;color:var(--sp-tx-dim)!important;margin-top:4px}
#sp-booking .sp-loc[data-on="1"] .sp-ln{color:var(--sp-white)!important}

#sp-booking .sp-check{display:inline-flex!important;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--sp-tx)!important}
#sp-booking .sp-check input{width:17px!important;height:17px!important;accent-color:var(--sp-red);cursor:pointer;margin:0!important}

/* Bottom bar */
#sp-booking .sp-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:32px;padding-top:22px;border-top:1px solid var(--sp-line)}
#sp-booking .sp-back{display:inline-flex!important;align-items:center;gap:8px;background:transparent!important;border:1px solid var(--sp-line-2)!important;padding:14px 18px!important;cursor:pointer;color:var(--sp-tx)!important;font-family:"Oswald",sans-serif!important;font-size:14px!important;letter-spacing:.12em;text-transform:uppercase!important}
#sp-booking .sp-back:hover{border-color:var(--sp-tx-dim)!important}
#sp-booking .sp-back svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
#sp-booking .sp-cta{display:inline-block!important;background:var(--sp-red)!important;color:#fff!important;border:0!important;padding:16px 28px!important;cursor:pointer;font-family:"Oswald",sans-serif!important;font-size:15px!important;font-weight:600!important;letter-spacing:.14em!important;text-transform:uppercase!important;text-decoration:none!important;transition:background-color .15s ease}
#sp-booking .sp-cta:hover{background:var(--sp-orange)!important}
#sp-booking .sp-cta:focus-visible,#sp-booking .sp-back:focus-visible{outline:2px solid #fff!important;outline-offset:2px}
#sp-booking .sp-cta:disabled{background:#2c2c2c!important;color:#7a7a7a!important;cursor:not-allowed}
#sp-booking .sp-nextbtn{margin-left:auto;min-width:200px}
@media(max-width:560px){#sp-booking .sp-nextbtn{min-width:0;flex:1}}

/* Summary */
#sp-booking .sp-summary{background:var(--sp-card)!important;border:1px solid var(--sp-line)!important;padding:26px 24px 22px!important;position:sticky;top:24px}
@media(max-width:900px){#sp-booking .sp-summary{position:static;order:-1}}
#sp-booking .sp-sum-label{font-family:"Oswald",sans-serif;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--sp-tx-dim)}
#sp-booking .sp-price{font-family:"Bebas Neue",Impact,sans-serif;color:var(--sp-white);line-height:.9;margin-top:10px;display:flex;align-items:flex-start;gap:3px}
#sp-booking .sp-cur{font-size:clamp(22px,3vw,30px);color:var(--sp-red);line-height:1.25}
#sp-booking .sp-price-n{font-size:clamp(52px,7vw,80px)}
#sp-booking .sp-sum-sub{font-size:13px;color:var(--sp-tx-dim);margin-top:8px}
#sp-booking .sp-facts{margin-top:18px;border-top:1px solid var(--sp-line)}
#sp-booking .sp-facts:empty{display:none}
#sp-booking .sp-facts>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--sp-line);font-size:13px}
#sp-booking .sp-facts dt{color:var(--sp-tx-dim)}
#sp-booking .sp-facts dd{color:var(--sp-tx);text-align:right}
#sp-booking .sp-loc-info{font-size:12px;color:var(--sp-tx-dim);margin-top:18px;padding-top:14px;border-top:1px solid var(--sp-line);line-height:1.7}
#sp-booking .sp-loc-info span{color:#6c6c6c}
@media(max-width:900px){#sp-booking .sp-loc-info{display:none}}

/* Calendar */
#sp-booking .sp-cal-wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:760px){#sp-booking .sp-cal-wrap{grid-template-columns:1fr}}
#sp-booking .sp-cal,#sp-booking .sp-times{background:var(--sp-card)!important;border:1px solid var(--sp-line)!important;padding:16px}
#sp-booking .sp-cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
#sp-booking .sp-cal-title{font-family:"Oswald",sans-serif;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--sp-white)}
#sp-booking .sp-nav{background:transparent!important;border:1px solid var(--sp-line-2)!important;width:36px!important;height:36px;cursor:pointer;display:grid!important;place-items:center;padding:0!important}
#sp-booking .sp-nav:hover:not(:disabled){border-color:var(--sp-red)!important}
#sp-booking .sp-nav:disabled{opacity:.3;cursor:default}
#sp-booking .sp-nav svg{width:14px;height:14px;fill:none;stroke:var(--sp-tx);stroke-width:2}
#sp-booking .sp-wk,#sp-booking .sp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
#sp-booking .sp-wk span{font-family:"Oswald",sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sp-tx-dim);text-align:center;padding-bottom:6px}
#sp-booking .sp-day{aspect-ratio:1/1;min-height:36px;width:100%!important;border:1px solid transparent!important;background:transparent!important;cursor:pointer;display:flex!important;align-items:center;justify-content:center;font-size:14px!important;position:relative;padding:0!important;color:#444!important}
#sp-booking .sp-day[disabled]{cursor:default}
#sp-booking .sp-day.is-open{background:var(--sp-card-2)!important;border-color:var(--sp-line-2)!important;color:var(--sp-white)!important}
#sp-booking .sp-day.is-open:hover{border-color:var(--sp-red)!important}
#sp-booking .sp-day.is-sel{border-color:var(--sp-red)!important;background:#1f0a0b!important}
#sp-booking .sp-day.is-pick::after,#sp-booking .sp-day.is-occ::after{content:""!important;display:block!important;position:absolute;bottom:5px;left:50%;margin-left:-3px;width:6px;height:6px;border-radius:50%;background:var(--sp-red)}
#sp-booking .sp-day.is-occ::after{background:#6b2326}
#sp-booking .sp-day.is-today{text-decoration:underline;text-underline-offset:3px}
#sp-booking .sp-cal-state{grid-column:1/-1;font-size:13px;color:var(--sp-tx-dim);padding:30px 0;text-align:center}

#sp-booking .sp-times-head{font-family:"Oswald",sans-serif;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--sp-tx-dim);margin-bottom:12px}
#sp-booking .sp-times-list{display:flex;flex-direction:column;gap:8px}
#sp-booking .sp-time{display:flex!important;justify-content:space-between;align-items:center;gap:12px;width:100%!important;background:var(--sp-card-2)!important;border:1px solid var(--sp-line-2)!important;padding:12px 14px!important;cursor:pointer;text-align:left;color:var(--sp-tx)!important}
#sp-booking .sp-time:hover:not(:disabled){border-color:var(--sp-red)!important}
#sp-booking .sp-time b{font-family:"Bebas Neue",Impact,sans-serif;font-size:22px;font-weight:400;letter-spacing:.03em;color:var(--sp-white)}
#sp-booking .sp-time span{font-size:12px;color:var(--sp-tx-dim)}
#sp-booking .sp-time[aria-pressed="true"]{border-color:var(--sp-red)!important;background:#1f0a0b!important}
#sp-booking .sp-time[aria-pressed="true"] span{color:var(--sp-red)}
#sp-booking .sp-time:disabled{opacity:.4;cursor:not-allowed}
#sp-booking .sp-empty{font-size:13px;color:var(--sp-tx-dim)}

#sp-booking .sp-picked{margin-top:18px}
#sp-booking .sp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
#sp-booking .sp-chip{display:inline-flex!important;align-items:center;gap:10px;background:#1f0a0b;border:1px solid var(--sp-red);padding:6px 6px 6px 14px;font-size:13px;color:var(--sp-white)}
#sp-booking .sp-chip button{background:transparent!important;border:0!important;cursor:pointer;width:26px!important;height:26px;display:grid!important;place-items:center;padding:0!important}
#sp-booking .sp-chip button svg{width:12px;height:12px;stroke:var(--sp-tx);stroke-width:2}
#sp-booking .sp-chip button:hover svg{stroke:var(--sp-red)}
#sp-booking .sp-list-head{font-family:"Oswald",sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--sp-tx-dim);margin:6px 0 8px}
#sp-booking .sp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}
#sp-booking .sp-list li{background:var(--sp-card);border:1px solid var(--sp-line);padding:8px 12px;font-size:13px;display:flex;justify-content:space-between;gap:8px}
#sp-booking .sp-list li em{font-style:normal;color:var(--sp-tx-dim)}
#sp-booking .sp-list li.moved{border-color:#5a3a12}
#sp-booking .sp-list li.moved em{color:#e0a14a}
#sp-booking .sp-fine{font-size:12px;color:var(--sp-tx-dim);margin-top:8px}

/* Form */
#sp-booking .sp-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
@media(max-width:640px){#sp-booking .sp-form{grid-template-columns:1fr}}
#sp-booking .sp-field{display:flex;flex-direction:column;gap:6px}
#sp-booking .sp-field.full,#sp-booking .sp-form .full{grid-column:1/-1}
#sp-booking .sp-field label{font-family:"Oswald",sans-serif!important;font-size:12px!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--sp-tx-dim)!important}
#sp-booking .sp-field label i{font-style:normal;color:#5c5c5c;text-transform:none;letter-spacing:0;font-family:"Roboto",sans-serif}
#sp-booking .sp-field input,#sp-booking .sp-field textarea{width:100%!important;max-width:none!important;background:var(--sp-card)!important;border:1px solid var(--sp-line-2)!important;color:var(--sp-white)!important;padding:13px 14px!important;font-family:"Roboto",Arial,sans-serif!important;font-size:15px!important;line-height:1.4!important;border-radius:0!important;box-shadow:none!important;margin:0!important;height:auto!important}
#sp-booking .sp-field input:focus,#sp-booking .sp-field textarea:focus{outline:none!important;border-color:var(--sp-red)!important}
#sp-booking .sp-field input[aria-invalid="true"]{border-color:var(--sp-orange)!important}
#sp-booking .sp-field textarea{min-height:90px;resize:vertical}
#sp-booking .sp-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
#sp-booking .sp-msg{font-size:14px;color:var(--sp-orange);min-height:1.2em}

/* Done */
#sp-booking .sp-done{padding:clamp(20px,4vw,48px) 0;outline:none}
#sp-booking .sp-done .sp-h{margin-bottom:12px}
#sp-booking .sp-done-ref{font-family:"Oswald",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--sp-red);font-size:14px;margin-bottom:6px}
#sp-booking .sp-done p{color:var(--sp-tx);max-width:60ch}
#sp-booking .sp-done .sp-list{margin:22px 0}
#sp-booking .sp-pay{margin:4px 0 18px}
#sp-booking .sp-link{background:transparent!important;border:0!important;color:var(--sp-tx)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0!important;font-size:14px!important}
#sp-booking .sp-link:hover{color:var(--sp-red)!important}

#sp-booking .sp-spin{display:inline-block;width:14px;height:14px;border:2px solid #555;border-top-color:var(--sp-red);border-radius:50%;animation:sp-spin .8s linear infinite;vertical-align:-2px;margin-right:8px}
@keyframes sp-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#sp-booking *{transition:none!important;animation:none!important}}
