/* Sam Marko global header stylesheet.
   Source of truth for header shell, logo, search, mobile actions and header spacing.

   Maintenance map:
   1. Base header shell
   2. Header logo/cart/login/search base
   3. Desktop fixed header/menu placement
   4. Mobile sticky header shell
   5. Mobile logo/actions/search drawer

   Keep CategoriesMenu item/dropdown styling in css/site/main_menu.css.
   Keep footer/floating controls in css/site/footer.css and css/site/sam_marko.css until their separate cleanup pass.
   Do not add page-specific header overrides in css/pages/*.css.
*/

/* === 1. Base header shell === */

/* === 2. Header logo/cart/login/search base === */

.header .full .HeaderCart {
  display:inline-block;
  float:right;
  margin-top:-55px;
}
.header .full .HeaderCartPanel A {
  display: none;
  text-decoration:none;
  color:black;
  padding-right:45px;
  background-image:url("../../images/icon_cart_product.png");
  background-repeat:no-repeat;
  background-position:right center;
  min-height:42px;
  max-height:42px;
  margin-right:70px;
}
.header .full .HeaderCartPanel A .cell {
  display:block;
  font-size:16px;
  font-weight:bold;
  padding-right:5px;
  max-width:145px;

}
.header .full .SearchPanel {
  display:inline-block;
  float:right;
  text-align:left;
  margin-right:20px;
}
.header .full .SearchPanel button[name="clear"] {
  display:none;
}
.header .full .SearchPanel button[name="filter"] {
  background-image:url("../../images/lupichka.png");
  background-repeat:no-repeat;
  background-position:center center;
  min-width:50px;
  border-radius:5px;
}
.header .full .SearchPanel .InputLabel {
  display:none;
}
/* Header search base shape. */
.header .full .SearchPanel .KeywordSearchComponent,
.header .full .SearchPanel form,
.header .full .SearchPanel .FormRenderer,
.header .full .SearchPanel .fields,
.header .full .SearchPanel .buttons {
  display:flex;
  align-items:center;
}
.header .full .SearchPanel form,
.header .full .SearchPanel .FormRenderer {
  gap:8px;
}
.header .full .SearchPanel .fields,
.header .full .SearchPanel .InputField.TextField[field="keyword"] {
  height:30px;
  min-height:30px;
  line-height:30px;
}
.header .full .SearchPanel .InputField.TextField[field="keyword"],
.header .full .SearchPanel input[type="text"],
.header .full .SearchPanel input[name="keyword"] {
  min-width:220px;
  height:30px;
  min-height:30px;
  border-radius:15px;
  box-sizing:border-box;
}
.header .full .SearchPanel input[type="text"],
.header .full .SearchPanel input[name="keyword"] {
  padding:0 0 5px 10px;
  line-height:26px;
  vertical-align:middle;
}
.header .full .SearchPanel input[type="text"]::placeholder,
.header .full .SearchPanel input[name="keyword"]::placeholder {
  line-height:26px;
}
.header .full .SearchPanel .InputField.TextField[field="keyword"] {
  overflow:hidden;
}
.header .full .SearchPanel .buttons {
  height:36px;
  min-height:36px;
  line-height:36px;
}
.header .full .SearchPanel button[name="filter"] {
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  line-height:36px;
  border:1px solid rgba(187,187,187,0.30);
  border-radius:50%;
  padding:0;
  box-sizing:border-box;
  background-repeat:no-repeat;
  background-position:50% 50%;
  background-origin:border-box;
  background-clip:border-box;
}
.header .full .Login {
  display:none;
  height:42px;
  width:42px;
  float:right;
  margin-top:-55px;
  margin-right:14px;
}

.mobile_top_actions {
  display:none;
}
/* === 3-5. Responsive header placement and mobile sticky header === */
/* Mobile sticky header — AirComfort-style compact rendering,
single source of truth.
   Header controls stay on the right and shrink together in the condensed state. */
