/* Scoped to the replacement GCV form; does not style other CF7 forms. */
.gcv-booking { --gcv-accent:#bd431b; --gcv-text:#25313d; background:#fff; color:var(--gcv-text); padding:28px; border-radius:18px; width:100%; box-sizing:border-box; }
.gcv-booking *, .gcv-booking *::before, .gcv-booking *::after { box-sizing:border-box; }
.gcv-booking [hidden] { display:none!important; }
.gcv-booking p { margin:0 0 12px; }
.gcv-booking h3 { font-size:22px; margin:0 0 8px; color:var(--gcv-text); }
.gcv-booking h3:focus { outline:none; }
.gcv-booking .gcv-help { color:#596572; font-size:14px; margin-bottom:22px; }
.gcv-progress ol { list-style:none; display:flex; gap:16px; margin:0 0 12px; padding:0; }
.gcv-progress li { flex:1; margin:0; font-size:14px; color:#596572; border-bottom:3px solid #e3e7eb; padding-bottom:12px; }
.gcv-progress li[aria-current="step"] { color:var(--gcv-accent); border-color:var(--gcv-accent); font-weight:700; }
.gcv-progress li span { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:#f2f4f6; margin-right:5px; }
.gcv-progress li[aria-current="step"] span { background:var(--gcv-accent); color:#fff; }
.gcv-booking .gcv-step-status { font-size:13px; margin-bottom:20px; color:#596572; }
.gcv-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; }
.gcv-wide { grid-column:1/-1; }
.gcv-field { min-width:0; }
.gcv-field p { margin:0; }
.gcv-field label { display:block; margin:0; font-size:14px; font-weight:500; color:var(--gcv-text); }
.gcv-field .wpcf7-form-control-wrap { display:block; margin-top:7px; }
.gcv-booking .your-input { width:100%; margin:0; border:1px solid #cbd2d9; border-radius:9px; background:#fff; box-shadow:none; color:var(--gcv-text); font-size:16px; min-height:48px; padding:10px 12px; }
.gcv-booking textarea.your-input { height:100px; min-height:100px; resize:vertical; }
.gcv-booking .your-input:focus { outline:2px solid var(--gcv-accent); outline-offset:2px; border-color:var(--gcv-accent); }
.gcv-booking .your-input[aria-invalid="true"] { border-color:#b42318; }
.gcv-booking .gcv-error, .gcv-booking .wpcf7-not-valid-tip { display:block; margin-top:6px; font-size:13px; color:#b42318; }
.gcv-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:24px; }
.gcv-actions p { display:contents; }
.gcv-next-actions { justify-content:flex-end; }
.gcv-booking .gcv-actions button, .gcv-booking .gcv-actions input[type="submit"] { margin:0; min-height:48px; border-radius:9px; padding:0 22px; font-size:15px; font-weight:700; letter-spacing:0; text-transform:none; background:var(--gcv-accent); border:1px solid var(--gcv-accent); color:#fff; cursor:pointer; }
.gcv-booking .gcv-actions .gcv-back { background:#fff; color:var(--gcv-text); border-color:#cbd2d9; }
.gcv-booking .gcv-actions :focus-visible { outline:3px solid #25313d; outline-offset:3px; }
.gcv-booking .gcv-actions :disabled { opacity:.55; cursor:wait; }
.gcv-booking .wpcf7-spinner { margin:0; }
/* Magnific Popup is used by Flatsome. Only suppress the observed widget when this form is in an open popup. */
body:has(.mfp-wrap .gcv-booking) #floating-widget,
body:has(.mfp-wrap .gcv-booking) .floating-widget { display:none!important; }
@media(max-width:549px) {
  .gcv-booking { padding:20px 16px; border-radius:12px; }
  .gcv-grid { grid-template-columns:1fr; gap:16px; }
  .gcv-progress ol { gap:10px; }
  .gcv-progress li { font-size:12px; }
  .gcv-booking h3 { font-size:20px; }
  .gcv-booking .gcv-actions button, .gcv-booking .gcv-actions input[type="submit"] { padding:0 14px; flex:1; }
}

