@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,600;0,700;0,800;0,900;1,800&family=DM+Sans:wght@400;500;600;700;800&display=swap');

/* Homepage Design Test visual system. Scoped to the ticket presentation only. */
#tickets-app {
  --fec-blue: #48cae4; --fec-blue-dark: #18244d; --fec-blue-soft: #e7f9fc;
  --fec-orange: #fff000; --fec-orange-soft: #fffbd5; --fec-green: #61bc80;
  --fec-border: #d3d7df; --fec-border-strong: #18244d;
  --fec-text: #18244d; --fec-text-soft: #586077; --fec-bg: #fffef2;
  --fec-toy-fill: #fffef2; --fec-toy-fill-pressed: #fff000;
  --fec-toy-border: #18244d; --fec-toy-shadow: #18244d;
  --fec-toy-shadow-offset: 4px; --fec-radius-sm: 2px; --fec-radius-md: 4px;
  --fec-radius-lg: 4px; --fec-max-main: 650px;
  font-family: 'DM Sans', Arial, sans-serif; color: #18244d;
  background: #fffef2; font-size: 15px; line-height: 1.5;
}
body.fec-tickets-kiosk-page, body.fec-ticket-location-page { background: #fffef2; margin: 0; }
#tickets-app button, #tickets-app button :is(span,strong,small,div,b,em),
#tickets-app input, #tickets-app select, #tickets-app textarea {
  font-family: 'DM Sans', Arial, sans-serif !important;
}
#tickets-app .tickets-header {
  position: relative; overflow: visible;
  padding: 0 26px 20px; margin: 24px 0 26px; border: 2px solid #18244d;
  background: radial-gradient(circle at 1px 1px, #ffffff19 1px, transparent 1.5px) 0 0 / 9px 9px, repeating-conic-gradient(from -12deg at 12% 100%, #ffffff09 0deg 12deg, transparent 12deg 26deg), #18244d;
  box-shadow: 6px 6px 0 #48cae4; color: white;
  box-sizing: border-box; width: 100%; max-width: 1180px; margin-left: auto; margin-right: auto;
}
#tickets-app .tickets-brand-row { display:flex; justify-content:center; margin: -22px 0 0; align-items: center; }
#tickets-app .tickets-brand-logo { display:block; width: min(320px, 85%); height:auto; max-height:none; object-fit: contain; background: transparent; padding:0; border-radius:0; margin:0 auto; }
#tickets-app .tickets-brand-wordmark { color: white; }
#tickets-app .tickets-location-pill { position:absolute; top:-10px; right:-7px; z-index:1; padding: 8px 12px; background: #fff000; color: #18244d; border: 0; border-radius: 0; box-shadow: 3px 3px 0 #ff4baf; font-size: 11px; letter-spacing: .07em; }
#tickets-app .fec-section-heading,
#tickets-app .booking-mobile-rewards h2,
#tickets-app .calendar-month-label {
  font-family: 'Barlow Condensed', Impact, sans-serif !important;
  color: #18244d; font-weight: 800; font-size: 38px; line-height: 1;
  letter-spacing: -.015em; text-transform: uppercase; padding: 0; margin: 0 0 12px;
  border: 0; text-shadow: none;
}
#tickets-app .fec-section-heading::before, #tickets-app .fec-section-heading::after { display: none; }
#tickets-app .fec-section-heading--hero { color: #fff000; font-size: clamp(54px, 7vw, 78px); font-style: italic; text-shadow: 3px 3px 0 #ff4baf; margin: 0; }
#tickets-app .tickets-section-intro { margin: 0; }
#tickets-app .tickets-header .tickets-section-intro { margin:0; text-align:center; }
#tickets-app .tickets-header .fec-section-heading { margin:0; padding:0; }
#tickets-app .tickets-section-note { color: #586077; font-size: 14px; font-weight: 500; line-height: 1.5; }
#tickets-app .tickets-section { border-color: #d3d7df; }
#tickets-app .date-card { background: #fff; border: 2px solid #18244d; border-radius: 2px; color: #18244d; box-shadow: 4px 4px 0 #18244d; }
#tickets-app .date-card.is-selected { background: #fff000; color: #18244d; border-color: #18244d; box-shadow: 4px 4px 0 #ff4baf; }
#tickets-app .date-card:hover:not(:disabled) { background: #e7f9fc; color: #18244d; }
#tickets-app .date-card.is-selected:hover { background: #fff000; }
#tickets-app .date-day { font-size: 30px; font-weight: 800; }
#tickets-app .date-label, #tickets-app .date-month { color: inherit; font-size: 11px; letter-spacing: .06em; }
#tickets-app .today-tag { background: #ff4baf; color: #18244d; border-radius: 0; }
#tickets-app .date-info-panel { border: 0; background: transparent; box-shadow: none; }
#tickets-app .date-info-icon { color: #18244d; background: #48cae4; }
#tickets-app .event-module { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#tickets-app .event-module-title { color: #18244d; letter-spacing: .08em; font-size: 12px; }
#tickets-app .event-choice-card.is-featured .event-choice-title,
#tickets-app .event-module.is-featured .event-module-title { font-size: clamp(24px, 3vw, 34px); line-height: 1.05; letter-spacing: .01em; }
#tickets-app .event-choice-card.is-featured .event-choice-subtitle,
#tickets-app .event-module.is-featured .event-module-subtitle { margin: 9px auto 0; max-width: 62ch; color: #18244d; font-size: 15px; font-weight: 600; line-height: 1.45; text-align: center; }
#tickets-app .event-module.is-featured .event-module-top { display: block !important; text-align: center; }
#tickets-app .event-module.is-featured .event-module-media { width: 100% !important; max-width: 760px; margin: 0 auto; }
#tickets-app .event-module.is-featured .event-module-media img { display: block; width: 100% !important; height: auto !important; }
#tickets-app .event-module.is-featured .event-module-title { margin: 12px auto 0; text-align: center; }
@media(max-width:600px){#tickets-app .event-choice-card.is-featured .event-choice-title,#tickets-app .event-module.is-featured .event-module-title{font-size:26px}#tickets-app .event-choice-card.is-featured .event-choice-subtitle,#tickets-app .event-module.is-featured .event-module-subtitle{font-size:14px;padding:0 12px}}
#tickets-app .event-module-image { border-radius: 2px; }
#tickets-app .time-periods button { border-radius: 0; border: 1px solid #18244d; color: #18244d; background: transparent; }
#tickets-app .time-periods button[aria-pressed=true] { background: #18244d; color: #fff; }
#tickets-app .time-chip { border: 2px solid #18244d; border-radius: 2px; background: #fff; color: #18244d; box-shadow: 3px 3px 0 #18244d; }
#tickets-app .time-chip:is(:hover,.is-selected) { background: #fff000; color: #18244d; }
#tickets-app .completed-step { border: 1px solid #18244d; border-left: 5px solid #48cae4; border-radius: 0; background: #fff; box-shadow: none; padding: 16px; }
#tickets-app .visit-edit { color: #18244d; border: 1px solid #18244d; border-radius: 0; background: #fffef2; box-shadow: none; }
#tickets-app :is(.ticket-options-panel,.ticket-selection-panel,.tickets-product-panel,.ticket-selection-card) { border-radius: 2px; box-shadow: none; background: transparent; }
#tickets-app .duration-option { background: white; border: 2px solid #18244d; border-radius: 2px; color: #18244d; box-shadow: 4px 4px 0 #18244d; }
#tickets-app .duration-option.is-selected { background: #fff000; color: #18244d; border-color: #18244d; box-shadow: 4px 4px 0 #ff4baf; }
#tickets-app .duration-option.is-selected :is(span,strong,small,div) { color: #18244d !important; }
#tickets-app .duration-option :is(.duration-option-label,.duration-price) { color: inherit; }
#tickets-app .duration-badge { border-radius: 0; background: #ff4baf; color: #18244d; font-size: 9px; }
#tickets-app .ticket-choice-card { border: 2px solid #18244d; border-radius: 2px; background: #fff; color: #18244d; box-shadow: 4px 4px 0 #18244d; padding: 18px 16px; }
#tickets-app .ticket-choice-card:is(:hover,:focus-visible,:active,.is-selected) { background: #18244d; color: white; border-color: #18244d; box-shadow: 4px 4px 0 #ff4baf; }
#tickets-app .ticket-choice-card.is-selected::before { background: #fff000; }
#tickets-app .ticket-choice-name { font-size: 15px; letter-spacing: .01em; }
#tickets-app .ticket-choice-desc { font-size: 13px; font-weight: 400; }
#tickets-app .ticket-choice-price { font-size: 18px; }
#tickets-app .ticket-choice-system { background: #fff; border: 1px solid #d3d7df; border-radius: 3px; box-shadow: none; }
#tickets-app .tickets-summary-card { border: 2px solid #18244d; border-radius: 3px; box-shadow: 5px 5px 0 #48cae4; background: #fff; }
#tickets-app .summary-head { font: 800 28px/1 'Barlow Condensed', Impact, sans-serif; text-transform: uppercase; color: #18244d; }
#tickets-app .summary-continue-btn { width: 100%; min-height: 48px; padding: 12px; border: 2px solid #18244d; border-radius: 0; background: #fff000; color: #18244d; box-shadow: 4px 4px 0 #18244d; font-weight: 800; text-transform: uppercase; }
#tickets-app .bundle-difference { font-size: 11px; font-weight: 600; }
#tickets-app :is(.ticket-kids-row,.ticket-kids-stepper,.ticket-selection-empty) { background: #e7f9fc; border-radius: 2px; box-shadow: none; }
#tickets-app .ticket-kids-btn { border-color: #18244d; border-radius: 2px; color: #18244d; background: #fff; box-shadow: 2px 2px 0 #18244d; }
#tickets-app :is(.flow-primary-btn,.sms-primary-btn,.checkout-primary-btn,.booking-mobile-continue) {
  border: 2px solid #18244d; border-radius: 0; color: #18244d; background: #fff000;
  box-shadow: 4px 4px 0 #18244d; font-weight: 800; letter-spacing: .03em; text-transform: uppercase;
}
#tickets-app :is(.flow-primary-btn,.sms-primary-btn,.checkout-primary-btn,.booking-mobile-continue):hover:not(:disabled) { background: #48cae4; color: #18244d; }
#tickets-app button:disabled { cursor: not-allowed; }
#tickets-app :is(button,a,input,select,textarea):focus-visible { outline: 3px solid #ff4baf; outline-offset: 4px; }
#tickets-app :is(.sms-card,.waiver-card,.checkout-card,.addon-card,.summary-card,.booking-mobile-rewards) { border-radius: 3px; border-color: #d3d7df; background-color: #fff; box-shadow: none; }
#tickets-app :is(input,select,textarea) { border-radius: 2px; color: #18244d; accent-color: #18244d; }
#tickets-app .booking-mobile-footer { background: #fffef2; border-top: 2px solid #18244d; box-shadow: 0 -6px 20px #18244d0d; }
#tickets-app .booking-mobile-total strong, #tickets-app .booking-mobile-perks { color: #18244d; }
#tickets-app .booking-mobile-rewards { border: 2px solid #18244d; border-top: 6px solid #ff4baf; padding: 20px; }
#tickets-app .booking-mobile-rewards button { border-radius: 0; border-color: #18244d; color: #18244d; background: #fff000; }
#tickets-app dialog.calendar-panel-wrap { border: 2px solid #18244d; border-radius: 3px; background: #fffef2; }
#tickets-app .calendar-month-label { font-size: 28px; }
#tickets-app .calendar-day { border-radius: 2px; color: #18244d; }
#tickets-app .calendar-day.is-selected { background: #fff000; color: #18244d; border-color: #18244d; }
.fec-ticket-preview-banner { background: #18244d; font-family: 'DM Sans', Arial, sans-serif; }
.fec-ticket-location-picker { color: #18244d; background: #fffef2; font-family: 'DM Sans', Arial, sans-serif; }
.fec-ticket-location-picker h1 { font-family: 'Barlow Condensed', Impact, sans-serif; font-size: 56px; font-weight: 800; text-transform: uppercase; color: #18244d; }
.fec-ticket-location-picker a { border: 2px solid #18244d; border-radius: 0; background: #fff000; color: #18244d; box-shadow: 5px 5px 0 #18244d; }
@media (min-width:1100px) { #tickets-app { padding-top: 32px; } }
@media (max-width:1099px) { #tickets-app .tickets-main { max-width: 650px; } }
@media (max-width:1099px) { #tickets-app .tickets-header { max-width: 650px; } }
@media (max-width:600px) {
  #tickets-app .tickets-header { padding: 0 16px 20px; margin-bottom: 22px; box-shadow: 4px 4px 0 #48cae4; }
  #tickets-app .tickets-brand-logo { width:min(270px, 92%); max-height:none; }
  #tickets-app .tickets-brand-row { margin-top:-20px; margin-bottom:0; }
  #tickets-app .fec-section-heading { font-size: 32px; }
  #tickets-app .fec-section-heading--hero { font-size: 58px; }
  #tickets-app .ticket-choice-card { padding: 14px 12px; }
  #tickets-app .duration-option { padding-left: 3px; padding-right: 3px; }
  #tickets-app .duration-option .duration-option-label { font-size: 17px; }
  #tickets-app .duration-badge { font-size: 8px; }
  #tickets-app .booking-mobile-continue { font-size: 11px; }
}
@media (prefers-reduced-motion:reduce) { #tickets-app *, #tickets-app *::before, #tickets-app *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* Compact time-of-day selectors; arrival-time choices keep their touch size. */
#tickets-app .time-periods button { min-height:33px; padding:6px; }

/* One visual language from ticket quantity through family verification and perks. */
#tickets-app .ticket-kids-quantity { padding:16px; gap:16px; background:#18244d; border:2px solid #18244d; border-radius:0; box-shadow:4px 4px 0 #48cae4; }
#tickets-app .ticket-kids-label { color:#fff000; font:800 26px/1 'Barlow Condensed',Impact,sans-serif; text-transform:uppercase; letter-spacing:.03em; }
#tickets-app .ticket-kids-note { display:block; margin-top:6px; color:#fff; font-size:12px; line-height:1.4; font-weight:400; }
#tickets-app .ticket-kids-stepper { grid-template-columns:44px 64px 44px; gap:0; background:transparent; border:2px solid #fff000; border-radius:0; }
#tickets-app .ticket-kids-btn { width:44px; height:48px; border:0; border-radius:0; background:#fff000; color:#18244d; box-shadow:none; font-size:24px; }
#tickets-app .ticket-kids-btn:disabled { opacity:1; background:#d5d5bb; color:#606578; }
#tickets-app .ticket-kids-count { min-height:48px; flex-direction:column; gap:0; border:0; border-radius:0; background:#fffef2; color:#18244d; box-shadow:none; }
#tickets-app .ticket-kids-number { font:800 26px/1 'Barlow Condensed',Impact,sans-serif; }
#tickets-app .ticket-kids-unit { font:700 10px/1.2 'DM Sans',sans-serif; text-transform:uppercase; }
#tickets-app .ticket-quantity-summary { margin-top:14px; }
#tickets-app :is(.addons-flow-card,.sms-card,.waiver-step-card,.waiver-sign-card,.waiver-compact-card,.waiver-status-card,.member-status-card) { background:#fff; border:2px solid #18244d; border-radius:0; box-shadow:4px 4px 0 #48cae4; padding:20px; }
#tickets-app .addons-flow-card { border-top:6px solid #48cae4; }
#tickets-app .addon-card { background:#fff; border:0; border-bottom:1px solid #d3d7df; border-radius:0; box-shadow:none; padding:16px 0; }
#tickets-app .addon-card.is-active { background:#fffef2; border-bottom-color:#18244d; }
#tickets-app :is(.addon-title,.sms-title,.waiver-title) { color:#18244d; font:800 24px/1.1 'Barlow Condensed',Impact,sans-serif; text-transform:uppercase; }
#tickets-app .addon-price { color:#18244d; font-weight:800; }
#tickets-app .addon-icon-wrap { border-radius:0; background:#fffef2; }
#tickets-app .addon-controls { gap:0; border:2px solid #18244d; border-radius:0; overflow:hidden; }
#tickets-app .addon-controls .qty-btn { width:44px; height:44px; border:0; border-radius:0; background:#fff000; color:#18244d; box-shadow:none; }
#tickets-app .addon-controls .qty-display { border:0; border-radius:0; background:#fff; color:#18244d; box-shadow:none; min-width:32px; }
#tickets-app .extras-total { border-top:2px solid #18244d; color:#18244d; padding-top:14px; }
#tickets-app .sms-card { border-top:6px solid #48cae4; }
#tickets-app :is(.sms-icon,.waiver-verified-icon) { border-radius:0; background:#48cae4; color:#18244d; box-shadow:none; }
#tickets-app :is(.sms-field input,.waiver-field input,.digit-box) { background:#fffef2; border:2px solid #18244d; border-radius:0; box-shadow:none; color:#18244d; }
#tickets-app :is(.sms-text,.waiver-muted,.waiver-agreement-copy) { color:#46516d; line-height:1.55; }
#tickets-app .waiver-verified-banner { border:2px solid #18244d; border-left:6px solid #48cae4; border-radius:0; background:#e7f9fc; box-shadow:none; }
#tickets-app .waiver-step-tab { border-radius:0; border:1px solid #18244d; background:#fff; color:#18244d; }
#tickets-app .waiver-step-tab.is-active { background:#18244d; color:#fff; }
#tickets-app .waiver-step-tab span { border-radius:0; background:#fff000; color:#18244d; }
#tickets-app .waiver-child-card { border:2px solid #d3d7df; border-radius:0; background:#fff; box-shadow:none; }
#tickets-app .waiver-child-card.is-selected { border-color:#18244d; background:#fffef2; box-shadow:3px 3px 0 #48cae4; }
#tickets-app .waiver-child-card.is-selected .waiver-child-check { background:#18244d; border-color:#18244d; border-radius:0; }
#tickets-app .waiver-compact-card--family { gap:16px; }
#tickets-app .waiver-card-label--family-kids { padding-top:12px; border-top:1px solid #d3d7df; }
#tickets-app :is(.waiver-primary-btn,.waiver-add-btn,.summary-rewards-card button,.fec-reward-detail button) { border:2px solid #18244d; border-radius:0; background:#fff000; color:#18244d; box-shadow:3px 3px 0 #18244d; min-height:44px; font-weight:800; }
#tickets-app :is(.waiver-edit-btn,.sms-secondary-btn) { border:2px solid #18244d; border-radius:0; background:#fff; color:#18244d; box-shadow:none; min-height:44px; }
#tickets-app :is(.summary-rewards-card,.booking-mobile-rewards) { border:2px solid #18244d; border-top:6px solid #ff4baf; border-radius:0; background:#fffef2; box-shadow:4px 4px 0 #ff4baf; }
#tickets-app .summary-rewards-card strong { font:800 24px/1.1 'Barlow Condensed',Impact,sans-serif; text-transform:uppercase; color:#18244d; }
#tickets-app .fec-reward-tier { border:2px solid #18244d; border-radius:0; background:#fff; color:#18244d; box-shadow:none; }
#tickets-app .fec-reward-tier.is-earned { background:#fffef2; }
#tickets-app .fec-reward-tier.is-selected { border-color:#18244d; box-shadow:3px 3px 0 #ff4baf; }
#tickets-app .fec-reward-detail { border:1px solid #18244d; border-radius:0; background:#fff; color:#18244d; }
#tickets-app :is(.completed-step,.waiver-coverage-note) { border-radius:0; border-color:#18244d; background:#fffef2; }
@media(max-width:480px) {
 #tickets-app .ticket-kids-quantity { padding:12px; gap:12px; grid-template-columns:minmax(0,1fr) auto; }
 #tickets-app .ticket-kids-label { font-size:23px; }
 #tickets-app .ticket-kids-note { font-size:11px; }
 #tickets-app .ticket-kids-stepper { grid-template-columns:44px 48px 44px; }
 #tickets-app :is(.addons-flow-card,.sms-card,.waiver-step-card,.waiver-sign-card) { padding:14px; }
}

/* Soft cyan ribbon wraps the ticket panel without changing its controls. */
#tickets-app .ticket-choice-system { --ticket-panel-pad:14px; --ticket-ribbon-overhang:8px; padding:var(--ticket-panel-pad); overflow:visible; }
#tickets-app .ticket-kids-quantity { position:relative; margin-inline:calc(-1 * (var(--ticket-panel-pad) + var(--ticket-ribbon-overhang) + 1px)); padding:16px calc(var(--ticket-panel-pad) + var(--ticket-ribbon-overhang)); border:0; border-block:1px solid #85dce9; background:#d9f5fa; box-shadow:0 3px 0 #48cae426; }
#tickets-app .ticket-kids-quantity::before, #tickets-app .ticket-kids-quantity::after { content:''; position:absolute; top:100%; width:0; height:0; border-style:solid; pointer-events:none; }
#tickets-app .ticket-kids-quantity::before { left:0; border-width:0 var(--ticket-ribbon-overhang) var(--ticket-ribbon-overhang) 0; border-color:transparent #61bfce transparent transparent; }
#tickets-app .ticket-kids-quantity::after { right:0; border-width:0 0 var(--ticket-ribbon-overhang) var(--ticket-ribbon-overhang); border-color:transparent transparent transparent #61bfce; }
#tickets-app .ticket-kids-label { color:#18244d; }
#tickets-app .ticket-kids-note { color:#354761; }
#tickets-app .ticket-kids-stepper { border-color:#18244d; }
@media(max-width:480px) {
 #tickets-app .ticket-choice-system { --ticket-panel-pad:12px; --ticket-ribbon-overhang:4px; }
 #tickets-app .ticket-kids-quantity { padding:12px calc(var(--ticket-panel-pad) + var(--ticket-ribbon-overhang)); }
}

/* Compact family actions, signature tools and order extras. */
#tickets-app .waiver-family-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
#tickets-app .waiver-family-actions button { width:100%; margin:0; min-width:0; }
#tickets-app .waiver-family-actions button:only-child { grid-column:1 / -1; }
#tickets-app .waiver-family-actions small { font-weight:400; }
#tickets-app .signature-clear-btn { bottom:2px; padding:3px 8px; line-height:18px; }

#tickets-app .checkout-addon-group { border-top:1px solid #d3d7df; padding:8px 0 8px 12px; }
#tickets-app .checkout-addon-group .checkout-line--addon { border:0; margin:0; padding:4px 0; align-items:center; gap:12px; }
#tickets-app .checkout-line--addon > div { display:flex; align-items:center; gap:6px; min-width:0; }
#tickets-app .checkout-line--addon strong { font-size:12px; }
#tickets-app .checkout-remove-compact { display:inline-flex; align-items:center; justify-content:center; flex:0 0 24px; width:24px; min-width:24px; height:24px; min-height:24px; padding:0; margin:0; font-size:14px; line-height:1; text-decoration:none; border:0; background:transparent; color:#46516d; box-shadow:none; }
#tickets-app .checkout-remove-compact:hover { background:#d9f5fa; color:#18244d; }
#tickets-app .checkout-coupon { overflow:hidden; }
#tickets-app .checkout-coupon-fields { animation:fec-coupon-slide 220ms ease-out; }
#tickets-app .checkout-coupon-row { display:flex; gap:10px; }
#tickets-app .checkout-coupon-row input { flex:1; width:0; min-width:0; background:#fff; border:2px solid #18244d; border-radius:0; }
#tickets-app .checkout-coupon-row button { flex:0 0 auto; border:2px solid #18244d; border-radius:0; background:#fff000; color:#18244d; min-height:44px; padding:10px 16px; }
@keyframes fec-coupon-slide { from { transform:translateX(-100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
@media(prefers-reduced-motion:reduce) { #tickets-app .checkout-coupon-fields { animation:none; } }

/* Date spacing, compact extras, and the return-visit offer. */
#tickets-app .date-scroll-track .date-card { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; height:84px; min-height:84px; padding:10px 6px; }
#tickets-app .date-card--calendar { height:84px; min-height:84px; }
#tickets-app .date-card :is(.date-label,.date-month) { margin:0; line-height:1; }
#tickets-app .date-card .date-day { margin:0; line-height:1; }
#tickets-app .upcoming-featured { margin: 20px 0 18px; }
#tickets-app .upcoming-featured-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0 0 10px; padding: 0; border: 0; background: transparent; color: #18244d; font-size: 22px; font-weight: 900; text-align: left; text-transform: uppercase; cursor: pointer; }
#tickets-app .upcoming-featured-caret { font-size: 26px; line-height: 1; }
#tickets-app .upcoming-featured-card { padding: 12px 2px; color: #18244d; }
#tickets-app .upcoming-featured-pick { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: start; gap: 16px; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
#tickets-app .upcoming-featured-card + .upcoming-featured-card { border-top: 2px solid #d3d7df; padding-top: 18px; margin-top: 6px; }
#tickets-app .upcoming-featured-date.date-card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 80px; height: 84px; min-height: 84px; padding: 8px 4px; pointer-events: none; }
#tickets-app .upcoming-featured-content { display: block; min-width: 0; }
#tickets-app .upcoming-featured-image { display: block; width: min(100%, 420px); height: auto; }
#tickets-app .upcoming-featured-title { display: block; margin-top: 8px; font-size: 16px; font-weight: 800; line-height: 1.3; }
#tickets-app .upcoming-featured-title strong { color: #ad1269; }
#tickets-app .upcoming-featured-card:hover .upcoming-featured-title { text-decoration: underline; }
#tickets-app .upcoming-featured-more { display: inline-block; margin: 7px 0 0 100px; color: #18244d; font-weight: 800; text-decoration: underline; }
@media(max-width:600px){#tickets-app .upcoming-featured-pick{grid-template-columns:72px minmax(0,1fr);gap:12px}#tickets-app .upcoming-featured-date.date-card{width:68px;height:76px;min-height:76px}#tickets-app .upcoming-featured-title{font-size:14px}#tickets-app .upcoming-featured-more{margin-left:84px}}
#tickets-app .addon-card { grid-template-columns:64px minmax(0,1fr) 108px; grid-template-areas:"top top top" "image desc controls"; column-gap:12px; row-gap:10px; padding:12px 0; }
#tickets-app .addon-top { align-items:baseline; border-bottom:1px solid #18244d; padding-bottom:5px; }
#tickets-app .addon-title { font-size:23px; line-height:1.1; }
#tickets-app .addon-desc { font-size:12px; line-height:1.4; font-weight:500; }
#tickets-app .addon-controls { grid-template-columns:34px 36px 34px; justify-self:end; gap:0; }
#tickets-app .addon-controls .qty-btn { width:34px; height:34px; min-height:34px; min-width:34px; }
#tickets-app .addon-controls .qty-display { min-width:0; width:36px; min-height:34px; line-height:34px; padding:0; font-size:14px; }
#tickets-app .addon-added { display:none; }
#tickets-app .bounceback-card { --ribbon-pad:16px; padding:var(--ribbon-pad); border:2px solid #18244d; border-radius:0; background:#fffef2; box-shadow:4px 4px 0 #48cae4; container-type:inline-size; overflow:visible; }
#tickets-app .upgrade-ribbon { display:block; background:#18244d; color:#fff; margin:0 calc(-1 * var(--ribbon-pad) - 8px) 16px; padding:13px 16px; box-shadow:0 4px 0 #48cae4; }
#tickets-app .upgrade-ribbon .checkout-eyebrow { color:#fff; font:500 11px/1.4 'DM Sans',sans-serif; text-transform:none; margin-bottom:4px; }
#tickets-app .upgrade-ribbon .checkout-title { color:#fff; font:800 clamp(18px,8cqi,38px)/1.1 'Barlow Condensed',Impact,sans-serif; white-space:nowrap; margin:0; letter-spacing:-.02em; }
#tickets-app .bounceback-btn { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; border:2px solid #18244d; border-radius:0; background:#fff000; color:#18244d; box-shadow:4px 4px 0 #18244d; padding:13px 16px; font-weight:800; text-transform:uppercase; }
#tickets-app .bounceback-btn span { font-size:24px; line-height:1; }
#tickets-app .checkout-coupon-fields label.fec-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#tickets-app .fec-field-nav { display:none; }
@media(max-width:600px) {
 #tickets-app .addon-card { grid-template-columns:56px minmax(0,1fr); grid-template-areas:"top top" "image desc" "image controls"; gap:6px 10px; padding:10px 0; }
 #tickets-app .addon-icon-wrap { align-self:start; }
 #tickets-app .addon-title { font-size:21px; }
 #tickets-app .addon-controls { margin-top:0; }
 #tickets-app.is-editing-field .fec-field-nav { display:flex; position:fixed; z-index:100; bottom:calc(var(--fec-keyboard-inset,0px) + 8px); left:12px; right:12px; gap:8px; padding:6px; background:#fffef2; border:2px solid #18244d; box-shadow:3px 3px 0 #48cae4; }
 #tickets-app .fec-field-nav button { flex:1; min-height:40px; border:1px solid #18244d; border-radius:0; color:#18244d; background:#fff000; font-weight:700; }
 #tickets-app :is(.waiver-field,.checkout-field,.sms-field) input { scroll-margin-block:80px 140px; }
}

#tickets-app .upgrade-ribbon { position:relative; text-align:center; }
#tickets-app .upgrade-ribbon .checkout-title { text-transform:uppercase; font-size:clamp(17px,7.2cqi,38px); }
#tickets-app .upgrade-ribbon::before, #tickets-app .upgrade-ribbon::after { content:''; position:absolute; top:100%; width:0; height:0; border-style:solid; }
#tickets-app .upgrade-ribbon::before { left:0; border-width:0 8px 8px 0; border-color:transparent #0c1330 transparent transparent; }
#tickets-app .upgrade-ribbon::after { right:0; border-width:0 0 8px 8px; border-color:transparent transparent transparent #0c1330; }
#tickets-app .upgrade-keep { margin-top:14px; }

#tickets-app .waiver-child-row{display:flex;align-items:center;gap:12px}
#tickets-app .waiver-child-row .waiver-child-card{flex:1;min-width:0;margin:0}
#tickets-app .waiver-child-edit{flex:none;background:transparent;border:0;box-shadow:none;padding:10px 4px;color:#18244d;font-family:inherit;font-size:13px;font-weight:600;text-decoration:underline;cursor:pointer}
#tickets-app .waiver-child-edit:focus-visible{outline:2px solid #007b99;outline-offset:2px}
#tickets-app .waiver-child-editor{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0}
#tickets-app .waiver-child-editor label{display:grid;gap:5px;font-size:13px;font-weight:600;color:#18244d}
#tickets-app .waiver-child-editor input{box-sizing:border-box;width:100%;min-width:0;padding:10px;border:1px solid #8593aa;background:white;color:#18244d;font-size:16px}
@media(max-width:480px){#tickets-app .waiver-child-editor{grid-template-columns:1fr}}

/* Keep the family/signature step within the mobile viewport. */
@media(max-width:700px){
 #tickets-app,#tickets-app *{box-sizing:border-box}
 #tickets-app .waiver-compact-card--family{display:flex;flex-direction:column;min-width:0;max-width:100%}
 #tickets-app .waiver-compact-card__actions{width:100%;min-width:0;flex-wrap:wrap}
 #tickets-app .waiver-compact-card__actions button{white-space:normal;max-width:100%}
 #tickets-app .booking-mobile-footer{position:static;grid-template-columns:minmax(0,1fr);width:100%;min-width:0}
 #tickets-app .booking-mobile-footer button{white-space:normal;min-width:0}
 #tickets-app .kiosk-sms-overlay{align-items:start;overflow-y:auto;max-height:100dvh;padding:12px}
 #tickets-app .kiosk-sms-verification{min-width:0;max-width:100%;padding:18px}
 #tickets-app .kiosk-sms-recognition{min-height:0}
 #tickets-app .tickets-brand-logo{width:180px;max-height:100px}
}
#tickets-app #checkout-step,#tickets-app .fec-ticket-checkout-frame{overflow-anchor:none;scroll-margin-top:16px}
/* Website phone-format switch: secondary text below the input; kiosk owns its styling. */
#tickets-app:not([data-ticket-mode="kiosk"]) .kiosk-international-phone {
  display:block;align-self:flex-end;width:auto;max-width:100%;min-width:0;min-height:24px;
  margin:-8px 0 0 auto;padding:4px 0;border:0;border-radius:0;background:transparent;
  box-shadow:none;color:#586077;font-size:12px;font-weight:400;line-height:1.4;
  text-align:right;text-transform:none;letter-spacing:normal;text-decoration:underline;
  cursor:pointer;white-space:normal;
}
#tickets-app:not([data-ticket-mode="kiosk"]) .kiosk-international-phone:hover {background:transparent;color:#18244d;box-shadow:none}
#tickets-app:not([data-ticket-mode="kiosk"]) .kiosk-international-phone:focus-visible {outline:2px solid #43c7e8;outline-offset:3px}
