/* Compact inline header search. Narrow layouts retain a bounded search panel. */
#header {
  --header-search-ink: #034145;
  --header-search-action: #9ac133;
  --header-search-focus: #f9c748;
  --header-search-muted: #4e7073;
  --header-search-surface: #fff;
  --header-search-accent: #006f73;
  --header-search-hover: #aed33b;
  --header-search-font: Montserrat, sans-serif;
  --header-search-control: 44px;
  --header-search-icon: 20px;
  --header-search-close-icon: 22px;
  --header-search-gap: 8px;
  --header-search-toggle-gap: 6px;
  --header-search-width: 440px;
  --header-search-radius: 8px;
  --header-search-pad: 12px;
  --header-search-icon-pad: 10px;
  --header-search-button-pad: 18px;
  --header-search-panel-pad: 16px;
  --header-search-gutter: 24px;
  --header-search-gutters: 48px;
  --header-search-focus-width: 2px;
  --header-search-focus-offset: 3px;
  --header-search-text-size: 16px;
  --header-search-action-text-size: 15px;
  --header-search-shadow: 0 16px 40px rgba(0,35,38,.24);
  --header-search-close-hover: rgba(255,255,255,.12);
}
#header .header-search-form-item[hidden],
#header .header-search-toggle-item[hidden],
#header .header-search-secondary[hidden] { display: none !important; }
#header #header-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--header-search-toggle-gap);
  min-height: var(--header-search-control);
  min-width: var(--header-search-control);
  color: var(--header-search-surface);
  font: inherit;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  cursor: pointer;
}
#header #header-search svg { width: var(--header-search-icon); height: var(--header-search-icon); flex: none; }
#header #header-search:hover { color: var(--header-search-focus); }
#header .header-search-panel {
  display: flex;
  align-items: center;
  gap: var(--header-search-gap);
  width: var(--header-search-width);
  max-width: 100%;
  font-family: var(--header-search-font);
}
#header .header-search-form { display: flex; align-items: stretch; flex: 1; min-width: 0; gap: var(--header-search-gap); margin: 0; }
#header .header-search-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#header .header-search-field {
  display: flex; align-items: center; flex: 1; min-width: 0; gap: var(--header-search-gap); padding-inline: var(--header-search-pad);
  background: var(--header-search-surface); border-radius: var(--header-search-radius); color: var(--header-search-accent);
}
#header .header-search-field svg { width: var(--header-search-icon); height: var(--header-search-icon); flex: none; }
#header .header-search-field:focus-within { outline: var(--header-search-focus-width) solid var(--header-search-focus); outline-offset: var(--header-search-focus-offset); }
#header #header-search-input {
  width: 100%; min-width: 0; height: var(--header-search-control); min-height: var(--header-search-control); border: 0; border-radius: 0; outline: 0; box-shadow: none;
  padding: 0 !important; margin: 0; background: transparent; color: var(--header-search-ink); font: 400 var(--header-search-text-size)/1.4 var(--header-search-font);
}
#header #header-search-input::placeholder { color: var(--header-search-muted); opacity: 1; }
#header .header-search-submit {
  flex: none; min-height: var(--header-search-control); border: 0; border-radius: var(--header-search-radius) !important; box-shadow: none; padding: 0 var(--header-search-button-pad) !important;
  background: var(--header-search-action); color: var(--header-search-ink); font: 700 var(--header-search-action-text-size)/1 var(--header-search-font) !important; white-space: nowrap;
}
#header .header-search-submit:hover { background: var(--header-search-hover); }
#header .header-search-close {
  display: inline-flex; align-items: center; justify-content: center; flex: none; width: var(--header-search-control); height: var(--header-search-control);
  padding: var(--header-search-icon-pad); border: 0; border-radius: var(--header-search-radius); background: transparent; color: var(--header-search-surface);
}
#header .header-search-close svg { width: var(--header-search-close-icon); height: var(--header-search-close-icon); }
#header .header-search-close:hover { background: var(--header-search-close-hover); }
#header .header-utility-menu-wrap > .menu > li.header-search-form-item {
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}
#header .header-search-close:focus-visible,
#header .header-search-submit:focus-visible,
#header #header-search:focus-visible { outline: var(--header-search-focus-width) solid var(--header-search-focus); outline-offset: var(--header-search-focus-offset); }
@media (min-width: 1280px) {
  #header .header-utility-menu-wrap > .menu { align-items: center; }
  #header.has-open-search .header-utility-menu-wrap { transform: translateY(var(--header-search-pad)); }
  #header .header-search-form-item { flex: none; }
}
@media (max-width: 1279px) {
  #header .header-utility-menu-wrap > .menu > li.header-search-form-item {
    position: fixed; top: calc(100% + var(--header-search-gap)); right: var(--header-search-gutter); margin: 0; padding: var(--header-search-panel-pad);
    width: min(var(--header-search-width), calc(100vw - var(--header-search-gutters))); max-width: none; border-radius: var(--header-search-pad);
    background: var(--header-search-ink); box-shadow: var(--header-search-shadow);
  }
  #header .header-utility-menu-wrap { position: static; }
  #header .header-search-panel { width: 100%; }
}
@media (max-width: 640px) {
  #header #header-search span { display: none; }
  #header .header-utility-menu-wrap > .menu { gap: var(--header-search-gap); }
  #header .header-search-toggle-item { margin: 0; }
  #header .header-utility-menu-wrap > .menu > li.header-search-form-item { top: calc(100% + var(--header-search-gap)); right: var(--header-search-panel-pad); left: var(--header-search-panel-pad); width: auto; padding: var(--header-search-pad); }
  #header .header-search-submit { padding-inline: var(--header-search-pad) !important; }
}
@media (max-width: 360px) {
  #header .header-search-panel { align-items: flex-start; }
  #header .header-search-form { flex-wrap: wrap; }
  #header .header-search-field { flex-basis: 100%; }
  #header .header-search-submit { width: 100%; }
}
/* Continue the existing two-row footer through the tablet header breakpoint. */
@media (min-width: 1024px) and (max-width: 1279px) {
  footer#footer .footer-main-row { flex-wrap: wrap; }
  footer#footer .footer-main-row > .col-footer-1 { flex: 0 0 100%; min-width: 0; max-width: 100%; }
  footer#footer .footer-main-row > .col-footer-2,
  footer#footer .footer-main-row > .col-footer-3 { flex: 0 0 calc(50% - .5rem); min-width: 0; max-width: 50%; }
}
