/**
 * Luminary Tickets — embeddable checkout widget.
 * Scoped entirely under .lt-checkout so it never leaks into the host theme.
 * Colors are CSS variables (override them to re-theme per site); the defaults
 * match the Hold'em for Hope leather-brown + gold identity. Fonts inherit from
 * the host theme (Cinzel/Spectral on HFH), with graceful serif fallbacks.
 */

.lt-checkout{
  --lt-felt:#241407; --lt-felt-2:#1a0f06; --lt-ink:#140b05; --lt-rail:#0f0a04;
  --lt-gold:#d4af52; --lt-gold-hi:#f6e08a; --lt-gold-dim:#a87d2e;
  --lt-parch:#f1e6cc; --lt-cream:#e8dcc0; --lt-muted:#c2b48f; --lt-line:rgba(212,175,82,.26);
  --lt-disp:'Cinzel',"Hoefler Text","Playfair Display",Georgia,serif;
  --lt-body:'Spectral',"Iowan Old Style",Georgia,serif;
  font-family:var(--lt-body); color:var(--lt-cream); line-height:1.5;
  max-width:1180px; margin:0 auto;
}
.lt-checkout *{box-sizing:border-box}

/* table / rail frame */
.lt-checkout .lt-table{
  border-radius:6px; padding:clamp(18px,3vw,38px);
  background:
    linear-gradient(180deg, rgba(36,20,7,.5), rgba(20,11,5,.62)),
    radial-gradient(140% 120% at 50% 0%, rgba(58,36,16,.5), transparent 60%);
  box-shadow:0 0 0 2px var(--lt-rail), 0 0 0 4px rgba(212,175,82,.5), 0 0 0 6px var(--lt-rail),
             inset 0 2px 40px rgba(0,0,0,.4), 0 30px 70px -30px rgba(0,0,0,.7);
}

.lt-checkout .lt-mast{text-align:center; padding:2px 0 22px; border-bottom:1px solid var(--lt-line); margin-bottom:24px}
.lt-checkout .lt-eyebrow{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.4em; font-size:12px; color:var(--lt-gold); margin:0 0 12px; padding-left:.4em}
.lt-checkout .lt-title{font-family:var(--lt-disp); font-weight:700; font-size:clamp(26px,4.4vw,44px); margin:0; color:var(--lt-parch); letter-spacing:.02em}
.lt-checkout .lt-title em{color:var(--lt-gold-hi); font-style:normal}
.lt-checkout .lt-submeta{margin:10px 0 0; color:var(--lt-muted); font-size:15px; font-style:italic}

.lt-checkout .lt-grid{display:grid; grid-template-columns:1fr; gap:24px}
@media(min-width:860px){ .lt-checkout .lt-grid{grid-template-columns:minmax(0,1.72fr) minmax(320px,1fr); gap:34px; align-items:start} }
@media(min-width:1080px){ .lt-checkout .lt-grid{gap:44px} }

.lt-checkout .lt-coltitle{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.24em; font-size:13px; color:var(--lt-gold); margin:0 0 4px}
.lt-checkout .lt-colsub{color:var(--lt-muted); font-size:13.5px; margin:0 0 16px}

/* ---- tiers ---- */
.lt-checkout .lt-tiers{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.lt-checkout .lt-tier{
  display:grid; grid-template-columns:auto 1fr auto; align-items:start; column-gap:16px; row-gap:12px;
  padding:16px 18px; border-radius:4px;
  background:linear-gradient(180deg, rgba(241,230,204,.06), rgba(241,230,204,.03));
  border:1px solid rgba(212,175,82,.16); transition:border-color .2s, background .2s;
}
.lt-checkout .lt-tier.is-in{border-color:var(--lt-gold); background:linear-gradient(180deg, rgba(212,175,82,.14), rgba(212,175,82,.05))}
.lt-checkout .lt-tier__main{min-width:0}
.lt-checkout .lt-tier__head{display:flex; align-items:baseline; justify-content:space-between; gap:12px}
.lt-checkout .lt-tier__name{font-family:var(--lt-disp); font-size:clamp(17px,2.4vw,20px); color:var(--lt-parch); margin:0; line-height:1.15}
.lt-checkout .lt-tier__amt{font-family:var(--lt-disp); color:var(--lt-gold-hi); font-weight:700; font-size:clamp(18px,2.6vw,21px); white-space:nowrap; font-variant-numeric:tabular-nums}
.lt-checkout .lt-tier__desc{color:var(--lt-cream); font-size:13.5px; margin:6px 0 0; line-height:1.5; opacity:.9}

/* inclusion pills — seats vs consumables read at a glance */
.lt-checkout .lt-tier__incl{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:9px}
.lt-checkout .lt-incl-lbl{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.14em; font-size:10px; color:var(--lt-gold-dim); margin-right:2px}
.lt-checkout .lt-inc{display:inline-flex; align-items:center; gap:5px; font-size:12px; line-height:1; padding:5px 9px; border-radius:2px; border:1px solid transparent; font-variant-numeric:tabular-nums}
.lt-checkout .lt-inc::before{content:""; width:6px; height:6px; border-radius:50%; flex:0 0 auto}
.lt-checkout .lt-inc--seat{color:var(--lt-parch); background:rgba(212,175,82,.12); border-color:rgba(212,175,82,.35)}
.lt-checkout .lt-inc--seat::before{background:var(--lt-gold-hi)}
.lt-checkout .lt-inc--consumable{color:var(--lt-cream); background:rgba(241,230,204,.05); border-color:rgba(212,175,82,.18)}
.lt-checkout .lt-inc--consumable::before{background:var(--lt-muted)}
/* "On sale until <Mon D>" note under a tier with a near sales deadline; urgent when <48h. */
.lt-checkout .lt-tier__sale{display:inline-flex; align-items:center; gap:6px; margin:9px 0 0; font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.12em; font-size:10.5px; color:var(--lt-gold); opacity:.92}
.lt-checkout .lt-tier__sale::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--lt-gold); flex:0 0 auto}
.lt-checkout .lt-tier__sale--urgent{color:var(--lt-gold-hi); font-weight:700; opacity:1}
.lt-checkout .lt-tier__sale--urgent::before{background:var(--lt-gold-hi); box-shadow:0 0 0 3px rgba(246,224,138,.18)}
.lt-checkout .lt-tier .lt-step{align-self:center; margin-top:0}
@media(max-width:520px){
  .lt-checkout .lt-tier{grid-template-columns:auto 1fr; row-gap:14px}
  .lt-checkout .lt-tier .lt-step{grid-column:1 / -1; justify-content:flex-end}
}

