/* GHAC Booking — front-end form (inherits Altitude tokens; provides fallbacks). */
.ghac-booking{--ghac-navy:#1D1D1E;--ghac-sky:#2974B8;--ghac-amber:#4D9CDA;--ghac-amber-2:#6BB0E2;--ghac-muted:#6B7177;--ghac-line-dk:rgba(11,22,34,.10);--ghac-ink:#1D1D1E;--ghac-serif:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;--ghac-sans:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;--ghac-ease:cubic-bezier(.22,.61,.36,1);--ghac-navy-3:#1F6FB2;--ghac-cloud:#EAF3FB;--ghac-paper:#F6F9FC}

/* Request mode — event summary card (replaces the pass step when nothing is sold) */
.ghac-reqevent{background:var(--ghac-paper);border:1px solid var(--ghac-line-dk);border-radius:14px;padding:20px 22px}
.ghac-reqevent__lbl{display:block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ghac-muted);margin-bottom:9px}
.ghac-reqevent__t{font-family:var(--ghac-serif);font-weight:700;font-size:20px;line-height:1.25;color:var(--ghac-navy);margin:0}
.ghac-reqevent__m{font-size:14px;font-weight:600;color:var(--ghac-navy-3);margin:7px 0 0}
.ghac-reqevent__note{font-size:13px;line-height:1.55;color:var(--ghac-muted);margin:14px 0 0;padding-top:13px;border-top:1px solid var(--ghac-line-dk)}
.ghac-wizard .ghac-reqevent+.ghac-wizard__nav{margin-top:22px}

