/* ============================================================================
   B2C SITE-WIDE                                                B2C_SITEWIDE_V1
   ----------------------------------------------------------------------------
   The Blue Patriot B2C design carried to every page the skin never reached.
   skins.css covers the home page, the header, the footer, the contact page,
   the policy pages, the tiles and the rows. It has never touched the product
   page, the breadcrumbs, the pagers, the brand index, the cart, the checkout,
   the login, the account pages or the articles - all of which still wore the
   old glass design: pill radii, IBM Plex Mono labels, blurred panels, green
   and red status colours.

   Loaded by includes/b2c-lock.php LAST in the head, after skins.css, the
   header lock, the Custom CSS box and everything else, so it wins on order
   as well as specificity. Everything is scoped to body.sk-bluepatriot; on any
   other skin this file is not even linked.

   THE RULES IT APPLIES, so a new page can follow them:
     two colours      the primary (indigo) and the accent (lime); ink and a
                      muted grey for text; hairlines at rgba(20,30,60,.11).
                      No green, no red, no amber - status reads in weight and
                      the two colours, not a third one.
     one typeface     the page face. Nothing in IBM Plex Mono. Labels are
                      11px, .08em tracking, uppercase, primary, weight 800.
     square           no radius anywhere. Every card surface carries the
                      family's cut corner and the accent line along the cut.
     hover            primary at rest, accent with dark ink on hover for a
                      filled control; on an indigo surface, text goes accent.
                      Text on white goes primary - lime on white does not read.
     no eyebrows,     the page and section heads are the heading with the
     no breadcrumbs   accent bar. Both are display:none, not removed from
                      the markup, so the JSON-LD breadcrumbs still ship.

   The palette comes from --bp-p / --bp-a / --bp-pd / --bp-on-a, which the
   lock pins on <body> as hex literals, so var() here always resolves.
   ============================================================================ */