/* ---- sponsorship buy-in subsection (only when the event surfaces sponsorships in-cart) ---- */
.lt-checkout .lt-spongroup{margin-top:22px}
/* gold-foil-edged header separates sponsorships from the poker-chip tiers without leaving the theme */
.lt-checkout .lt-spongroup__head{
  position:relative; padding:12px 16px 12px 18px; margin-bottom:12px; border-radius:4px;
  background:linear-gradient(180deg, rgba(212,175,82,.14), rgba(212,175,82,.04));
  border:1px solid rgba(212,175,82,.34);
}
.lt-checkout .lt-spongroup__head::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; border-radius:4px 0 0 4px;
  background:linear-gradient(180deg, var(--lt-gold-dim), var(--lt-gold-hi), var(--lt-gold-dim))}
.lt-checkout .lt-spongroup__eyebrow{display:block; font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.22em; font-size:12.5px; font-weight:700; color:var(--lt-gold-hi)}
.lt-checkout .lt-spongroup__sub{display:block; margin-top:3px; font-size:12.5px; color:var(--lt-muted); font-style:italic}
/* sponsorship rows: distinct gold spade marker in place of a poker chip, on-theme */
.lt-checkout .lt-tier--spon{border-color:rgba(212,175,82,.24)}
.lt-checkout .lt-tier--spon.is-in{border-color:var(--lt-gold)}
.lt-checkout .lt-spon-mark{display:grid; place-items:center; width:40px; height:40px; flex:0 0 auto; border-radius:50%;
  color:var(--lt-gold-hi); font-size:19px; line-height:1;
  background:radial-gradient(circle at 50% 35%, #3a2410, #1a0f06);
  border:1px solid var(--lt-gold-dim); box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 2px 5px rgba(0,0,0,.4)}

/* poker chip marker */
.lt-checkout .lt-chip{--c:#e9e3d4; --c2:#cfc7b2; position:relative; width:40px; height:40px; border-radius:50%; flex:0 0 auto;
  background:radial-gradient(circle at 50% 38%, var(--c), var(--c2));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.28), inset 0 2px 4px rgba(255,255,255,.5), inset 0 -3px 6px rgba(0,0,0,.28), 0 2px 5px rgba(0,0,0,.4)}