@media (min-width:901px) {
  .header {
    height:147px;
    overflow:visible;
  }

  .header .full {
    height:147px;
    overflow:visible;
  }

  .header .full .logo {
    float:none;
    display:block;
    position:absolute;
    left:10px;
    top:0;
    width: 440px;
    max-width: calc(100% - 20px);
    height:102px;
    margin:0;
    background-image:url("../../images/logo_header_sam_marko_c_red_m_black_v11.png");
    background-repeat:no-repeat;
    background-position:left center;
  }

  .header .full .SearchPanel {
    position:absolute;
    right:28px;
    top:20px;
    display:block;
    float:none;
    margin:0;
    z-index:3;
  }

}

@media (max-width: 900px) {
  body {
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
    padding-top:var(--mobile-header-space, 0px);
    box-sizing:border-box;
  }

  .header {
    position:fixed;
    left:0;
    right:0;
    top:0;
    z-index:1000;
    width:100%;
    max-width:100%;
    height:auto;
    min-height:0;
    padding-top:0;
    box-sizing:border-box;
    background:#ffffff;
    box-shadow:none;
    opacity:1;
    transform:none;
  }

  body.mobile-header-condensed .header {
    box-shadow:0 2px 10px rgba(0,0,0,0.20);
  }

  .header .full {
    position:relative;
    display:grid;
    grid-template-rows:60px 52px;
    grid-template-columns:100%;
    align-items:start;
    justify-content:stretch;
    width:100%;
    max-width:100%;
    height:112px;
    min-height:112px;
    margin:0;
    padding:0;
    overflow:visible;
    background:#ffffff;
    transform:none;
  }

  .header .full .logo,
body.index .header .full .logo {
    --sam-header-logo-width:440px;
    --sam-header-logo-height:60px;
    grid-row:1;
    grid-column:1;
    display:block;
    position:relative;
    left:10px;
    top:0;
    width:var(--sam-header-logo-width);
    max-width:calc(100% - 40px);
    height:60px;
    min-height:60px;
    margin:0;
    padding:0;
    box-sizing:border-box;
    background-image:url("../../images/logo_header_sam_marko_c_red_m_black_v11.png");
    background-repeat:no-repeat;
    background-position:left top;
    background-size:contain;
    image-rendering:auto;
    transform:none;
    transition:none;
    will-change:auto;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
    text-decoration:none;
    outline:0;
  }

  .header .full .logo:focus,
.header .full .logo:active,
body.index .header .full .logo:focus,
body.index .header .full .logo:active {
    background-color:transparent;
    box-shadow:none;
    outline:0;
    text-decoration:none;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
  }

  body.mobile-header-condensed .header .full {
    grid-template-rows:45px 45px;
    height:90px;
    min-height:90px;
  }

  body.mobile-header-condensed .header .full .logo,
body.index.mobile-header-condensed .header .full .logo {
    --sam-header-logo-width:377px;
    --sam-header-logo-height:45px;
    height:45px;
    min-height:45px;
  }

  .mobile_top_actions,
body.index .mobile_top_actions,
body.mobile-header-condensed .mobile_top_actions,
body.index.mobile-header-condensed .mobile_top_actions {
    grid-row:2;
    grid-column:1;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:16px;
    width:100%;
    max-width:100%;
    height:52px;
    min-height:52px;
    margin:0;
    padding:8px 20px 8px 14px;
    box-sizing:border-box;
    background:#3a3a3a;
    transform:none;
    transition:none;
  }

  body.mobile-header-condensed .mobile_top_actions,
body.index.mobile-header-condensed .mobile_top_actions {
    padding:3px 20px 3px 14px;
    gap:12px;
  }

  .mobile_action_group,
body.index .mobile_action_group,
body.mobile-header-condensed .mobile_action_group,
body.index.mobile-header-condensed .mobile_action_group,
.mobile_search_group,
.mobile_menu_group,
body.index .mobile_search_group,
body.index .mobile_menu_group,
body.mobile-header-condensed .mobile_search_group,
body.mobile-header-condensed .mobile_menu_group,
body.index.mobile-header-condensed .mobile_search_group,
body.index.mobile-header-condensed .mobile_menu_group {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex:0 0 auto;
    gap:8px;
    min-width:0;
    margin:0;
    transform:none;
    transition:none;
  }

  .mobile_action_label,
body.index .mobile_action_label,
body.mobile-header-condensed .mobile_action_label,
body.index.mobile-header-condensed .mobile_action_label {
    display:inline-block;
    color:#ffffff;
    font-size:14px;
    line-height:1;
    font-weight:bold;
    white-space:nowrap;
    text-decoration:none;
    transform:none;
    transition:none;
  }

  body.mobile-header-condensed .mobile_action_label,
body.index.mobile-header-condensed .mobile_action_label {
    font-size:12px;
  }

  .mobile_search_toggle,
.mobile_menu_toggle,
body.index .mobile_search_toggle,
body.index .mobile_menu_toggle,
body.mobile-header-condensed .mobile_search_toggle,
body.mobile-header-condensed .mobile_menu_toggle,
body.index.mobile-header-condensed .mobile_search_toggle,
body.index.mobile-header-condensed .mobile_menu_toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    min-width:42px;
    min-height:42px;
    max-width:42px;
    max-height:42px;
    padding:0;
    margin:0;
    border-radius:50%;
    box-sizing:border-box;
    transform:none;
    transition:none;
    will-change:auto;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
    -webkit-touch-callout:none;
    user-select:none;
    outline:0;
  }

  .mobile_search_toggle:focus,
