/* Hallmark · component: booking form · genre: editorial · theme: existing Campervan Brisbane brand · states: 8 · surface: absolute · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 · weakest: V, repeated field boxes replaced by paired rounded controls */
/* Hallmark · waive 7b · surface: absolute; original white canvas · search follows the user’s white and orange brand composition */
:root {
 --search-surface:var(--paper); --search-soft:#fff0f0; --search-border:#697a82; --search-divider:#d6dfe2; --search-focus:var(--focus); --search-error:var(--error); --search-hover:#f5f8f9; --search-active:var(--brand-active); --search-shadow:rgba(32,41,45,.09); --search-clear:transparent; --search-radius:28px; --search-gap:16px;
}
.search { position:relative; margin-top:-28px; padding:0; background:var(--search-clear); border:0; border-radius:0; box-shadow:none; }
.search .search__surface { background:var(--search-surface); border:0; border-radius:var(--search-radius); padding:32px; box-shadow:0 14px 36px var(--search-shadow); }
.search .search__heading { display:flex; align-items:baseline; justify-content:space-between; gap:var(--search-gap); margin-bottom:24px; }
.search .search__heading h2 { font-size:26px; line-height:1.2; margin:0; overflow-wrap:break-word; min-width:0; text-wrap:balance; }
.search .search__heading p { font-size:16px; color:var(--muted); margin:0; max-width:43ch; }
.search #search-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:var(--search-gap); }
.search .booking-form__groups { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:16px; min-width:0; }
.search .booking-form__pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border:1px solid var(--search-border); border-radius:26px; margin:0; padding:12px 16px 0; min-width:0; background:var(--search-surface); }
.search .booking-form__legend { position:absolute; width:1px; height:1px; clip-path:inset(50%); white-space:nowrap; }
.search .booking-form__field { display:grid; min-width:0; align-content:start; padding-inline:8px; }
.search .booking-form__field+.booking-form__field { border-left:1px solid var(--search-divider); padding-left:16px; }
.search .booking-form__field label { display:block; color:var(--muted); font-family:var(--font-body); font-size:13px; font-weight:500; line-height:1.3; letter-spacing:normal; text-transform:none; margin:0 0 4px; }
.search .booking-form__required { display:block; font-size:11px; line-height:1.2; }
.search .booking-form__field select,.search .booking-form__field input { min-height:48px; width:100%; min-width:0; padding:8px 4px; margin:0; border:1px solid var(--search-clear); border-radius:12px; color:var(--ink); background:var(--search-surface); font-family:var(--font-body); font-size:16px; font-weight:600; line-height:1.5; outline:2px solid var(--search-clear); outline-offset:-2px; }
.search .booking-form__field input[type="date"] { min-width:0; max-width:100%; }
.search .booking-form__field input:focus-visible,.search .booking-form__field select:focus-visible,.search .is-focus { outline-color:var(--search-focus); border-color:var(--search-clear); }
.search .booking-form__field input:active,.search .booking-form__field select:active,.search .is-active { background:var(--search-soft); }
.search .booking-form__field [aria-invalid="true"],.search .booking-form__field .is-error { border-color:var(--search-error); }
.search .booking-form__helper { display:block; min-height:19px; padding-top:4px; font-size:12px; line-height:1.35; color:var(--search-error); }
.search .booking-form__submit { border-radius:999px; min-height:52px; min-width:170px; margin-top:24px; padding:12px 24px; color:var(--deep); background:var(--orange); font-family:var(--font-body); font-size:16px; font-weight:700; outline:2px solid var(--search-clear); outline-offset:3px; }
.search .booking-form__submit:focus-visible,.search .booking-form__submit.is-focus { outline-color:var(--search-focus); }
.search .booking-form__submit:active,.search .booking-form__submit.is-active { background:var(--search-active); transform:translateY(1px); }
.search :disabled,.search [aria-disabled="true"],.search .is-disabled { opacity:.55; cursor:not-allowed; }
.search [aria-busy="true"],.search .is-loading { cursor:progress; }
.search .booking-form__submit[aria-busy="true"]::after,.search .booking-form__submit.is-loading::after { content:"…"; display:inline-block; width:1em; margin-left:4px; }
.search .booking-form__note { margin:16px 0 0; max-width:100ch; color:var(--muted); font-size:13px; line-height:1.5; }
.search #search-status { margin:12px 0 0; padding:0; border:0; background:var(--search-clear); color:var(--muted); font-size:15px; line-height:1.5; }
.search #search-status:empty { display:none; }
.search #search-status.is-error { color:var(--search-error); }
.search .is-result { padding:12px 0; color:var(--ink); border-top:1px solid var(--line); }
@media(hover:hover) {
 .search .booking-form__field input:hover,.search .booking-form__field select:hover,.search .is-hover { background:var(--search-hover); }
 .search .booking-form__submit:hover,.search .booking-form__submit.is-hover { background:var(--search-active); }
}
@media(max-width:1150px) {
 .search #search-form { grid-template-columns:minmax(0,1fr); }
 .search .booking-form__submit { justify-self:end; margin-top:0; }
 .search .search__heading { align-items:start; }
}
@media(max-width:760px) {
 .search { margin-top:0; }
 .search .search__surface { padding:24px; border-radius:24px; }
 .search .search__heading { display:block; }
 .search .search__heading p { margin-top:8px; }
 .search .booking-form__groups { grid-template-columns:minmax(0,1fr); gap:12px; }
 .search .booking-form__pair { padding:12px 12px 0; border-radius:23px; }
 .search .booking-form__submit { justify-self:stretch; min-width:0; margin-top:0px; }
 .search .booking-form__required { display:inline; font-size:10px; margin-left:4px; }
}
@media(max-width:400px) {
 .search .search__surface { padding:24px 16px; }
 .search .search__heading h2 { font-size:23px; }
 .search .booking-form__pair { padding-inline:8px; }
 .search .booking-form__field { padding-inline:4px; }
 .search .booking-form__field+.booking-form__field { padding-left:8px; }
 .search .booking-form__field label { font-size:12px; }
 .search .booking-form__required { display:block; margin-left:0; }
 .search .booking-form__field input,.search .booking-form__field select { font-size:15px; }
}
@media(prefers-reduced-motion:reduce) { .search *, .search *::after { animation:none; transition:none; } }