/* ---------- 0. tokens the lock does not carry ---------------------------- */
body.sk-bluepatriot{
  --price-new:#12181F;            /* a sale price is the price, in ink - the
                                     saving is the lime chip beside it */
  --price-old:#68727f;
  --tint:color-mix(in srgb,var(--bp-p) 6%,#fff);
  --b2c-line:rgba(20,30,60,.11);
  --b2c-line-strong:rgba(20,30,60,.2);
  --b2c-cut16:linear-gradient(315deg,transparent 11.31px,var(--bp-a) 11.31px,var(--bp-a) 14.31px,transparent 14.31px);
}

/* ---------- 1. one typeface, no eyebrows, no breadcrumbs ----------------- */
body.sk-bluepatriot .mono,
body.sk-bluepatriot .crumbs,
body.sk-bluepatriot .eyebrow,
body.sk-bluepatriot .tile__none,
body.sk-bluepatriot .tile__part,
body.sk-bluepatriot .price-ask,
body.sk-bluepatriot .pdp__meta,
body.sk-bluepatriot .pdp__cur,
body.sk-bluepatriot .pdp__save,
body.sk-bluepatriot .spectable th,
body.sk-bluepatriot .linetable th,
body.sk-bluepatriot .linetable .mono,
body.sk-bluepatriot .totals div b,
body.sk-bluepatriot .ordersummary__name em,
body.sk-bluepatriot .ordersummary li b,
body.sk-bluepatriot .toolbar__count,
body.sk-bluepatriot .pager a,body.sk-bluepatriot .pager span,body.sk-bluepatriot .pager__gap,
body.sk-bluepatriot .azbar a,
body.sk-bluepatriot .pill,
body.sk-bluepatriot .infolist .k,
body.sk-bluepatriot .dropdown__more{font-family:inherit}
/* PAGEHEAD_PLAIN_V1 moved this to style.css so it holds on every skin and
   every site. Kept here so the rule survives if the base file is ever rolled
   back on a site that is on this skin. */
body.sk-bluepatriot .eyebrow,
body.sk-bluepatriot .crumbs{display:none!important}

/* the page head is the heading with the bar; the old eyebrow box above it
   and the mono breadcrumb below are gone, so the padding closes up */
body.sk-bluepatriot .pagehead{padding:30px 0 6px}
body.sk-bluepatriot .pagehead + .section,
body.sk-bluepatriot .pagehead + .crumbs + .section{padding-top:24px}
body.sk-bluepatriot .pagehead h1{font-size:clamp(28px,3.4vw,40px)}
body.sk-bluepatriot .pagehead .btn--accent{background:var(--bp-p);color:#fff;border:0;margin-top:14px}
body.sk-bluepatriot .pagehead .btn--accent:hover{background:var(--bp-a);color:var(--bp-on-a)}
body.sk-bluepatriot .section__head{max-width:none}
body.sk-bluepatriot .section__lede{color:#68727f}
body.sk-bluepatriot .tb-sechead{align-items:flex-end}

/* ---------- 2. the card surfaces the skin never styled -------------------
   Flat white, one hairline, square; and - because the design applies the
   family to every surface - the cut corner and the accent line along it.
   Each of these has no pseudo-element of its own in style.css. */
body.sk-bluepatriot .card,
body.sk-bluepatriot .notice,
body.sk-bluepatriot .empty,
body.sk-bluepatriot .ordersummary,
body.sk-bluepatriot .sidemenu,
body.sk-bluepatriot .sidemenu__aside,
body.sk-bluepatriot .tblwrap,
body.sk-bluepatriot .totals,
body.sk-bluepatriot .pdp__buy,
body.sk-bluepatriot .gallery__main,
body.sk-bluepatriot .spectable,
body.sk-bluepatriot .policycard,
body.sk-bluepatriot .artsingle__img{
  background:#fff;border:1px solid var(--b2c-line);border-radius:0;
  box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
body.sk-bluepatriot.bpc-cut .card,
body.sk-bluepatriot.bpc-cut .notice,
body.sk-bluepatriot.bpc-cut .empty,
body.sk-bluepatriot.bpc-cut .ordersummary,
body.sk-bluepatriot.bpc-cut .totals,
body.sk-bluepatriot.bpc-cut .pdp__buy,
body.sk-bluepatriot.bpc-cut .gallery__main,
body.sk-bluepatriot.bpc-cut .policycard{
  position:relative;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%)}
body.sk-bluepatriot.bpc-cut .card::after,
body.sk-bluepatriot.bpc-cut .notice::after,
body.sk-bluepatriot.bpc-cut .empty::after,
body.sk-bluepatriot.bpc-cut .ordersummary::after,
body.sk-bluepatriot.bpc-cut .totals::after,
body.sk-bluepatriot.bpc-cut .pdp__buy::after,
body.sk-bluepatriot.bpc-cut .gallery__main::after,
body.sk-bluepatriot.bpc-cut .policycard::after{
  content:"";position:absolute;inset:-1px;pointer-events:none;z-index:6;
  background-image:var(--b2c-cut16);background-repeat:no-repeat;
  background-origin:border-box;background-clip:border-box}
/* the sticky order summary is positioned already; it keeps sticky */
body.sk-bluepatriot.bpc-cut .ordersummary{position:sticky}
/* inline-styled surfaces on the product and checkout pages */
body.sk-bluepatriot .policycard{border-radius:0!important;border-color:var(--b2c-line)!important;background:#fff!important}
body.sk-bluepatriot .notice{margin:20px 0;padding:15px 20px;border-left:4px solid var(--bp-p)}
body.sk-bluepatriot .notice--err{border-left-color:var(--bp-p);background:var(--tint)}
body.sk-bluepatriot .notice--ok{border-left-color:var(--bp-a);background:#fff}
body.sk-bluepatriot .empty{padding:44px 28px;color:#68727f}
body.sk-bluepatriot .empty strong{color:#12181F}
body.sk-bluepatriot .empty a:not(.btn){color:var(--bp-p);font-weight:700}
body.sk-bluepatriot .card h3{color:#12181F}
body.sk-bluepatriot .card p{color:#68727f}

/* ---------- 3. forms: the underline field, everywhere ---------------------
   The contact form already had it (skins.css). The checkout, the login, the
   cart's part-number line and the account pages still had the glass field
   with a 12px radius and a blue focus halo. One field now. */
body.sk-bluepatriot .field label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--bp-p);font-weight:800;margin-bottom:5px}
body.sk-bluepatriot .field input,
body.sk-bluepatriot .field select,
body.sk-bluepatriot .field textarea,
body.sk-bluepatriot .qtybox,
body.sk-bluepatriot .toolbar select,
body.sk-bluepatriot .filterbar select,
body.sk-bluepatriot .filterbar input[type=number]{
  border-radius:0;background:#fff;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;color:#12181F}
body.sk-bluepatriot .field input,
body.sk-bluepatriot .field select,
body.sk-bluepatriot .field textarea{
  border:0;border-bottom:2px solid var(--b2c-line-strong);padding:9px 2px;font-size:14.5px;background:transparent}
body.sk-bluepatriot .field input:focus,
body.sk-bluepatriot .field select:focus,
body.sk-bluepatriot .field textarea:focus{outline:0;box-shadow:none;background:transparent;border-bottom-color:var(--bp-a)}
body.sk-bluepatriot .field select{cursor:pointer}
body.sk-bluepatriot .qtybox,
body.sk-bluepatriot .toolbar select,
body.sk-bluepatriot .filterbar select,
body.sk-bluepatriot .filterbar input[type=number]{border:1.5px solid var(--b2c-line-strong)}
body.sk-bluepatriot .qtybox:focus,
body.sk-bluepatriot .toolbar select:focus,
body.sk-bluepatriot .filterbar select:focus,
body.sk-bluepatriot .filterbar input[type=number]:focus{outline:0;box-shadow:none;border-color:var(--bp-p)}
body.sk-bluepatriot .checkline input,
body.sk-bluepatriot .filterbar__check input,
body.sk-bluepatriot input[type=checkbox],
body.sk-bluepatriot input[type=radio]{accent-color:var(--bp-p)}
body.sk-bluepatriot .filterbar__clear:hover,
body.sk-bluepatriot .linkbtn{color:var(--bp-p)}
body.sk-bluepatriot .linkbtn:hover{color:var(--bp-pd);text-decoration:underline}
body.sk-bluepatriot :focus-visible{outline:2.5px solid var(--bp-a);outline-offset:3px;border-radius:0}

/* ---------- 4. the product page ------------------------------------------ */
/* gallery: a flat white plate with the cut; thumbnails square, the chosen
   one framed in primary with an accent rule beneath */
body.sk-bluepatriot .gallery__main{padding:28px;background:#fff}
body.sk-bluepatriot .gallery__main img{mix-blend-mode:normal}
body.sk-bluepatriot .gallery__thumbs button{
  border-radius:0;background:#fff;border:1px solid var(--b2c-line);box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;position:relative;transition:border-color .15s}
body.sk-bluepatriot .gallery__thumbs button:hover{transform:none;border-color:var(--bp-p)}
body.sk-bluepatriot .gallery__thumbs button.is-on{border-color:var(--bp-p);box-shadow:inset 0 -3px 0 var(--bp-a)}
/* buying panel */
body.sk-bluepatriot .pdp__brand{font-size:11px;letter-spacing:.11em;font-weight:800;color:var(--bp-p);margin-bottom:10px}
body.sk-bluepatriot .pdp h1{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.025em;margin-bottom:14px}
body.sk-bluepatriot .pdp__meta{font-size:12.5px;color:#68727f;gap:8px}
body.sk-bluepatriot .pdp__meta span{
  padding:6px 11px;border-radius:0;background:#fff;border:1px solid var(--b2c-line);
  -webkit-backdrop-filter:none;backdrop-filter:none}
body.sk-bluepatriot .pdp__meta b,
body.sk-bluepatriot .stock{color:var(--bp-p)!important;font-weight:700}
body.sk-bluepatriot .pdp__price{padding:18px 0 4px}
body.sk-bluepatriot .pdp__price .price-new{font-size:34px;letter-spacing:-.03em}
body.sk-bluepatriot .pdp__price .price-old{font-size:16px}
body.sk-bluepatriot .pdp__save{
  border-radius:0;background:var(--bp-a);color:var(--bp-on-a);border:0;
  font-size:11px;font-weight:800;letter-spacing:.04em;padding:4px 9px;margin-left:8px}
body.sk-bluepatriot .pdp__cur{font-size:12px;color:#68727f;font-weight:600}
body.sk-bluepatriot .pdp__buy{padding:20px;margin-top:18px;gap:12px}
body.sk-bluepatriot .qty{border-radius:0;background:#fff;border:1.5px solid var(--b2c-line-strong);overflow:hidden}
body.sk-bluepatriot .qty button{color:var(--bp-p);font-weight:800}
body.sk-bluepatriot .qty button:hover{background:var(--bp-a);color:var(--bp-on-a)}
body.sk-bluepatriot .qty input{font-weight:700}
body.sk-bluepatriot .pdp__note{font-size:13px;color:#68727f}
/* assurance list: the tick was a hard-coded green; the only colours here are
   the two. CSS outranks the SVG's own stroke attribute. */
body.sk-bluepatriot .pdp__assure li{color:#12181F!important;font-weight:500}
body.sk-bluepatriot .pdp__assure svg{stroke:var(--bp-p)!important}
body.sk-bluepatriot .pdp__brochure{
  border-radius:0;background:#fff;color:var(--bp-p);border:1.5px solid var(--bp-p);
  font-weight:800;box-shadow:none;transition:background .15s,color .15s}
body.sk-bluepatriot .pdp__brochure:hover{background:var(--bp-p);color:#fff;filter:none;transform:none}
/* the specification tabs: the strip carries one hairline, the open tab is
   primary with the accent rule beneath it - the same idea as the nav's
   current item. The rest sit as text and go primary on hover. */
body.sk-bluepatriot .tabs{gap:0;border-bottom:1px solid var(--b2c-line);margin-bottom:0}
body.sk-bluepatriot .tabs button{
  border:0;border-radius:0;background:transparent;color:#68727f;
  font-family:inherit;font-size:13.5px;font-weight:700;line-height:1;padding:13px 20px;margin-bottom:-1px;
  position:relative;transition:background .15s,color .15s}
body.sk-bluepatriot .tabs button:hover{background:var(--tint);color:var(--bp-p)}
body.sk-bluepatriot .tabs button.is-on{
  background:var(--bp-p);color:#fff;box-shadow:none;border:0;
  -webkit-backdrop-filter:none;backdrop-filter:none}
body.sk-bluepatriot .tabs button.is-on::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bp-a)}
body.sk-bluepatriot .tabpanel{padding:0}
body.sk-bluepatriot .spectable{border-top:0;font-size:14px}
body.sk-bluepatriot .spectable th{
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;color:var(--bp-p);
  background:var(--tint);border-bottom:1px solid var(--b2c-line);width:240px}
body.sk-bluepatriot .spectable td{border-bottom:1px solid var(--b2c-line);color:#12181F}
body.sk-bluepatriot .spectable tr:hover th,
body.sk-bluepatriot .spectable tr:hover td{background:var(--tint)}
body.sk-bluepatriot .spectable .specgroup th{
  background:var(--bp-p);color:#fff;font-size:11.5px;letter-spacing:.08em}
body.sk-bluepatriot .spectable a{color:var(--bp-p);font-weight:600}
body.sk-bluepatriot .marketing-info{color:#12181F}
/* related-category chips (catalog and product page) carry a 20px pill
   radius as an inline style */
body.sk-bluepatriot .relcats{border-top-color:var(--b2c-line)!important}
body.sk-bluepatriot .relcats a{
  border-radius:0!important;border:1px solid var(--b2c-line-strong)!important;
  color:var(--bp-p)!important;font-weight:700;transition:background .15s,color .15s,border-color .15s}
body.sk-bluepatriot .relcats a:hover{background:var(--bp-p);border-color:var(--bp-p)!important;color:#fff!important}
/* the section heads on the product page are bare h2s; they take the bar */
body.sk-bluepatriot section.wrap > h2{padding-left:14px;position:relative;font-size:24px;margin-bottom:16px}
body.sk-bluepatriot section.wrap > h2::before{
  content:"";position:absolute;left:0;top:3px;bottom:3px;width:5px;background:var(--bp-a)}

/* ---------- 5. listing chrome: toolbar, filter bar, pager ----------------- */
body.sk-bluepatriot .toolbar__count{font-size:13px;color:#68727f;font-weight:500}
body.sk-bluepatriot .toolbar select,
body.sk-bluepatriot .filterbar select,
body.sk-bluepatriot .filterbar input[type=number]{padding:8px 12px;font-size:13.5px}
body.sk-bluepatriot .filterbar__check{color:#12181F}
body.sk-bluepatriot .pager{gap:6px;margin-top:30px}
body.sk-bluepatriot .pager a,
body.sk-bluepatriot .pager span{
  border-radius:0;background:#fff;border:1px solid var(--b2c-line);box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;font-size:13px;font-weight:700;color:var(--bp-p);
  padding:9px 12px;transition:background .15s,color .15s,border-color .15s}
body.sk-bluepatriot .pager a:hover{transform:none;background:var(--bp-a);border-color:var(--bp-a);color:var(--bp-on-a)}
body.sk-bluepatriot .pager .is-on{background:var(--bp-p);border-color:var(--bp-p);color:#fff;box-shadow:none}
body.sk-bluepatriot .pager__gap{border:0;background:transparent;color:#68727f}
body.sk-bluepatriot .pager__step{font-family:inherit!important}
/* the phone-only "Filters" toggle above the listing (inline 8px radius) */
body.sk-bluepatriot .catfilter-mobtoggle{
  border-radius:0!important;border:1.5px solid var(--bp-p)!important;color:var(--bp-p);
  background:#fff;font-weight:800}
body.sk-bluepatriot .catfilter-mobtoggle:hover,
body.sk-bluepatriot .catfilter-mobtoggle[aria-expanded="true"]{background:var(--bp-p);color:#fff}

/* ---------- 5b. THE FILTER, as the approved panel draws it --------------
   Two filter panels exist: render_product_filter() in functions.php (.pf2,
   used on the product, brand, market and about pages) and the catalog page's
   own (#catfilter, .catfilter__*). Same look for both:
     a REFINE title       the panel's own label, above everything
     group titles         'Categories' / 'Brands' in bold ink, not shouted
     option rows          a square box, the name, the count on the right;
                          hover tint; a chosen row is primary with white
                          text and the box goes accent
     the search fields    kept (this catalogue has hundreds of brands) as
                          the underline field
     Clear all + Apply    a muted link and a full-width primary button
   The box is the native checkbox with appearance:none, so the JS that reads
   checked state, the keyboard and screen readers all keep working. */
body.sk-bluepatriot:not(.bpc-bar) .pf2::before,
body.sk-bluepatriot:not(.bpc-bar) .catfilter::before{
  content:"Refine";display:block;padding:15px 16px 11px;font-size:12px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--bp-p);font-weight:800;line-height:1;order:-1}
body.sk-bluepatriot .pf2__head,
body.sk-bluepatriot .catfilter__head{border-top:1px solid var(--b2c-line)!important;border-bottom:0;padding:13px 16px 8px}
/* the group titles. catalog.php prints its own <style> in the BODY - after
   this sheet - and it draws this span as an indigo pill. Declaring only the
   font here left the pill standing; every frame property is pinned now. */
body.sk-bluepatriot .pf2__head > span:first-child,
body.sk-bluepatriot .catfilter__head > span:first-child{
  background:transparent!important;border:0!important;border-radius:0!important;
  padding:0!important;display:inline!important;
  font-size:12.5px!important;font-weight:700!important;letter-spacing:0!important;
  text-transform:none!important;color:#12181F!important}
body.sk-bluepatriot .pf2__cnt,
body.sk-bluepatriot .catfilter__count{font-size:11px;color:#68727f;font-weight:600}
body.sk-bluepatriot .pf2__sw,
body.sk-bluepatriot .catfilter__searchwrap{padding:0 16px 8px;border:0}
body.sk-bluepatriot .pf2__search,
body.sk-bluepatriot .catfilter__search{font-size:12.5px;padding:6px 2px;width:100%}
body.sk-bluepatriot .pf2__list,
body.sk-bluepatriot .catfilter__list{padding:2px 8px 8px}
body.sk-bluepatriot .pf2__grp,
body.sk-bluepatriot .catfilter__group{border:0}
body.sk-bluepatriot .pf2__row,body.sk-bluepatriot .pf2__brand,body.sk-bluepatriot .pf2__sub,
body.sk-bluepatriot .catfilter__row,body.sk-bluepatriot .catfilter__brand,body.sk-bluepatriot .catfilter__sub{
  padding:5px 9px;gap:9px;font-size:13px;color:#12181F;cursor:pointer}
body.sk-bluepatriot .pf2__row--main,
body.sk-bluepatriot .catfilter__row--main{font-weight:500}
body.sk-bluepatriot .pf2__sub,
body.sk-bluepatriot .catfilter__sub{padding-left:9px;font-size:12.5px}
body.sk-bluepatriot .pf2__subs,
body.sk-bluepatriot .catfilter__subs{margin:0 0 2px 24px}
/* the square box */
body.sk-bluepatriot .pf2 input[type=checkbox],
body.sk-bluepatriot .catfilter input[type=checkbox]{
  -webkit-appearance:none;appearance:none;width:14px;height:14px;margin:0;flex:none;
  border:1.5px solid var(--b2c-line-strong);border-radius:0;background:#fff;cursor:pointer;
  display:inline-block;vertical-align:middle;transition:background .12s,border-color .12s}
body.sk-bluepatriot .pf2 input[type=checkbox]:checked,
body.sk-bluepatriot .catfilter input[type=checkbox]:checked{background:var(--bp-a);border-color:var(--bp-a)}
body.sk-bluepatriot .pf2 input[type=checkbox]:focus-visible,
body.sk-bluepatriot .catfilter input[type=checkbox]:focus-visible{outline:2px solid var(--bp-a);outline-offset:2px}
/* the count on the right; in a chosen row it reads at 70% on the primary */
body.sk-bluepatriot .pf2__bcnt,
body.sk-bluepatriot .catfilter__cnt{margin-left:auto;font-size:11px;color:#68727f;padding-left:8px}
body.sk-bluepatriot .pf2__row:has(input:checked) .pf2__bcnt,
body.sk-bluepatriot .pf2__brand:has(input:checked) .pf2__bcnt,
body.sk-bluepatriot .catfilter__row:has(input:checked) .catfilter__cnt,
body.sk-bluepatriot .catfilter__brand:has(input:checked) .catfilter__cnt{color:rgba(255,255,255,.7)}
/* the expand chevron on a category with children */
body.sk-bluepatriot .pf2__tog::before,
body.sk-bluepatriot .catfilter__toggle::before{border-color:var(--bp-p)}
body.sk-bluepatriot .pf2__row:has(input:checked) .pf2__tog::before,
body.sk-bluepatriot .catfilter__row:has(input:checked) .catfilter__toggle::before{border-color:#fff}
/* chips */
body.sk-bluepatriot .pf2__chips,
body.sk-bluepatriot .catfilter__chips{padding:0 16px 12px;gap:6px}
body.sk-bluepatriot .pf2__chip,
body.sk-bluepatriot .catfilter__chip{
  background:var(--bp-a);color:var(--bp-on-a);border-radius:0;font-size:11px;font-weight:700;padding:3px 6px 3px 10px;line-height:1.5}
body.sk-bluepatriot .pf2__chip button,
body.sk-bluepatriot .catfilter__chip button{background:transparent;color:var(--bp-on-a);border-radius:0;width:14px;height:14px;font-size:13px;font-weight:800}
body.sk-bluepatriot .pf2__none,
body.sk-bluepatriot .catfilter__noresults{color:#68727f;font-size:12.5px}
/* Clear all + a full-width Apply */
body.sk-bluepatriot .pf2__act,
body.sk-bluepatriot .catfilter__actions{gap:10px;padding:13px 16px;border-top:1px solid var(--b2c-line)}
body.sk-bluepatriot .pf2__clear,
body.sk-bluepatriot .catfilter__clear{font-size:12px;color:#68727f;padding:6px 0;flex:none;white-space:nowrap}
body.sk-bluepatriot .pf2__clear:hover,
body.sk-bluepatriot .catfilter__clear:hover{color:var(--bp-p);text-decoration:underline}
body.sk-bluepatriot .pf2__apply,
body.sk-bluepatriot .catfilter__apply{flex:1;padding:10px 12px;font-size:12.5px;font-weight:800;border-radius:0}
/* FILTER_FIT_V1 (11.95) moved this to the panels' OWN stylesheets in
   functions.php and catalog.php, so it holds on every skin - this copy only
   ever helped Blue Patriot, which was the bug. Kept as a backstop.
   PRICE_BANDS_V1 broke the desktop panel's height budget. The panel is a
   sticky flex column capped at 100vh-160px; the page gave the category list
   flex:0 1 auto (free to shrink to nothing) and only the brand list a
   min-height, so adding the Price group crushed Categories to a sliver.
   Both lists now share the leftover space and neither may fall below 150px;
   everything that is not a list is told not to shrink; and on a short
   viewport the panel itself scrolls rather than clipping the Apply row. */
@media(min-width:861px){
  body.sk-bluepatriot .pf2,
  body.sk-bluepatriot #catfilter{overflow-y:auto}
  body.sk-bluepatriot .pf2__clist,
  body.sk-bluepatriot #catfilter-list{flex:1 1 auto;min-height:150px;max-height:none}
  body.sk-bluepatriot .pf2__blist,
  body.sk-bluepatriot #brandfilter-list{flex:1.2 1 auto;min-height:150px;max-height:none}
  body.sk-bluepatriot .pf2__chips,body.sk-bluepatriot .catfilter__chips,
  body.sk-bluepatriot .pf2__head,body.sk-bluepatriot .catfilter__head,
  body.sk-bluepatriot .pf2__sw,body.sk-bluepatriot .catfilter__searchwrap,
  body.sk-bluepatriot .pf2__act,body.sk-bluepatriot .catfilter__actions{flex:none}
}
/* the scroll indicators on the panel and its lists were the browser's stock
   bar - a fat grey strip with arrow buttons running the panel's full height,
   sitting right between the filter and the listing. Slimmed to a quiet 6px
   thumb on a transparent track, no buttons; it still appears while there is
   something to scroll, so nothing becomes undiscoverable. */
body.sk-bluepatriot .pf2,
body.sk-bluepatriot #catfilter,
body.sk-bluepatriot .pf2__list,
body.sk-bluepatriot .catfilter__list{scrollbar-width:thin;scrollbar-color:rgba(20,30,60,.28) transparent}
body.sk-bluepatriot .pf2::-webkit-scrollbar,
body.sk-bluepatriot #catfilter::-webkit-scrollbar,
body.sk-bluepatriot .pf2__list::-webkit-scrollbar,
body.sk-bluepatriot .catfilter__list::-webkit-scrollbar{width:6px;height:6px}
body.sk-bluepatriot .pf2::-webkit-scrollbar-track,
body.sk-bluepatriot #catfilter::-webkit-scrollbar-track,
body.sk-bluepatriot .pf2__list::-webkit-scrollbar-track,
body.sk-bluepatriot .catfilter__list::-webkit-scrollbar-track{background:transparent}
body.sk-bluepatriot .pf2::-webkit-scrollbar-thumb,
body.sk-bluepatriot #catfilter::-webkit-scrollbar-thumb,
body.sk-bluepatriot .pf2__list::-webkit-scrollbar-thumb,
body.sk-bluepatriot .catfilter__list::-webkit-scrollbar-thumb{background:rgba(20,30,60,.24);border-radius:0}
body.sk-bluepatriot .pf2::-webkit-scrollbar-thumb:hover,
body.sk-bluepatriot #catfilter::-webkit-scrollbar-thumb:hover,
body.sk-bluepatriot .pf2__list::-webkit-scrollbar-thumb:hover,
body.sk-bluepatriot .catfilter__list::-webkit-scrollbar-thumb:hover{background:var(--bp-p)}
body.sk-bluepatriot .pf2::-webkit-scrollbar-button,
body.sk-bluepatriot #catfilter::-webkit-scrollbar-button,
body.sk-bluepatriot .pf2__list::-webkit-scrollbar-button,
body.sk-bluepatriot .catfilter__list::-webkit-scrollbar-button{display:none;width:0;height:0}

/* ---------- 6. the brand index: cards, not columns ------------------------
   brands.php prints the index as an A-Z bar and a multi-column list with an
   arrow bullet - no boxes at all. The markup stays; the list becomes a grid
   of the family's cut cards, the arrow becomes the accent dash the market
   tiles carry, and the letter headings take the section bar. */
body.sk-bluepatriot .azbar{
  position:static;border-radius:0;background:#fff;border:1px solid var(--b2c-line);box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;padding:8px;gap:4px;margin:18px 0 28px}
body.sk-bluepatriot .azbar a{
  border-radius:0;min-width:32px;padding:7px 9px;font-size:13px;font-weight:800;color:var(--bp-p);
  transition:background .15s,color .15s}
body.sk-bluepatriot .azbar a:hover{background:var(--bp-p);color:#fff}
body.sk-bluepatriot .brandgroup{margin-bottom:36px;scroll-margin-top:170px}
body.sk-bluepatriot .brandgroup__letter{
  text-align:left;font-size:22px;letter-spacing:-.02em;color:#12181F;margin:0 0 14px;
  padding-left:14px;position:relative;line-height:1.2}
body.sk-bluepatriot .brandgroup__letter::before{
  content:"";position:absolute;left:0;top:2px;bottom:2px;width:5px;background:var(--bp-a)}
body.sk-bluepatriot .brandcols{
  columns:auto;column-gap:0;display:grid;gap:12px;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
body.sk-bluepatriot .brandcols li{margin:0;break-inside:auto}
body.sk-bluepatriot .brandcols a{
  display:block;position:relative;background:#fff;border:1px solid var(--b2c-line);
  padding:16px 16px 14px;color:#12181F;font-size:14px;font-weight:700;line-height:1.3;
  transition:border-color .15s,color .15s}
body.sk-bluepatriot .brandcols a:hover{color:var(--bp-p);border-color:var(--bp-p)}
body.sk-bluepatriot .brandcols__arrow{
  display:block;width:30px;height:4px;background:var(--bp-a);font-size:0;line-height:0;margin:0 0 10px}
body.sk-bluepatriot.bpc-cut .brandcols a{
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%)}
body.sk-bluepatriot.bpc-cut .brandcols a::after{
  content:"";position:absolute;inset:-1px;pointer-events:none;
  background-image:var(--b2c-cut16);background-repeat:no-repeat;
  background-origin:border-box;background-clip:border-box}
/* the brand landing page: its category chips are ghost buttons already;
   the intro is body copy */
body.sk-bluepatriot .catalog > section > .prose{color:#12181F}

/* ---------- 7. markets and categories: the heading goes accent on hover ---
   The tiles are the primary, so the accent is what reads on them. MARKET_
   CARDS_V2 pins the heading white with !important; this outranks it. The
   category card's heading sits on a primary bar - same treatment. */
body.sk-bluepatriot .grid--4 .catcard:hover h3{color:var(--bp-a)!important}
body.sk-bluepatriot .grid--3 .catcard:hover h3{color:var(--bp-a)!important}
body.sk-bluepatriot .grid--4 .catcard,
body.sk-bluepatriot .grid--3 .catcard h3{transition:color .15s,background .15s}
/* a single market view (markets.php?m=...) prints its products as tiles
   under the page head; the intro copy is body text */
body.sk-bluepatriot .nmh-market-copy-page .prose{color:#12181F}

/* ---------- 8. the cart ---------------------------------------------------- */
body.sk-bluepatriot .linetable th{
  font-size:11px;letter-spacing:.08em;font-weight:800;color:var(--bp-p);
  background:var(--tint);border-bottom:1px solid var(--b2c-line);padding:13px 16px}
body.sk-bluepatriot .linetable td{padding:14px 16px;border-bottom:1px solid var(--b2c-line)}
body.sk-bluepatriot .linetable tr:hover td{background:var(--tint)}
body.sk-bluepatriot .linetable .mono{font-size:13px;font-weight:600;color:#68727f}
body.sk-bluepatriot .lineitem img{border-radius:0;background:#fff;border:1px solid var(--b2c-line)}
body.sk-bluepatriot .lineitem strong{color:#12181F}
body.sk-bluepatriot .linenote{color:#68727f}
body.sk-bluepatriot .totals{padding:20px 22px}
body.sk-bluepatriot .totals div{font-size:14.5px}
body.sk-bluepatriot .totals div span{color:#68727f}
body.sk-bluepatriot .totals div b{font-weight:700;color:#12181F}
body.sk-bluepatriot .totals__grand{border-top:1px solid var(--b2c-line)}
body.sk-bluepatriot .totals__grand b{color:var(--bp-p)}
body.sk-bluepatriot .cartfoot__left .btn--ghost{color:var(--bp-p)}
body.sk-bluepatriot .inlineform .field{margin:0}

/* ---------- 9. checkout ---------------------------------------------------- */
/* the three order-type cards carry their frame as inline styles */
body.sk-bluepatriot .comode{
  border:1.5px solid var(--b2c-line-strong)!important;border-radius:0!important;
  background:#fff;color:#12181F;transition:border-color .15s,background .15s}
body.sk-bluepatriot .comode:hover{border-color:var(--bp-p)!important}
body.sk-bluepatriot .comode:has(input:checked){border-color:var(--bp-p)!important;background:var(--tint)}
body.sk-bluepatriot .panel__hint{color:#68727f;font-size:13.5px}
body.sk-bluepatriot .checkoutgrid h3{color:#12181F}
body.sk-bluepatriot .ordersummary{padding:24px}
body.sk-bluepatriot .ordersummary h3{padding-left:12px;position:relative;font-size:18px}
body.sk-bluepatriot .ordersummary h3::before{
  content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;background:var(--bp-a)}
body.sk-bluepatriot .ordersummary li{border-bottom:1px solid var(--b2c-line);color:#12181F}
body.sk-bluepatriot .ordersummary__name em{font-size:12px;color:#68727f}
body.sk-bluepatriot .ordersummary li b{font-weight:700}
body.sk-bluepatriot .ordersummary .totals{background:none;border:0;clip-path:none}
body.sk-bluepatriot .ordersummary .totals::after{content:none}
body.sk-bluepatriot .cc-msg{color:#68727f;font-size:13.5px}

/* ---------- 10. login, account, orders ------------------------------------ */
body.sk-bluepatriot .loginhead__k{color:var(--bp-p)!important;font-weight:800}
body.sk-bluepatriot .loginhead h2{color:#12181F}
body.sk-bluepatriot .loginhead p{color:#68727f}
body.sk-bluepatriot .card .btn--block{margin-top:6px}
body.sk-bluepatriot .orderhead h2{padding-left:14px;position:relative}
body.sk-bluepatriot .orderhead h2::before{
  content:"";position:absolute;left:0;top:3px;bottom:3px;width:5px;background:var(--bp-a)}
/* status pills: one shape, two colours. A state that needs attention
   (new, placed, processing) is the accent; a settled one is primary. */
body.sk-bluepatriot .pill{
  border-radius:0;font-size:10.5px;letter-spacing:.08em;font-weight:800;padding:5px 10px;
  background:#fff;border:1px solid var(--b2c-line-strong);color:var(--bp-p)}
body.sk-bluepatriot .pill--new,
body.sk-bluepatriot .pill--order_placed,
body.sk-bluepatriot .pill--processing{background:var(--bp-a);border-color:var(--bp-a);color:var(--bp-on-a)}
body.sk-bluepatriot .pill--completed,
body.sk-bluepatriot .pill--order_closed,
body.sk-bluepatriot .pill--received,
body.sk-bluepatriot .pill--po_sent,
body.sk-bluepatriot .pill--po_created,
body.sk-bluepatriot .pill--sales_order,
body.sk-bluepatriot .pill--quoted,
body.sk-bluepatriot .pill--quote{background:var(--bp-p);border-color:var(--bp-p);color:#fff}
body.sk-bluepatriot .pill--cancelled{background:#fff;border-color:var(--b2c-line-strong);color:#68727f;text-decoration:line-through}

/* ---------- 11. articles -------------------------------------------------- */
body.sk-bluepatriot .artcard__img{background:var(--tint)}
body.sk-bluepatriot .artcard__body h3{color:#12181F}
body.sk-bluepatriot .artcard:hover .artcard__body h3{color:var(--bp-p)}
body.sk-bluepatriot .artcard__body p{color:#68727f}
body.sk-bluepatriot .artcard__more{color:var(--bp-p);font-weight:800;font-size:12.5px}
body.sk-bluepatriot .artcard__more::after{content:" \2192"}
body.sk-bluepatriot .artback{color:var(--bp-p);font-weight:700}
body.sk-bluepatriot .artsingle__title{letter-spacing:-.03em;padding-left:16px;position:relative}
body.sk-bluepatriot .artsingle__title::before{
  content:"";position:absolute;left:0;top:5px;bottom:5px;width:5px;background:var(--bp-a)}
body.sk-bluepatriot .artsingle__meta{color:#68727f}
body.sk-bluepatriot .artsingle__img{border-radius:0}
body.sk-bluepatriot .artsingle__body img{border-radius:0}
body.sk-bluepatriot .artsingle__body{color:#12181F}
body.sk-bluepatriot .artsingle__body a{color:var(--bp-p);font-weight:600}

/* ---------- 12. deals ------------------------------------------------------ */
body.sk-bluepatriot .dealsub{color:#68727f}
body.sk-bluepatriot .dealsub__n{border-radius:0;background:var(--bp-a);color:var(--bp-on-a);border:0;font-weight:800}
body.sk-bluepatriot .plist--rows{border:0}
/* the hourly countdown beside the home deals heading was two bare accent
   digits; the approved deal bar says what they are */
body.sk-bluepatriot .dealclock::before{content:"Ends in";font-size:12px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--bp-p);margin-right:8px;align-self:center}
/* DEALS_FEATURE_V1 - the /deals lead grid. deals.php dropped six tiles into
   a bare .plist (a block), so they stacked full width with page-wide square
   images. This is the approved feature-plus-grid: the biggest saving large
   and two rows deep, five beside it. */
body.sk-bluepatriot .plist--feature{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px;align-items:stretch}
body.sk-bluepatriot .plist--feature > .tile{margin:0;min-width:0}
body.sk-bluepatriot .plist--feature > .tile:first-child{grid-row:span 2}
body.sk-bluepatriot .plist--feature > .tile:first-child .tile__img{aspect-ratio:auto;height:340px}
body.sk-bluepatriot .plist--feature > .tile:first-child .tile__body{padding:18px 20px 20px}
body.sk-bluepatriot .plist--feature > .tile:first-child .tile__name{font-size:19px;-webkit-line-clamp:3;min-height:0}
body.sk-bluepatriot .plist--feature > .tile:first-child .price-new,
body.sk-bluepatriot .plist--feature > .tile:first-child .price-plain{font-size:26px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__img{aspect-ratio:auto;height:112px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__body{padding:9px 10px 11px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__name{font-size:12px;line-height:1.3;margin-bottom:4px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__brand{font-size:9px;margin-bottom:4px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__part{font-size:10.5px;margin-bottom:6px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .price-new,
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .price-plain{font-size:15px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .price-old{font-size:12px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__add{margin-top:8px}
body.sk-bluepatriot .plist--feature > .tile:nth-child(n+2) .tile__add .btn{padding:8px;font-size:11.5px;min-height:0}
@media(max-width:1000px){
  body.sk-bluepatriot .plist--feature{grid-template-columns:repeat(2,1fr)}
  body.sk-bluepatriot .plist--feature > .tile:first-child{grid-row:auto;grid-column:span 2}
  body.sk-bluepatriot .plist--feature > .tile:first-child .tile__img{height:260px}}
@media(max-width:560px){
  body.sk-bluepatriot .plist--feature{grid-template-columns:1fr 1fr;gap:10px}
  body.sk-bluepatriot .plist--feature > .tile:first-child .tile__img{height:200px}}

/* the saving tag on a discounted tile - the approved card's corner tag.
   Rendered by product-tile.php on this skin only (b2c_locked()). */
body.sk-bluepatriot .tile__img{position:relative}
body.sk-bluepatriot .tile__save{
  position:absolute;top:10px;left:0;z-index:3;background:var(--bp-a);color:var(--bp-on-a);
  font-size:10.5px;font-weight:800;letter-spacing:.02em;padding:4px 11px 4px 9px;line-height:1.4}

/* ---------- 13. rows and tiles: the saving and the stock line -------------
   style.css paints the saving and in-stock state green, low stock amber and
   out of stock red. Two colours: the saving is the accent chip the preview
   uses; stock reads in weight. */
body.sk-bluepatriot .prow__save{
  display:inline-block;background:var(--bp-a);color:var(--bp-on-a);font-size:10px;
  font-weight:800;padding:2px 7px;letter-spacing:.02em;white-space:nowrap;flex:none}
/* the buy end of a row is a flex line of price, chip and form. Nothing in it
   may wrap: on the live rows the chip broke into two lines and "each, excl.
   tax" into three. The unit note is not in the approved row at all. */
body.sk-bluepatriot .prow__was,
body.sk-bluepatriot .prow__now,
body.sk-bluepatriot .prow__ask,
body.sk-bluepatriot .prow__stock{white-space:nowrap;flex:none}
body.sk-bluepatriot .prow__unit{display:none}
body.sk-bluepatriot .prow__buy{gap:8px}
body.sk-bluepatriot .prow__buy .prow__add{width:auto;flex:none}
body.sk-bluepatriot .prow__stock{color:#68727f;font-weight:700}
body.sk-bluepatriot .prow__stock.is-ok{color:var(--bp-p)}
body.sk-bluepatriot .prow__stock.is-low{color:#12181F}
body.sk-bluepatriot .prow__stock.is-out{color:#68727f;text-decoration:line-through}
body.sk-bluepatriot .prow__was,
body.sk-bluepatriot .price-old{color:#68727f}
body.sk-bluepatriot .prow__now,
body.sk-bluepatriot .price-new{color:#12181F}
body.sk-bluepatriot .tile__part{font-size:11.5px;color:#68727f;font-weight:500}
body.sk-bluepatriot .tile__none,
body.sk-bluepatriot .price-ask{font-size:12px;color:#68727f;font-weight:600;letter-spacing:0}
body.sk-bluepatriot .prow__none,
body.sk-bluepatriot .prow__ask{color:#68727f;font-weight:600}

/* ---------- 14. hero -------------------------------------------------------- */
/* the slide's own call to action is the accent, as the preview's hero is */
body.sk-bluepatriot .slide__card .btn--accent{background:var(--bp-a);color:var(--bp-on-a);border:0;font-weight:800}
body.sk-bluepatriot .slide__card .btn--accent:hover{background:var(--bp-p);color:#fff}
body.sk-bluepatriot .hero__dots button{border-radius:0;width:26px;height:4px;background:rgba(255,255,255,.55)}
body.sk-bluepatriot .hero__dots button.is-on{background:var(--bp-a);width:40px}
body.sk-bluepatriot .hero--empty .btn--accent{background:var(--bp-p);color:#fff}
body.sk-bluepatriot .hero--empty .btn--accent:hover{background:var(--bp-a);color:var(--bp-on-a)}

/* ---------- 15. the add-to-cart toast (main.js) ---------------------------
   main.js builds it with inline colours - green for ok, red for error. On
   this skin it takes a class and the colours come from here. */
body.sk-bluepatriot .b2c-toast{
  background:var(--bp-p)!important;color:#fff!important;border-radius:0!important;
  border-left:5px solid var(--bp-a);font-weight:700;box-shadow:0 10px 30px rgba(20,30,60,.28)!important}
body.sk-bluepatriot .b2c-toast--err{border-left-color:#fff}
/* the cart button acknowledges the line - a short accent pulse */
@keyframes b2cCartPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--bp-a) 90%,transparent)}100%{box-shadow:0 0 0 14px color-mix(in srgb,var(--bp-a) 0%,transparent)}}
body.sk-bluepatriot .masthead__cart.is-bumped,
body.sk-bluepatriot .mainnav__cta.is-bumped{animation:b2cCartPulse .7s ease-out 1}

/* ---------- 15b. THE CONTACT PAGE, aligned ---------------------------------
   Three things were off. .form carries max-width:640px from style.css, so the
   fields stopped well short of the column they sit in while the intro copy
   above them ran full width - two different left-to-right rhythms in one
   panel. The dark details panel did not stretch, so the bordered box had a
   block of empty white under it. And the short fields (Quantity, the captcha)
   sat orphaned on their own rows. */
body.sk-bluepatriot .contactgrid{align-items:stretch}
body.sk-bluepatriot .contactgrid > :nth-child(1),
body.sk-bluepatriot .contactgrid > :nth-child(2){display:flex;flex-direction:column}
body.sk-bluepatriot .contactgrid > :nth-child(2){justify-content:flex-start}
/* the form fills its column, and the intro copy shares the same measure */
body.sk-bluepatriot .contactgrid .form{max-width:none;width:100%;gap:16px}
body.sk-bluepatriot .contactgrid > :nth-child(1) > .prose{max-width:none;margin:0 0 20px;line-height:1.6}
body.sk-bluepatriot .contactgrid > :nth-child(1) > .prose p{margin:0 0 12px}
/* whatever the stored content starts with, the column starts at its top edge */
body.sk-bluepatriot .contactgrid > :nth-child(1) > :first-child,
body.sk-bluepatriot .contactgrid > :nth-child(1) > .prose > :first-child,
body.sk-bluepatriot .contactgrid > :nth-child(2) > :first-child{margin-top:0!important;padding-top:0!important}
body.sk-bluepatriot .contactgrid .prose p:empty,
body.sk-bluepatriot .contactgrid .prose p > br:only-child{display:none}
body.sk-bluepatriot .contactgrid .prose br + br{display:none}
/* the short fields (Quantity, the captcha answer) keep a narrow INPUT but a
   full-width row, so their labels line up with every other label on the left
   edge. They are not paired into one row: the message box sits between them
   in the markup, so a two-column grid would strand the captcha on the right
   with a hole beside it. */
body.sk-bluepatriot .contactgrid .form > .field[style*="170px"],
body.sk-bluepatriot .contactgrid .form > .field[style*="220px"]{
  max-width:none!important;width:100%}
body.sk-bluepatriot .contactgrid .form > .field[style*="170px"] input{max-width:150px}
body.sk-bluepatriot .contactgrid .form > .field[style*="220px"] input{max-width:200px}
/* the message box, and the send button given room */
body.sk-bluepatriot .contactgrid .field textarea{min-height:120px;resize:vertical;line-height:1.5}
body.sk-bluepatriot .contactgrid .form > div:last-child{margin-top:4px}
body.sk-bluepatriot .contactgrid .form .btn{padding:13px 30px}
/* the details panel keeps its list at the top and does not stretch its rows */
body.sk-bluepatriot .contactgrid > :nth-child(2) .infolist{margin-top:4px}
body.sk-bluepatriot .contactgrid > :nth-child(2) .infolist li:last-child{border-bottom:0}

/* ---------- 16. small pages: error, tab, about, quote received ------------ */
body.sk-bluepatriot .code{color:var(--bp-p);font-weight:800}
body.sk-bluepatriot .muted{color:#68727f}
body.sk-bluepatriot .muted a{color:var(--bp-p);font-weight:700}
body.sk-bluepatriot .section--soft > .wrap{background:var(--tint);border-radius:0;border:0;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}
body.sk-bluepatriot .logostrip{background:#fff;border-top:1px solid var(--b2c-line);border-bottom:1px solid var(--b2c-line)}
body.sk-bluepatriot .prose a{color:var(--bp-p);font-weight:600}

/* ---------- 17. phones ------------------------------------------------------ */
@media(max-width:760px){
  body.sk-bluepatriot .pagehead{padding:22px 0 4px}
  body.sk-bluepatriot .tabs button{padding:11px 14px;font-size:13px}
  body.sk-bluepatriot .spectable th{width:38%}
  body.sk-bluepatriot .brandcols{grid-template-columns:repeat(2,1fr)}
  body.sk-bluepatriot .totals{min-width:0;width:100%}
}