.mobile_search_toggle:active,
.mobile_menu_toggle:focus,
.mobile_menu_toggle:active,
body.index .mobile_search_toggle:focus,
body.index .mobile_search_toggle:active,
body.index .mobile_menu_toggle:focus,
body.index .mobile_menu_toggle:active {
    outline:0;
    box-shadow:none;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
  }

  .mobile_search_toggle,
body.index .mobile_search_toggle,
body.mobile-header-condensed .mobile_search_toggle,
body.index.mobile-header-condensed .mobile_search_toggle {
    background:#3366ff url("../../images/lupichka.png") no-repeat center center;
    background-size:24px 24px;
    border:1px solid #1f3fa8;
    image-rendering:auto;
  }

  body.mobile-header-condensed .mobile_search_toggle,
body.index.mobile-header-condensed .mobile_search_toggle {
    background-size:18px 18px;
  }

  .mobile_search_toggle .mobile_search_icon--close,
body.index .mobile_search_toggle .mobile_search_icon--close {
    display:none;
    color:#ffffff;
    font-size:18px;
    line-height:1;
  }

  body.mobile-search-open .mobile_search_toggle,
body.index.mobile-search-open .mobile_search_toggle,
body.mobile-search-open.mobile-header-condensed .mobile_search_toggle,
body.index.mobile-search-open.mobile-header-condensed .mobile_search_toggle {
    background:#da1d1d;
    border-color:#b91616;
    background-image:none;
  }

  body.mobile-search-open .mobile_search_toggle .mobile_search_icon--close,
body.index.mobile-search-open .mobile_search_toggle .mobile_search_icon--close {
    display:block;
    color:#ffffff;
    font-size:18px;
    line-height:1;
  }

  body.mobile-search-open.mobile-header-condensed .mobile_search_toggle .mobile_search_icon--close,
body.index.mobile-search-open.mobile-header-condensed .mobile_search_toggle .mobile_search_icon--close {
    font-size:16px;
  }

  .mobile_menu_toggle,
body.index .mobile_menu_toggle,
body.mobile-header-condensed .mobile_menu_toggle,
body.index.mobile-header-condensed .mobile_menu_toggle {
    flex-direction:column;
    gap:4px;
    background:#2f2f2f;
    border:1px solid rgba(255,255,255,0.25);
  }

  body.mobile-header-condensed .mobile_menu_toggle,
body.index.mobile-header-condensed .mobile_menu_toggle {
    gap:3px;
  }

  .mobile_menu_toggle span,
