/* Keep mobile form sizing independent of native control intrinsic widths. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.booking-grid > *,
.booking-panel,
.booking-summary,
.single-booking-form,
.single-booking-form label,
.booking-criteria,
.customer-details,
.form-two > *,
.booking-film > *,
.seat-slot {
  min-width: 0;
  min-inline-size: 0;
}

.single-booking-form input:not([type="radio"]),
.single-booking-form select,
.admin-date-field input {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
  line-height: 1.35;
}

.single-booking-form input[type="date"],
.admin-date-field input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
  min-height: 52px;
  text-align: left;
}

input[type="date"]::-webkit-date-and-time-value {
  min-height: 1.35em;
  text-align: left;
}

.single-booking-form .optional-label {
  position: static;
  display: inline;
  margin-left: 6px;
  white-space: nowrap;
}

.single-booking-form .btn {
  max-width: 100%;
  white-space: normal;
  line-height: 1.35;
}

.single-booking-form .form-section-title > span { flex-shrink: 0; }
.single-booking-form .form-section-title h2 { min-width: 0; line-height: 1.2; }
.race-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.booking-film { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.film-stage { min-width: 0; overflow: hidden; }
.film-stage video { min-width: 0; max-width: 100%; }
.booking-summary dd { min-width: 0; overflow-wrap: anywhere; }
.summary-total { gap: 12px; flex-wrap: wrap; }
.race-rules span { max-width: 100%; overflow-wrap: break-word; }

@media (max-width: 950px) {
  .simple-booking .booking-grid { grid-template-columns: minmax(0, 1fr); }
  .simple-booking .booking-summary { position: static; }
}

@media (max-width: 700px) {
  .single-booking-form input:not([type="radio"]),
  .single-booking-form select,
  .admin-date-field input { font-size: 16px; }
  .single-booking-form .form-two { grid-template-columns: minmax(0, 1fr); }
  .single-booking-form .btn { gap: 12px; padding-inline: 16px; }
  .booking-summary dl > div { gap: 12px; }
  .booking-summary dt { white-space: normal; }
  .booking-summary dd { flex: 1 1 50%; }
  .reservation-header { height: auto; min-height: 80px; padding-block: 10px; }
  .brand-links { min-width: 0; text-align: right; }
  .brand-links .reservation-location { overflow-wrap: break-word; }
}

@media (max-width: 650px) {
  .booking-film { grid-template-columns: minmax(0, 1fr); }
  .film-copy { padding: 22px; }
  .film-copy h1 { font-size: clamp(34px, 10vw, 42px); overflow-wrap: break-word; }
  .film-copy h1 br { display: initial; }
}

@media (max-width: 380px) {
  .simple-booking.wrap { width: calc(100% - 24px); }
  .simple-booking .booking-panel { padding: 18px 14px; }
  .reservation-header { padding-inline: 12px; gap: 10px; }
  .seat-slots { gap: 8px; }
  .seat-slot { padding-inline: 10px; }
}

.more-races{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;margin-top:12px;padding:10px 16px;border:1px solid #60646a;border-radius:6px;background:#212427;color:#f2f2f2;font-weight:600}
.more-races>span{font-size:24px;line-height:1}.more-races[aria-pressed=true]{background:#f2f2f2;border-color:#fff;color:#151617}.race-count .custom-races-field{display:grid;gap:10px;margin-top:18px;min-width:0}.custom-races-field input{font-size:18px}.custom-races-field small{line-height:1.5}

.whatsapp-float{position:fixed;right:calc(24px + env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:80;display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 4px 20px #0005;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.whatsapp-float svg{display:block;width:32px;height:32px;flex:none}
.whatsapp-float:hover{background:#1fbd5b;color:#fff}
.whatsapp-float:focus-visible{outline:3px solid #fff;outline-offset:4px}
.simple-booking .whatsapp-consent{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.5;margin-block:18px}
.simple-booking .whatsapp-consent input{width:20px;height:20px;min-height:20px;margin-top:2px;flex:0 0 20px;accent-color:#25d366}
@media(max-width:540px){.whatsapp-float{width:56px;height:56px;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px))}.whatsapp-float svg{width:30px;height:30px}.simple-booking{padding-bottom:88px}}

.admin-gate{padding-top:64px;padding-bottom:64px;min-height:55vh}.admin-gate p{margin:24px 0}.mail-consent{font-size:13px;line-height:1.6;color:#aaa}.mail-consent a{color:inherit;text-decoration:underline}.booking-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}.manage-table td>small{display:block;overflow-wrap:anywhere}
