/* Contact + booking forms */
.site-form { font-size: 15px; }
.f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.f-field { margin-bottom: 16px; }
.site-form label { display: block; font: 15px/1.4 var(--head); letter-spacing: .02em; margin-bottom: 6px; }
.site-form .req { color: var(--red); }
.form-box .site-form .req { color: var(--yellow); }
.site-form input, .site-form select, .site-form textarea {
  width: 100%; font: 16px/1.4 var(--body); color: #333; background: #fff;
  border: 1px solid #ccc; border-radius: 4px; padding: 11px 12px; min-height: 46px;
  transition: border-color .15s, box-shadow .15s;
}
.site-form textarea { resize: vertical; min-height: 110px; }
.site-form input:focus, .site-form select:focus, .site-form textarea:focus { outline: none; border-color: #1e72bd; box-shadow: 0 0 0 3px rgba(30,114,189,.25); background: #fff; }
.f-err { display: none; font-size: 13px; margin-top: 5px; color: #c4160a; }
.form-box .f-err { color: #ffd2cc; }
.f-field.invalid input, .f-field.invalid textarea, .f-field.invalid select { border-color: #e2402f; box-shadow: 0 0 0 2px rgba(226,64,47,.2); }
.f-field.invalid .f-err { display: block; }
.f-note { font-size: 13px; opacity: .85; margin: 4px 0 16px; }
.f-submit { min-width: 200px; border-radius: 4px; padding: 15px 28px; }
.f-submit[disabled] { opacity: .65; cursor: wait; }
.form-alert { background: #fff1f0; color: #a3170b; border: 1px solid #f3b2ab; border-radius: 4px; padding: 10px 12px; margin-bottom: 16px; }
.form-success { background: #f2f7ff; color: #222; border-left: 5px solid var(--navy); border-radius: 4px; padding: 22px; }
.form-success h2 { margin-bottom: 10px; }
.form-success:focus { outline: none; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 560px) {
  .f-row { grid-template-columns: 1fr; }
  .f-submit { width: 100%; }
}
.form-success a:not(.btn) { color: var(--navy); }