body.index .mobile_menu_toggle span,
body.mobile-header-condensed .mobile_menu_toggle span,
body.index.mobile-header-condensed .mobile_menu_toggle span {
    display:block;
    flex:0 0 auto;
    width:18px;
    height:2px;
    min-height:2px;
    background:#ffffff;
    border-radius:2px;
    transform:none;
    transition:none;
  }

  body.mobile-header-condensed .mobile_menu_toggle span,
body.index.mobile-header-condensed .mobile_menu_toggle span {
    width:13px;
    height:2px;
    min-height:2px;
  }

  .header .full .SearchPanel {
    order:3;
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:120px;
    width:100%;
    max-width:100%;
    height:54px;
    min-height:54px;
    margin:0;
    padding:0 12px;
    box-sizing:border-box;
    background:#3a3a3a;
    border-top:1px solid rgba(255,255,255,0.10);
    box-shadow:0 8px 14px rgba(0,0,0,0.22);
    z-index:1002;
    float:none;
    text-align:left;
    overflow:hidden;
  }

  body.mobile-search-open .header .full .SearchPanel,
body.index.mobile-search-open .header .full .SearchPanel {
    display:flex;
    align-items:center;
  }

  body.mobile-header-condensed .header .full .SearchPanel,
body.index.mobile-header-condensed .header .full .SearchPanel {
    top:90px;
    height:40px;
    min-height:40px;
    padding:0 10px;
  }

  .header .full .SearchPanel .KeywordSearchComponent,
.header .full .SearchPanel form,
.header .full .SearchPanel .FormRenderer {
    display:flex;
    align-items:center;
    width:100%;
    max-width:100%;
    height:100%;
    margin:0;
    padding:0;
    box-sizing:border-box;
    border-collapse:separate;
  }

  .header .full .SearchPanel .fields {
    display:flex;
    align-items:center;
    flex:1 1 auto;
    min-width:0;
    width:auto;
    max-width:none;
    height:100%;
    padding:0;
    margin:0;
  }

  .header .full .SearchPanel .InputField,
.header .full .SearchPanel .TextField {
    display:block;
    flex:1 1 auto;
    min-width:0;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
  }

  .header .full .SearchPanel input[type='text'],
.header .full .SearchPanel input[name='keyword'] {
    display:block;
    width:100%;
    max-width:none;
    height:38px;
    min-height:38px;
    margin:0;
    padding:0 12px;
    border:1px solid #ded6cd;
    border-radius:4px 0 0 4px;
    box-sizing:border-box;
    font-size:16px;
    line-height:38px;
    background:#ffffff;
    color:#222222;
  }

  body.mobile-header-condensed .header .full .SearchPanel input[type='text'],
body.mobile-header-condensed .header .full .SearchPanel input[name='keyword'],
body.index.mobile-header-condensed .header .full .SearchPanel input[type='text'],
body.index.mobile-header-condensed .header .full .SearchPanel input[name='keyword'] {
    height:32px;
    min-height:32px;
    line-height:32px;
  }

  .header .full .SearchPanel .buttons {
    display:flex;
    align-items:center;
    height:100%;
    padding:0;
    margin:0;
  }

  .header .full .SearchPanel button[name="filter"] {
    display:block;
    width:48px;
    min-width:48px;
    max-width:48px;
    height:38px;
    min-height:38px;
    max-height:38px;
    margin:0;
    padding:0;
    box-sizing:border-box;
    border:1px solid #1f3fa8;
    border-left:0;
    border-radius:0 4px 4px 0;
    background:#3366ff url("../../images/lupichka.png") no-repeat center center;
    background-size:22px 22px;
    text-indent:-9999px;
    overflow:hidden;
  }

  body.mobile-header-condensed .header .full .SearchPanel button[name="filter"],
body.index.mobile-header-condensed .header .full .SearchPanel button[name="filter"] {
    width:42px;
    min-width:42px;
    max-width:42px;
    height:32px;
    min-height:32px;
    max-height:32px;
    background-size:18px 18px;
  }

  .header .full .SearchPanel button[name="clear"],
