/* WordPress-only additions. style.css is the static site's file and is never edited. */

/* Contact Form 7 output inside the static form markup */
.wpcf7-form-control-wrap { display: contents; } /* controls stay direct grid items of .field, as in the static markup */
.wpcf7-form .hidden-fields-container,
.wpcf7-form > fieldset.hidden-fields-container { display: none; border: 0; margin: 0; padding: 0; }
.wpcf7-form .wpcf7-response-output,
.wpcf7-form .wpcf7-spinner,
.wpcf7-form .wpcf7-not-valid-tip { display: none; }
.wpcf7 .screen-reader-response { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Admin bar offset for the sticky header */
.admin-bar .header { top: 32px; }
@media (max-width: 782px) { .admin-bar .header { top: 46px; } }

/* Mobile menu height. The header's backdrop-filter makes it the containing block for the
   fixed .nav, so style.css's `inset: var(--header-h) 0 0 0` resolved against the 76px header
   and left a 52px menu (the static site has the same bug). Size the panel from the viewport. */
@media (max-width: 1000px) {
  .nav {
    inset: var(--header-h) 0 auto 0;
    height: calc(100vh - var(--header-h));
    height: calc(100dvh - var(--header-h));
  }
  .admin-bar .nav { height: calc(100dvh - var(--header-h) - 32px); }
}
@media (max-width: 782px) {
  .admin-bar .nav { height: calc(100dvh - var(--header-h) - 46px); }
}

/* "Get a quote" in the mobile menu: `.nav a` (ink) outranks `.btn` (white), leaving dark text on blue. */
.nav .btn, .nav .btn:hover { color: #fff; }

/* Home hero (1.0.2, Nov 2026): longer headline, and a short tagline line under it instead of the intro paragraph */
.hero h1 { max-width: 20ch; }
.hero .hero__tagline { font-size: clamp(1rem, 1.5vw, 1.2rem); letter-spacing: .02em; }

/* Quote drawer (1.0.3, Nov 2026): style.css centres the drawer in the whole viewport, so on laptop-height
   windows its top ran under the fixed header (and the admin bar) and the form was clipped. Centre it in the
   space below the header and size the sheet to that space; the sheet scrolls when the form is taller. */
.quote-drawer {
  --drawer-top: var(--header-h);
  top: calc(var(--drawer-top) + (100vh - var(--drawer-top)) / 2);
  top: calc(var(--drawer-top) + (100dvh - var(--drawer-top)) / 2);
}
.admin-bar .quote-drawer { --drawer-top: calc(var(--header-h) + 32px); }
@media (max-width: 782px) { .admin-bar .quote-drawer { --drawer-top: calc(var(--header-h) + 46px); } }
.drawer__sheet {
  max-height: min(660px, calc(100vh - var(--drawer-top) - 24px));
  max-height: min(660px, calc(100dvh - var(--drawer-top) - 24px));
  overscroll-behavior: contain;
}
/* Phones: use the full height below the header */
@media (max-width: 700px) {
  .drawer__sheet { max-height: calc(100dvh - var(--drawer-top) - 16px); }
}
/* Phones and short laptop windows: tighter spacing so the whole form fits without scrolling where it can */
@media (max-width: 700px), (max-height: 760px) {
  .drawer__sheet { padding-top: 14px; padding-bottom: 16px; }
  .drawer__sheet .traveler__head { padding-bottom: 10px; }
  .drawer__sheet .quote-form { padding-top: 10px; }
  .drawer__sheet .field { margin-bottom: 10px; }
  .drawer__sheet .field textarea { min-height: 60px; }
}
