/* v0.2.19 — mobile site navigation (no menu search) / desktop parity.
 * Keep announcement and desktop menu untouched at widths >920px.
 * The header contains the panel; position it relative to the sticky header
 * rather than using fixed position (iOS Safari / backdrop-filter safe).
 */
@media (max-width: 920px) {
  .announce { display:none!important; }
  header.site { z-index:100!important; }
  header.site .header-secondary { display:none!important; }
  header.site .nav-primary {
    display:flex; flex-wrap:nowrap; align-items:center;
    height:60px; min-height:60px;
    padding-inline:12px; gap:8px;
  }
  header.site .nav-primary > .logo { min-width:0; max-width:calc(100% - 144px); }
  header.site .nav-primary > .logo img { width:auto; height:auto; max-height:32px; max-width:100%; object-fit:contain; }
  header.site .nav-primary > .grow { flex:1; min-width:0; }
  header.site .nav-primary > .site-search,
  header.site .nav-primary > .language-choice,
  header.site .nav-primary > .accountbtn,
  header.site .nav-primary > .header-quote { display:none!important; }
  header.site .nav-primary > .cartbtn {
    flex:0 0 43px; width:43px; height:43px;
    min-width:43px; background:#fff;
    border:1px solid #D5D1C8; border-radius:6px;
    color:#25323A;
  }
  header.site .nav-primary > .cfs-mobile-menu-toggle {
    display:inline-flex!important; flex:0 0 auto;
    flex-direction:row; align-items:center; justify-content:center;
    gap:4px; min-width:78px; width:auto; height:43px;
    border:1px solid #D5D1C8; border-radius:6px;
    background:#fff; color:#25323A; padding:0 9px;
    font:700 13px/1 Inter,system-ui,sans-serif; cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  header.site .nav-primary > .cfs-mobile-menu-toggle svg { display:block; width:22px; height:22px; flex:none; }
  header.site .nav-primary > .cfs-mobile-menu-toggle .cfs-mobile-menu-label { display:block; background:none; width:auto; height:auto; white-space:nowrap; }
  header.site .nav-primary > .cfs-mobile-menu-toggle .cfs-menu-close-icon { display:none; }
  header.site .nav-primary > .cfs-mobile-menu-toggle[aria-expanded="true"] {
    background:#EAF2F7; border-color:#2B5872; color:#174664;
  }
  header.site .nav-primary > .cfs-mobile-menu-toggle[aria-expanded="true"] .cfs-menu-open-icon { display:none; }
  header.site .nav-primary > .cfs-mobile-menu-toggle[aria-expanded="true"] .cfs-menu-close-icon { display:block; }
  header.site .nav-primary > .cfs-mobile-menu-toggle:focus-visible,
  header.site .nav-primary > .cartbtn:focus-visible,
  header.site .cfs-mobile-nav a:focus-visible,
  header.site .cfs-mobile-nav summary:focus-visible { outline:3px solid #E97829; outline-offset:2px; }

  header.site .cfs-mobile-nav[hidden] { display:none!important; }
  header.site .cfs-mobile-nav:not([hidden]) {
    display:block!important; position:absolute!important;
    top:100%!important; bottom:auto!important;
    left:0!important; right:0!important;
    width:100%; max-height:calc(100vh - 60px); max-height:calc(100dvh - 60px);
    overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain;
    box-sizing:border-box; margin:0; padding:0 0 calc(24px + env(safe-area-inset-bottom));
    background:#FFFFFF; border-top:1px solid #D8D5CE;
    box-shadow:0 17px 34px rgba(19,33,40,.24);
    z-index:101; -webkit-overflow-scrolling:touch;
  }
  body.cfs-mobile-menu-open { overflow:hidden; }
  body.cfs-mobile-menu-open .cfs-mobile-quote-shortcut { visibility:hidden!important; }
  .cfs-mobile-nav * { box-sizing:border-box; }
  .cfs-mobile-nav .cfs-mobile-nav-top { padding:18px 16px 12px; background:#F8F7F4; border-bottom:1px solid #D8D5CE; }
  .cfs-mobile-nav .cfs-mobile-nav-title { margin:0 0 13px; font:750 15px/1.3 Inter,system-ui,sans-serif; color:#25323A; }
  .cfs-mobile-nav .cfs-mobile-nav-quicklinks { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .cfs-mobile-nav .cfs-mobile-nav-quicklinks a {
    display:flex; align-items:center; justify-content:center; gap:6px;
    min-width:0; min-height:44px; padding:10px 7px;
    font:750 13px/1.2 Inter,system-ui,sans-serif;
    border:1px solid #E97829; border-radius:5px; text-align:center;
    background:#E97829; color:#fff; text-decoration:none;
  }
  .cfs-mobile-nav .cfs-mobile-nav-quicklinks .cfs-mobile-nav-quote {
    background:#fff; color:#25323A; border-color:#CFCBC3;
  }
  .cfs-mobile-nav .cfs-mobile-nav-samples {
    display:flex; align-items:center; justify-content:center; gap:7px;
    min-height:40px; margin-top:7px; padding:8px 10px;
    border:0; color:#285779; font:700 13px/1.3 Inter,system-ui,sans-serif;
  }
  .cfs-mobile-nav .cfs-mobile-nav-samples span { display:inline; width:auto; height:auto; background:none; }
  .cfs-mobile-nav .cfs-mobile-nav-group { margin:0; padding:0 16px; border-bottom:1px solid #E4E1DA; }
  .cfs-mobile-nav .cfs-mobile-nav-group summary {
    cursor:pointer; list-style:none; min-height:52px; padding:16px 30px 15px 0;
    display:flex; align-items:center; justify-content:space-between;
    color:#25323A; font:750 15px/1.35 Inter,system-ui,sans-serif; position:relative;
  }
  .cfs-mobile-nav .cfs-mobile-nav-group summary::-webkit-details-marker { display:none; }
  .cfs-mobile-nav .cfs-mobile-nav-group summary::after {
    content:""; position:absolute; right:5px; top:20px;
    width:9px; height:9px; transform:rotate(45deg);
    border-bottom:2px solid #31516A; border-right:2px solid #31516A;
  }
  .cfs-mobile-nav .cfs-mobile-nav-group[open] > summary::after { transform:rotate(225deg); top:24px; }
  .cfs-mobile-nav .cfs-mobile-nav-links { padding:0 0 12px; }
  .cfs-mobile-nav .cfs-mobile-nav-links a {
    display:block; padding:12px 12px 12px 16px; margin:0;
    border:0; border-top:1px solid #F0EDE7;
    color:#314A5A; font:600 14px/1.35 Inter,system-ui,sans-serif;
    background:#FAFAF8;
  }
  .cfs-mobile-nav .cfs-mobile-nav-bottom { padding:16px; background:#F7F7F5; }
  .cfs-mobile-nav .cfs-mobile-nav-bottom > a {
    display:block; padding:12px; border:1px solid #DBD6CC; border-radius:5px;
    color:#25323A; font:700 14px/1.3 Inter,system-ui,sans-serif;
  }
  .cfs-mobile-nav .cfs-mobile-nav-language { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 3px 4px; font-size:13px; }
  .cfs-mobile-nav .cfs-mobile-nav-language a { display:inline; padding:0; border:0; font-weight:700; color:#285779; }
}
@media (max-width:355px) {
  header.site .nav-primary > .logo { max-width:calc(100% - 137px); }
  header.site .nav-primary > .logo img { max-height:28px; }
  header.site .nav-primary > .cfs-mobile-menu-toggle { min-width:73px; padding-inline:7px; }
}