.header .full .SearchPanel .InputLabel {
    display:none;
  }

  .header .full .SearchPanel form.FormRenderer {
    gap:8px;
  }

  .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    width:calc(100vw - 74px);
    max-width:calc(100vw - 74px);
    min-width:0;
    border-radius:20px;
  }

  .header .full .SearchPanel .buttons {
    flex:0 0 42px;
    width:42px;
    min-width:42px;
    max-width:42px;
  }

  .header .full .SearchPanel button.DefaultButton[name="filter"] {
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    min-width:42px;
    max-width:42px;
    height:42px;
    min-height:42px;
    max-height:42px;
    border-radius:50%;
    border:1px solid #1f3fa8;
  }

  body.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.index.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    width:calc(100vw - 60px);
    max-width:calc(100vw - 60px);
    min-width:0;
    border-radius:16px;
  }

  body.mobile-header-condensed .header .full .SearchPanel .buttons,
body.index.mobile-header-condensed .header .full .SearchPanel .buttons {
    flex-basis:32px;
    width:32px;
    min-width:32px;
    max-width:32px;
  }

  body.mobile-header-condensed .header .full .SearchPanel button.DefaultButton[name="filter"],
body.index.mobile-header-condensed .header .full .SearchPanel button.DefaultButton[name="filter"] {
    width:32px;
    min-width:32px;
    max-width:32px;
    height:32px;
    min-height:32px;
    max-height:32px;
    border-radius:50%;
  }

  body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    border:1px solid #ded6cd;
  }

  body.index.mobile-search-open .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"],
body.mobile-search-open .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"] {
    flex:0 0 42px;
    width:42px;
    min-width:42px;
    max-width:42px;
    height:42px;
    min-height:42px;
    max-height:42px;
    border-radius:50%;
    border:1px solid #1f3fa8;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"],
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"] {
    flex-basis:32px;
    width:32px;
    min-width:32px;
    max-width:32px;
    height:32px;
    min-height:32px;
    max-height:32px;
    border-radius:50%;
  }

  body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] {
    height:44px;
    min-height:44px;
    background:none;
    background-image:none;
    border:0;
    box-shadow:none;
    overflow:visible;
  }

  body.index.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open .header .full .SearchPanel form.FormRenderer {
    height:44px;
  }

  body.index.mobile-search-open .header .full .SearchPanel .fields,
body.mobile-search-open .header .full .SearchPanel .fields,
body.index.mobile-search-open .header .full .SearchPanel .buttons,
body.mobile-search-open .header .full .SearchPanel .buttons {
    height:44px;
    min-height:44px;
  }

  body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    min-width:0;
    border-radius:22px;
    background:#ffffff;
    background-image:none;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] {
    height:32px;
    min-height:32px;
    background:none;
    background-image:none;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel form.FormRenderer {
    height:32px;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .fields,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .fields,
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .buttons,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .buttons {
    height:32px;
    min-height:32px;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    min-width:0;
    border-radius:16px;
    background:#ffffff;
    background-image:none;
  }

  body.index.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.index.mobile-search-open .header .full .SearchPanel .fields,
body.mobile-search-open .header .full .SearchPanel .fields,
body.index.mobile-search-open .header .full .SearchPanel .buttons,
body.mobile-search-open .header .full .SearchPanel .buttons {
    align-items:center;
  }

  body.index.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open .header .full .SearchPanel form.FormRenderer {
    gap:14px;
  }

  body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    width:calc(100vw - 96px);
    max-width:calc(100vw - 96px);
  }

  body.index.mobile-search-open .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"],
body.mobile-search-open .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"] {
    align-self:center;
    margin-top:0;
    margin-bottom:0;
    top:0;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel form.FormRenderer {
    gap:12px;
  }

  body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    width:calc(100vw - 78px);
    max-width:calc(100vw - 78px);
  }

  .mobile_top_actions,
