/* TactaBlue — Category/Shop archive Design V2.
   Extracted verbatim from the Shop prototype (Shop-tactablue (7)(1).html).
   Scoped under the wrapper class .tb-home. Enqueued only when tb_dv('category')==='v2'
   on shop / product_category / manufacturer / search archives (see inc/category-v2.php).
   NOTE (polish, V2-P5): the prototype reused the full HOME-page chrome, so the header/nav/
   footer/hero/home-section rules below are inert on the theme (theme renders its own header
   & footer). Safe but dead weight — trim to shop-only rules once the V2 markup is final. */

  .tb-home{--navy:#0A5098;--navy-d:#083E77;--navy-ink:#0C1E33;--ink:#16202B;--body:#3A4653;
    --muted:#626E7A;--paper:#fff;--mist:#F4F7FA;--mist2:#EAF1F8;--line:#DCE4EC;
    --accent:#E7A33C;--accent-d:#D08F2C;--accent-ink:#0C1E33;
    --disp:'Oswald',system-ui,sans-serif;--text:'Roboto',system-ui,sans-serif;
    font-family:var(--text);color:var(--body);line-height:1.6;background:var(--paper);
    -webkit-font-smoothing:antialiased;}
  .tb-home,.tb-home *{box-sizing:border-box;}
  .tb-home img{max-width:100%;display:block;}
  .tb-home a{color:inherit;text-decoration:none;}
  .tb-skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:99;}
  .tb-skip:focus{left:8px;top:8px;}
  .tb-wrap{max-width:1560px;margin:0 auto;padding:0 28px;}
  .tb-home h1,.tb-home h2,.tb-home h3,.tb-home h4{font-family:var(--disp);color:var(--ink);
    line-height:1.1;font-weight:600;margin:0;}
  .tb-eyebrow{font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--navy);display:inline-flex;align-items:center;gap:9px;}
  .tb-eyebrow::before{content:"";width:20px;height:2px;background:var(--accent);display:inline-block;}
  .tb-ic{width:26px;height:26px;flex:none;stroke:var(--navy);fill:none;stroke-width:1.7;
    stroke-linecap:round;stroke-linejoin:round;}
  .tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--text);
    font-weight:600;font-size:15px;padding:14px 30px;min-height:48px;border:1px solid transparent;
    cursor:pointer;transition:.18s;}
  .tb-btn--accent{background:var(--accent);color:var(--accent-ink);}
  .tb-btn--accent:hover{background:var(--accent-d);}
  .tb-btn--navy{background:var(--navy);color:#fff;}
  .tb-btn--navy:hover{background:var(--navy-d);}
  .tb-btn--outline{background:#fff;color:var(--navy);border-color:var(--navy);}
  .tb-btn--outline:hover{background:var(--mist2);}

  /* reveal */
  .tb-home .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease;}
  .tb-home .reveal.in{opacity:1;transform:none;}

  /* ---------- header ---------- */
  .tb-util{background:var(--navy);color:#fff;}
  .tb-util .tb-wrap{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 24px;
    text-align:center;font-size:14px;font-weight:500;flex-wrap:wrap;}
  /* #EDBC71 not var(--accent) — the accent is 3.71:1 on this navy bar. See home-v10.css. */
  .tb-util strong{color:#EDBC71;font-weight:700;}
  .tb-util .light{color:#D8E8F6;}
  .tb-util svg{width:17px;height:17px;stroke:var(--accent);fill:none;stroke-width:1.8;
    stroke-linecap:round;stroke-linejoin:round;flex:none;}
  .tb-hdr{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#FFFFFF 0%,#F7FAFD 100%);}
  .tb-hdr .tb-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:96px;padding:16px 28px;}
  .tb-logo{font-family:var(--disp);font-weight:700;font-size:26px;color:#13273B;line-height:1;white-space:nowrap;position:absolute;left:28px;top:50%;transform:translateY(-50%);}
  .tb-logo .b{color:var(--navy);}
  .tb-logo small{display:block;font-size:9px;letter-spacing:.28em;color:var(--muted);font-weight:600;
    margin-top:3px;}
  .tb-logo--img{display:flex;align-items:center;width:172px;max-width:172px;}
  .tb-logo--img img{width:100%;height:auto;display:block;}

  .tb-search{display:flex;height:48px;border:1px solid var(--line);min-width:0;width:min(48vw,940px);max-width:940px;margin:0 auto;}
  .tb-search input{flex:1;border:0;padding:0 14px;font:inherit;font-size:14px;min-width:0;outline:none;background:#fff;}
  .tb-search input:focus{outline:2px solid var(--navy);outline-offset:-2px;}
  .tb-search button{background:var(--navy);color:#fff;border:0;padding:0 24px;font-weight:700;font-size:14px;cursor:pointer;letter-spacing:.01em;}
  .tb-hicons{display:flex;gap:2px;align-items:center;position:absolute;right:28px;top:50%;transform:translateY(-50%);}
  .tb-hicons a,.tb-burger{display:flex;align-items:center;justify-content:center;width:42px;height:46px;color:var(--ink);background:none;border:0;cursor:pointer;border-radius:50%;transition:.16s;position:relative;}
  .tb-hcount{position:absolute;top:3px;right:1px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:700;line-height:17px;text-align:center;}
  .tb-hicons svg{width:23px;height:23px;stroke:var(--ink);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;} .tb-hicons a:hover,.tb-burger:hover{background:var(--mist2);color:var(--navy);}
  .tb-burger{display:none;}
  .tb-nav{border-bottom:1px solid var(--line);background:#fff;box-shadow:0 2px 8px rgba(10,44,82,.035);}
  .tb-nav .tb-wrap{display:flex;align-items:center;gap:28px;padding:12px 28px;flex-wrap:wrap;
    font-size:14px;font-weight:500;color:var(--body);}
  .tb-nav a:hover{color:var(--navy);}
  .tb-nav::after{content:"";display:block;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(10,80,152,.18) 18%,rgba(231,163,60,.35) 50%,rgba(10,80,152,.18) 82%,transparent 100%);}

  .tb-nav a.active{color:var(--navy);font-weight:700;}
  .tb-nav .allcat{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);background:#F2F7FC;padding:7px 10px;margin-left:-10px;
    text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600;color:var(--navy);}
  .tb-mnav{display:none;background:#fff;border-bottom:1px solid var(--line);}
  .tb-mnav a{display:block;padding:13px 24px;border-top:1px solid var(--line);font-weight:500;}

  /* ---------- hero slider ---------- */
  .tb-hero{position:relative;background:#EAF0F6;overflow:hidden;
    max-width:1680px;width:calc(100% - 24px);margin:12px auto 0;}
  .tb-hero__vp{position:relative;min-height:470px;}
  .tb-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease;}
  .tb-slide.is-active{opacity:1;visibility:visible;}
  .tb-slide__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .tb-slide--l .tb-slide__img{object-position:78% center;}
  .tb-slide--r .tb-slide__img{object-position:20% center;}
  .tb-slide__scrim{position:absolute;inset:0;}
  .tb-slide--l .tb-slide__scrim{background:linear-gradient(90deg,#EAF0F6 32%,rgba(234,240,246,.7) 46%,rgba(234,240,246,0) 62%);}
  .tb-slide--r .tb-slide__scrim{background:linear-gradient(270deg,#EAF0F6 30%,rgba(234,240,246,.7) 44%,rgba(234,240,246,0) 60%);}
  .tb-slide .tb-wrap{position:relative;height:100%;display:flex;align-items:center;
    min-height:470px;padding-top:40px;padding-bottom:48px;}
  .tb-slide__copy{max-width:560px;}
  .tb-slide--r .tb-slide__copy{margin-left:auto;text-align:right;}
  .tb-slide--r .tb-eyebrow{flex-direction:row-reverse;}
  .tb-slide--r .tb-eyebrow::before{display:none;}
  .tb-slide h1,.tb-slide__h{font-family:var(--disp);font-weight:700;color:var(--navy-ink);
    font-size:clamp(24px,2.8vw,38px);line-height:1.08;margin:13px 0 0;}
  .tb-slide__sub{font-size:16px;color:#33465a;margin:14px 0 22px;}
  .tb-slide--r .tb-slide__sub{margin-left:auto;}
  .tb-slide__cta{display:flex;gap:12px;flex-wrap:wrap;}
  .tb-slide--r .tb-slide__cta{justify-content:flex-end;}
  .tb-chips{display:flex;gap:9px 20px;flex-wrap:wrap;margin-top:28px;}
  .tb-slide--r .tb-chips{justify-content:flex-end;}
  .tb-chips span{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:#2c3e51;}
  .tb-chips svg{width:16px;height:16px;stroke:var(--navy);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .tb-hero__dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:9px;z-index:5;}
  .tb-hero__dots button{width:10px;height:10px;border-radius:50%;border:0;background:rgba(10,44,82,.28);cursor:pointer;padding:0;transition:.18s;}
  .tb-hero__dots button[aria-current="true"]{background:var(--accent);width:26px;border-radius:5px;}
  .tb-hero__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;
    border:0;background:rgba(255,255,255,.82);color:var(--navy-ink);font-size:26px;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:.16s;}
  .tb-hero__arrow:hover{background:#fff;}
  .tb-hero__prev{left:12px;} .tb-hero__next{right:12px;}

  /* ---------- trust strip ---------- */
  .tb-strip{background:transparent;color:#eaf1f9;}
  .tb-strip .tb-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:18px 24px;
    max-width:1680px;width:calc(100% - 24px);margin:0 auto;background:var(--navy-ink);}
  .tb-strip .item{display:flex;align-items:center;gap:13px;padding:4px 6px;}
  .tb-strip svg{width:30px;height:30px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;}
  .tb-strip .t{font-size:14px;font-weight:700;color:#fff;}
  .tb-strip .d{font-size:12.3px;color:#a9c2dc;}

  /* ---------- sections ---------- */
  .tb-sec{padding:64px 0;}
  .tb-sec--mist{background:var(--mist);}
  .tb-shead{text-align:center;max-width:680px;margin:0 auto 34px;}
  .tb-shead .tb-eyebrow{justify-content:center;}
  .tb-shead h2{font-size:clamp(26px,3.2vw,38px);color:var(--navy-ink);margin:12px 0 8px;}
  .tb-shead p{color:var(--muted);font-size:15.5px;}

  /* ---------- category photo grid ---------- */
  .tb-catgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  .tb-cat{position:relative;border:1px solid var(--line);background:#fff;overflow:hidden;transition:.18s;}
  .tb-cat:hover{box-shadow:0 10px 26px rgba(10,44,82,.14);transform:translateY(-3px);border-color:#cdd8e4;}
  .tb-cat__img{display:block;padding-top:74%;background-size:cover;background-position:center;}
  .tb-cat__label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--disp);
    font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:14px;color:var(--navy-ink);
    padding:14px 16px;border-top:3px solid var(--navy);}
  .tb-cat__arrow{color:var(--accent);transition:.18s;}
  .tb-cat:hover .tb-cat__arrow{transform:translateX(4px);}
  .tb-catgrid .tb-cat:first-child{grid-column:span 2;}
  .tb-catgrid .tb-cat:first-child .tb-cat__img{padding-top:35.5%;}

  /* ---------- best sellers ---------- */
  .tb-devnote{border:1px dashed #b7c3d1;background:#eef3f8;color:#33526f;font-size:13px;padding:12px 16px;
    margin-bottom:22px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.5;}
  .tb-devnote b{color:var(--navy);}
  .tb-prodgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .tb-card{position:relative;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;transition:.18s;}
  .tb-card:hover{box-shadow:0 10px 26px rgba(10,44,82,.12);border-color:#cdd8e4;}
  .tb-badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--navy);color:#fff;font-family:var(--disp);
    text-transform:uppercase;letter-spacing:.08em;font-size:11px;padding:5px 10px;}
  .tb-card__imgwrap{display:block;background:var(--mist);border-bottom:1px solid var(--line);}
  .tb-card__ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:200px;color:#9fb0c1;text-align:center;font-size:13px;font-weight:500;}
  .tb-ph-ic{width:38px;height:38px;stroke:#bccadb;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
  .tb-card__ph small{color:#adbccd;font-weight:400;}
  .tb-card__body{padding:15px 16px 17px;display:flex;flex-direction:column;flex:1;}
  .tb-card__cat{font-family:var(--disp);text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--navy);margin-bottom:7px;}
  .tb-card__title{font-size:14px;font-weight:500;color:var(--ink);line-height:1.4;min-height:56px;}
  .tb-card__title:hover{color:var(--navy);}
  .tb-card__ships{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:9px 0 14px;}
  .tb-card__ships svg{width:15px;height:15px;stroke:var(--navy);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .tb-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;}
  .tb-card__price{font-family:var(--disp);font-weight:600;font-size:22px;color:var(--navy-ink);}
  .tb-addbtn{font-family:var(--text);font-weight:600;font-size:13px;background:var(--navy);color:#fff;
    border:0;padding:11px 15px;cursor:pointer;transition:.16s;white-space:nowrap;}
  .tb-addbtn:hover{background:var(--accent);color:var(--accent-ink);}

  /* Keep button-label colors from being overridden by the general .tb-home a rule. */
  .tb-home a.tb-btn--navy,.tb-home a.tb-addbtn{color:#fff;}
  .tb-home a.tb-btn--navy:hover{color:#fff;}
  .tb-home a.tb-addbtn:hover{color:var(--accent-ink);}
  .tb-home a.tb-btn--accent{color:var(--accent-ink);}
  .tb-home a.tb-btn--outline{color:var(--navy);}
  .tb-home a.tb-btn:focus-visible,.tb-home a.tb-addbtn:focus-visible{outline:3px solid var(--accent);outline-offset:3px;}
  .tb-seeall{text-align:center;margin-top:34px;}

  /* ---------- why buy ---------- */
  .tb-why{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .tb-whyc{border:1px solid var(--line);background:#fff;padding:24px;}
  .tb-whyc .top{display:flex;align-items:center;gap:13px;margin-bottom:12px;}
  .tb-whyc .ic{width:46px;height:46px;background:var(--mist2);display:flex;align-items:center;justify-content:center;flex:none;}
  .tb-whyc .ic svg{width:24px;height:24px;stroke:var(--navy);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
  .tb-whyc h3{font-size:17px;color:var(--navy-ink);}
  .tb-whyc p{font-size:14px;color:var(--body);line-height:1.6;margin:0;}

  /* ---------- offers ---------- */
  .tb-offers{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .tb-offer{background:var(--navy);color:#fff;padding:38px;}
  .tb-offer:nth-child(2){background:var(--navy-ink);}
  .tb-offer .k{font-family:var(--disp);text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--accent);margin-bottom:10px;}
  .tb-offer h3{color:#fff;font-size:26px;margin-bottom:12px;}
  .tb-offer p{color:#cfe0f0;font-size:14.5px;margin-bottom:22px;}

  /* ---------- compliance strip ---------- */
  .tb-comply{background:var(--mist2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .tb-comply .tb-wrap{display:flex;align-items:center;gap:14px;padding:14px 24px;}
  .tb-comply svg{width:30px;height:30px;stroke:var(--navy);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;}
  .tb-comply p{font-size:14px;color:var(--body);margin:0;}
  .tb-comply strong{color:var(--navy-ink);}

  /* ---------- faq ---------- */
  .tb-faq{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
  .tb-fq{border:1px solid var(--line);background:#fff;padding:22px;}
  .tb-fq h3{font-size:17px;color:var(--navy-ink);margin-bottom:8px;}
  .tb-fq p{font-size:14px;margin-bottom:10px;}
  .tb-fq a{font-weight:600;color:var(--navy);font-size:14px;}

  /* ---------- newsletter ---------- */
  .tb-news{background:var(--navy);color:#fff;text-align:center;}
  .tb-news h2{color:#fff;font-size:clamp(24px,3vw,34px);margin:12px 0 8px;}
  .tb-news p{color:#cfe0f0;max-width:560px;margin:0 auto 22px;}
  .tb-news .tb-eyebrow{justify-content:center;color:#BBD4EC;}
  .tb-news form{display:flex;gap:10px;max-width:520px;margin:0 auto;}
  .tb-news input{flex:1;border:0;padding:14px 16px;font:inherit;font-size:15px;min-width:0;}
  .tb-news .fine{font-size:12px;color:#B0C7DF;margin-top:14px;}
  .tb-news .fine a{color:#cfe0f0;text-decoration:underline;}

  /* ---------- footer ---------- */
  .tb-foot{background:var(--navy-ink);color:#b9cbdd;font-size:14px;}
  .tb-foot .fbadges{border-bottom:1px solid #123a63;}
  .tb-foot .fbadges .tb-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:24px;}
  .tb-foot .fbadges .b2{display:flex;align-items:center;gap:12px;}
  .tb-foot .fbadges svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;}
  .tb-foot .fbadges .t{color:#fff;font-weight:700;font-size:13.5px;}
  .tb-foot .fbadges .d{font-size:12px;color:#9fb6cd;}
  .tb-foot .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:30px;padding:48px 24px 36px;}
  .tb-foot h4{font-family:var(--disp);text-transform:uppercase;letter-spacing:.08em;font-size:14px;color:#fff;margin:0 0 15px;}
  .tb-foot ul{list-style:none;margin:0;padding:0;}
  .tb-foot li{margin-bottom:9px;}
  .tb-foot li a:hover{color:#fff;}
  .tb-foot .flogo{font-family:var(--disp);font-weight:700;font-size:23px;color:#fff;}
  .tb-foot .flogo .b{color:#5fa2e0;}
  .tb-foot .flogo small{display:block;font-size:9px;letter-spacing:.28em;color:#7f9bb7;font-weight:600;margin-top:3px;}
  .tb-foot .blurb{max-width:340px;line-height:1.6;color:#9fb6cd;margin:14px 0;}
  .tb-foot .contact{font-size:13px;line-height:1.7;color:#9fb6cd;}
  .tb-foot .contact a{color:#cfe0f0;}
  .tb-foot .noffl{margin-top:12px;font-size:12.5px;color:#7f9bb7;border-left:2px solid var(--accent);padding-left:10px;}
  .tb-foot .subs{display:flex;height:44px;}
  .tb-foot .subs input{flex:1;border:0;padding:0 12px;font:inherit;font-size:13px;min-width:0;}
  .tb-foot .subs button{background:var(--accent);color:var(--accent-ink);border:0;width:46px;font-size:18px;cursor:pointer;}
  .tb-foot .pay{font-size:12px;color:#7f9bb7;margin-top:12px;line-height:1.6;}
  .tb-foot .fbot{border-top:1px solid #123a63;}
  .tb-foot .fbot .tb-wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 24px;font-size:12.5px;color:#8ba6c1;}
  .tb-foot .fbot a{color:#8ba6c1;} .tb-foot .fbot a:hover{color:#fff;}

  /* ---------- responsive ---------- */
  @media(max-width:960px){
    .tb-hdr .tb-wrap{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand icons" "search search";row-gap:12px;min-height:auto;}
    .tb-logo{grid-area:brand;position:static;transform:none;} .tb-hicons{grid-area:icons;position:static;transform:none;} .tb-search{grid-area:search;max-width:none;width:100%;}
    .tb-burger{display:flex;} .tb-nav{display:none;}
    .tb-util .light{display:none;}
    .tb-hero{width:100%;margin-top:0;}
    .tb-strip .tb-wrap{width:100%;}

    .tb-hero__vp{min-height:0;}
    .tb-slide{position:absolute;}
    .tb-slide.is-active{position:relative;}
    .tb-slide__scrim,.tb-slide--l .tb-slide__scrim,.tb-slide--r .tb-slide__scrim{background:linear-gradient(180deg,rgba(240,244,248,.9) 58%,rgba(240,244,248,.72));}
    .tb-slide .tb-wrap{min-height:540px;align-items:flex-start;padding:26px 24px 40px;}
    .tb-slide h1,.tb-slide__h{font-size:24px;}
    .tb-slide__sub{font-size:15px;margin:12px 0 18px;}
    .tb-slide__copy{padding-top:8px;}
    .tb-slide__copy,.tb-slide--r .tb-slide__copy{max-width:100%;margin:0;text-align:left;}
    .tb-slide--r .tb-slide__sub{margin-left:0;}
    .tb-slide--r .tb-slide__cta,.tb-slide--r .tb-chips{justify-content:flex-start;}
    .tb-slide--r .tb-eyebrow{flex-direction:row;} .tb-slide--r .tb-eyebrow::before{display:inline-block;}
    .tb-strip .tb-wrap{grid-template-columns:repeat(2,1fr);gap:14px;}
    .tb-catgrid{grid-template-columns:repeat(2,1fr);}
    .tb-catgrid .tb-cat:first-child{grid-column:span 2;}
    .tb-catgrid .tb-cat:first-child .tb-cat__img{padding-top:50%;}
    .tb-prodgrid{grid-template-columns:repeat(2,1fr);}
    .tb-why{grid-template-columns:1fr;}
    .tb-offers,.tb-faq{grid-template-columns:1fr;}
    .tb-foot .cols{grid-template-columns:1fr 1fr;}
    .tb-foot .fbadges .tb-wrap{grid-template-columns:1fr 1fr;}
    .tb-sec{padding:48px 0;}
  }
  @media(max-width:560px){
    .tb-slide .tb-wrap{min-height:500px;padding-top:22px;padding-bottom:36px;}
    .tb-catgrid,.tb-prodgrid,.tb-foot .cols,.tb-foot .fbadges .tb-wrap,.tb-strip .tb-wrap{grid-template-columns:1fr;}
    .tb-catgrid .tb-cat:first-child .tb-cat__img{padding-top:60%;}
    .tb-card__title{min-height:0;}
    .tb-news form{flex-direction:column;}
    .tb-hero__arrow{display:none;}
  }
  @media(prefers-reduced-motion:reduce){.tb-home .reveal{opacity:1;transform:none;transition:none;}
    .tb-slide{transition:none;}}


  /* base reset — the theme scopes styles under .tb-home but leaves the UA body margin,
     which framed the full-bleed header/banner in an 8px white border */
  html.tb-home,body.tb-home{margin:0;}
  body.tb-home{background:#fff;}
  /* ============================================================
     SHOP PAGE — components layered on the TactaBlue theme tokens
     (navy #0A5098 · accent #E7A33C · Oswald/Roboto · 0 radius)
     ============================================================ */

  /* ---------- shop banner ---------- */
  .tb-shbanner{position:relative;background:var(--navy-ink);overflow:hidden;}
  .tb-shbanner .tb-wrap{position:relative;padding:52px 28px 46px;}
  .tb-shbanner .tb-eyebrow{color:#BBD4EC;}
  /* the theme's `.tb-home h1` rule (higher specificity) was overriding this to dark --ink,
     making the title invisible on the navy banner — scope it up so white wins */
  .tb-home .tb-shbanner__title{font-family:var(--disp);font-weight:700;color:#fff;font-size:clamp(30px,4vw,46px);line-height:1.05;margin:12px 0 14px;}
  .tb-shbanner__intro{color:#cfe0f0;font-size:15px;line-height:1.65;max-width:760px;margin:0 0 16px;}
  .tb-crumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:#9fc0e0;list-style:none;margin:0;padding:0;}
  .tb-crumb li{display:flex;align-items:center;gap:8px;}
  .tb-crumb li:not(:last-child)::after{content:"/";color:#5c7997;}
  .tb-crumb a:hover{color:#fff;}
  .tb-crumb li:last-child{color:#fff;font-weight:500;}

  /* ---------- shop layout ---------- */
  /* trust strip: on the shop page it sits directly under the banner, so make it
     one continuous full-bleed band (not the home page's inset floating band) */
  .tb-strip{background:var(--navy-ink);}
  .tb-strip .tb-wrap{max-width:var(--maxw,1560px);width:auto;margin:0 auto;background:none;padding:18px 28px;}

  .tb-shop{padding:34px 0 56px;}
  .tb-shoplayout{display:grid;grid-template-columns:288px minmax(0,1fr);gap:32px;align-items:start;}

  /* ---------- filter sidebar ---------- */
  .tb-filters{border:1px solid var(--line);background:#fff;position:sticky;top:16px;}
  .tb-filters__head{display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:16px 18px;border-bottom:1px solid var(--line);background:var(--mist);}
  .tb-filters__head h3{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:15px;color:var(--navy-ink);font-weight:700;}
  .tb-clearlink{font-size:12.5px;font-weight:600;color:var(--navy);white-space:nowrap;}
  .tb-clearlink:hover{color:var(--accent-d);text-decoration:underline;}

  .tb-fsec{padding:16px 18px;border-bottom:1px solid var(--line);}
  .tb-fsec > h4{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;color:var(--navy-ink);font-weight:700;margin:0 0 12px;}

  /* active filter chips */
  .tb-active{display:flex;flex-wrap:wrap;gap:7px;padding:14px 18px;border-bottom:1px solid var(--line);}
  .tb-active:empty{display:none;}
  .tb-chip{display:inline-flex;align-items:center;gap:6px;background:var(--mist2);border:1px solid var(--line-2,#cfe0f1);
    color:var(--navy-ink);font-size:12px;font-weight:500;padding:5px 8px;}
  .tb-chip button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:0;}
  .tb-chip button:hover{color:var(--accent-d);}

  /* price */
  .tb-price-fields{display:flex;gap:10px;}
  .tb-price-fields .f{flex:1;min-width:0;}
  .tb-price-fields label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em;}
  .tb-price-fields input{width:100%;border:1px solid var(--line);padding:9px 10px;font:inherit;font-size:14px;background:#fff;}
  .tb-price-fields input:focus{outline:2px solid var(--navy);outline-offset:-2px;}
  .tb-fapply{width:100%;margin-top:11px;background:var(--navy);color:#fff;border:0;padding:11px;font-family:var(--text);font-weight:600;font-size:13.5px;cursor:pointer;transition:.16s;}
  .tb-fapply:hover{background:var(--navy-d);}

  /* customer reviews stars */
  .tb-rate-rows{display:flex;flex-direction:column;gap:2px;}
  .tb-rate-rows label{display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px 6px;font-size:13px;color:var(--body);transition:.14s;}
  .tb-rate-rows label:hover{background:var(--mist);}
  .tb-rate-rows input{position:absolute;opacity:0;width:0;height:0;}
  .tb-rate-rows .stars{color:#D6DEE7;font-size:15px;letter-spacing:1px;white-space:nowrap;}
  .tb-rate-rows .stars b{color:var(--accent);font-weight:400;}
  .tb-rate-rows input:checked + .stars ~ .lab,.tb-rate-rows input:checked ~ .lab{color:var(--navy-ink);font-weight:600;}
  .tb-rate-rows .lab{font-size:12.5px;color:var(--muted);}
  .tb-rate-rows label:has(input:checked){background:var(--mist2);}
  /* The native radio is hidden (opacity:0, 0x0) and the label is the only visible thing,
     so without this a keyboard user tabbing into the rating filter sees NOTHING — there
     was :hover and :checked styling but no focus state at all (WCAG 2.4.7). The
     indicator has to go on the label, since the input itself has no painted box.
     :has() is already used on the line above, so it is safe in this file. */
  .tb-rate-rows label:has(input:focus-visible),
  .tb-rate-rows label:has(input:focus){outline:3px solid var(--navy);outline-offset:1px;background:var(--mist);}

  /* accordion filter groups */
  .tb-fgroup{border-bottom:1px solid var(--line);}
  .tb-fgroup__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
    background:none;border:0;padding:16px 18px;cursor:pointer;text-align:left;
    font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;color:var(--navy-ink);font-weight:700;}
  .tb-fgroup__toggle:hover{color:var(--navy);}
  .tb-fgroup__toggle .chev{transition:transform .2s;color:var(--muted);flex:none;}
  .tb-fgroup__toggle svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .tb-fgroup.is-open .tb-fgroup__toggle .chev{transform:rotate(180deg);}
  .tb-fgroup__body{display:none;padding:0 18px 16px;}
  .tb-fgroup.is-open .tb-fgroup__body{display:block;}
  .tb-fgroup__count{background:var(--accent);color:var(--accent-ink);font-family:var(--text);font-size:11px;font-weight:700;
    min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center;margin-left:auto;}
  .tb-fgroup__count:empty{display:none;}

  .tb-fsearch{position:relative;margin-bottom:10px;}
  .tb-fsearch input{width:100%;border:1px solid var(--line);padding:8px 10px 8px 30px;font:inherit;font-size:13px;background:var(--mist);}
  .tb-fsearch input:focus{outline:2px solid var(--navy);outline-offset:-2px;background:#fff;}
  .tb-fsearch svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--muted);fill:none;stroke-width:2;}

  .tb-checklist{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;}
  .tb-checklist.short{max-height:none;}
  .tb-checklist li{margin:0;}
  .tb-checklist label{display:flex;align-items:center;gap:9px;padding:6px 4px;cursor:pointer;font-size:13.5px;color:var(--body);line-height:1.3;transition:.12s;}
  .tb-checklist label:hover{color:var(--navy-ink);}
  .tb-checklist label.is-hidden{display:none;}
  .tb-checklist input{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex:none;border:1.5px solid var(--line-2,#cfe0f1);background:#fff;cursor:pointer;position:relative;transition:.14s;margin:0;}
  .tb-checklist input:hover{border-color:var(--navy);}
  .tb-checklist input:checked{background:var(--navy);border-color:var(--navy);}
  .tb-checklist input:checked::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
  .tb-checklist input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .tb-fnote{font-size:11.5px;color:var(--muted);margin:8px 2px 0;line-height:1.5;}
  .tb-checklist::-webkit-scrollbar{width:8px;}
  .tb-checklist::-webkit-scrollbar-thumb{background:var(--line-2,#cfe0f1);}
  .tb-checklist::-webkit-scrollbar-track{background:var(--mist);}

  .tb-fmore{padding:16px 18px;}
  .tb-fmore h4{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;color:var(--navy-ink);font-weight:700;margin:0 0 10px;}
  .tb-fmore a{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--navy);font-weight:500;margin-right:16px;}
  .tb-fmore a:hover{color:var(--accent-d);}
  .tb-fmore a::after{content:"→";color:var(--accent);}

  /* ---------- toolbar ---------- */
  .tb-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
    padding:0 0 20px;border-bottom:1px solid var(--line);margin-bottom:24px;}
  .tb-toolbar__count{font-size:14px;color:var(--body);}
  .tb-toolbar__count b{color:var(--navy-ink);font-weight:700;}
  .tb-toolbar__right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
  .tb-filterbtn{display:none;align-items:center;gap:8px;background:#fff;border:1px solid var(--navy);color:var(--navy);
    font-weight:600;font-size:14px;padding:10px 16px;cursor:pointer;}
  .tb-filterbtn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;}
  .tb-sort{display:flex;align-items:center;gap:8px;}
  .tb-sort label{font-size:13px;color:var(--muted);font-weight:500;}
  .tb-sort select{border:1px solid var(--line);background:#fff;padding:9px 32px 9px 12px;font:inherit;font-size:13.5px;color:var(--navy-ink);
    cursor:pointer;appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236A7784' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 11px center;}
  .tb-sort select:focus{outline:2px solid var(--navy);outline-offset:-1px;}

  /* ---------- product card additions (extends theme .tb-card) ---------- */
  .tb-card__imgwrap{position:relative;}
  .tb-heart{position:absolute;top:10px;right:10px;z-index:3;width:34px;height:34px;border:1px solid var(--line);background:rgba(255,255,255,.94);
    display:grid;place-items:center;cursor:pointer;color:var(--muted);transition:.16s;border-radius:50%;}
  .tb-heart svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
  .tb-heart:hover{color:var(--accent-d);border-color:var(--accent);}
  .tb-heart.is-on{color:#fff;background:var(--accent);border-color:var(--accent);}
  .tb-heart.is-on svg{fill:#fff;}
  .tb-card__rate{display:flex;align-items:center;gap:7px;margin:8px 0 0;}
  .tb-card__rate .stars{color:#D6DEE7;font-size:13px;letter-spacing:.5px;}
  .tb-card__rate .stars b{color:var(--accent);font-weight:400;}
  .tb-card__rate .n{font-size:11.5px;color:var(--muted);}
  .tb-card__ph img{max-height:150px;width:auto;object-fit:contain;}
  .tb-card__ph.has-img{padding:0;height:auto;}
  .tb-addbtn{border:1px solid var(--navy);cursor:pointer;transition:.16s;}
  .tb-addbtn.is-added{background:var(--good);border-color:var(--good);color:#fff;}
  .tb-addbtn.is-added:hover{background:var(--good);color:#fff;}
  .tb-addbtn svg{width:15px;height:15px;fill:currentColor;}

  /* ---------- pagination ---------- */
  .tb-pager{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:40px;flex-wrap:wrap;}
  .tb-pager a,.tb-pager span{min-width:42px;height:42px;display:grid;place-items:center;padding:0 12px;
    border:1px solid var(--line);background:#fff;font-weight:600;font-size:14px;color:var(--navy-ink);transition:.14s;}
  .tb-pager a:hover{border-color:var(--navy);color:var(--navy);}
  .tb-pager .current{background:var(--navy);border-color:var(--navy);color:#fff;}
  .tb-pager .dots{border:0;background:none;}
  .tb-pager .prev,.tb-pager .next{font-weight:500;}

  /* ---------- empty state ---------- */
  .tb-empty{display:none;text-align:center;padding:60px 20px;border:1px dashed var(--line);background:#fff;}
  .tb-empty svg{width:44px;height:44px;stroke:var(--line-2,#cfe0f1);fill:none;stroke-width:1.4;margin-bottom:14px;}
  .tb-empty h3{font-size:20px;color:var(--navy-ink);margin-bottom:6px;}
  .tb-empty p{color:var(--muted);font-size:14px;margin:0 0 16px;}

  /* ---------- shop newsletter CTA band ---------- */
  .tb-cta{position:relative;overflow:hidden;background:var(--navy-ink);color:#fff;text-align:center;}
  .tb-cta__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;}
  .tb-cta__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,30,51,.86),rgba(12,30,51,.92));}
  .tb-cta .tb-wrap{position:relative;padding:60px 28px;}
  .tb-cta h2{color:#fff;font-size:clamp(26px,3.2vw,38px);margin:12px 0 10px;}
  .tb-cta p{color:#cfe0f0;max-width:600px;margin:0 auto 24px;font-size:15.5px;}
  .tb-cta .tb-eyebrow{justify-content:center;color:#BBD4EC;}

  /* ---------- FAQ ---------- */
  .tb-faqsec{background:var(--mist);}
  .tb-faqwrap{max-width:820px;margin:0 auto;}
  .tb-faqitem{border:1px solid var(--line);background:#fff;margin-bottom:12px;}
  .tb-faqitem__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
    background:none;border:0;padding:20px 22px;cursor:pointer;text-align:left;
    font-family:var(--disp);font-weight:600;font-size:17px;color:var(--navy-ink);}
  .tb-faqitem__q:hover{color:var(--navy);}
  .tb-faqitem__q .ic{flex:none;width:22px;height:22px;position:relative;}
  .tb-faqitem__q .ic::before,.tb-faqitem__q .ic::after{content:"";position:absolute;background:var(--accent);transition:.2s;}
  .tb-faqitem__q .ic::before{top:10px;left:2px;right:2px;height:2px;}
  .tb-faqitem__q .ic::after{left:10px;top:2px;bottom:2px;width:2px;}
  .tb-faqitem.is-open .tb-faqitem__q .ic::after{transform:scaleY(0);}
  .tb-faqitem__a{display:none;padding:0 22px 20px;color:var(--body);font-size:14.5px;line-height:1.65;}
  .tb-faqitem.is-open .tb-faqitem__a{display:block;}

  /* ---------- slide cart drawer (FunnelKit-style) ---------- */
  .tb-drawer-ov{position:fixed;inset:0;background:rgba(8,24,40,.55);opacity:0;visibility:hidden;transition:.25s;z-index:130;}
  .tb-drawer-ov.is-open{opacity:1;visibility:visible;}
  .tb-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:#fff;z-index:131;
    transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;}
  .tb-drawer.is-open{transform:none;}
  .tb-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--navy-ink);color:#fff;}
  .tb-drawer__head h3{color:#fff;font-family:var(--disp);font-size:18px;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:9px;}
  .tb-drawer__head h3 svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:1.7;}
  .tb-drawer__close{background:none;border:0;color:#9fc0e0;font-size:26px;line-height:1;cursor:pointer;}
  .tb-drawer__close:hover{color:#fff;}
  .tb-drawer__ship{background:var(--good-bg,#EFF8F2);color:var(--good,#217B48);font-size:13px;font-weight:600;text-align:center;padding:10px;border-bottom:1px solid var(--line);}
  .tb-drawer__body{flex:1;overflow-y:auto;padding:8px 20px;}
  .tb-drawer__empty{text-align:center;color:var(--muted);padding:50px 12px;}
  .tb-drawer__empty svg{width:40px;height:40px;stroke:var(--line-2,#cfe0f1);fill:none;stroke-width:1.4;margin-bottom:12px;}
  .tb-citem{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);}
  .tb-citem__img{width:60px;height:60px;flex:none;background:var(--mist);display:grid;place-items:center;border:1px solid var(--line);}
  .tb-citem__img svg{width:24px;height:24px;stroke:#bccadb;fill:none;stroke-width:1.5;}
  .tb-citem__main{flex:1;min-width:0;}
  .tb-citem__t{font-size:13px;font-weight:500;color:var(--ink);line-height:1.35;display:block;margin-bottom:6px;}
  .tb-citem__t:hover{color:var(--navy);}
  .tb-citem__row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .tb-qty{display:inline-flex;border:1px solid var(--line);}
  .tb-qty button{width:26px;height:28px;border:0;background:var(--mist);color:var(--navy-ink);cursor:pointer;font-size:15px;line-height:1;}
  .tb-qty button:hover{background:var(--mist2);}
  .tb-qty span{width:30px;display:grid;place-items:center;font-size:13px;font-weight:600;}
  .tb-citem__price{font-family:var(--disp);font-weight:600;font-size:15px;color:var(--navy-ink);}
  .tb-citem__rm{background:none;border:0;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline;padding:0;margin-top:6px;}
  .tb-citem__rm:hover{color:var(--accent-d);}
  .tb-drawer__foot{border-top:1px solid var(--line);padding:18px 20px;background:var(--mist);}
  .tb-drawer__sub{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;}
  .tb-drawer__sub .l{font-weight:600;color:var(--navy-ink);}
  .tb-drawer__sub .v{font-family:var(--disp);font-weight:700;font-size:24px;color:var(--navy-ink);}
  .tb-drawer__fine{font-size:12px;color:var(--muted);margin:0 0 14px;}
  .tb-drawer__btns{display:grid;gap:9px;}
  .tb-drawer__btns .tb-btn{width:100%;}

  /* ---------- newsletter modal ---------- */
  .tb-nl-overlay{position:fixed;inset:0;background:rgba(8,24,40,.72);display:none;place-items:center;z-index:140;padding:20px;}
  .tb-nl-overlay.is-open{display:grid;}
  .tb-nl-modal{position:relative;width:min(520px,100%);background:var(--navy-ink);color:#fff;border:1px solid #1E3B58;padding:38px 34px;}
  .tb-nl-modal .tb-nl-title{color:#fff;font-family:var(--disp);font-weight:700;font-size:26px;line-height:1.1;}
  .tb-nl-modal .tb-nl-sub{color:#A9C2DC;font-size:14.5px;margin:10px 0 20px;}
  .tb-nl-modal form{display:flex;gap:10px;}
  .tb-nl-modal input{flex:1;min-width:0;border:1px solid transparent;padding:13px 14px;font:inherit;font-size:15px;background:#fff;}
  .tb-nl-modal button.tnp-submit{background:var(--accent);color:var(--accent-ink);border:0;padding:0 24px;font-family:var(--text);font-weight:700;cursor:pointer;}
  .tb-nl-modal button.tnp-submit:hover{background:var(--accent-d);}
  .tb-nl-close{position:absolute;top:10px;right:14px;border:0;background:none;color:#A9C2DC;font-size:28px;line-height:1;cursor:pointer;}
  .tb-nl-close:hover{color:#fff;}
  .tb-nl-fine{color:#7E9AB6;font-size:11.5px;margin:14px 0 0;line-height:1.5;}

  /* ---------- mobile filter drawer + responsive ---------- */
  .tb-fov{display:none;}
  .tb-fclose{display:none;}
  @media(max-width:1024px){
    .tb-shoplayout{grid-template-columns:1fr;}
    .tb-filterbtn{display:inline-flex;}
    /* visibility:hidden while closed is what keeps the drawer OUT OF THE TAB ORDER.
       transform:translateX(-100%) only moves it off-canvas — its controls stay
       keyboard-focusable, so tabbing through the shop landed on 12 invisible targets
       (Clear all, the price inputs, Apply price, the group toggles). Delaying the
       visibility switch by the length of the slide keeps the close animation visible;
       on open it flips immediately. Same pattern as .tb-fov just below. */
    .tb-filters{position:fixed;top:0;left:0;bottom:0;width:min(340px,86vw);z-index:121;overflow-y:auto;
      transform:translateX(-100%);visibility:hidden;
      transition:transform .28s cubic-bezier(.4,0,.2,1),visibility 0s linear .28s;}
    .tb-filters.is-open{transform:none;visibility:visible;box-shadow:8px 0 30px rgba(10,44,82,.2);
      transition:transform .28s cubic-bezier(.4,0,.2,1),visibility 0s;}
    .tb-filters__head{position:sticky;top:0;z-index:2;}
    .tb-fclose{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:18px;line-height:1;color:var(--muted);}
    .tb-fov{display:block;position:fixed;inset:0;background:rgba(8,24,40,.5);opacity:0;visibility:hidden;transition:.25s;z-index:120;}
    .tb-fov.is-open{opacity:1;visibility:visible;}
  }
  @media(max-width:640px){
    .tb-shbanner .tb-wrap{padding:36px 24px 32px;}
    .tb-toolbar{gap:10px;}
    .tb-toolbar__count{width:100%;order:3;}
  }

  /* ============================================================
     V2 SIDEBAR — server-rendered facet compatibility.
     The theme's render_taxonomy_filter_checkboxes()/render_spec_filter_checkboxes()
     emit <ul><li><div class="checkbox"><input class="filter-checkbox"><label></div></li></ul>.
     Skin that markup to match the prototype's .tb-checklist look.
     ============================================================ */
  .tb-fgroup__body ul{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;}
  .tb-fgroup__body ul::-webkit-scrollbar{width:8px;}
  .tb-fgroup__body ul::-webkit-scrollbar-thumb{background:var(--line-2,#cfe0f1);}
  .tb-fgroup__body ul::-webkit-scrollbar-track{background:var(--mist);}
  .tb-fgroup__body li{margin:0;}
  .tb-fgroup__body li.is-hidden,.tb-fgroup__body .checkbox.is-hidden{display:none;}
  .tb-fgroup__body .checkbox{display:flex;align-items:center;gap:9px;padding:6px 4px;}
  .tb-fgroup__body .checkbox label{font-size:13.5px;color:var(--body);line-height:1.3;cursor:pointer;margin:0;}
  .tb-fgroup__body .checkbox:hover label{color:var(--navy-ink);}
  .tb-fgroup__body input.filter-checkbox{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex:none;
    border:1.5px solid var(--line-2,#cfe0f1);background:#fff;cursor:pointer;position:relative;transition:.14s;margin:0;}
  .tb-fgroup__body input.filter-checkbox:hover{border-color:var(--navy);}
  .tb-fgroup__body input.filter-checkbox:checked{background:var(--navy);border-color:var(--navy);}
  .tb-fgroup__body input.filter-checkbox:checked::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
  .tb-fgroup__body input.filter-checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .tb-checklist-wrap .tb-fnote{font-size:11.5px;color:var(--muted);margin:8px 2px 0;line-height:1.5;}

  /* WooCommerce pagination → skin like the prototype .tb-pager */
  .tb-shopmain .woocommerce-pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:40px;flex-wrap:wrap;}
  .tb-shopmain .woocommerce-pagination ul{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap;border:0;}
  .tb-shopmain .woocommerce-pagination ul li{margin:0;border:0;}
  .tb-shopmain .woocommerce-pagination .page-numbers{min-width:42px;height:42px;display:grid;place-items:center;padding:0 12px;
    border:1px solid var(--line);background:#fff;font-weight:600;font-size:14px;color:var(--navy-ink);transition:.14s;}
  .tb-shopmain .woocommerce-pagination a.page-numbers:hover{border-color:var(--navy);color:var(--navy);}
  .tb-shopmain .woocommerce-pagination .page-numbers.current{background:var(--navy);border-color:var(--navy);color:#fff;}
  .tb-shopmain .woocommerce-pagination .page-numbers.dots{border:0;background:none;min-width:auto;}

  /* CTA heading: the theme's .tb-home h2 (dark --ink) was winning over .tb-cta h2 —
     scope it up so the heading stays white on the navy CTA band. */
  .tb-home .tb-cta h2{color:#fff;}

  /* ============================================================
     Newsletter popup (global #tb-newsletter from functions.php).
     It is injected in wp_footer OUTSIDE the .tb-home wrapper, so the theme's
     CSS custom properties do NOT resolve there — define the brand palette on
     #tb-newsletter itself so all the .tb-nl-* rules above (and below) apply.
     Opened by the theme's own JS via the `.open` class. Skinned to the mockup.
     ============================================================ */
  #tb-newsletter{--navy:#0A5098;--navy-d:#083E77;--navy-ink:#0C1E33;--ink:#16202B;--body:#3A4653;
    --muted:#626E7A;--mist:#F4F7FA;--mist2:#EAF1F8;--line:#DCE4EC;
    --accent:#E7A33C;--accent-d:#D08F2C;--accent-ink:#0C1E33;
    --disp:'Oswald',system-ui,sans-serif;--text:'Roboto',system-ui,sans-serif;}
  .tb-nl-overlay.open{display:grid;place-items:center;}
  /* Neutralize the root theme's portrait 2:3 image-popup (style.css ~L1445): reset
     aspect-ratio / max-width:400 / border-radius / bottom-anchoring / ::before scrim,
     and rebuild the landscape mockup modal. ID-scoped so it beats style.css's
     .tb-nl-modal (class) WITHOUT touching the non-V2 image modal on other pages. */
  #tb-newsletter .tb-nl-modal{aspect-ratio:auto;width:min(520px,100%);max-width:520px;max-height:none;
    border-radius:0;overflow:visible;display:block;align-items:initial;
    padding:38px 34px;background-image:none !important;background:var(--navy-ink);
    border:1px solid #1E3B58;font-family:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.42);}
  #tb-newsletter .tb-nl-modal::before{display:none;}
  #tb-newsletter .tb-nl-inner{position:relative;z-index:1;width:100%;padding:0;text-align:left;color:#fff;}
  #tb-newsletter .tb-nl-title{font-family:var(--disp);font-weight:700;color:#fff;font-size:26px;line-height:1.1;margin:0;text-shadow:none;}
  #tb-newsletter .tb-nl-sub{color:#A9C2DC;font-size:14.5px;margin:10px 0 20px;}
  #tb-newsletter .tb-nl-fine{color:#7E9AB6;font-size:11.5px;margin:14px 0 0;line-height:1.5;}
  #tb-newsletter .tb-nl-close{top:10px;right:14px;font-size:28px;color:#A9C2DC;text-shadow:none;}
  #tb-newsletter .tb-nl-close:hover{color:#fff;}

  /* Direct /?na=s subscribe form → mockup layout: email + orange Subscribe INLINE (no wrap). */
  #tb-newsletter .tb-nl-form{margin:0;}
  #tb-newsletter .tb-nl-form form{display:flex;gap:10px;flex-wrap:nowrap;margin:0;align-items:stretch;}
  #tb-newsletter .tb-nl-form input[type="email"],
  #tb-newsletter .tb-nl-form .tnp-email{flex:1 1 auto;min-width:0;width:auto;border:1px solid transparent;border-radius:0;
    padding:13px 14px;font:inherit;font-size:15px;background:#fff;color:var(--navy-ink);}
  #tb-newsletter .tb-nl-form button[type="submit"],
  #tb-newsletter .tb-nl-form .tnp-submit{flex:0 0 auto;width:auto;background:var(--accent);color:var(--accent-ink);border:0;
    border-radius:0;padding:0 24px;min-height:48px;font-family:var(--text);font-weight:700;font-size:15px;
    letter-spacing:.02em;cursor:pointer;white-space:nowrap;}
  #tb-newsletter .tb-nl-form button[type="submit"]:hover,
  #tb-newsletter .tb-nl-form .tnp-submit:hover{background:var(--accent-d);color:var(--accent-ink);}

  /* ============================================================
     TERM GUIDE — topical-map content on category / tag / brand pages
     (inc/term-content.php). Only prints when the term has guide text.
     Same system as the rest of V2: navy/ink/accent tokens, Oswald
     heads, Roboto body, 0 radius, eyebrow + accent-bar motif.
     ============================================================ */
  .tb-guide{background:var(--paper);border-top:1px solid var(--line);}
  .tb-guide__grid{max-width:860px;margin:0 auto;}
  .tb-guide__grid.has-toc{max-width:none;display:grid;grid-template-columns:260px minmax(0,800px);
    grid-template-areas:"toc head" "toc main";grid-template-rows:auto 1fr;
    column-gap:56px;justify-content:center;align-items:start;}
  .tb-guide__grid.has-toc .tb-guide__head{grid-area:head;}
  .tb-guide__grid.has-toc .tb-guide__toc{grid-area:toc;}
  .tb-guide__grid.has-toc .tb-guide__main{grid-area:main;}
  .tb-guide__head{margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--line);}
  .tb-home .tb-guide__head h2,
  .tb-home .tb-guide__title{font-family:var(--disp);font-weight:600;line-height:1.1;
    font-size:clamp(26px,3.2vw,38px);color:var(--navy-ink);margin:12px 0 0;}

  /* contents list */
  .tb-guide__toc{position:sticky;top:16px;border:1px solid var(--line);background:var(--mist);padding:22px 20px;}
  .tb-guide__toc ol{list-style:none;margin:14px 0 0;padding:0;counter-reset:tbtoc;}
  .tb-guide__toc li{counter-increment:tbtoc;margin:0;}
  .tb-home .tb-guide__toc a{display:flex;gap:10px;padding:9px 0 9px 12px;border-left:2px solid var(--line);
    font-size:14px;line-height:1.4;color:var(--body);transition:.15s;}
  .tb-guide__toc a::before{content:counter(tbtoc,decimal-leading-zero);font-family:var(--disp);font-weight:600;
    font-size:13px;color:var(--accent-d);flex:none;}
  .tb-home .tb-guide__toc a:hover,.tb-home .tb-guide__toc a:focus-visible{color:var(--navy-ink);border-left-color:var(--accent);}

  /* prose — the guide scrolls inside a fixed-height box (owner's request) so a
     long guide never stretches the page. Content stays in the DOM, so it is still
     crawlable; the box is focusable so it can be scrolled by keyboard too. */
  .tb-prose{color:var(--body);font-size:16px;line-height:1.75;
    max-height:500px;overflow-y:auto;overscroll-behavior:contain;padding-right:20px;}
  .tb-prose:focus-visible{outline:2px solid var(--navy);outline-offset:4px;}
  /* A heading is focused programmatically after a contents click so keyboard and
     screen-reader users carry on from it. That must not paint the browser's
     default black ring for a mouse user; keyboard focus is styled below. */
  .tb-prose [tabindex="-1"]:focus{outline:none;}
  .tb-home .tb-prose [tabindex="-1"]:focus-visible{outline:2px solid var(--navy);outline-offset:3px;}
  /* Overlay scrollbars can be invisible until you scroll, so the box gets a soft
     bottom fade as its "there is more" cue. JS removes it at the end (.is-end). */
  .tb-prose__wrap{position:relative;}
  .tb-prose__wrap::after{content:"";position:absolute;left:0;right:20px;bottom:0;height:56px;
    background:linear-gradient(180deg,rgba(255,255,255,0),var(--paper));pointer-events:none;
    opacity:1;transition:opacity .2s;}
  .tb-prose__wrap.is-end::after,.tb-prose__wrap.no-scroll::after{opacity:0;}
  .tb-prose::-webkit-scrollbar{width:10px;}
  .tb-prose::-webkit-scrollbar-track{background:var(--mist);}
  .tb-prose::-webkit-scrollbar-thumb{background:var(--line-2,#cfe0f1);}
  .tb-prose::-webkit-scrollbar-thumb:hover{background:var(--navy);}
  .tb-prose{scrollbar-width:thin;scrollbar-color:var(--line-2,#cfe0f1) var(--mist);}
  /* an anchor from the contents list lands below the box's top edge without this */
  .tb-home .tb-prose h2{scroll-margin-top:12px;}
  /* .tb-home-scoped heading rules below out-rank a bare `.tb-prose > :first-child`,
     so the first heading kept its 46px top margin and left a gap under the divider. */
  .tb-home .tb-prose > :first-child,.tb-prose > :first-child{margin-top:0;}
  .tb-prose > :last-child{margin-bottom:0;}
  .tb-prose p{margin:0 0 18px;}
  .tb-home .tb-prose h2{font-size:clamp(22px,2.4vw,28px);color:var(--navy-ink);margin:46px 0 16px;scroll-margin-top:16px;}
  .tb-home .tb-prose h2::before{content:"";display:block;width:32px;height:3px;background:var(--accent);margin-bottom:14px;}
  .tb-home .tb-prose h3{font-size:20px;color:var(--ink);margin:30px 0 10px;}
  .tb-home .tb-prose h4{font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin:24px 0 8px;}
  .tb-prose strong,.tb-prose b{color:var(--ink);font-weight:600;}
  .tb-home .tb-prose a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--accent);
    text-decoration-thickness:2px;text-underline-offset:3px;transition:.15s;}
  .tb-home .tb-prose a:hover{color:var(--navy-d);text-decoration-color:var(--navy);}
  .tb-prose ul,.tb-prose ol{margin:0 0 20px;padding:0;list-style:none;}
  .tb-prose li{position:relative;padding-left:26px;margin:0 0 9px;}
  .tb-prose ul > li::before{content:"";position:absolute;left:4px;top:.72em;width:7px;height:7px;background:var(--accent);}
  .tb-prose ol{counter-reset:tbol;}
  .tb-prose ol > li{counter-increment:tbol;padding-left:34px;}
  .tb-prose ol > li::before{content:counter(tbol);position:absolute;left:0;top:.1em;width:24px;height:24px;
    display:grid;place-items:center;background:var(--navy-ink);color:#fff;font-family:var(--disp);font-weight:600;font-size:13px;line-height:1;}
  .tb-prose li > ul,.tb-prose li > ol{margin:9px 0 0;}
  .tb-prose blockquote{margin:26px 0;padding:18px 22px;background:var(--mist2);border-left:4px solid var(--accent);
    color:var(--ink);font-size:15.5px;}
  .tb-prose blockquote > :last-child{margin-bottom:0;}
  .tb-prose hr{border:0;border-top:1px solid var(--line);margin:34px 0;}
  .tb-home .tb-prose img{height:auto;margin:26px auto;border:1px solid var(--line);}
  .tb-prose figure{margin:26px 0;}
  .tb-prose figcaption{font-size:13px;color:var(--muted);margin-top:8px;text-align:center;}

  /* tables — scroll inside their own box on narrow screens */
  .tb-prose__table{margin:24px 0 26px;overflow-x:auto;border:1px solid var(--line);-webkit-overflow-scrolling:touch;}
  .tb-prose__table:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
  .tb-prose table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.5;min-width:480px;}
  .tb-prose th{background:var(--navy-ink);color:#fff;font-family:var(--disp);font-weight:600;font-size:13px;
    letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:13px 16px;white-space:nowrap;}
  .tb-prose td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:top;}
  .tb-prose tbody tr:nth-child(even) td{background:var(--mist);}
  .tb-prose td:first-child{color:var(--ink);font-weight:500;}

  @media(max-width:1024px){
    /* minmax(0,1fr), not 1fr: a plain 1fr track grows to the table's min-width
       (480px) and pushes the guide off a phone screen instead of letting the
       table scroll inside its own box. Measured at 390px: 482px wide, left -46px. */
    .tb-guide__grid.has-toc{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "toc" "main";
      grid-template-rows:auto;max-width:860px;margin:0 auto;}
    .tb-guide__toc{position:static;margin-bottom:30px;}
  }
  @media(max-width:640px){
    .tb-prose{font-size:15.5px;}
    .tb-guide__toc{padding:18px 16px;}
  }

  /* compliance / scope line in the archive banner — quiet but legible on navy.
     States what TactaBlue does and does not sell (owner-approved wording), and
     is mirrored into the page's structured data as disambiguatingDescription. */
  .tb-shbanner__compliance{color:#9fc0e0;font-size:13px;line-height:1.6;max-width:760px;margin:0 0 16px;}
  .tb-home .tb-shbanner__compliance a{color:#fff;text-decoration:underline;
    text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px;white-space:nowrap;}
  .tb-home .tb-shbanner__compliance a:hover{color:var(--accent);}
  @media(max-width:640px){.tb-shbanner__compliance{font-size:12.5px;}}
