/* Build Team Booking — Figma 1059:2422. Applied to the Gravity form with cssClass bt-booking-dc. */
.bt-booking-dc_wrapper { --bp:#00517D; --bg:#F6F6F6; --ink:#000; --muted:rgba(0,0,0,.6); --err:#B3261E; --ok:#1B7A3E; font-family:var(--font-primary, 'Poppins', system-ui, sans-serif); color:var(--ink); }
.bt-booking-dc_wrapper .gform_wrapper, .bt-booking-dc_wrapper .gform-body { background:#fff; border-radius:30px; overflow:hidden; }
.bt-booking-dc_wrapper .gform_wrapper { box-shadow:0 2px 6px rgba(10,20,47,.04), 0 12px 32px rgba(10,20,47,.06); }

/* Stepper: primary band 133px, circles 46px */
.bt-booking-dc_wrapper .gf_progressbar_wrapper { display:none; }
.bt-booking-dc_wrapper .gf_page_steps { display:flex; justify-content:space-around; align-items:center; gap:16px; background:var(--bp); color:#fff; padding:32px clamp(16px,6vw,110px); margin:0; border:0; }
.bt-booking-dc_wrapper .gf_step { display:flex; align-items:center; gap:14px; margin:0; opacity:1; font-size:1.5625rem; font-weight:500; }
.bt-booking-dc_wrapper .gf_step_number { width:46px; height:46px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; border:1px solid #fff; background:transparent; color:#fff; font-size:1.375rem; font-weight:500; }
.bt-booking-dc_wrapper .gf_step_active .gf_step_number { background:#fff; color:var(--bp); }
.bt-booking-dc_wrapper .gf_step_completed .gf_step_number { background:rgba(255,255,255,.25); }
.bt-booking-dc_wrapper .gf_step_label { white-space:nowrap; }

/* Page body */
.bt-booking-dc_wrapper .gform_page_fields, .bt-booking-dc_wrapper .gform_page_footer, .bt-booking-dc_wrapper .gform_footer { padding:0 clamp(16px,6vw,112px); }
.bt-booking-dc_wrapper .gform_page_fields { padding-top:40px; }
.bt-booking-dc_wrapper .gform_fields { display:grid; grid-template-columns:1fr 1fr; gap:26px 48px; }
.bt-booking-dc_wrapper .gfield.bt-full, .bt-booking-dc_wrapper .gsection, .bt-booking-dc_wrapper .gfield--type-consent, .bt-booking-dc_wrapper .gfield--type-textarea, .bt-booking-dc_wrapper .gfield--type-fileupload, .bt-booking-dc_wrapper .gfield--type-bt_slot { grid-column:1 / -1; }
.bt-booking-dc_wrapper .gsection { border:0; padding:0; margin:8px 0 -6px; }
.bt-booking-dc_wrapper .gsection_title { font-size:1.875rem; font-weight:500; margin:0; color:var(--ink); }
.bt-booking-dc_wrapper .gfield_label { display:block; font-size:1.25rem; font-weight:400; color:var(--ink); margin:0 0 10px 30px; }
.bt-booking-dc_wrapper .gfield_required { color:var(--bp); margin-left:2px; }
.bt-booking-dc_wrapper .gfield_description { font-size:var(--fs-small,.9375rem); color:var(--muted); margin:8px 0 0 30px; }
.bt-booking-dc_wrapper input[type=text], .bt-booking-dc_wrapper input[type=email], .bt-booking-dc_wrapper input[type=tel], .bt-booking-dc_wrapper input[type=url], .bt-booking-dc_wrapper select, .bt-booking-dc_wrapper textarea {
  width:100%; min-height:70px; border-radius:50px; border:1px solid var(--bp); background:var(--bg); padding:0 30px; font:inherit; font-size:1.25rem; color:var(--ink); }
.bt-booking-dc_wrapper select { border:1.5px solid var(--ink); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 28px center; appearance:none; -webkit-appearance:none; padding-right:56px; }
.bt-booking-dc_wrapper textarea { min-height:196px; padding:22px 30px; border-radius:30px; resize:vertical; }
.bt-booking-dc_wrapper input:focus-visible, .bt-booking-dc_wrapper select:focus-visible, .bt-booking-dc_wrapper textarea:focus-visible { outline:3px solid var(--bp); outline-offset:2px; }

/* Radio pills (hosted, extension type) */
.bt-booking-dc_wrapper .bt-pills .gfield_radio { display:flex; flex-wrap:wrap; gap:14px; }
.bt-booking-dc_wrapper .bt-pills .gchoice { margin:0; }
.bt-booking-dc_wrapper .bt-pills input[type=radio] { position:absolute; opacity:0; width:1px; height:1px; }
.bt-booking-dc_wrapper .bt-pills label { display:inline-flex; align-items:center; min-height:56px; padding:0 28px; border-radius:50px; border:1.5px solid var(--ink); background:#fff; font-size:1.25rem; cursor:pointer; margin:0; }
.bt-booking-dc_wrapper .bt-pills input:checked + label { background:var(--bp); color:#fff; border-color:var(--bp); }
.bt-booking-dc_wrapper .bt-pills input:focus-visible + label { outline:3px solid var(--bp); outline-offset:2px; }

/* Checkbox / consent */
.bt-booking-dc_wrapper .gfield_checkbox label, .bt-booking-dc_wrapper .gfield_consent_label { font-size:1.125rem; margin-left:12px; }
.bt-booking-dc_wrapper input[type=checkbox] { width:24px; height:24px; accent-color:var(--bp); }
.bt-booking-dc_wrapper .gfield_consent_label a { color:var(--bp); }

/* File upload */
.bt-booking-dc_wrapper input[type=file] { font-size:1rem; padding:20px 30px; min-height:70px; border-radius:50px; border:1px dashed var(--bp); background:var(--bg); width:100%; }

/* Slot picker */
.bt-slot__date { display:flex; align-items:center; gap:16px; max-width:640px; margin:0 auto 32px; }
.bt-slot__day { flex:1; }
.bt-slot__select { text-align:center; text-align-last:center; font-weight:500; }
.bt-slot__nav { width:56px; height:56px; border-radius:50%; border:1.5px solid var(--ink); background:#fff; font-size:1.75rem; line-height:1; cursor:pointer; }
.bt-slot__nav:hover { background:var(--bp); color:#fff; border-color:var(--bp); }
.bt-slot__groups { display:flex; flex-direction:column; gap:18px; max-width:840px; margin:0 auto; }
.bt-slot__group { display:grid; grid-template-columns:150px 1fr; align-items:center; gap:24px; }
.bt-slot__group-label { font-size:1.5625rem; font-weight:500; }
.bt-slot__times { display:flex; gap:16px; flex-wrap:wrap; }
.bt-slot__time { min-width:118px; min-height:56px; border-radius:50px; border:1px solid var(--bp); background:var(--bg); font:inherit; font-size:1.375rem; cursor:pointer; }
.bt-slot__time:hover:not(:disabled) { background:#fff; }
.bt-slot__time.is-selected { background:var(--bp); color:#fff; }
.bt-slot__time:disabled { opacity:.35; cursor:not-allowed; text-decoration:line-through; }
.bt-slot__hint { text-align:center; margin:20px 0 0; font-size:1.125rem; color:var(--muted); min-height:1.5em; }

/* Buttons */
.bt-booking-dc_wrapper .gform_page_footer, .bt-booking-dc_wrapper .gform_footer { display:flex; justify-content:center; gap:24px; padding-top:40px; padding-bottom:56px; margin:0; border:0; }
.bt-booking-dc_wrapper .gform_next_button, .bt-booking-dc_wrapper .gform_button { min-width:234px; min-height:60px; border-radius:30px; border:0; background:var(--bp); color:#fff; font:inherit; font-size:1.5625rem; font-weight:500; cursor:pointer; }
.bt-booking-dc_wrapper .gform_button { min-width:288px; min-height:70px; border-radius:40px; }
.bt-booking-dc_wrapper .gform_previous_button { min-width:208px; min-height:60px; border-radius:40px; border:3px solid var(--bp); background:#fff; color:var(--bp); font:inherit; font-size:1.5625rem; font-weight:500; cursor:pointer; }
.bt-booking-dc_wrapper .gform_next_button:hover, .bt-booking-dc_wrapper .gform_button:hover { background:var(--ink); }

/* Validation: visible, persistent, near the field */
.bt-booking-dc_wrapper .gform_validation_errors { border:0; background:#FDECEA; border-radius:20px; padding:18px 24px; margin:0 clamp(16px,6vw,112px) 24px; color:var(--err); box-shadow:none; }
.bt-booking-dc_wrapper .gform_validation_errors h2 { font-size:1.125rem; margin:0; }
.bt-booking-dc_wrapper .gfield_error input, .bt-booking-dc_wrapper .gfield_error select, .bt-booking-dc_wrapper .gfield_error textarea { border:2px solid var(--err); background:#fff; }
.bt-booking-dc_wrapper .gfield_validation_message, .bt-booking-dc_wrapper .validation_message { background:transparent; border:0; padding:8px 0 0 30px; margin:0; color:var(--err); font-size:1rem; font-weight:500; }
.bt-inline-msg { margin:8px 0 0 30px; font-size:1rem; min-height:0; }
.bt-inline-msg.is-ok { color:var(--ok); }
.bt-inline-msg.is-warn { color:var(--err); }
.bt-inline-msg a { color:var(--bp); font-weight:500; }

/* Confirmation */
.bt-confirm { background:#fff; border-radius:30px; padding:clamp(32px,6vw,80px); text-align:center; }
.bt-confirm__title { font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem); font-weight:500; color:var(--bp); margin:0 0 12px; }
.bt-confirm__when { font-size:1.5rem; font-weight:500; margin:0 0 8px; }
.bt-confirm__ref { color:var(--muted); margin:0 0 28px; }
.bt-confirm__box { background:var(--bg); border-radius:20px; padding:24px 28px; text-align:left; max-width:640px; margin:0 auto 28px; font-size:1.125rem; }
.bt-confirm__box a { color:var(--bp); word-break:break-all; }
.bt-confirm__actions { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.bt-confirm__actions a { display:inline-flex; align-items:center; min-height:56px; padding:0 28px; border-radius:30px; text-decoration:none; font-weight:500; font-size:1.125rem; }
.bt-confirm__actions .is-primary { background:var(--bp); color:#fff; }
.bt-confirm__actions .is-outline { border:2px solid var(--bp); color:var(--bp); }

@media (max-width:900px) {
  .bt-booking-dc_wrapper .gform_wrapper, .bt-booking-dc_wrapper .gform-body { border-radius:20px; }
  .bt-booking-dc_wrapper .gf_page_steps { padding:18px 16px; gap:8px; }
  .bt-booking-dc_wrapper .gf_step { font-size:0; gap:0; flex-direction:column; }
  .bt-booking-dc_wrapper .gf_step_number { width:36px; height:36px; font-size:1rem; }
  .bt-booking-dc_wrapper .gf_step_label { font-size:.75rem; margin-top:6px; white-space:normal; text-align:center; }
  .bt-booking-dc_wrapper .gform_page_fields { padding-top:24px; }
  .bt-booking-dc_wrapper .gform_fields { grid-template-columns:1fr; gap:18px; }
  .bt-booking-dc_wrapper .gfield_label { font-size:1rem; margin-left:20px; }
  .bt-booking-dc_wrapper input[type=text], .bt-booking-dc_wrapper input[type=email], .bt-booking-dc_wrapper input[type=tel], .bt-booking-dc_wrapper input[type=url], .bt-booking-dc_wrapper select { min-height:56px; padding:0 20px; font-size:1rem; }
  .bt-booking-dc_wrapper select { padding-right:44px; background-position:right 18px center; }
  .bt-booking-dc_wrapper textarea { min-height:140px; padding:16px 20px; font-size:1rem; }
  .bt-booking-dc_wrapper .bt-pills label { min-height:48px; padding:0 18px; font-size:1rem; }
  .bt-slot__date { gap:10px; margin-bottom:20px; }
  .bt-slot__nav { width:48px; height:48px; }
  .bt-slot__group { grid-template-columns:1fr; gap:8px; }
  .bt-slot__group-label { font-size:1.125rem; }
  .bt-slot__times { gap:10px; }
  .bt-slot__time { flex:1; min-width:0; min-height:52px; font-size:1.125rem; }
  .bt-booking-dc_wrapper .gform_page_footer, .bt-booking-dc_wrapper .gform_footer { flex-direction:column-reverse; gap:12px; padding-top:24px; padding-bottom:32px; }
  .bt-booking-dc_wrapper .gform_next_button, .bt-booking-dc_wrapper .gform_button, .bt-booking-dc_wrapper .gform_previous_button { width:100%; min-width:0; min-height:56px; font-size:1.125rem; }
  .bt-booking-dc_wrapper .gform_validation_errors { margin:0 16px 16px; }
}

/* ---- Fixes after first render ---- */
.bt-booking-dc_wrapper .gform_validation_container, .bt-booking-dc_wrapper .gfield--type-honeypot { display:none !important; position:absolute !important; left:-9000px !important; }
.bt-booking-page .bt-prose { max-width:none; }
.bt-booking-shell { max-width:1272px; margin:0 auto; }
.bt-booking-dc_wrapper .gf_page_steps { flex-wrap:nowrap; overflow:hidden; }
.bt-booking-dc_wrapper .gf_step { min-width:0; }
.bt-booking-dc_wrapper .gf_step_label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:1100px) { .bt-booking-dc_wrapper .gf_step { font-size:1.125rem; gap:10px; } .bt-booking-dc_wrapper .gf_step_number { width:38px; height:38px; font-size:1rem; } }
@media (max-width:640px) { .bt-slot__times { display:grid; grid-template-columns:repeat(3,1fr); } }

/* selected slot: must win over hover/button defaults */
.bt-booking-dc_wrapper .bt-slot__time.is-selected, .bt-booking-dc_wrapper .bt-slot__time.is-selected:hover { background:#00517D !important; color:#fff !important; border-color:#00517D !important; }
.bt-booking-dc_wrapper .bt-slot__time:hover:not(:disabled):not(.is-selected) { background:#fff; border-color:#000; }
/* page header inside the shell, centred like Figma */
.bt-booking-page .bt-page-header { display:none; }
.bt-booking-head { text-align:center; padding:clamp(32px,6vw,90px) 16px clamp(24px,4vw,56px); }
.bt-booking-head h1 { font-size:clamp(2.25rem,1.5rem + 3.5vw,5rem); font-weight:500; line-height:1.1; color:#00517D; margin:0 0 16px; }
.bt-booking-head p { font-size:1.4375rem; line-height:1.5; color:#000; max-width:1060px; margin:0 auto; }
@media (max-width:900px) { .bt-booking-head p { font-size:1.0625rem; } }
/* hide page.php title (we render our own) and replace "(Required)" with an asterisk */
.bt-booking-page .bt-page-header, .bt-booking-page .bt-prose > .bt-page-title, .bt-booking-page h1.bt-page-title { display:none !important; }
.bt-booking-dc_wrapper .gfield_required { font-size:0; }
.bt-booking-dc_wrapper .gfield_required::after { content:'*'; font-size:1.25rem; color:#00517D; }

/* ---- 17 Oct 2026: feedback fixes ---- */
/* one asterisk only: GF nests .gfield_required inside .gfield_required */
.gfield_required .gfield_required::after { content:none !important; }
.gfield_required .gfield_required { font-size:0 !important; }
/* Zoom details: one box, each value with its own copy button */
.bt-zoom { padding:22px 26px; }
.bt-zoom__head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 12px; font-size:1.125rem; }
.bt-zoom__rows { margin:0; }
.bt-zoom__rows > div { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:12px; align-items:center; padding:10px 0; border-top:1px solid rgba(0,0,0,.08); }
.bt-zoom__rows dt { color:var(--muted, rgba(0,0,0,.6)); font-size:.9375rem; }
.bt-zoom__rows dd { margin:0; font-weight:500; overflow-wrap:anywhere; }
.bt-zoom__note { margin:12px 0 0; font-size:.9375rem; color:var(--muted, rgba(0,0,0,.6)); }
.bt-copy { border:1.5px solid #00517D; background:#fff; color:#00517D; font:inherit; font-size:.875rem; font-weight:600; border-radius:20px; padding:6px 14px; cursor:pointer; white-space:nowrap; }
.bt-copy:hover { background:#00517D; color:#fff; }
.bt-copy.is-done { background:#1B7A3E; border-color:#1B7A3E; color:#fff; }
.bt-confirm__ready { max-width:640px; margin:0 auto 28px; text-align:left; font-size:1rem; }
@media (max-width:640px) {
  .bt-zoom { padding:18px 16px; }
  .bt-zoom__rows > div { grid-template-columns:1fr auto; }
  .bt-zoom__rows dt { grid-column:1 / -1; }
}
/* Contact form sits inside the grey panel on /contact/: no second card, tighter fields */
.bt-ct .gform_wrapper, .bt-ct .gform-body { background:transparent; box-shadow:none; border-radius:0; overflow:visible; }
.bt-ct .gform_page_fields, .bt-ct .gform_body, .bt-ct .gform_footer { padding:0; }
.bt-ct .gform_fields { gap:18px 20px; }
.bt-ct .gfield_label { font-size:1rem; font-weight:500; margin:0 0 8px 20px; }
.bt-ct input[type=text], .bt-ct input[type=email], .bt-ct input[type=tel] { min-height:56px; padding:0 20px; font-size:1rem; border-color:rgba(0,0,0,.18); background:#fff; }
.bt-ct textarea { min-height:150px; padding:16px 20px; font-size:1rem; border-color:rgba(0,0,0,.18); background:#fff; border-radius:24px; }
.bt-ct .gfield_consent_label { font-size:.9375rem; }
.bt-ct .gform_footer { justify-content:flex-start; padding:24px 0 0; }
.bt-ct .gform_button { min-width:200px; min-height:58px; font-size:1.125rem; }
.bt-booking-dc_wrapper .bt-lead-note { grid-column:1 / -1; margin:-8px 0 0; font-size:.9375rem; color:rgba(0,0,0,.6); }
.bt-booking-dc_wrapper .bt-lead-note a { color:#00517D; }