.ghac-form{display:grid;gap:16px}
.ghac-field{display:flex;flex-direction:column;gap:7px}
.ghac-field label{font-size:13px;font-weight:600;color:var(--ghac-navy);letter-spacing:.01em}
.ghac-field .req{color:var(--ghac-amber)}
.ghac-input{font-family:var(--ghac-sans);font-size:15px;padding:12px 14px;border:1px solid var(--ghac-line-dk);border-radius:10px;background:#fff;color:var(--ghac-ink);width:100%;transition:.25s var(--ghac-ease)}
.ghac-input:focus{outline:none;border-color:var(--ghac-sky);box-shadow:0 0 0 4px rgba(77,156,218,.14)}
.ghac-row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ghac-tickets-select{display:grid;gap:8px}
.ghac-ticket-opt{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--ghac-line-dk);border-radius:12px;cursor:pointer;transition:.25s var(--ghac-ease);font-size:15px}
.ghac-ticket-opt:hover{border-color:var(--ghac-sky)}
.ghac-ticket-opt.is-selected{border-color:var(--ghac-amber);background:#EAF3FB}
.ghac-ticket-opt .price{font-family:var(--ghac-serif);font-weight:600;color:var(--ghac-navy)}
.ghac-honeypot{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ghac-total{border-top:1px solid var(--ghac-line-dk);border-bottom:1px solid var(--ghac-line-dk);font-family:var(--ghac-serif)}
.ghac-form__msg{padding:14px 16px;border-radius:10px;font-size:14.5px;font-weight:500;line-height:1.5}
.ghac-form__msg.is-error{background:#fdecec;color:#b3261e;border:1px solid #f3c0bd}
.ghac-form__msg.is-success{background:#eaf6ee;color:#1e7a3e;border:1px solid #bfe3cb}
.ghac-form.is-loading{opacity:.6;pointer-events:none}
.ghac-bank-details{margin-top:10px;font-size:13.5px;background:rgba(255,255,255,.6);border-radius:8px;padding:6px 12px}

/* btn fallback if theme not present */
.ghac-booking .ghac-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:600;font-size:15px;padding:15px 28px;border-radius:100px;border:1px solid transparent;cursor:pointer;transition:.3s var(--ghac-ease);text-decoration:none}
.ghac-booking .ghac-btn--amber{background:var(--ghac-navy-3);color:#fff}
.ghac-booking .ghac-btn--amber:hover{background:#15598F;color:#fff}
.ghac-booking .ghac-btn--amber:disabled{opacity:.45;cursor:not-allowed}
.ghac-booking .ghac-btn--outline{background:transparent;border-color:var(--ghac-line-dk);color:var(--ghac-navy)}
.ghac-booking .ghac-btn--outline:hover{border-color:var(--ghac-navy)}
.ghac-booking .ghac-btn--block{display:flex;width:100%}

/* ---- multi-step wizard ---- */
.ghac-wizard{--ghac-progress:0;position:relative}
.ghac-steps{display:flex;list-style:none;margin:0 0 30px;padding:0;position:relative}
.ghac-steps::before{content:"";position:absolute;top:18px;left:16%;right:16%;height:2px;background:var(--ghac-line-dk);z-index:0}
.ghac-steps::after{content:"";position:absolute;top:18px;left:16%;height:2px;background:var(--ghac-navy-3);z-index:1;width:calc(68% * var(--ghac-progress));transition:width .45s var(--ghac-ease)}
.ghac-steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ghac-muted);position:relative;z-index:2}
.ghac-steps li .n{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid var(--ghac-line-dk);color:var(--ghac-muted);font-family:var(--ghac-serif);font-size:17px;transition:.3s var(--ghac-ease)}
.ghac-steps li.is-active{color:var(--ghac-navy)}
.ghac-steps li.is-active .n{border-color:var(--ghac-navy-3);color:var(--ghac-navy-3);box-shadow:0 0 0 5px rgba(77,156,218,.14)}
.ghac-steps li.is-done .n{background:var(--ghac-navy-3);border-color:var(--ghac-navy-3);color:#fff}
.ghac-panel{display:none}
.ghac-panel.is-active{display:block;animation:ghac-panel-in .42s var(--ghac-ease)}
@keyframes ghac-panel-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.ghac-wizard__nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px}
.ghac-wizard__nav .ghac-btn{min-width:130px}
.ghac-wizard__nav>span{flex:1}
.ghac-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231D1D1E' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px}
.ghac-ticket-opt__name{display:flex;align-items:center;gap:10px}
.ghac-input.is-invalid{border-color:#d9534f;box-shadow:0 0 0 4px rgba(217,83,79,.12)}
.ghac-review{display:grid;border:1px solid var(--ghac-line-dk);border-radius:14px;overflow:hidden;margin-bottom:18px}
.ghac-review__row{display:flex;justify-content:space-between;gap:18px;padding:13px 16px;font-size:14.5px}
.ghac-review__row:nth-child(odd){background:#fafbfc}
.ghac-review__row span{color:var(--ghac-muted)}
.ghac-review__row strong{color:var(--ghac-navy);text-align:right;font-weight:600}
.ghac-gateways{display:grid;gap:8px;margin-bottom:16px}
.ghac-field-label{font-size:13px;font-weight:600;color:var(--ghac-navy);margin-bottom:2px;display:block}
.ghac-total{display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-size:19px;font-weight:600;color:var(--ghac-navy);border-top:1px solid var(--ghac-line-dk)}
.ghac-total .ghac-total-amount{font-family:var(--ghac-serif)}
.ghac-terms{font-size:12px;color:var(--ghac-muted);margin:12px 0 0}
.ghac-success{text-align:center;padding:26px 10px}
.ghac-success__check{width:66px;height:66px;border-radius:50%;background:var(--ghac-navy-3);color:#fff;font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;animation:ghac-pop .45s var(--ghac-ease)}
@keyframes ghac-pop{from{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}
.ghac-success__msg{font-size:16px;color:var(--ghac-ink);line-height:1.65;max-width:46ch;margin:0 auto}
@media (prefers-reduced-motion:reduce){.ghac-panel.is-active,.ghac-success__check{animation:none}.ghac-steps::after{transition:none}}

@media(max-width:600px){
  .ghac-row-2{grid-template-columns:1fr}
  .ghac-steps li .t{display:none}
  .ghac-wizard__nav .ghac-btn{min-width:0;flex:1}
}

/* ---- plan cards ---- */
.ghac-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ghac-plan-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--ghac-line-dk);border-radius:16px;padding:18px;cursor:pointer;transition:.3s var(--ghac-ease);background:#fff}
.ghac-plan-card:hover{border-color:var(--ghac-sky)}
.ghac-plan-card.is-selected{border-color:var(--ghac-navy-3);box-shadow:0 0 0 3px rgba(31,111,178,.14)}
.ghac-plan-card.is-pop{border:2px solid var(--ghac-navy-3)}
.ghac-plan-card input{position:absolute;opacity:0;pointer-events:none}
.ghac-plan-card__tag{position:absolute;top:-10px;left:16px;background:var(--ghac-navy-3);color:#fff;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 11px;border-radius:100px}
.ghac-plan-card__kind{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ghac-amber);margin-bottom:2px}
.ghac-plan-card__name{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ghac-navy-3)}
.ghac-plan-card__price{font-family:var(--ghac-serif);font-size:27px;font-weight:800;color:var(--ghac-ink);line-height:1;margin:6px 0 2px}
.ghac-plan-card__desc{font-size:12.5px;color:var(--ghac-muted);line-height:1.4;margin-bottom:4px}
.ghac-plan-card__feat{list-style:none;padding:0;margin:12px 0 14px;display:flex;flex-direction:column;gap:7px}
.ghac-plan-card__feat li{font-size:12px;color:#3A4047;line-height:1.35;padding-left:20px;position:relative}
.ghac-plan-card__feat li::before{content:"\2713";position:absolute;left:0;color:var(--ghac-navy-3);font-weight:700}
.ghac-plan-card__pick{margin-top:auto;text-align:center;font-size:13px;font-weight:600;border-radius:9px;padding:10px;border:1px solid var(--ghac-line-dk);color:var(--ghac-ink);transition:.25s var(--ghac-ease)}
.ghac-plan-card.is-selected .ghac-plan-card__pick,.ghac-plan-card.is-pop .ghac-plan-card__pick{background:var(--ghac-navy-3);color:#fff;border-color:var(--ghac-navy-3)}

/* ---- extras: donation + payment option ---- */
.ghac-extras{display:grid;gap:18px;margin-bottom:18px;padding:18px;background:var(--ghac-cloud);border-radius:14px}
.ghac-extras__hint{font-size:12.5px;color:var(--ghac-muted);margin:2px 0 10px}
.ghac-donate__opts{display:flex;flex-wrap:wrap;gap:8px}
.ghac-donate__chip{font-family:var(--ghac-sans);font-size:13.5px;font-weight:600;border:1px solid var(--ghac-line-dk);background:#fff;color:var(--ghac-navy);border-radius:100px;padding:9px 16px;cursor:pointer;transition:.25s var(--ghac-ease)}
.ghac-donate__chip:hover{border-color:var(--ghac-sky)}
.ghac-donate__chip.is-on{background:var(--ghac-navy-3);color:#fff;border-color:var(--ghac-navy-3)}
.ghac-donate__custom{width:110px;font-size:14px;padding:9px 12px;border:1px solid var(--ghac-line-dk);border-radius:100px;background:#fff;color:var(--ghac-ink)}
.ghac-payopt__segs{display:flex;gap:10px;flex-wrap:wrap}
.ghac-payopt__seg{flex:1;min-width:160px;display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--ghac-navy);border:1px solid var(--ghac-line-dk);background:#fff;border-radius:11px;padding:12px 14px;cursor:pointer;transition:.25s var(--ghac-ease)}
.ghac-payopt__seg.is-selected{border-color:var(--ghac-navy-3);box-shadow:0 0 0 3px rgba(31,111,178,.13)}
.ghac-payopt__seg input{accent-color:var(--ghac-navy-3)}

/* ---- total breakdown (overrides single-line total) ---- */
#ghac-total.ghac-total{display:block;padding:14px 0;font-size:14px;font-weight:400}
.ghac-total__row{display:flex;justify-content:space-between;gap:18px;padding:6px 0;color:var(--ghac-muted)}
.ghac-total__row span:last-child{font-family:var(--ghac-serif);color:var(--ghac-ink);font-weight:600}
.ghac-total__row.is-strong{color:var(--ghac-ink);font-size:17px;font-weight:700;border-top:1px solid var(--ghac-line-dk);margin-top:6px;padding-top:12px}
.ghac-total__row.is-strong span:last-child{font-weight:800}

@media(max-width:680px){
  .ghac-plan-grid{grid-template-columns:1fr}
}

/* ---- field groups (schema-driven form) ---------------------------------- */
.ghac-fgroup{margin-bottom:26px}
.ghac-fgroup:last-child{margin-bottom:0}
.ghac-fgroup__h{font-size:15px;font-weight:700;color:var(--ghac-navy,#1D1D1E);margin:0 0 4px;letter-spacing:-.01em}
.ghac-fgroup__intro{font-size:13.5px;color:var(--ghac-muted,#6B7177);margin:0 0 18px;line-height:1.5}
.ghac-field__help{display:block;font-size:12.5px;color:var(--ghac-muted,#6B7177);margin-top:6px;line-height:1.45}

/* Consent rows: the tap target is the whole row, not the 16px box. */
.ghac-consent{border:1px solid var(--ghac-line-dk,rgba(11,22,34,.10));border-radius:12px;padding:2px 14px;margin-bottom:10px;transition:.25s ease;background:#fff}
.ghac-consent:last-child{margin-bottom:0}
.ghac-consent:hover{border-color:var(--ghac-sky,#2974B8)}
.ghac-consent__row{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:13px 0;margin:0;font-size:14.5px;line-height:1.5;min-height:44px;box-sizing:border-box}
.ghac-consent__row input[type=checkbox]{width:18px;height:18px;flex:none;margin:1px 0 0;accent-color:var(--ghac-sky,#2974B8);cursor:pointer}
.ghac-consent__row span{color:var(--ghac-ink,#1D1D1E)}
.ghac-consent__row a{text-decoration:underline;text-underline-offset:2px}
.ghac-consent .ghac-field__help{margin:-4px 0 12px 30px}
.ghac-consent.is-invalid{border-color:#b32d2e;background:#fdf4f4}
.ghac-consent .req{color:#b32d2e;font-weight:700}

/* The [hidden] attribute is only `display:none` in the UA sheet, so ANY class
   rule that sets a display beats it. `.ghac-extras{display:grid}` did exactly
   that, leaving the donation amounts, the payment-method picker and the total
   on screen for request-mode events — forms that explicitly take no payment.
   The JS toggles `hidden`, so make `hidden` actually mean hidden. */
.ghac-booking-form [hidden]{display:none !important}

/* iOS auto-zooms the viewport on any input under 16px. On a 12-field
   registration form that's a zoom-lurch on every single tap. */
@media (max-width:640px){
  .ghac-booking-form .ghac-input,
  .ghac-booking-form .ghac-select{font-size:16px}
}