/* Compact booking form: keep native controls comfortable while reducing unused space. */
.search .search__surface{padding:24px 28px;border-radius:16px;box-shadow:0 8px 24px var(--search-shadow)}
.search .search__heading{margin-bottom:16px}
.search #search-form{align-items:center}
.search .booking-form__pair{border-radius:12px;padding:8px 12px 4px}
.search .booking-form__required{display:inline;margin-left:3px;font-size:11px}
.search .booking-form__field label{margin-bottom:0}
.search .booking-form__field input,.search .booking-form__field select{min-height:44px;padding:6px 4px;border-radius:6px}
.search .booking-form__helper:empty{display:none}
.search .booking-form__helper:not(:empty){min-height:0;padding:2px 0 6px}
.search .booking-form__submit{margin-top:0}
@media(max-width:760px){.search .search__surface{padding:20px;border-radius:14px}.search .booking-form__pair{padding:8px 10px 4px;border-radius:10px}.search .booking-form__submit{margin-top:0}}
@media(max-width:400px){.search .search__surface{padding:18px 14px}.search .booking-form__field label{font-size:12px}.search .booking-form__required{display:inline;margin-left:3px}}

/* Match the action and controls while placing labels outside the control border. */
.search .search__surface{padding:20px 24px}
.search .search__heading{margin-bottom:14px;align-items:center}
.search #search-form{align-items:end;gap:12px}
.search .booking-form__groups{gap:12px}
.search .booking-form__pair{border:0;border-radius:0;padding:0;gap:12px;align-items:start}
.search .booking-form__field,.search .booking-form__field+.booking-form__field{border:0;padding:0}
.search .booking-form__field label{margin:0 0 4px;line-height:18px}
.search .booking-form__field input,.search .booking-form__field select{height:48px;min-height:48px;border:1px solid var(--search-border);border-radius:7px;padding:0 10px;background:var(--search-surface)}
.search .booking-form__field input:focus-visible,.search .booking-form__field select:focus-visible{border-color:var(--search-focus)}
.search .booking-form__field [aria-invalid="true"]{border-color:var(--search-error)}
.search .booking-form__submit{height:48px;min-height:48px;align-self:end}
@media(max-width:1150px){.search .booking-form__submit{justify-self:stretch}}
@media(max-width:760px){.search .search__surface{padding:18px}.search .booking-form__groups{gap:12px}.search .booking-form__pair{border:0;padding:0;gap:10px}.search .booking-form__field,.search .booking-form__field+.booking-form__field{padding:0}.search .booking-form__field input,.search .booking-form__field select{height:48px;min-height:48px}.search .booking-form__submit{height:48px;min-height:48px}}
@media(max-width:400px){.search .search__surface{padding:16px}.search .booking-form__pair{padding:0}.search .booking-form__field label{font-size:12px}.search .booking-form__field input,.search .booking-form__field select{font-size:16px;padding:0 6px}}