body.index .mobile_top_actions {
    height:52px;
    min-height:52px;
    max-height:52px;
    padding-top:8px;
    padding-bottom:8px;
  }

  body.mobile-header-condensed .mobile_top_actions,
body.index.mobile-header-condensed .mobile_top_actions {
    height:45px;
    min-height:45px;
    max-height:45px;
    padding-top:8.5px;
    padding-bottom:8.5px;
  }

  .mobile_search_toggle,
.mobile_menu_toggle,
body.index .mobile_search_toggle,
body.index .mobile_menu_toggle {
    width:36px;
    height:36px;
    min-width:36px;
    min-height:36px;
    max-width:36px;
    max-height:36px;
    flex-basis:36px;
  }

  body.mobile-header-condensed .mobile_search_toggle,
body.mobile-header-condensed .mobile_menu_toggle,
body.index.mobile-header-condensed .mobile_search_toggle,
body.index.mobile-header-condensed .mobile_menu_toggle {
    width:28px;
    height:28px;
    min-width:28px;
    min-height:28px;
    max-width:28px;
    max-height:28px;
    flex-basis:28px;
  }

  body.mobile-search-open .header .full .SearchPanel,
body.index.mobile-search-open .header .full .SearchPanel {
    top:112px;
    height:52px;
    min-height:52px;
    max-height:52px;
    padding-top:8px;
    padding-bottom:8px;
    border-top:0;
  }

  body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel,
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel {
    top:90px;
    height:48px;
    min-height:48px;
    max-height:48px;
    padding-top:10px;
    padding-bottom:10px;
    border-top:0;
  }

  body.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.index.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.mobile-search-open .header .full .SearchPanel .fields,
body.index.mobile-search-open .header .full .SearchPanel .fields,
body.mobile-search-open .header .full .SearchPanel .buttons,
body.index.mobile-search-open .header .full .SearchPanel .buttons {
    height:36px;
    min-height:36px;
    max-height:36px;
    align-items:center;
  }

  body.mobile-search-open .header .full .SearchPanel form.FormRenderer,
body.index.mobile-search-open .header .full .SearchPanel form.FormRenderer {
    display:flex;
    width:100%;
    max-width:100%;
    min-width:0;
    flex:1 1 auto;
  }

  body.mobile-search-open .header .full .SearchPanel .fields,
body.index.mobile-search-open .header .full .SearchPanel .fields,
body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] {
    flex:1 1 auto;
    width:auto;
    max-width:none;
    min-width:0;
  }

  body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    width:100%;
    max-width:100%;
    min-width:0;
  }

  body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel form.FormRenderer,
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel form.FormRenderer,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"],
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .fields,
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .fields,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .buttons,
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .buttons {
    height:28px;
    min-height:28px;
    max-height:28px;
    align-items:center;
  }

  body.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.index.mobile-search-open .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    height:36px;
    min-height:36px;
    max-height:36px;
    line-height:36px;
    border-radius:18px;
  }

  body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"],
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel .InputField.TextField[field="keyword"] > input[type="text"][name="keyword"] {
    height:28px;
    min-height:28px;
    max-height:28px;
    line-height:28px;
    border-radius:14px;
  }

  body.mobile-search-open .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"],
body.index.mobile-search-open .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"] {
    flex:0 0 36px;
    width:36px;
    min-width:36px;
    max-width:36px;
    height:36px;
    min-height:36px;
    max-height:36px;
    border-radius:50%;
    align-self:center;
  }

  body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"],
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel button.DefaultButton[type="submit"][name="filter"][value="search"] {
    flex-basis:28px;
    width:28px;
    min-width:28px;
    max-width:28px;
    height:28px;
    min-height:28px;
    max-height:28px;
    border-radius:50%;
    align-self:center;
    background-size:16px 16px;
  }
}

