/* Ultimate theme: fonts (self-hosted), accessibility helpers, and the WordPress-only bits. Design rules: #FF6720, #656363, #A6A5A5, square corners. */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/barlow-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/barlow-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-semi-condensed-latin-700-normal.woff2) format('woff2')}

html{-webkit-text-size-adjust:100%}
body{margin:0;background:#FFFFFF;color:#1F1D1D;font-family:'Barlow',system-ui,sans-serif;overflow-x:hidden}
img{max-width:100%}
main:focus{outline:none}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.ult-skip{position:absolute;left:-9999px;top:0;z-index:200;background:#FF6720;color:#1F1D1D;font:600 16px Barlow,sans-serif;padding:12px 18px;text-decoration:none}
.ult-skip:focus{left:8px;top:8px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #FF6720;outline-offset:2px}
.ult-wrap [style*="background: #1F1D1D"] a:focus-visible,.ult-wrap [style*="background: #2A2828"] a:focus-visible{outline-color:#FFFFFF}

/* Long words (product codes) never push the page wider than the phone */
h1,h2,h3,.ult-card,#prod{overflow-wrap:anywhere}
@media (max-width:700px){
  .ult-h1{font-size:40px!important}
  #prod h1.ult-h1{font-size:32px!important}
  .ult-photo{height:300px!important}
  .ult-res-wrap{padding:24px 16px 56px!important}
  #prod{padding:24px 16px 72px!important}
}
@media (max-width:420px){
  .ult-h1{font-size:34px!important}
}

/* Product search: filter panel collapses on phones (same as the static site) */
#ftoggle{display:none}
@media (max-width:860px){
  #ffilters{display:none;flex:1 1 100%!important}
  #ffilters.open{display:block}
  #ftoggle{display:block;width:100%;padding:16px;background:#1F1D1D;color:#fff;border:0;font-weight:600;font-size:16px;font-family:inherit;cursor:pointer;text-align:left}
}
.js .ult-apply{display:none}
.no-js #ftoggle{display:none}
.no-js #ffilters{display:block}

/* Legal and plain pages: text from the editor */
.ult-legal h2{font-family:'Barlow Semi Condensed',sans-serif;font-weight:700;font-size:28px;line-height:1.1;margin:40px 0 14px;color:#1F1D1D}
.ult-legal p,.ult-legal li{font-size:17px;line-height:1.65;color:#1F1D1D}
.ult-legal code{font-size:15px;background:#F5F4F3;padding:1px 5px}

/* WooCommerce notices (rarely shown) */
.woocommerce-notices-wrapper:empty{display:none}

/* Outlet phone and email links: at least 24px tall touch targets (WCAG 2.2) */
#outlets a[href^="tel:"],#outlets a[href^="mailto:"]{display:inline-flex;align-items:center;min-height:24px}

/* SEO pass: mega-menu column titles are labels, not headings (keeps one H1 and a clean H2/H3 outline) */
.nv-col .nv-h{font-family:'Barlow',sans-serif;font-weight:600;font-size:22px;line-height:1.2;margin:0 0 10px;color:#1F1D1D}
/* width/height attributes on images only reserve the aspect ratio while loading; CSS keeps the sizes
   (zero specificity, so every existing rule and inline style still wins) */
:where(img[width][height]){width:auto;height:auto}
/* Legal pages: tables (privacy, cookies). On phones each row becomes a card with the column names as labels. */
.ult-legal .ult-table{margin:0 0 22px}
.ult-legal table{border-collapse:collapse;width:100%}
.ult-legal th,.ult-legal td{text-align:left;vertical-align:top;border:1px solid #E5E3E2;padding:10px 12px;font-size:15px;line-height:1.5;color:#1F1D1D;overflow-wrap:anywhere}
.ult-legal thead th{background:#F5F4F3;font-weight:600}
.ult-legal tbody th{font-weight:600}
@media (max-width:700px){.ult-legal table,.ult-legal tbody,.ult-legal tr,.ult-legal th,.ult-legal td{display:block;width:auto}.ult-legal thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ult-legal tr{border:1px solid #E5E3E2;margin:0 0 12px}.ult-legal th,.ult-legal td{border:0;border-bottom:1px solid #EDEBEA}.ult-legal tr>:last-child{border-bottom:0}.ult-legal tbody td::before,.ult-legal tbody th::before{content:attr(data-label);display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#656363;margin-bottom:2px}}
/* Site map page */
.ult-sm{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:32px 40px}
.ult-sm h2{font-family:'Barlow',sans-serif;font-weight:600;font-size:26px;margin:0 0 12px;color:#1F1D1D}
.ult-sm h3{font-size:17px;font-weight:600;margin:18px 0 6px;color:#1F1D1D}
.ult-sm ul{list-style:none;margin:0;padding:0}
.ult-sm li{margin:0 0 6px;font-size:16px;line-height:1.45}
.ult-sm a{color:#1F1D1D}
.ult-sm .sm-n{color:#656363;font-size:14px}

/* QA fixes, 8 Nov 2026 ------------------------------------------------- */
/* m1: nothing wider than the screen at 320 px (cookie banner buttons, outlet cards with long emails) */
@media (max-width: 360px) { .ult-cc-act .ult-cc-b { flex: 1 1 0; min-width: 0; white-space: normal; } }
#outlets a[href^="mailto:"], #outlets a[href^="tel:"] { overflow-wrap: anywhere; }
/* m2: touch targets at least 44 px on touch screens */
@media (pointer: coarse) {
	button, input[type="submit"], .hd-menu > summary, .ult-btn, a[data-ult-back] { min-height: 44px; }
	footer a, .ft a { display: inline-block; min-height: 44px; line-height: 44px; }
}
/* m3: while the cookie banner is open, hide the specification bar so they never cover the screen together */
body:has(#ult-cc:not([hidden])) .sp-bar { display: none !important; }
/* m11: product codes never break across lines */
#prod table td:first-child, #prod table td:first-child a { white-space: nowrap; }