.lt-checkout .lt-chip::before{content:""; position:absolute; inset:4px; border-radius:50%; border:3px dashed rgba(255,255,255,.65)}
.lt-checkout .lt-chip::after{content:""; position:absolute; inset:12px; border-radius:50%; background:radial-gradient(circle at 50% 40%, rgba(255,255,255,.55), rgba(0,0,0,.12)); box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.lt-checkout .c-white{--c:#f4efe3;--c2:#d9d2bd} .lt-checkout .c-red{--c:#c0424b;--c2:#8f2b33} .lt-checkout .c-blue{--c:#3f6fa6;--c2:#284c78}
.lt-checkout .c-green{--c:#3f8763;--c2:#245840} .lt-checkout .c-black{--c:#2c2c31;--c2:#141417} .lt-checkout .c-purple{--c:#6a4a86;--c2:#442c5c}
.lt-checkout .c-orange{--c:#c8823c;--c2:#96591f} .lt-checkout .c-maroon{--c:#8a2e39;--c2:#5c1c25} .lt-checkout .c-gold{--c:#e6c065;--c2:#b8892f}

/* stepper */
.lt-checkout .lt-step{display:inline-flex; align-items:center; gap:6px; margin-top:6px}
.lt-checkout .lt-step button{width:34px; height:34px; border-radius:50%; cursor:pointer; font-size:19px; line-height:1;
  color:var(--lt-gold-hi); background:radial-gradient(circle at 50% 35%, #3a2410, #1a0f06); border:1px solid var(--lt-gold-dim);
  display:grid; place-items:center; font-family:var(--lt-body); padding:0; transition:transform .12s, border-color .2s, color .2s}
.lt-checkout .lt-step button:hover{border-color:var(--lt-gold-hi); color:#fff}
.lt-checkout .lt-step button:active{transform:scale(.9)}
.lt-checkout .lt-step button:disabled{opacity:.35; cursor:not-allowed}
.lt-checkout .lt-step .lt-qty{min-width:24px; text-align:center; font-family:var(--lt-disp); font-size:18px; color:var(--lt-parch); font-variant-numeric:tabular-nums}

/* ---- slip / chip tray ---- */
.lt-checkout .lt-slip{position:sticky; top:20px; border-radius:5px; overflow:hidden;
  background:linear-gradient(180deg, #17140d, #120f09); box-shadow:inset 0 0 0 1px rgba(212,175,82,.4), 0 24px 60px -24px rgba(0,0,0,.85)}
.lt-checkout .lt-slip__head{padding:15px 20px; border-bottom:1px solid var(--lt-line); background:linear-gradient(180deg, rgba(212,175,82,.14), transparent); display:flex; align-items:baseline; justify-content:space-between}
.lt-checkout .lt-slip__head h3{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.2em; font-size:14px; color:var(--lt-gold); margin:0}
.lt-checkout .lt-slip__count{font-size:12px; color:var(--lt-muted); letter-spacing:.08em}
.lt-checkout .lt-slip__body{padding:16px 20px}
.lt-checkout .lt-lines{display:flex; flex-direction:column; gap:11px; min-height:36px}
.lt-checkout .lt-empty{color:var(--lt-muted); font-style:italic; font-size:14px; text-align:center; padding:12px 0}
.lt-checkout .lt-line{display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; font-size:14px}
.lt-checkout .lt-line .lt-dot{width:16px; height:16px; border-radius:50%; box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.lt-checkout .lt-line .lt-ln{color:var(--lt-cream)} .lt-checkout .lt-line .lt-ln small{color:var(--lt-muted); display:block; font-size:12px}
.lt-checkout .lt-line .lt-lp{font-variant-numeric:tabular-nums; color:var(--lt-parch)}
.lt-checkout .lt-rule{height:1px; background:var(--lt-line); margin:16px 0}
.lt-checkout .lt-totrow{display:flex; justify-content:space-between; align-items:center; font-size:14px; color:var(--lt-muted); margin:7px 0}
.lt-checkout .lt-totrow .lt-v{color:var(--lt-cream); font-variant-numeric:tabular-nums}
.lt-checkout .lt-grand{display:flex; justify-content:space-between; align-items:baseline; margin-top:6px}
.lt-checkout .lt-grand .lt-lbl{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.16em; font-size:13px; color:var(--lt-gold)}
.lt-checkout .lt-grand .lt-amt{font-family:var(--lt-disp); font-weight:700; font-size:32px; color:var(--lt-gold-hi); font-variant-numeric:tabular-nums}

/* ---- fields ---- */
.lt-checkout .lt-fee{display:flex; gap:10px; align-items:flex-start; margin:14px 0 2px; cursor:pointer; font-size:13px; color:var(--lt-cream)}
.lt-checkout .lt-fee input{margin-top:2px; accent-color:var(--lt-gold)}
.lt-checkout .lt-fee small{color:var(--lt-muted); display:block}
.lt-checkout .lt-buyer{margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:12px}
.lt-checkout .lt-buyer .lt-full{grid-column:1 / -1}
.lt-checkout .lt-field label{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--lt-muted); margin:0 0 5px}
.lt-checkout .lt-field input,
.lt-checkout .lt-field textarea,
.lt-checkout .lt-field select{width:100%; padding:11px 12px; border-radius:3px; font-family:var(--lt-body); font-size:15px; color:var(--lt-parch);
  background:rgba(241,230,204,.06); border:1px solid rgba(212,175,82,.28); transition:border-color .2s, background .2s}
.lt-checkout .lt-field input::placeholder,
.lt-checkout .lt-field textarea::placeholder{color:#8a7c5f}
.lt-checkout .lt-field input:focus,
.lt-checkout .lt-field textarea:focus,
.lt-checkout .lt-field select:focus{outline:none; border-color:var(--lt-gold-hi); background:rgba(241,230,204,.1)}
.lt-checkout .lt-field textarea{resize:vertical; min-height:76px; line-height:1.5}
/* gold caret on the native select, without losing the leather field fill */
.lt-checkout .lt-field select{-webkit-appearance:none; appearance:none; padding-right:34px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23d4af52' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center}
.lt-checkout .lt-field select option{color:#140b05; background:#f1e6cc}
/* invalid field feedback (e.g. malformed email flagged on blur) */
.lt-checkout .lt-field.is-invalid input{border-color:rgba(176,65,78,.7); background:rgba(176,65,78,.08)}
.lt-checkout .lt-field.is-invalid input:focus{border-color:#d76b76}
.lt-checkout .lt-field.is-invalid::after{content:"Please enter a valid email address."; display:block; margin-top:5px; font-size:11px; letter-spacing:.02em; color:#e6a3ab; text-transform:none}
/* required / optional field tags */
.lt-checkout .lt-req,
.lt-checkout .lt-opt{font-size:9px; letter-spacing:.1em; padding:1px 5px; border-radius:2px; margin-left:6px; vertical-align:middle}
.lt-checkout .lt-req{color:var(--lt-gold-hi); background:rgba(212,175,82,.16); border:1px solid rgba(212,175,82,.35)}
.lt-checkout .lt-opt{color:var(--lt-muted); background:transparent; border:1px solid rgba(212,175,82,.16)}

/* card fields (Accept.js) share the field styling */
.lt-checkout .lt-card{margin-top:16px; padding-top:16px; border-top:1px solid var(--lt-line)}
.lt-checkout .lt-card__title{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--lt-gold); margin:0 0 12px}

.lt-checkout .lt-pay{width:100%; margin-top:18px; padding:15px 18px; border:none; border-radius:3px; cursor:pointer;
  font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.16em; font-size:15px; font-weight:700; color:var(--lt-ink);
  background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold) 55%, var(--lt-gold-dim));
  box-shadow:0 8px 22px -8px rgba(212,175,82,.55), inset 0 1px 0 rgba(255,255,255,.5); transition:transform .12s, filter .2s}
.lt-checkout .lt-pay:hover:not(:disabled){filter:brightness(1.06); transform:translateY(-1px)}
.lt-checkout .lt-pay:disabled{opacity:.45; cursor:not-allowed; filter:grayscale(.3)}
/* busy pay button: dim less than a plain disabled state (it's working, not blocked) + hold a spinner */
.lt-checkout .lt-pay.is-busy{opacity:.9; cursor:progress; filter:none; display:inline-flex; align-items:center; justify-content:center; gap:10px}
.lt-checkout .lt-spinner{display:inline-block; width:16px; height:16px; flex:0 0 auto; border-radius:50%;
  border:2px solid rgba(20,11,5,.35); border-top-color:var(--lt-ink); animation:lt-spin .7s linear infinite}
@keyframes lt-spin{to{transform:rotate(360deg)}}
.lt-checkout .lt-secure{margin:12px 0 2px; text-align:center; font-size:11.5px; color:var(--lt-muted)}
.lt-checkout .lt-secure b{color:var(--lt-gold-dim); font-weight:400}

/* ---- per-seat attendee capture ("Who's attending?") ---- */
.lt-checkout .lt-attend{margin-top:16px; padding:13px 15px 15px; border:1px solid rgba(212,175,82,.22); border-radius:4px;
  background:linear-gradient(180deg, rgba(241,230,204,.05), rgba(241,230,204,.02))}
.lt-checkout .lt-attend[hidden]{display:none}
.lt-checkout .lt-attend__head{display:flex; align-items:center; gap:10px}
.lt-checkout .lt-attend__title{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--lt-gold)}
.lt-checkout .lt-attend__meta{margin-left:auto; font-size:11px; color:var(--lt-muted); font-variant-numeric:tabular-nums}
.lt-checkout .lt-attend__hint{margin:6px 0 0; font-size:12px; color:var(--lt-muted); font-style:italic; line-height:1.45}
.lt-checkout .lt-attend__me{display:flex; gap:10px; align-items:flex-start; margin:12px 0 2px; cursor:pointer; font-size:13px; color:var(--lt-cream); line-height:1.4}
.lt-checkout .lt-attend__me input{margin-top:2px; accent-color:var(--lt-gold); flex:0 0 auto}
.lt-checkout .lt-attend__rows{margin-top:10px; display:flex; flex-direction:column; gap:14px}
.lt-checkout .lt-attendee{border-top:1px solid rgba(212,175,82,.12); padding-top:12px}
.lt-checkout .lt-attendee:first-child{border-top:none; padding-top:4px}
.lt-checkout .lt-attendee__seat{display:flex; align-items:center; gap:8px; font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.16em; font-size:10.5px; color:var(--lt-gold-dim); margin-bottom:8px}
.lt-checkout .lt-attendee__you{text-transform:none; letter-spacing:.04em; font-size:9px; color:var(--lt-ink); font-weight:700; padding:1px 6px; border-radius:2px;
  background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold))}
.lt-checkout .lt-attendee__fields{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.lt-checkout .lt-attendee__fields .lt-full{grid-column:1 / -1}
.lt-checkout .lt-attendee input:disabled{opacity:.7; cursor:not-allowed}
@media(max-width:420px){ .lt-checkout .lt-attendee__fields{grid-template-columns:1fr} }
/* touched-but-incomplete attendee name — a gentle border cue, no email-specific message */
.lt-checkout .lt-field.is-need input{border-color:rgba(176,65,78,.6); background:rgba(176,65,78,.07)}
.lt-checkout .lt-field.is-need input:focus{border-color:#d76b76}

.lt-checkout .lt-status{margin:0 0 14px; padding:11px 14px; border-radius:3px; font-size:14px; display:none}
.lt-checkout .lt-status.is-error{display:block; background:rgba(176,65,78,.14); border:1px solid rgba(176,65,78,.5); color:#f0c9ce}
.lt-checkout .lt-status.is-busy{display:block; background:rgba(212,175,82,.1); border:1px solid var(--lt-line); color:var(--lt-cream)}
.lt-checkout .lt-status.is-success{display:block; background:rgba(63,135,99,.14); border:1px solid rgba(63,135,99,.5); color:#c8e6d3}

.lt-checkout .lt-loading{color:var(--lt-muted); font-style:italic; text-align:center; padding:24px}
.lt-checkout :focus-visible{outline:2px solid var(--lt-gold-hi); outline-offset:2px}

/* =====================================================================
   POST-PURCHASE CONFIRMATION ([luminary_tickets] success receipt)
   Replaces the whole widget after a completed charge: an unmistakable
   "paid" state with an itemized receipt, the email tickets are sent to,
   and the confirmation/registration id.
   ===================================================================== */
.lt-checkout .lt-confirm{display:flex; justify-content:center}
.lt-checkout .lt-rc{width:100%; max-width:560px; text-align:center; padding:6px 4px 4px}
.lt-checkout .lt-rc__badge{display:inline-grid; place-items:center; width:64px; height:64px; margin:6px auto 18px; border-radius:50%;
  color:var(--lt-ink); background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold) 55%, var(--lt-gold-dim));
  box-shadow:0 10px 26px -10px rgba(212,175,82,.7), inset 0 1px 0 rgba(255,255,255,.6); animation:lt-pop .35s ease-out}
@keyframes lt-pop{0%{transform:scale(.6); opacity:0} 60%{transform:scale(1.08)} 100%{transform:scale(1); opacity:1}}
.lt-checkout .lt-rc__eyebrow{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.34em; font-size:11px; color:var(--lt-gold); margin:0 0 10px; padding-left:.34em}
.lt-checkout .lt-rc__title{font-family:var(--lt-disp); font-weight:700; font-size:clamp(24px,4vw,34px); color:var(--lt-parch); margin:0; letter-spacing:.01em}
.lt-checkout .lt-rc__sub{margin:8px 0 0; color:var(--lt-muted); font-size:15px}
.lt-checkout .lt-rc__sub em{color:var(--lt-gold-hi); font-style:normal}

.lt-checkout .lt-rc__card{margin:22px 0 0; padding:18px 20px; border-radius:5px; text-align:left;
  background:linear-gradient(180deg, #17140d, #120f09);
  box-shadow:inset 0 0 0 1px rgba(212,175,82,.4), 0 24px 60px -30px rgba(0,0,0,.85)}
.lt-checkout .lt-rc__lines{display:flex; flex-direction:column; gap:12px}
.lt-checkout .lt-rc__line{display:flex; justify-content:space-between; align-items:baseline; gap:14px; font-size:15px}
.lt-checkout .lt-rc__ln{color:var(--lt-cream)} .lt-checkout .lt-rc__ln small{display:block; color:var(--lt-muted); font-size:12px; margin-top:2px}
.lt-checkout .lt-rc__lp{font-variant-numeric:tabular-nums; color:var(--lt-parch); white-space:nowrap}
.lt-checkout .lt-rc__rule{height:1px; background:var(--lt-line); margin:15px 0}
.lt-checkout .lt-rc__row{display:flex; justify-content:space-between; align-items:baseline; gap:14px; font-size:13.5px; color:var(--lt-muted); margin:8px 0}
.lt-checkout .lt-rc__row span:last-child{color:var(--lt-cream); font-variant-numeric:tabular-nums}
.lt-checkout .lt-rc__total{display:flex; justify-content:space-between; align-items:baseline; gap:14px; margin-top:4px}
.lt-checkout .lt-rc__total span:first-child{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.16em; font-size:13px; color:var(--lt-gold)}
.lt-checkout .lt-rc__total span:last-child{font-family:var(--lt-disp); font-weight:700; font-size:26px; color:var(--lt-gold-hi); font-variant-numeric:tabular-nums}

.lt-checkout .lt-rc__mail{display:flex; align-items:flex-start; gap:11px; margin:20px 0 0; padding:13px 16px; border-radius:4px; text-align:left;
  background:rgba(212,175,82,.08); border:1px solid rgba(212,175,82,.24)}
.lt-checkout .lt-rc__mail-ico{font-size:17px; line-height:1.5; color:var(--lt-gold); flex:0 0 auto}
.lt-checkout .lt-rc__mail p{margin:0; font-size:13.5px; line-height:1.55; color:var(--lt-cream)}
.lt-checkout .lt-rc__mail b{color:var(--lt-parch); word-break:break-word}

/* captured attendee names on the receipt */
.lt-checkout .lt-rc__guests{margin:16px 0 0; padding:14px 16px; border-radius:4px; text-align:left;
  background:rgba(241,230,204,.04); border:1px solid rgba(212,175,82,.2)}
.lt-checkout .lt-rc__guests-lbl{margin:0 0 8px; font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.16em; font-size:11px; color:var(--lt-gold)}
.lt-checkout .lt-rc__guest-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px}
.lt-checkout .lt-rc__guest-list li{display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:14px; color:var(--lt-cream)}
.lt-checkout .lt-rc__guest-name{color:var(--lt-parch)}
.lt-checkout .lt-rc__guest-em{color:var(--lt-muted); font-size:12px; word-break:break-word; text-align:right}

.lt-checkout .lt-rc__ref{display:flex; align-items:center; justify-content:center; gap:10px; margin:16px 0 0; font-size:12px}
.lt-checkout .lt-rc__ref-lbl{text-transform:uppercase; letter-spacing:.14em; color:var(--lt-muted)}
.lt-checkout .lt-rc__ref-val{font-family:var(--lt-disp); letter-spacing:.06em; color:var(--lt-gold-hi); font-variant-numeric:tabular-nums;
  padding:3px 9px; border-radius:3px; background:rgba(212,175,82,.1); border:1px solid rgba(212,175,82,.28); word-break:break-all}

.lt-checkout .lt-rc__again{margin:24px auto 4px; display:inline-block; padding:11px 22px; border-radius:3px; cursor:pointer;
  font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:700;
  color:var(--lt-gold-hi); background:transparent; border:1px solid var(--lt-gold-dim); transition:border-color .2s, color .2s}
.lt-checkout .lt-rc__again:hover{border-color:var(--lt-gold-hi); color:#fff}

/* ---- mobile sticky pay bar (phones only) ---- */
.lt-checkout .lt-bar{
  position:sticky; bottom:0; z-index:6; display:flex; align-items:center; justify-content:space-between; gap:14px;
  margin-top:20px; padding:12px 14px; border-radius:5px;
  background:linear-gradient(180deg, #1c160d, #120d07);
  box-shadow:inset 0 0 0 1px rgba(212,175,82,.4), 0 -10px 30px -12px rgba(0,0,0,.9), 0 14px 40px -18px rgba(0,0,0,.85);
}
.lt-checkout .lt-bar[hidden]{display:none}
.lt-checkout .lt-bar__info{display:flex; flex-direction:column; line-height:1.15}
.lt-checkout .lt-bar__count{font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--lt-muted)}
.lt-checkout .lt-bar__total{font-family:var(--lt-disp); font-weight:700; font-size:24px; color:var(--lt-gold-hi); font-variant-numeric:tabular-nums}
.lt-checkout .lt-bar__btn{
  flex:1 1 auto; max-width:60%; padding:13px 14px; border:none; border-radius:3px; cursor:pointer;
  font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.12em; font-size:13px; font-weight:700; color:var(--lt-ink);
  background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold) 55%, var(--lt-gold-dim));
  box-shadow:0 6px 18px -8px rgba(212,175,82,.6), inset 0 1px 0 rgba(255,255,255,.5);
}
@media(min-width:860px){ .lt-checkout .lt-bar{display:none} }

@media(prefers-reduced-motion:reduce){ .lt-checkout *{animation:none!important; transition:none!important} }

/* =====================================================================
   SPONSORSHIP EMBED  ([luminary_sponsorships])
   Shares the .lt-checkout tokens/fields; presents scarce, prestige tiers
   as premium corporate cards rather than the poker-chip cart.
   ===================================================================== */
.lt-sponsors .lt-mast--spon{text-align:center; padding:2px 0 26px; border-bottom:1px solid var(--lt-line); margin-bottom:28px}
.lt-sponsors .lt-mast--spon .lt-title em{color:var(--lt-gold-hi); font-style:normal}

/* Auto-fit + centered: cards cap their width and the row centers, so 2 cards sit centered
   instead of left-aligning against an empty third column. Collapses to 1 column on narrow screens. */
.lt-sponsors .lt-spon-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 360px)); justify-content:center; gap:22px}

.lt-sponsors .lt-spon{
  position:relative; display:flex; flex-direction:column; padding:24px 22px 22px; border-radius:5px;
  background:linear-gradient(180deg, #191309, #120d07);
  border:1px solid rgba(212,175,82,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 24px 60px -34px rgba(0,0,0,.85);
}
/* gold foil edge along the top — the prestige tell */
.lt-sponsors .lt-spon::before{content:""; position:absolute; left:0; right:0; top:0; height:3px; border-radius:5px 5px 0 0;
  background:linear-gradient(90deg, var(--lt-gold-dim), var(--lt-gold-hi), var(--lt-gold-dim))}
.lt-sponsors .lt-spon.is-custom{border-color:rgba(212,175,82,.5)}
.lt-sponsors .lt-spon.is-custom::before{height:4px; background:linear-gradient(90deg, var(--lt-gold), var(--lt-gold-hi) 50%, var(--lt-gold))}

.lt-sponsors .lt-spon__eyebrow{font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.32em; font-size:10px; color:var(--lt-gold-dim); margin:0 0 8px; padding-left:.32em}
.lt-sponsors .lt-spon__name{font-family:var(--lt-disp); font-weight:700; font-size:clamp(20px,2.6vw,25px); color:var(--lt-parch); margin:0; line-height:1.12}
.lt-sponsors .lt-spon__meta{display:flex; align-items:baseline; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:12px}
.lt-sponsors .lt-spon__price{font-family:var(--lt-disp); font-weight:700; font-size:26px; color:var(--lt-gold-hi); font-variant-numeric:tabular-nums; line-height:1}
.lt-sponsors .lt-spon__price em{font-style:italic; font-weight:400; font-size:20px; color:var(--lt-gold)}
.lt-sponsors .lt-spon__avail{font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--lt-ink);
  background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold)); padding:4px 9px; border-radius:2px; font-weight:700}
.lt-sponsors .lt-spon__avail.is-gone{color:var(--lt-muted); background:rgba(241,230,204,.06); border:1px solid var(--lt-line)}

.lt-sponsors .lt-spon__desc{color:var(--lt-cream); font-size:14px; line-height:1.55; margin:16px 0 0; opacity:.92}
.lt-sponsors .lt-spon__benefits{margin:14px 0 0; padding:0; list-style:none; color:var(--lt-cream); font-size:13.5px}
.lt-sponsors ul.lt-spon__benefits li{position:relative; padding:4px 0 4px 20px; line-height:1.5; border-bottom:1px solid rgba(212,175,82,.1)}
.lt-sponsors ul.lt-spon__benefits li:last-child{border-bottom:none}
.lt-sponsors ul.lt-spon__benefits li::before{content:"♠"; position:absolute; left:0; top:4px; color:var(--lt-gold); font-size:11px}
.lt-sponsors p.lt-spon__benefits{line-height:1.55}
.lt-sponsors .lt-spon__incl{margin-top:16px}

.lt-sponsors .lt-spon__cta{margin-top:auto; padding-top:20px}
.lt-sponsors .lt-spon__btn{
  width:100%; padding:13px 16px; border:none; border-radius:3px; cursor:pointer;
  font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.12em; font-size:13px; font-weight:700; color:var(--lt-ink);
  background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold) 55%, var(--lt-gold-dim));
  box-shadow:0 8px 22px -10px rgba(212,175,82,.55), inset 0 1px 0 rgba(255,255,255,.5); transition:transform .12s, filter .2s}
.lt-sponsors .lt-spon__btn:hover:not(:disabled){filter:brightness(1.06); transform:translateY(-1px)}
.lt-sponsors .lt-spon__btn:disabled{opacity:.5; cursor:not-allowed; filter:grayscale(.4)}
.lt-sponsors .lt-spon__btn.is-open{filter:brightness(.92)}
.lt-sponsors .lt-spon__btn--ghost{color:var(--lt-gold-hi); background:transparent; border:1px solid var(--lt-gold-dim); box-shadow:none}
.lt-sponsors .lt-spon__btn--ghost:hover:not(:disabled){border-color:var(--lt-gold-hi); color:#fff; filter:none}
.lt-sponsors .lt-spon__note{margin:12px 0 0; font-size:13px; color:var(--lt-muted); font-style:italic; text-align:center}

.lt-sponsors .lt-spon__checkout{margin-top:16px; padding-top:16px; border-top:1px solid var(--lt-line)}
.lt-sponsors .lt-spon__checkout[hidden]{display:none}
.lt-sponsors .lt-spon__checkout .lt-buyer{margin-top:0}
.lt-sponsors .lt-spon__checkout .lt-pay{margin-top:16px}

/* the secondary "Request info" action sits under the primary CTA / checkout panel */
.lt-sponsors .lt-spon__btn--next{margin-top:10px}
.lt-sponsors .lt-spon__btn--next.is-open{filter:none; border-color:var(--lt-gold-hi); color:#fff}

/* ---- Request Information form (in-card, never navigates away) ---- */
.lt-sponsors .lt-spon__inq{margin-top:16px; padding-top:16px; border-top:1px solid var(--lt-line)}
.lt-sponsors .lt-spon__inq[hidden]{display:none}
.lt-sponsors .lt-spon__inq .lt-buyer{margin-top:16px}
.lt-sponsors .lt-spon__inq .lt-pay{margin-top:16px}

/* signature: a torn ticket-stub confirming the requested level, read-only, gold-foil edged */
.lt-sponsors .lt-inq__stub{position:relative; display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px;
  padding:12px 16px; border-radius:3px; overflow:hidden;
  background:linear-gradient(180deg, rgba(212,175,82,.16), rgba(212,175,82,.05));
  border:1px solid rgba(212,175,82,.4)}
/* perforation down the left edge — the stub tell */
.lt-sponsors .lt-inq__stub::before{content:""; position:absolute; left:8px; top:0; bottom:0; width:1px;
  background:repeating-linear-gradient(180deg, var(--lt-gold-dim) 0 3px, transparent 3px 7px)}
.lt-sponsors .lt-inq__stub-lbl{flex:0 0 100%; font-family:var(--lt-disp); text-transform:uppercase; letter-spacing:.22em;
  font-size:10px; color:var(--lt-gold-dim); padding-left:12px}
.lt-sponsors .lt-inq__stub-name{font-family:var(--lt-disp); font-weight:700; font-size:17px; color:var(--lt-parch); padding-left:12px; line-height:1.1}
.lt-sponsors .lt-inq__stub-price{margin-left:auto; font-family:var(--lt-disp); font-weight:700; font-size:15px; color:var(--lt-gold-hi); font-variant-numeric:tabular-nums}

.lt-sponsors .lt-inq__custom{display:flex; gap:10px; align-items:flex-start; margin:14px 0 0; cursor:pointer; font-size:13px; color:var(--lt-cream); line-height:1.4}
.lt-sponsors .lt-inq__custom input{margin-top:2px; accent-color:var(--lt-gold); flex:0 0 auto}

/* warm confirmation that replaces the form on success */
.lt-sponsors .lt-inq__done{text-align:center; padding:22px 12px 8px}
.lt-sponsors .lt-inq__done-mark{display:inline-grid; place-items:center; width:44px; height:44px; margin:0 auto 12px; border-radius:50%;
  color:var(--lt-gold-hi); font-size:20px; background:radial-gradient(circle at 50% 35%, #3a2410, #1a0f06); border:1px solid var(--lt-gold-dim)}
.lt-sponsors .lt-inq__done-title{font-family:var(--lt-disp); font-weight:700; font-size:19px; color:var(--lt-parch); margin:0 0 6px}
.lt-sponsors .lt-inq__done-copy{color:var(--lt-cream); font-size:14px; line-height:1.55; margin:0; opacity:.92}

/* Sponsorship inquiry form — opens full-width BELOW the grid so it never squeezes a card / breaks responsiveness. */
.lt-sponsors .lt-spon__inqwrap{margin:24px auto 0; max-width:680px}
.lt-sponsors .lt-spon__inqwrap .lt-spon__inq{position:relative; padding:26px 22px 20px; border:1px solid var(--lt-gold-dim); border-radius:2px; background:linear-gradient(180deg, rgba(212,175,82,.08), rgba(20,11,5,.55)); box-shadow:0 14px 44px rgba(0,0,0,.45)}
.lt-checkout .lt-inq__close{position:absolute; top:8px; right:12px; width:30px; height:30px; background:none; border:0; color:var(--lt-cream); font-size:24px; line-height:1; cursor:pointer; opacity:.6; transition:opacity .15s, color .15s}
.lt-checkout .lt-inq__close:hover{opacity:1; color:var(--lt-gold-hi)}

/* =====================================================================
   DONATIONS
   Shared: the optional "Add a donation" amount box on the ticket slip and
   sponsorship panel + the amount box on the standalone [luminary_donate] embed.
   ===================================================================== */
.lt-checkout .lt-give{margin:14px 0 4px}
.lt-checkout .lt-give__lbl{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--lt-muted); margin:0 0 6px}
.lt-checkout .lt-give__lbl small{text-transform:none; letter-spacing:0; font-size:11.5px; font-style:italic; color:var(--lt-gold-dim)}
.lt-checkout .lt-amtbox{position:relative; display:flex; align-items:center}
.lt-checkout .lt-amtbox__sign{position:absolute; left:12px; font-family:var(--lt-disp); font-size:16px; color:var(--lt-gold); pointer-events:none}
.lt-checkout .lt-amtbox input{width:100%; padding:11px 12px 11px 26px; border-radius:3px; font-family:var(--lt-body); font-size:16px; color:var(--lt-parch);
  background:rgba(241,230,204,.06); border:1px solid rgba(212,175,82,.28); font-variant-numeric:tabular-nums; transition:border-color .2s, background .2s}
.lt-checkout .lt-amtbox input:focus{outline:none; border-color:var(--lt-gold-hi); background:rgba(241,230,204,.1)}
.lt-checkout .lt-totrow--give .lt-v{color:var(--lt-gold-hi)}

/* ---- standalone donate embed ([luminary_donate]) ---- */
.lt-donate{max-width:640px}
.lt-donate .lt-donate__body{max-width:520px; margin:0 auto}
/* suggested-amount chips: quiet gold-edged tiles that fill to gold when chosen (the poker-chip tell) */
.lt-donate .lt-give-amounts{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:14px}
@media(max-width:440px){ .lt-donate .lt-give-amounts{grid-template-columns:repeat(2,1fr)} }
.lt-donate .lt-give-chip{
  padding:14px 8px; border-radius:4px; cursor:pointer;
  font-family:var(--lt-disp); font-weight:700; font-size:18px; color:var(--lt-parch); font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg, rgba(241,230,204,.06), rgba(241,230,204,.03));
  border:1px solid rgba(212,175,82,.3); transition:border-color .2s, background .2s, color .2s, transform .1s}
.lt-donate .lt-give-chip:hover{border-color:var(--lt-gold-hi)}
.lt-donate .lt-give-chip:active{transform:scale(.97)}
.lt-donate .lt-give-chip.is-on{color:var(--lt-ink); border-color:var(--lt-gold-hi);
  background:linear-gradient(180deg, var(--lt-gold-hi), var(--lt-gold) 55%, var(--lt-gold-dim));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.lt-donate .lt-fee{margin-top:16px}

/* =====================================================================
   RAFFLE PRIZE-DONATION FORM  ([luminary_prize_donation])
   Shares the .lt-checkout tokens/fields; a single-column offer form where a
   business or donor pledges an item for the raffle — no cart, no payment.
   ===================================================================== */
.lt-prize{max-width:640px}
.lt-prize .lt-prize__body{max-width:560px; margin:0 auto}
/* the buyer grid already gives a 2-up row for the short fields (email/phone,
   deliver/date); everything meaningful is lt-full, so it reads single-column on phones */
.lt-prize .lt-prize__body .lt-buyer{margin-top:0}
.lt-prize .lt-field[hidden]{display:none}

/* radio choice groups (delivery method + recognition) — leather field styling, gold accents */
.lt-checkout fieldset.lt-choices{border:0; margin:0; padding:0; min-width:0}
.lt-checkout fieldset.lt-choices legend{display:block; padding:0; float:none; width:100%;
  font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--lt-muted); margin:0 0 8px}
.lt-checkout .lt-choice{display:flex; align-items:flex-start; gap:9px; padding:6px 0; cursor:pointer;
  color:var(--lt-cream); font-size:14.5px; line-height:1.45; text-transform:none; letter-spacing:0}
.lt-checkout .lt-choice input[type=radio]{flex:0 0 auto; width:16px; height:16px; margin:2px 0 0;
  accent-color:var(--lt-gold); cursor:pointer}
.lt-checkout .lt-choice__more{width:100%; margin:2px 0 6px 25px; padding:10px 12px; border-radius:3px;
  font-family:var(--lt-body); font-size:15px; color:var(--lt-parch);
  background:rgba(241,230,204,.06); border:1px solid rgba(212,175,82,.28); transition:border-color .2s, background .2s}
.lt-checkout .lt-choice__more::placeholder{color:#8a7c5f}
.lt-checkout .lt-choice__more:focus{outline:none; border-color:var(--lt-gold-hi); background:rgba(241,230,204,.1)}
.lt-checkout .lt-choice__more:disabled{opacity:.4; cursor:not-allowed}

/* warm confirmation that replaces the form on success — diamond suit ties it to the table */
.lt-prize .lt-prize__done{text-align:center; padding:26px 12px 12px}
.lt-prize .lt-prize__done-mark{display:inline-grid; place-items:center; width:48px; height:48px; margin:0 auto 14px; border-radius:50%;
  color:var(--lt-gold-hi); font-size:22px; background:radial-gradient(circle at 50% 35%, #3a2410, #1a0f06); border:1px solid var(--lt-gold-dim)}
.lt-prize .lt-prize__done-title{font-family:var(--lt-disp); font-weight:700; font-size:21px; color:var(--lt-parch); margin:0 0 8px}
.lt-prize .lt-prize__done-copy{color:var(--lt-cream); font-size:14.5px; line-height:1.55; margin:0 auto; max-width:400px; opacity:.92}