/* === 6. Tablet search panel adjustments === */
@media (min-width:600px) and (max-width:900px) {
  .header .full .SearchPanel,
body.mobile-search-open .header .full .SearchPanel,
body.index.mobile-search-open .header .full .SearchPanel {
    top:141px;
  }

  body.mobile-header-condensed .header .full .SearchPanel,
body.index.mobile-header-condensed .header .full .SearchPanel,
body.mobile-search-open.mobile-header-condensed .header .full .SearchPanel,
body.index.mobile-search-open.mobile-header-condensed .header .full .SearchPanel {
    top:105px;
  }
}

/* === 7. Mobile hamburger morph === */
/* Mobile hamburger morph: menu open = X, closed = three lines.
   Keeps the existing button size unchanged. */
@media (max-width:900px) {
  body.mobile-menu-open .mobile_menu_toggle,
  body.index.mobile-menu-open .mobile_menu_toggle,
  body.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle,
  body.index.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle {
    background:#da1d1d;
    border-color:#b91616;
  }

  .mobile_menu_toggle,
  body.index .mobile_menu_toggle,
  body.mobile-header-condensed .mobile_menu_toggle,
  body.index.mobile-header-condensed .mobile_menu_toggle {
    position:relative;
  }

  .mobile_menu_toggle span,
  body.index .mobile_menu_toggle span,
  body.mobile-header-condensed .mobile_menu_toggle span,
  body.index.mobile-header-condensed .mobile_menu_toggle span {
    position:absolute;
    left:50%;
    top:50%;
    margin:0;
    transform-origin:center center;
    transition:transform 0.18s ease, opacity 0.14s ease;
  }

  .mobile_menu_toggle span:nth-child(1),
  body.index .mobile_menu_toggle span:nth-child(1) {
    transform:translate(-50%, -50%) translateY(-6px) rotate(0deg);
  }

  .mobile_menu_toggle span:nth-child(2),
  body.index .mobile_menu_toggle span:nth-child(2) {
    opacity:1;
    transform:translate(-50%, -50%) rotate(0deg);
  }

  .mobile_menu_toggle span:nth-child(3),
  body.index .mobile_menu_toggle span:nth-child(3) {
    transform:translate(-50%, -50%) translateY(6px) rotate(0deg);
  }

  body.mobile-header-condensed .mobile_menu_toggle span,
  body.index.mobile-header-condensed .mobile_menu_toggle span {
    left:50%;
    top:50%;
    margin:0;
  }

  body.mobile-header-condensed .mobile_menu_toggle span:nth-child(1),
  body.index.mobile-header-condensed .mobile_menu_toggle span:nth-child(1) {
    transform:translate(-50%, -50%) translateY(-5px) rotate(0deg);
  }

  body.mobile-header-condensed .mobile_menu_toggle span:nth-child(2),
  body.index.mobile-header-condensed .mobile_menu_toggle span:nth-child(2) {
    transform:translate(-50%, -50%) rotate(0deg);
  }

  body.mobile-header-condensed .mobile_menu_toggle span:nth-child(3),
  body.index.mobile-header-condensed .mobile_menu_toggle span:nth-child(3) {
    transform:translate(-50%, -50%) translateY(5px) rotate(0deg);
  }

  body.mobile-menu-open .mobile_menu_toggle span:nth-child(1),
  body.index.mobile-menu-open .mobile_menu_toggle span:nth-child(1),
  body.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle span:nth-child(1),
  body.index.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle span:nth-child(1) {
    transform:translate(-50%, -50%) rotate(45deg);
  }

  body.mobile-menu-open .mobile_menu_toggle span:nth-child(2),
  body.index.mobile-menu-open .mobile_menu_toggle span:nth-child(2),
  body.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle span:nth-child(2),
  body.index.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle span:nth-child(2) {
    opacity:0;
    transform:translate(-50%, -50%) scaleX(0);
  }

  body.mobile-menu-open .mobile_menu_toggle span:nth-child(3),
  body.index.mobile-menu-open .mobile_menu_toggle span:nth-child(3),
  body.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle span:nth-child(3),
  body.index.mobile-menu-open.mobile-header-condensed .mobile_menu_toggle span:nth-child(3) {
    transform:translate(-50%, -50%) rotate(-45deg);
  }
}
