/* ==========================================================================
   Nursecall Mats 2026
   Built by Rob Richardson, Digital Design NE Ltd (digdes.co.uk)

   PART 1  our own components (group bar, catalogue bar, search, engine,
           dialogs). Our markup, so it renders exactly as designed.
   PART 2  restyling of Shoptimizer and WooCommerce output. v1.2 corrected
           against the live site from the 24/09/26 preview screenshots.
           Appearance only, never behaviour.
   PART 3  chrome takeover: our header, drawer and footer.

   v1.2 FIXES
   1. Links in the group bar, header, catalogue bar and footer were green,
      so green on grey and green on pink. Cause: PART 2's site-wide link rule
      (body.ncm-2026 a) outranked our own component rules. It now uses
      :where(), which carries no weight, so it can never beat anything.
   2. Add to basket text sat low in the button and was cut off on product
      cards. Cause: Shoptimizer gives these buttons a fixed height and
      line-height, and our 14px top padding pushed the text down inside
      them. We now set horizontal padding only and leave height to the theme.
   3. Footer logo line stretched across the whole column. Replaced by the
      supplied RGS logo, as in the signed-off design.
   4. Catalogue bar cut off the last categories with no sign there were
      more. It now fades at the edge with an arrow, and scrolls the current
      category into view.
   5. Grey strip down the right edge of every page: the closed mobile
      drawer's shadow. Now only drawn when the drawer is open.
   ========================================================================== */

:root{
  --ncm-green:#008037; --ncm-green-d:#00662c; --ncm-green-l:#e6f2eb;
  --ncm-pink:#EA4498;  --ncm-pink-l:#fdeaf4;
  --ncm-orange:#F99D31; --ncm-blue:#0092CF; --ncm-red:#F04E23;
  --ncm-grey:#525050; --ncm-grey-l:#F1EFEF; --ncm-line:#e4e1e1; --ncm-mute:#6f6d6d;
  --ncm-r:14px; --ncm-r-lg:20px;
  --ncm-shadow:0 14px 34px rgba(0,0,0,.09);
  --ncm-font:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

/* ==========================================================================
   PART 1: our components
   ========================================================================== */
.ncm-wrap{max-width:1240px;margin:0 auto;padding:0 26px}   /* 1240, as the signed-off design */

/* ---- group bar ---- */
.ncm-groupbar{background:var(--ncm-grey);color:#fff;font-family:var(--ncm-font);font-size:12.6px}
.ncm-groupbar .ncm-wrap{display:flex;align-items:center;gap:16px;min-height:44px;flex-wrap:wrap}
.ncm-gb-label{color:rgba(255,255,255,.62);font-weight:500}
.ncm-gb-links{display:flex;gap:16px;flex-wrap:wrap}
.ncm-gb-util{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap}
.ncm-groupbar a{color:rgba(255,255,255,.88);text-decoration:none;font-weight:500;padding:3px 0;
  border-bottom:2px solid transparent;transition:.2s}
.ncm-groupbar a:hover{color:#fff}
.ncm-groupbar a.on{color:#fff;font-weight:600;border-bottom-color:var(--ncm-pink)}

/* ---- catalogue bar, in the brand colour ---- */
.ncm-catbar{background:var(--ncm-pink);font-family:var(--ncm-font)}
.ncm-cat-shell{display:flex;align-items:center}
.ncm-cat-track{position:relative;flex:1 1 auto;min-width:0}
.ncm-cat-scroll{display:flex;align-items:center;gap:2px;overflow-x:auto;position:relative;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ncm-cat-scroll::-webkit-scrollbar{display:none}
.ncm-cat-arrow{position:absolute;top:0;bottom:0;width:54px;border:0;padding:0 6px;margin:0;
  display:none;align-items:center;color:#fff;cursor:pointer;z-index:2;border-radius:0;box-shadow:none}
/* doubled-up selectors so the theme's own button:hover styles cannot win */
.ncm-catbar .ncm-cat-arrow.prev,.ncm-catbar .ncm-cat-arrow.prev:hover,.ncm-catbar .ncm-cat-arrow.prev:focus{
  left:0;justify-content:flex-start;color:#fff;
  background:linear-gradient(90deg,var(--ncm-pink) 42%,rgba(234,68,152,0))}
.ncm-catbar .ncm-cat-arrow.next,.ncm-catbar .ncm-cat-arrow.next:hover,.ncm-catbar .ncm-cat-arrow.next:focus{
  right:0;justify-content:flex-end;color:#fff;
  background:linear-gradient(270deg,var(--ncm-pink) 42%,rgba(234,68,152,0))}
.ncm-cat-track.can-l .ncm-cat-arrow.prev,.ncm-cat-track.can-r .ncm-cat-arrow.next{display:flex}
.ncm-cat-arrow svg{display:block}
.ncm-catbar a{color:#fff;font-size:13.8px;font-weight:600;letter-spacing:.2px;padding:13px 15px;
  white-space:nowrap;text-decoration:none;position:relative;opacity:.93;flex:0 0 auto}
.ncm-catbar a:hover,.ncm-catbar a:focus{color:#fff}
.ncm-catbar a:focus-visible{outline:2px solid #fff;outline-offset:-4px;border-radius:6px}
.ncm-catbar a::after{content:'';position:absolute;left:15px;right:15px;bottom:7px;height:2px;
  background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .26s}
.ncm-catbar a:hover{opacity:1}
.ncm-catbar a:hover::after,.ncm-catbar a.on::after{transform:scaleX(1)}
.ncm-cat-label{color:rgba(255,255,255,.72);font-size:11px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;padding-right:13px;white-space:nowrap;flex:0 0 auto;
  border-right:1px solid rgba(255,255,255,.3);margin-right:9px}

/* ---- product search, under the header ---- */
.ncm-search{background:#fff;border-bottom:1px solid var(--ncm-line);font-family:var(--ncm-font);
  position:relative;z-index:49}
.ncm-search[hidden]{display:none!important}
.ncm-search .ncm-wrap{padding-top:14px;padding-bottom:14px}
.ncm-search form{display:flex;gap:10px;max-width:760px;margin:0 auto;align-items:center}
.ncm-search .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap}
.ncm-search input[type="search"]{flex:1 1 auto;min-width:0;height:48px;margin:0;
  border:1.7px solid var(--ncm-line);border-radius:99px;padding:0 20px;background:var(--ncm-grey-l);
  font-family:var(--ncm-font);font-size:15px;font-weight:500;color:var(--ncm-grey);box-shadow:none}
.ncm-search input[type="search"]:focus{outline:none;border-color:var(--ncm-green);background:#fff}
.ncm-search button,.ncm-search input[type="submit"]{height:48px;margin:0;border:0;border-radius:99px;
  padding:0 24px;background:var(--ncm-green);color:#fff;font-family:var(--ncm-font);font-size:14px;
  font-weight:700;cursor:pointer;flex:0 0 auto;line-height:48px}
.ncm-search button:hover,.ncm-search input[type="submit"]:hover{background:var(--ncm-green-d)}

/* ---- the engine ---- */
.ncm-engine{background:#fff;border-radius:var(--ncm-r-lg);padding:30px;box-shadow:var(--ncm-shadow);
  font-family:var(--ncm-font);max-width:640px}
.ncm-engine h3{font-size:24px;font-weight:800;color:var(--ncm-grey);margin:0}
.ncm-engine h4{font-size:19px;font-weight:700;color:var(--ncm-grey);margin:0 0 12px}
.ncm-step{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--ncm-pink);margin-bottom:8px}
.ncm-sub{font-size:13.6px;color:var(--ncm-mute);margin:8px 0 0;line-height:1.55}
.ncm-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}
.ncm-routes button{background:var(--ncm-grey-l);border:1.7px solid transparent;border-radius:12px;
  padding:13px;text-align:left;cursor:pointer;transition:.16s;min-height:76px;font-family:inherit}
.ncm-routes button:hover{background:var(--ncm-pink-l);border-color:var(--ncm-pink)}
.ncm-routes button[aria-pressed="true"]{background:var(--ncm-pink);border-color:var(--ncm-pink)}
.ncm-routes b{display:block;font-size:13.5px;color:var(--ncm-grey);line-height:1.25}
.ncm-routes span{display:block;font-size:11.7px;color:var(--ncm-mute);margin-top:4px;line-height:1.35}
.ncm-routes button[aria-pressed="true"] b,.ncm-routes button[aria-pressed="true"] span{color:#fff}
.ncm-panel{display:none;margin-top:20px}
.ncm-panel.on{display:block}
.ncm-syspick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ncm-syspick button,.ncm-wherepick button{background:var(--ncm-grey-l);border:1.7px solid transparent;
  border-radius:10px;padding:12px 10px;font-size:13.2px;font-weight:600;color:var(--ncm-grey);
  cursor:pointer;transition:.16s;font-family:inherit;min-height:46px}
.ncm-syspick button:hover,.ncm-wherepick button:hover{background:var(--ncm-pink-l);border-color:var(--ncm-pink)}
.ncm-syspick button[aria-pressed="true"],.ncm-wherepick button[aria-pressed="true"]{
  background:var(--ncm-pink);border-color:var(--ncm-pink);color:#fff}
.ncm-step2{margin-top:20px}
.ncm-wherepick{display:flex;gap:8px;flex-wrap:wrap}
.ncm-wherepick button{flex:1 1 44%}
.ncm-help{background:var(--ncm-grey-l);border-radius:13px;padding:16px 18px}
.ncm-help h4{font-size:14.5px;margin-bottom:6px}
.ncm-help ol{margin:8px 0 0 18px;font-size:12.9px;color:var(--ncm-mute);line-height:1.75}
.ncm-help p{font-size:13px;color:var(--ncm-mute);margin:6px 0 0;line-height:1.6}
.ncm-btn,.ncm-btn:visited{display:inline-block;background:var(--ncm-pink);color:#fff;text-decoration:none;
  border-radius:99px;padding:11px 22px;font-weight:700;font-size:13.6px;margin-top:12px}
.ncm-btn:hover{background:var(--ncm-green);color:#fff}
.ncm-needgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.ncm-needgrid a{display:block;background:#fff;border:1.7px solid var(--ncm-line);border-radius:12px;
  padding:12px 14px;text-decoration:none;transition:.16s}
.ncm-needgrid a:hover{border-color:var(--ncm-pink);transform:translateY(-2px);box-shadow:var(--ncm-shadow)}
.ncm-needgrid b{display:block;font-size:13.3px;color:var(--ncm-grey)}
.ncm-needgrid span{display:block;font-size:11.5px;color:var(--ncm-mute);margin-top:3px;line-height:1.35}
.ncm-needgrid .ncm-go{font-size:11.5px;font-weight:700;color:var(--ncm-pink);margin-top:7px}
.ncm-foot{font-size:12.4px;color:var(--ncm-mute);margin:18px 0 0;text-align:center}
.ncm-foot a{color:var(--ncm-green);font-weight:700}
.ncm-loading{font-size:14px;color:var(--ncm-mute);padding:20px 0}

/* results: WooCommerce renders the cards, we only frame them */
.ncm-results{margin-top:28px}
/* the engine's product list has no WooCommerce column class, so lay it out
   ourselves, and switch off the theme's float clearfix, which would otherwise
   become two empty grid cells */
.ncm-results ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
  margin:0!important;padding:0!important;list-style:none;width:auto!important}
.ncm-results ul.products::before,.ncm-results ul.products::after{display:none!important;content:none!important}
.ncm-results ul.products li.product{width:auto!important;margin:0!important;float:none!important;clear:none!important;
  max-width:none!important}
.ncm-results ul.products li.product img{width:100%;height:auto}
.ncm-results-grid{margin-top:24px}
.ncm-results-more{text-align:center;margin:26px 0 0}
@media(max-width:1000px){.ncm-results ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ncm-results ul.products{grid-template-columns:1fr}}
.ncm-answer{background:var(--ncm-green-l);border-left:5px solid var(--ncm-green);
  border-radius:0 14px 14px 0;padding:20px 24px;margin-bottom:22px}
.ncm-answer h3{font-size:21px;color:var(--ncm-green-d)}
.ncm-answer p{font-size:13.8px;color:var(--ncm-grey);margin:8px 0 0;line-height:1.6}

/* ---- dialogs ---- */
.ncm-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(28,28,28,.55);font-family:var(--ncm-font)}
.ncm-modal.open{display:flex}
.ncm-modal .ncm-sheet{background:#fff;border-radius:var(--ncm-r-lg);max-width:520px;width:100%;
  max-height:90vh;overflow:auto;padding:30px}
.ncm-modal .ncm-sheet.ncm-sheet-wide{max-width:640px}
.ncm-modal h3{font-size:24px;font-weight:800;color:var(--ncm-grey);margin:6px 0 0;letter-spacing:-.4px}
.ncm-modal .ncm-routes{margin-top:16px}
@media(max-width:560px){.ncm-modal .ncm-tsroutes{grid-template-columns:1fr!important}}

/* ---- reveal ---- */
[data-ncm-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
[data-ncm-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-ncm-reveal]{opacity:1;transform:none;transition:none}
}

@media(max-width:860px){
  .ncm-groupbar .ncm-wrap{font-size:11.8px;gap:12px;overflow-x:auto;flex-wrap:nowrap;
    scrollbar-width:none;min-height:40px}
  .ncm-groupbar .ncm-wrap::-webkit-scrollbar{display:none}
  .ncm-gb-links,.ncm-gb-util{flex-wrap:nowrap;white-space:nowrap;gap:12px;flex:0 0 auto}
  .ncm-gb-label{display:none}
  .ncm-engine{padding:22px;border-radius:16px}
  .ncm-routes{grid-template-columns:1fr}
  .ncm-routes button{min-height:0;display:flex;align-items:baseline;gap:9px}
  .ncm-routes span{margin-top:0}
  .ncm-syspick{grid-template-columns:repeat(2,1fr)}
  .ncm-needgrid{grid-template-columns:1fr}
  .ncm-cat-label{display:none}
  .ncm-catbar a{font-size:13.2px;padding:12px 13px}
  .ncm-catbar a::after{left:13px;right:13px}
}

/* ==========================================================================
   PART 2: restyling Shoptimizer and WooCommerce
   Appearance only. Corrected against the live site, 24/09/26.
   ========================================================================== */
body.ncm-2026{font-family:var(--ncm-font)}
/* :where() so this shop heading style can never outrank the home page's */
:where(body.ncm-2026) h1,:where(body.ncm-2026) h2,:where(body.ncm-2026) h3,
:where(body.ncm-2026) .entry-title,:where(body.ncm-2026) .product_title{
  font-family:var(--ncm-font);font-weight:800;letter-spacing:-.01em;color:var(--ncm-grey)}

/* buttons: one pill shape, colour carries hierarchy */
body.ncm-2026 .button,
body.ncm-2026 button.button,
body.ncm-2026 input[type="submit"],
body.ncm-2026 .woocommerce a.button,
body.ncm-2026 .woocommerce button.button,
body.ncm-2026 .woocommerce .button.alt,
body.ncm-2026 .single_add_to_cart_button{
  border-radius:99px!important;font-family:var(--ncm-font)!important;font-weight:700!important;
  letter-spacing:.1px!important;padding-left:26px!important;padding-right:26px!important;
  transition:background-color .2s,border-color .2s,color .2s!important}
/* Shoptimizer sets a fixed height and line-height on these buttons. v1.1 added
   14px of top padding on top, which pushed the label down and, on product
   cards, out of the bottom of the button. Vertical sizing is left to the theme. */

/* the primary buying action is pink, as agreed */
body.ncm-2026 .single_add_to_cart_button,
body.ncm-2026 .woocommerce .button.alt,
body.ncm-2026 .checkout-button,
body.ncm-2026 #place_order{
  background:var(--ncm-pink)!important;border-color:var(--ncm-pink)!important;color:#fff!important}
body.ncm-2026 .single_add_to_cart_button:hover,
body.ncm-2026 .woocommerce .button.alt:hover,
body.ncm-2026 .checkout-button:hover,
body.ncm-2026 #place_order:hover{
  background:var(--ncm-green)!important;border-color:var(--ncm-green)!important}

/* product cards */
body.ncm-2026 ul.products li.product{border-radius:var(--ncm-r);overflow:hidden;
  background:#fff;border:1px solid var(--ncm-line);transition:.25s}
body.ncm-2026 ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--ncm-shadow)}
body.ncm-2026 ul.products li.product .price{color:var(--ncm-grey);font-weight:800}
body.ncm-2026 .price ins{text-decoration:none}

/* links and accents.
   :where() gives this rule no weight at all, so it colours plain content
   links but can never override our group bar, header, catalogue bar or
   footer, which is exactly what went wrong in v1.1. */
:where(body.ncm-2026) a{color:var(--ncm-green)}

/* sale badge. .onsale is WooCommerce's own class. The -24% badge in the
   screenshot is Shoptimizer's, which (unconfirmed) uses .product-label.
   If the badge is still red in preview, Inspect it and send the class. */
body.ncm-2026 .onsale,
body.ncm-2026 .product-label{background:var(--ncm-pink)!important;color:#fff!important;
  border-radius:99px!important;font-family:var(--ncm-font)!important}

/* when the theme's category menu is kept (Settings), give it the brand type */
body.ncm-keep-nav .col-full-nav,
body.ncm-keep-nav .col-full-nav a{font-family:var(--ncm-font)!important}

/* forms: 16px stops iOS zooming the page on focus */
@media(max-width:760px){
  body.ncm-2026 input[type="text"],body.ncm-2026 input[type="email"],body.ncm-2026 input[type="search"],
  body.ncm-2026 input[type="tel"],body.ncm-2026 input[type="password"],
  body.ncm-2026 select,body.ncm-2026 textarea{font-size:16px!important}
}

/* ==========================================================================
   PART 3: chrome takeover
   Our own header, drawer and footer. This is our markup, so it renders
   exactly as designed rather than depending on Shoptimizer's class names.
   ========================================================================== */
body.ncm-takeover{font-family:var(--ncm-font)}

/* ---- header ---- */
.ncm-header{background:#fff;border-bottom:1px solid var(--ncm-line);position:relative;z-index:50}
.ncm-header .ncm-wrap{display:flex;align-items:center;gap:28px;min-height:76px}
.ncm-logo{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.ncm-logo img{height:34px;width:auto;display:block;max-width:none}
.ncm-wordmark{display:inline-block;font-weight:800;font-size:23px;color:var(--ncm-grey);letter-spacing:-.02em;line-height:1}
.ncm-wordmark em{font-style:normal;display:block;font-size:13px;font-weight:700;letter-spacing:.32em;
  text-transform:lowercase;text-align:right;color:var(--ncm-grey);border-top:2px solid var(--ncm-green);
  margin-top:2px;padding-top:2px}
.ncm-wordmark.small{font-size:19px}
.ncm-wordmark.small em{font-size:11px}
.ncm-wordmark.light,.ncm-wordmark.light em{color:#fff;border-color:var(--ncm-pink)}

.ncm-nav{display:flex;gap:26px;margin-left:auto;align-items:center}
.ncm-nav a,.ncm-nav a:visited{color:var(--ncm-mute);text-decoration:none;font-size:14.6px;font-weight:600;
  position:relative;padding:6px 0;white-space:nowrap}
.ncm-nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ncm-pink);
  transform:scaleX(0);transform-origin:left;transition:transform .26s}
.ncm-nav a:hover{color:var(--ncm-green)}
.ncm-nav a:hover::after,.ncm-nav a.on::after,.ncm-nav li.current-menu-item a::after{transform:scaleX(1)}
.ncm-nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.ncm-nav li{list-style:none}

.ncm-acts{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.ncm-searchbtn{width:42px;height:42px;border:0;border-radius:12px;background:transparent;
  color:var(--ncm-grey);cursor:pointer;display:flex;align-items:center;justify-content:center;
  padding:0;margin:0;box-shadow:none}
.ncm-searchbtn:hover,.ncm-searchbtn[aria-expanded="true"]{background:var(--ncm-grey-l);color:var(--ncm-green)}
.ncm-searchbtn:focus-visible,.ncm-burger:focus-visible,.ncm-cart:focus-visible{outline:2px solid var(--ncm-green);outline-offset:2px}
.ncm-btn.ghost{background:#fff;color:var(--ncm-grey);border:1.8px solid var(--ncm-line)}
.ncm-btn.ghost:hover{border-color:var(--ncm-green);color:var(--ncm-green);background:#fff}
.ncm-acts .ncm-btn{margin-top:0;padding:11px 22px;font-size:14px}
.ncm-cart{position:relative;color:var(--ncm-grey);display:flex;align-items:center;padding:6px}
.ncm-cart:hover{color:var(--ncm-green)}
.ncm-count{position:absolute;top:-2px;right:-4px;background:var(--ncm-pink);color:#fff;font-size:10.5px;
  font-weight:700;min-width:18px;height:18px;border-radius:99px;display:flex;align-items:center;
  justify-content:center;padding:0 5px}
.ncm-burger{display:none;width:46px;height:46px;border:none;border-radius:12px;background:var(--ncm-grey-l);
  font-size:21px;color:var(--ncm-grey);cursor:pointer;margin-left:auto}

/* ---- drawer ---- */
.ncm-drawer-backdrop{position:fixed;inset:0;z-index:78;background:rgba(28,28,28,.5);
  opacity:0;visibility:hidden;transition:.28s}
.ncm-drawer-backdrop.on{opacity:1;visibility:visible}
/* v1.2: the shadow is only applied when open. In v1.1 the closed drawer's
   shadow showed as a grey strip down the right edge of every page. */
.ncm-drawer{position:fixed;top:0;right:0;bottom:0;z-index:80;width:min(84vw,340px);background:#fff;
  transform:translateX(100%);visibility:hidden;box-shadow:none;
  transition:transform .32s cubic-bezier(.22,.9,.28,1),visibility 0s linear .32s,box-shadow .32s;
  overflow-y:auto;display:flex;flex-direction:column}
.ncm-drawer.open{transform:none;visibility:visible;box-shadow:-14px 0 44px rgba(0,0,0,.2);
  transition:transform .32s cubic-bezier(.22,.9,.28,1),visibility 0s,box-shadow .32s}
.ncm-dhead{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;
  border-bottom:1px solid var(--ncm-line)}
.ncm-dlogo{height:30px;width:auto;display:block}
.ncm-dclose{width:42px;height:42px;border:none;border-radius:12px;background:var(--ncm-grey-l);
  font-size:22px;color:var(--ncm-grey);cursor:pointer}
.ncm-drawer a{display:block;padding:16px 20px;font-weight:600;font-size:16px;color:var(--ncm-grey);
  text-decoration:none;border-bottom:1px solid var(--ncm-grey-l)}
.ncm-drawer ul{list-style:none;margin:0;padding:0}
.ncm-dfoot{padding:20px;margin-top:auto}
.ncm-dfoot .ncm-btn{width:100%;text-align:center;margin:0}

/* ---- footer ---- */
.ncm-footer{background:var(--ncm-grey);color:rgba(255,255,255,.78);padding:60px 0 34px;margin-top:60px}
.ncm-fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.ncm-footer h4{color:#fff;font-size:12px;letter-spacing:1.1px;text-transform:uppercase;
  margin:0 0 16px;font-weight:700}
.ncm-footer p{font-size:14px;line-height:1.7;margin:14px 0 0}
.ncm-addr{font-size:13.4px}
.ncm-footer ul{list-style:none;margin:0;padding:0}
.ncm-footer li{margin-bottom:10px}
.ncm-footer a,.ncm-footer a:visited{color:rgba(255,255,255,.78);text-decoration:none;font-size:14px}
.ncm-footer a:hover{color:#fff}
.ncm-flogo{height:56px;width:auto;display:block;max-width:none}
.ncm-footer strong{color:#fff}
.ncm-fbot{border-top:1px solid rgba(255,255,255,.16);margin-top:40px;padding-top:22px;font-size:12.4px;
  color:rgba(255,255,255,.62);line-height:1.7;display:flex;justify-content:space-between;
  align-items:flex-end;gap:20px;flex-wrap:wrap}
.ncm-dim{opacity:.72}
.ncm-legal{display:inline-block;margin-top:7px;font-size:11.8px;opacity:.85}
.ncm-footer .ncm-legal a{font-size:inherit}
.ncm-footer .ncm-legal a:hover{text-decoration:underline}
.ncm-credit{display:inline-flex;align-items:center;gap:12px;opacity:.68;transition:opacity .25s;flex:0 0 auto}
.ncm-footer a.ncm-credit:hover{opacity:1;text-decoration:none}
.ncm-credit span{font-size:11.5px;letter-spacing:.4px;white-space:nowrap}
.ncm-credit img{height:34px;width:auto;display:block}

@media(max-width:1000px){
  .ncm-fgrid{grid-template-columns:1fr 1fr;gap:30px}
}
@media(max-width:860px){
  .ncm-header .ncm-wrap{min-height:64px;gap:14px}
  .ncm-nav,.ncm-acts .ncm-btn{display:none}
  .ncm-acts{margin-left:auto;gap:6px}
  .ncm-burger{display:block;margin-left:0}
  .ncm-fgrid{grid-template-columns:1fr}
  .ncm-footer{padding:44px 0 28px}
  .ncm-fbot{align-items:flex-start}
  .ncm-searchbtn{width:40px;height:40px}
}

/* ==========================================================================
   v1.3: chrome matched to the signed-off design's own measurements
   (site.css: .groupbar, .hdr, .nav, .ftr), so the home page and the shop
   share one header and footer that look exactly like the demo.
   ========================================================================== */
.ncm-groupbar,.ncm-groupbar *,.ncm-header,.ncm-header *,.ncm-catbar,.ncm-catbar *,
.ncm-search,.ncm-search *,.ncm-drawer,.ncm-drawer *,.ncm-footer,.ncm-footer *,
.ncm-modal,.ncm-modal *,.ncm-engine,.ncm-engine *,.ncm-home-results *{box-sizing:border-box}
.ncm-groupbar,.ncm-header,.ncm-catbar,.ncm-drawer,.ncm-footer,.ncm-modal,.ncm-engine{font-family:var(--ncm-font)}
.ncm-footer h4,.ncm-modal h3,.ncm-modal h4,.ncm-engine h3,.ncm-engine h4,.ncm-help h4,.ncm-answer h3{font-family:var(--ncm-font)}

.ncm-groupbar .ncm-wrap{min-height:0;padding-top:9px;padding-bottom:9px}

/* sticky header that tightens on scroll, as in the design */
.ncm-header{position:sticky;top:0;z-index:50;transition:box-shadow .25s ease}
body.admin-bar .ncm-header{top:32px}
@media(max-width:782px){body.admin-bar .ncm-header{top:46px}}
@media(max-width:600px){body.admin-bar .ncm-header{top:0}}
.ncm-header .ncm-wrap{min-height:0;gap:26px;padding-top:15px;padding-bottom:15px;transition:padding .25s ease}
.ncm-header.stuck{box-shadow:0 6px 24px rgba(0,0,0,.09)}
.ncm-header.stuck .ncm-wrap{padding-top:9px;padding-bottom:9px}
.ncm-logo img{transition:transform .25s ease}
.ncm-header.stuck .ncm-logo img{transform:scale(.86);transform-origin:left center}
.ncm-nav{gap:22px}
.ncm-nav a,.ncm-nav a:visited{font-size:14.6px;font-weight:500}
.ncm-nav a::after{background:var(--ncm-green)}
.ncm-acts .ncm-btn{padding:10px 22px;font-size:13.5px;font-weight:600}
.ncm-acts .ncm-btn:not(.ghost),.ncm-acts .ncm-btn:not(.ghost):visited{background:var(--ncm-green);color:#fff}
.ncm-acts .ncm-btn:not(.ghost):hover{background:var(--ncm-green-d)}
.ncm-btn.ghost{border-width:1.6px}

/* footer */
.ncm-footer{padding:56px 0 28px;font-size:13.6px;line-height:1.62;color:rgba(255,255,255,.74)}
body.ncm-home-page .ncm-footer{margin-top:0}
.ncm-fgrid{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
.ncm-footer h4{font-size:13.4px;letter-spacing:.7px;margin:0 0 14px;font-weight:800;line-height:1.12}
.ncm-footer p{font-size:13.6px;margin:15px 0 0;line-height:1.62}
.ncm-footer .ncm-fgrid>div:first-child>p:first-of-type{max-width:310px}
.ncm-footer li{margin:0 0 8px;padding:0}
.ncm-footer a,.ncm-footer a:visited{font-size:13.6px;color:inherit}
.ncm-footer a:hover{color:#fff;text-decoration:underline}
.ncm-fbot{margin-top:34px;padding-top:20px;border-top-color:rgba(255,255,255,.13);font-size:12px}
@media(max-width:1020px){.ncm-fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.ncm-fgrid{grid-template-columns:1fr}}

/* answers scroll into view below the sticky header, not behind it */
.ncm-results{scroll-margin-top:120px}
/* keep theme heading, list and button styles out of our dialogs and help cards */
.ncm-help h4,.ncm-modal h4{font-weight:700;color:var(--ncm-grey);line-height:1.3}
.ncm-help ol{padding:0}
.ncm-modal [data-ncm-close]{border:0;box-shadow:none;font-family:var(--ncm-font);cursor:pointer}

.ncm-nav a.on,.ncm-nav a.on:visited{color:var(--ncm-green)}

/* ==========================================================================
   v1.5: PRODUCT PAGES, to the signed-off product page design.
   WooCommerce still renders every part; these rules restyle it, and style
   the pieces added in inc/product.php (.ncm-maxbox, .ncm-spec, .ncm-buybox).
   ========================================================================== */
body.ncm-pdp .woocommerce-breadcrumb{font-family:var(--ncm-font);font-size:13px;color:var(--ncm-mute);padding:20px 0;margin:0}
body.ncm-pdp .woocommerce-breadcrumb a{color:var(--ncm-mute);text-decoration:none}
body.ncm-pdp .woocommerce-breadcrumb a:hover{color:var(--ncm-green)}

/* gallery: rounded main image and a thumbnail strip */
body.ncm-pdp .woocommerce-product-gallery{position:relative}
body.ncm-pdp .woocommerce-product-gallery .flex-viewport,
body.ncm-pdp .woocommerce-product-gallery__wrapper>.woocommerce-product-gallery__image:only-child{
  border-radius:var(--ncm-r-lg);overflow:hidden;background:var(--ncm-grey-l)}
body.ncm-pdp .woocommerce-product-gallery__image img{border-radius:0}
body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs{display:flex;flex-wrap:wrap;gap:10px;
  margin:12px 0 0!important;padding:0!important;list-style:none}
body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs li{width:84px!important;flex:0 0 84px;
  margin:0!important;float:none!important;clear:none!important}
body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs img{width:84px;height:64px;object-fit:cover;
  border-radius:10px;border:2px solid transparent;opacity:1!important;cursor:pointer;transition:border-color .15s}
body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs img:hover{border-color:#cfcccc}
body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs img.flex-active{border-color:var(--ncm-green)}
/* the flag, only on products with the Maxalert brand */
body.ncm-pdp-maxalert .woocommerce-product-gallery::before{content:'Maxalert \00B7  Made by RGS';
  position:absolute;top:10px;left:10px;z-index:9;font-family:var(--ncm-font);font-size:10.4px;font-weight:700;
  letter-spacing:.6px;text-transform:uppercase;background:#F04E23;color:#fff;padding:4px 10px;border-radius:999px;
  pointer-events:none}
body.ncm-pdp-maxalert .woocommerce-product-gallery .onsale{top:42px!important}

/* summary */
body.ncm-pdp .summary{font-family:var(--ncm-font)}
body.ncm-pdp .summary .product_title{font-size:35px;line-height:1.12;letter-spacing:-.6px;margin:13px 0 0}
body.ncm-pdp .summary .woocommerce-product-rating{margin:10px 0 0;display:flex;align-items:center;gap:8px;font-size:12.8px}
body.ncm-pdp .summary .star-rating span::before,body.ncm-pdp .summary .star-rating::before{color:#f5a623}
body.ncm-pdp .summary .woocommerce-review-link{color:var(--ncm-mute)}
body.ncm-pdp .summary .woocommerce-product-details__short-description{margin-top:15px;font-size:16px;
  line-height:1.65;color:var(--ncm-mute)}
body.ncm-pdp .summary .woocommerce-product-details__short-description p{margin:0 0 .8em}

.ncm-maxbox{display:block;font-family:var(--ncm-font);line-height:1.6}
.ncm-maxbox img{height:26px;width:auto;display:block;margin:0 0 6px}
.ncm-maxbox span{font-size:13.6px;color:var(--ncm-mute);margin-right:10px}
.ncm-maxbox a,.ncm-maxbox a:visited{font-size:13.6px;font-weight:700;color:var(--ncm-green);text-decoration:none;white-space:nowrap}
.ncm-maxbox a:hover{text-decoration:underline}

.ncm-spec{list-style:none;margin:18px 0 0!important;padding:0!important;font-family:var(--ncm-font)}
.ncm-spec li{padding:10px 0;margin:0;border-bottom:1px solid var(--ncm-line);display:flex;
  justify-content:space-between;gap:20px;font-size:14.4px;color:var(--ncm-mute)}
.ncm-spec li span:last-child{font-weight:600;color:var(--ncm-grey);text-align:right}
.ncm-spec li span.ncm-ok{color:var(--ncm-green)}
.ncm-spec li span.ncm-out{color:#c62828}

/* buy box: price and Add to basket in one card */
.ncm-buybox{background:#fff;border:1px solid var(--ncm-line);border-radius:var(--ncm-r);padding:24px;margin-top:22px;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;font-family:var(--ncm-font)}
.ncm-buybox-price{flex:1 1 200px;min-width:0}
.ncm-buybox .price{margin:0!important;font-size:33px!important;font-weight:800;color:var(--ncm-grey)!important;line-height:1.15}
.ncm-buybox .price del{font-size:.55em;font-weight:500;color:var(--ncm-mute);opacity:1}
.ncm-buybox .price ins{text-decoration:none}
.ncm-buybox .price small,.ncm-buybox .price .woocommerce-price-suffix{display:block;font-size:12.8px;
  font-weight:500;color:var(--ncm-mute);margin-top:4px}
.ncm-vatlink{display:block;margin-top:6px;font-size:12.8px}
.ncm-vatlink a{color:var(--ncm-green);text-decoration:underline}
.ncm-buybox form.cart{margin:0!important;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ncm-buybox form.variations_form,.ncm-buybox form.grouped_form{flex:1 1 100%;display:block}
.ncm-buybox .stock{flex:1 1 100%;margin:0;font-size:13.6px}
.ncm-buybox form.cart .quantity{margin:0}
.ncm-buybox form.cart .quantity{flex:0 0 auto;width:auto}
.ncm-buybox form.cart .quantity .qty{height:52px;width:72px;min-width:0;padding:0 6px;border:1.7px solid var(--ncm-line);border-radius:12px;
  font-family:var(--ncm-font);font-size:15px;text-align:center}
.ncm-buybox form.cart .single_add_to_cart_button{min-width:160px}

/* the RGS logo file has a white background; let the grey card show through */
.ncm-pdp-more img[alt="RGS Group"]{mix-blend-mode:multiply}
/* the pink band runs straight into the footer, as in the design */
body.ncm-pdp .ncm-footer{margin-top:0}

/* design blocks under the product */
.ncm-pdp-more{margin:10px 0 40px}
.ncm-pdp-more .grid.g1{grid-template-columns:1fr}

@media(max-width:760px){
  body.ncm-pdp .summary .product_title{font-size:27px}
  body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs li{width:66px!important;flex:0 0 66px}
  body.ncm-pdp .woocommerce-product-gallery ol.flex-control-thumbs img{width:66px;height:52px}
  .ncm-buybox{padding:18px}
  .ncm-buybox form.cart{flex:1 1 100%}
  .ncm-buybox form.cart .single_add_to_cart_button{flex:1}
  .ncm-spec li{padding:13px 0}
}

/* ==========================================================================
   v1.6: SHOP, CATEGORY AND BRAND LISTINGS, to the signed-off listing design.
   WooCommerce still renders the grid, filters, sorting and paging.
   ========================================================================== */
body.ncm-plp .woocommerce-breadcrumb{font-family:var(--ncm-font);font-size:13px;color:var(--ncm-mute);padding:20px 0;margin:0}
body.ncm-plp .woocommerce-breadcrumb a{color:var(--ncm-mute);text-decoration:none}
body.ncm-plp .woocommerce-breadcrumb a:hover{color:var(--ncm-green)}
/* the theme's own title band; our header replaces it */
body.ncm-plp .woocommerce-products-header{display:none}

.ncm-plp-intro{margin:4px 0 28px;overflow:visible}
.ncm-plp-intro .between{align-items:flex-end}
.ncm-plp-intro .ncm-plp-desc{margin-top:0}
.ncm-plp-intro .ncm-plp-desc p{margin:0 0 .6em}
.ncm-plp-intro .ncm-plp-desc p:last-child{margin-bottom:0}

/* product cards */
body.ncm-2026 ul.products li.product{text-align:left;position:relative;overflow:hidden;
  transition:transform .3s cubic-bezier(.22,.8,.28,1),box-shadow .3s ease}
body.ncm-2026 ul.products li.product:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(0,0,0,.11)}
body.ncm-2026 ul.products li.product img{background:var(--ncm-grey-l)}
body.ncm-2026 ul.products li.product .woocommerce-loop-product__title,
body.ncm-2026 ul.products li.product h2,
body.ncm-2026 ul.products li.product h3{font-family:var(--ncm-font);font-size:15.8px!important;font-weight:800;
  line-height:1.3;color:var(--ncm-grey);text-align:left}
body.ncm-2026 ul.products li.product .price{font-family:var(--ncm-font);font-size:21px!important;font-weight:800;
  color:var(--ncm-grey)!important;text-align:left;display:block}
body.ncm-2026 ul.products li.product .price small,
body.ncm-2026 ul.products li.product .price .woocommerce-price-suffix{font-size:11.5px;font-weight:500;color:var(--ncm-mute)}
.ncm-card-desc{font-family:var(--ncm-font);font-size:14px;line-height:1.55;color:var(--ncm-mute);margin:8px 0 0;text-align:left}
.ncm-card-vat{display:block;font-family:var(--ncm-font);font-size:11.5px;font-weight:500;color:var(--ncm-mute);margin-top:2px;text-align:left}
.ncm-flag{position:absolute;top:10px;left:10px;z-index:3;font-family:var(--ncm-font);font-size:10.4px;font-weight:700;
  letter-spacing:.6px;text-transform:uppercase;color:#fff;padding:4px 10px;border-radius:999px;line-height:1.4;
  pointer-events:none;background:#F04E23}
.ncm-flag-pc{background:var(--ncm-pink)}
.ncm-flag-ms{background:#F99D31}
/* a sale badge moves down so it does not sit on the brand flag */
body.ncm-2026 ul.products li.product .ncm-flag~.onsale,
body.ncm-2026 ul.products li.product .ncm-flag~.product-label{top:40px!important}

/* paging */
body.ncm-plp .woocommerce-pagination ul{border:0!important;display:flex;gap:6px;justify-content:center}
body.ncm-plp .woocommerce-pagination ul li{border:0!important}
body.ncm-plp .woocommerce-pagination ul li a,body.ncm-plp .woocommerce-pagination ul li span{
  font-family:var(--ncm-font);min-width:40px;height:40px;line-height:40px;padding:0 10px;border-radius:999px;
  display:inline-block;text-align:center;border:1.6px solid var(--ncm-line);color:var(--ncm-grey);font-weight:600}
body.ncm-plp .woocommerce-pagination ul li span.current{background:var(--ncm-green);border-color:var(--ncm-green);color:#fff}

/* the listing's sections run straight into the band and the footer */
body.ncm-plp .ncm-footer{margin-top:0}

/* ==========================================================================
   v1.7.3: PRODUCT CARDS padded like the design, button inside the card.
   Shoptimizer pins the button to the card's bottom edge (absolute), which
   put it on the border. It is returned to the flow here, and the card
   gets the design's 20px inner spacing.
   ========================================================================== */
body.ncm-2026 ul.products li.product{display:flex!important;flex-direction:column;padding:14px 0 20px!important;
  height:auto!important;min-height:0!important}
body.ncm-2026 ul.products li.product>*:not(.ncm-flag):not(.onsale):not(.product-label){margin-left:20px!important;
  margin-right:20px!important;max-width:calc(100% - 40px)}
body.ncm-2026 ul.products li.product .woocommerce-card__header{display:flex;flex-direction:column;flex:1 1 auto;
  padding:0!important;position:static!important}
body.ncm-2026 ul.products li.product .price{margin-bottom:14px!important}
body.ncm-2026 ul.products li.product a.button,
body.ncm-2026 ul.products li.product .add_to_cart_button,
body.ncm-2026 ul.products li.product .product_type_variable,
body.ncm-2026 ul.products li.product .product_type_simple{position:static!important;left:auto!important;right:auto!important;
  bottom:auto!important;top:auto!important;transform:none!important;opacity:1!important;visibility:visible!important;
  display:flex!important;align-items:center;justify-content:center;width:auto!important;max-width:none!important;
  align-self:stretch;margin-top:auto!important;margin-bottom:0!important}
body.ncm-2026 ul.products li.product .added_to_cart{position:static!important;display:block;text-align:center;
  margin-top:8px!important;font-size:13px;font-weight:600;color:var(--ncm-green)}

/* ==========================================================================
   v1.7.3: the theme's own title band on listings ("BED SENSOR MATS" above
   the breadcrumb). Our header already carries the title. The known
   Shoptimizer and WooCommerce wrappers are hidden here; ncm.js removes any
   other page-level heading band the theme prints before the breadcrumb.
   The heading text is hidden straight away so it never flashes.
   ========================================================================== */
body.ncm-plp .archive-header,
body.ncm-plp .shoptimizer-category-banner,
body.ncm-plp .woocommerce-products-header{display:none!important}
body.ncm-plp h1:not(.ncm-plp-intro h1):not(.ncm-header h1){visibility:hidden}

/* ==========================================================================
   v1.7.4: LISTINGS closer to the demo.
   - Our own breadcrumb at the top of our header, with room above it. (1.7.3
     hid the theme's title band, which evidently also held its breadcrumb.)
   - Full width: the filter sidebar moves into a "Filter products" panel.
   - The category description sits behind "About this range".
   ========================================================================== */
body.ncm-plp .woocommerce-breadcrumb:not(.ncm-crumbs){display:none!important}
body.ncm-plp .ncm-plp-intro{padding-top:34px;margin-top:0}
body.ncm-plp .ncm-plp-intro .ncm-crumbs{display:block;padding:0 0 30px;margin:0;font-family:var(--ncm-font);
  font-size:13px;color:var(--ncm-mute)}
body.ncm-plp .ncm-plp-intro .ncm-crumbs a{color:var(--ncm-mute);text-decoration:none}
body.ncm-plp .ncm-plp-intro .ncm-crumbs a:hover{color:var(--ncm-green)}

/* full width, as the demo: the sidebar lives in the filter panel instead */
body.ncm-plp #secondary{display:none}
body.ncm-plp .ncm-filterpanel #secondary{display:grid!important}
body.ncm-plp #primary{width:100%!important;max-width:100%!important;float:none!important;
  margin-left:0!important;margin-right:0!important;grid-column:1/-1}
body.ncm-plp .mobile-filter{display:none!important}
/* four across, as the demo, whatever column count the theme is set to */
body.ncm-plp ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px!important;
  margin:0 0 30px!important;padding:0!important;width:auto!important}
body.ncm-plp ul.products::before,body.ncm-plp ul.products::after{display:none!important;content:none!important}
body.ncm-plp ul.products li.product{width:auto!important;max-width:none!important;float:none!important;clear:none!important;
  margin:0!important}

/* About this range */
.ncm-plp-intro .ncm-infobtn{display:inline-flex;align-items:center;gap:9px}
.ncm-plp-intro .ncm-i{width:20px;height:20px;border-radius:50%;background:var(--ncm-pink);color:#fff;font:700 12px/20px Georgia,serif;
  font-style:italic;text-align:center;flex:0 0 20px}
.ncm-plp-intro .ncm-infobtn[aria-expanded="true"]{border-color:var(--ncm-pink)}
.ncm-plp-intro .ncm-catinfo[hidden]{display:none}
.ncm-plp-intro .ncm-catinfo{margin-top:22px;animation:ncmh-accIn .3s cubic-bezier(.22,.8,.28,1)}
.ncm-plp-intro .ncm-catinfo-in{position:relative;background:var(--ncm-grey-l);border-radius:16px;padding:22px 56px 22px 24px;
  font-size:14.5px;line-height:1.7;color:var(--ncm-mute);max-height:340px;overflow:auto}
.ncm-plp-intro .ncm-catinfo-in p{margin:0 0 .8em}
.ncm-plp-intro .ncm-catinfo-in p:last-of-type{margin-bottom:0}
.ncm-plp-intro .ncm-catinfo-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;
  background:#fff;color:var(--ncm-grey);font-size:20px;line-height:1;cursor:pointer;padding:0}

/* Filter products */
.ncm-plp-intro .ncm-filterbar{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.ncm-plp-intro .ncm-filterbar[hidden]{display:none}
.ncm-plp-intro .ncm-filterbtn{display:inline-flex;align-items:center;gap:9px;height:46px;padding:0 20px;border-radius:999px;
  border:1.6px solid var(--ncm-line);background:#fff;color:var(--ncm-grey);font:600 14.5px var(--ncm-font);cursor:pointer;
  transition:border-color .2s,box-shadow .2s}
.ncm-plp-intro .ncm-filterbtn:hover{border-color:var(--ncm-green);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.ncm-plp-intro .ncm-filterbtn[aria-expanded="true"]{border-color:var(--ncm-green);color:var(--ncm-green)}
.ncm-plp-intro .ncm-filterbtn .ncm-chev{transition:transform .2s}
.ncm-plp-intro .ncm-filterbtn[aria-expanded="true"] .ncm-chev{transform:rotate(180deg)}
.ncm-plp-intro .ncm-filtercount{min-width:22px;height:22px;border-radius:999px;background:var(--ncm-pink);color:#fff;
  font-size:12px;font-weight:700;line-height:22px;text-align:center;padding:0 6px}
.ncm-plp-intro .ncm-filterclear{font-size:13.5px;font-weight:600;color:var(--ncm-green);text-decoration:underline}
.ncm-plp-intro .ncm-filterpanel{flex:1 1 100%}
.ncm-plp-intro .ncm-filterpanel[hidden]{display:none}
.ncm-plp-intro .ncm-filterpanel #secondary{width:auto!important;max-width:none!important;float:none!important;margin:0!important;
  padding:24px!important;background:#fff;border:1px solid var(--ncm-line);border-radius:16px;box-shadow:0 14px 34px rgba(0,0,0,.07);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px 30px;animation:ncmh-accIn .3s cubic-bezier(.22,.8,.28,1)}
.ncm-plp-intro .ncm-filterpanel .widget{margin:0!important;padding:0!important;border:0!important}
.ncm-plp-intro .ncm-filterpanel .widget ul{max-height:250px;overflow:auto;margin:0;padding:0 6px 0 0}
.ncm-plp-intro .ncm-filterpanel .widget-title,.ncm-plp-intro .ncm-filterpanel .widgettitle,
.ncm-plp-intro .ncm-filterpanel h2,.ncm-plp-intro .ncm-filterpanel h3{font:700 14.5px var(--ncm-font)!important;
  color:var(--ncm-grey)!important;margin:0 0 12px!important;text-transform:none;letter-spacing:0}

@media(max-width:1100px){body.ncm-plp ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){
  body.ncm-plp ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.ncm-plp .ncm-plp-intro{padding-top:22px}
  .ncm-plp-intro .ncm-catinfo-in{padding:18px 48px 18px 18px}
}
@media(max-width:520px){body.ncm-plp ul.products{grid-template-columns:1fr}}

/* ==========================================================================
   v1.7.5: PRODUCT PAGES tidied, in keeping with the other new pages.
   ========================================================================== */
/* same container and white page as the rest of the design */
body.ncm-plp .site-content .col-full{max-width:1240px!important;padding-left:26px!important;padding-right:26px!important;
  box-sizing:border-box}
body.ncm-pdp,body.ncm-pdp .site-content,body.ncm-pdp #content,body.ncm-pdp div.product{background:#fff!important}

/* v1.7.6: every wrapper the theme puts around the product, whatever its
   class, is un-floated, full width and white (one was floated to one side
   for a sidebar product pages don't have, and carried the faint grey); the
   outermost is then centred at the design's width */
body.ncm-pdp .site-content :has(div.product){float:none!important;width:auto!important;max-width:none!important;
  flex:1 1 100%!important;grid-column:1/-1!important;margin-left:0!important;margin-right:0!important;
  background:#fff!important;background-image:none!important}
body.ncm-pdp .site-content>:has(div.product){max-width:1240px!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:26px!important;padding-right:26px!important;box-sizing:border-box}
body.ncm-pdp #secondary{display:none!important}
body.ncm-pdp div.product,body.ncm-pdp div.product .summary,body.ncm-pdp .product-details-wrapper{background:#fff!important}

/* our breadcrumb, inside the container, with room above it (the theme's
   one sat outside the container, against the edge of the screen) */
body.ncm-pdp .woocommerce-breadcrumb:not(.ncm-crumbs){display:none!important}
body.ncm-pdp .ncm-crumbs{display:block;padding:34px 0 26px!important;margin:0;font-family:var(--ncm-font);font-size:13px;
  color:var(--ncm-mute)}
body.ncm-pdp .ncm-crumbs a{color:var(--ncm-mute);text-decoration:none}
body.ncm-pdp .ncm-crumbs a:hover{color:var(--ncm-green)}

/* gallery in a rounded frame */
body.ncm-pdp .woocommerce-product-gallery{border:1px solid var(--ncm-line);border-radius:var(--ncm-r-lg);padding:14px;background:#fff}
body.ncm-pdp .woocommerce-product-gallery .flex-viewport,
body.ncm-pdp .woocommerce-product-gallery__wrapper>.woocommerce-product-gallery__image:only-child{background:#fff}

/* summary spacing */
body.ncm-pdp .summary .product_title{margin-top:6px}
body.ncm-pdp .summary .woocommerce-product-details__short-description{margin-top:14px;margin-bottom:0}
body.ncm-pdp .product_meta{display:none!important}   /* SKU is in the spec table, category in the breadcrumb */
.ncm-readmore{margin:16px 0 0!important;font-family:var(--ncm-font)}
.ncm-readmore a{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--ncm-green)!important;
  text-decoration:none}
.ncm-readmore a:hover{text-decoration:underline}
.ncm-readmore .ncm-i,.ncm-pdp-details .ncm-i{width:20px;height:20px;border-radius:50%;background:var(--ncm-pink);color:#fff;
  font:italic 700 12px/20px Georgia,serif;text-align:center;flex:0 0 20px}

/* buy box: price large, the VAT wording small, quantity and button on one row */
.ncm-buybox{display:block}
.ncm-buybox .price{font-size:33px!important;line-height:1.15}
.ncm-buybox .price *:not(.woocommerce-Price-amount):not(.woocommerce-Price-currencySymbol):not(bdi):not(del):not(ins){
  font-size:14px!important;font-weight:600!important;font-style:normal!important;color:var(--ncm-mute)!important;
  letter-spacing:0}
.ncm-buybox .price>.woocommerce-Price-amount,.ncm-buybox .price>ins>.woocommerce-Price-amount{font-size:33px!important;
  font-weight:800!important;color:var(--ncm-grey)!important}
.ncm-buybox-price>*:not(.price){font-size:14px!important;font-weight:500;color:var(--ncm-mute);margin:4px 0 0!important}
.ncm-buybox-price>*:not(.price) em,.ncm-buybox-price>*:not(.price) i{font-style:normal}
.ncm-buybox form.cart{display:flex!important;flex-wrap:nowrap;align-items:stretch;gap:10px;margin:20px 0 0!important;width:100%}
.ncm-buybox form.cart::before,.ncm-buybox form.cart::after{display:none!important;content:none!important}
.ncm-buybox form.cart .quantity{float:none!important;margin:0!important;display:flex;align-items:stretch}
.ncm-buybox form.cart .single_add_to_cart_button{flex:1 1 auto;float:none!important;margin:0!important;min-width:0}
.ncm-buybox form.variations_form{display:block!important}
.ncm-buybox .woocommerce-variation-add-to-cart{display:flex!important;gap:10px;align-items:stretch;margin-top:14px}
.ncm-buybox .woocommerce-variation-add-to-cart::before,.ncm-buybox .woocommerce-variation-add-to-cart::after{display:none!important}
.ncm-buybox table.variations{width:100%;margin:0 0 6px}
.ncm-buybox table.variations select{border:1.7px solid var(--ncm-line);border-radius:12px;padding:10px 12px;font-family:var(--ncm-font)}

/* description, reviews and any other tabs: click to read */
.ncm-pdp-details{clear:both;margin:46px 0 10px;display:grid;gap:12px;font-family:var(--ncm-font)}
.ncm-pdp-details .ncm-acc{border:1px solid var(--ncm-line);border-radius:16px;background:#fff;overflow:hidden}
.ncm-pdp-details .ncm-acc>summary{list-style:none;cursor:pointer;padding:20px 60px 20px 24px;position:relative;
  font-size:16.5px;font-weight:700;color:var(--ncm-grey)}
.ncm-pdp-details .ncm-acc>summary::-webkit-details-marker{display:none}
.ncm-pdp-details .ncm-acc>summary::after{content:'+';position:absolute;right:22px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;background:var(--ncm-grey-l);color:var(--ncm-green);font-size:20px;font-weight:600;
  line-height:30px;text-align:center}
.ncm-pdp-details .ncm-acc[open]>summary::after{content:'\2212'}
.ncm-pdp-details .ncm-acc>summary:hover{color:var(--ncm-green)}
.ncm-pdp-details .ncm-acc-body{padding:0 24px 24px;font-size:15px;line-height:1.7;color:var(--ncm-mute)}
.ncm-pdp-details .ncm-acc-body>*:first-child{margin-top:0}
.ncm-pdp-details .ncm-acc-body img{max-width:100%;height:auto;border-radius:12px}

/* related and upsell products: spaced like the listings */
body.ncm-pdp section.related,body.ncm-pdp section.upsells{clear:both;margin:50px 0 10px}
body.ncm-pdp section.related>h2,body.ncm-pdp section.upsells>h2{font-family:var(--ncm-font);font-size:clamp(22px,2.4vw,28px);
  font-weight:800;color:var(--ncm-grey);letter-spacing:-.4px;margin:0 0 22px}
body.ncm-pdp section.related ul.products,body.ncm-pdp section.upsells ul.products{display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:22px!important;margin:0!important;padding:0!important;width:auto!important}
body.ncm-pdp section.related ul.products::before,body.ncm-pdp section.related ul.products::after,
body.ncm-pdp section.upsells ul.products::before,body.ncm-pdp section.upsells ul.products::after{display:none!important;content:none!important}
body.ncm-pdp section.related ul.products li.product,body.ncm-pdp section.upsells ul.products li.product{width:auto!important;
  max-width:none!important;float:none!important;clear:none!important;margin:0!important}
@media(max-width:1000px){body.ncm-pdp section.related ul.products,body.ncm-pdp section.upsells ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){body.ncm-pdp section.related ul.products,body.ncm-pdp section.upsells ul.products{grid-template-columns:1fr}}
@media(max-width:760px){
  body.ncm-pdp .ncm-crumbs{padding:22px 0 18px!important}
  .ncm-pdp-details .ncm-acc>summary{padding:18px 56px 18px 18px}
  .ncm-pdp-details .ncm-acc-body{padding:0 18px 20px}
}

/* ==========================================================================
   v1.8: BASKET AND CHECKOUT in the design's style.
   Appearance only. Every field, button, coupon, shipping option, surcharge
   and payment method is WooCommerce's (and the payment plugin's) own, in the
   same place, doing the same thing. Card number, expiry and security code
   are Stripe's secure frames, styled from the Stripe plugin, not here.
   ========================================================================== */
body.ncm-basket{background:#fff}
body.ncm-basket .site-main{padding-top:36px;padding-bottom:40px}
body.ncm-basket .site-content :is(p,label,span,a,td,th,h1,h2,h3,li,strong,input,select,textarea,button,bdi,small,em){
  font-family:var(--ncm-font)}

/* page title, as the other pages' headings */
body.ncm-basket h1.entry-title,body.ncm-basket .entry-header h1{font-size:clamp(28px,3.4vw,42px)!important;font-weight:800!important;
  color:var(--ncm-grey)!important;letter-spacing:-.8px;line-height:1.1;margin:0 0 30px!important}
body.ncm-basket h1.entry-title::after,body.ncm-basket .entry-header h1::after{content:'';display:block;width:110px;height:3px;
  border-radius:3px;background:var(--ncm-pink);margin-top:16px}

/* section headings: Billing details, Your order, Cart totals and so on */
body.ncm-basket .woocommerce :is(h2,h3):not(.woocommerce-loop-product__title),
body.ncm-basket #order_review_heading{font-size:21px!important;font-weight:800!important;color:var(--ncm-grey)!important;
  letter-spacing:-.3px;margin-bottom:16px}
body.ncm-basket #ship-to-different-address{font-size:17px!important}
body.ncm-basket #ship-to-different-address label{display:inline-flex;align-items:center;gap:10px;cursor:pointer}

/* fields */
body.ncm-basket .woocommerce form .form-row label{font-size:13.4px;font-weight:600;color:var(--ncm-grey);margin-bottom:6px}
body.ncm-basket .woocommerce form .form-row .required{color:var(--ncm-pink);text-decoration:none}
body.ncm-basket .woocommerce :is(input.input-text,input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],textarea,select):not(.qty),
body.ncm-basket .woocommerce .select2-container .select2-selection--single{border:1.7px solid var(--ncm-line)!important;
  border-radius:12px!important;background:#fff!important;box-shadow:none!important;font-size:15px!important;color:#4a4949!important;
  min-height:50px;padding:12px 14px!important;transition:border-color .2s,box-shadow .2s}
body.ncm-basket .woocommerce textarea{min-height:110px}
body.ncm-basket .woocommerce :is(input.input-text,input[type=text],input[type=email],input[type=tel],textarea,select):focus,
body.ncm-basket .woocommerce .select2-container--focus .select2-selection--single,
body.ncm-basket .woocommerce .select2-container--open .select2-selection--single{border-color:var(--ncm-green)!important;
  box-shadow:0 0 0 4px rgba(0,128,55,.1)!important;outline:none}
body.ncm-basket .woocommerce .select2-container .select2-selection--single{height:50px!important;padding:0 14px!important;
  display:flex;align-items:center}
body.ncm-basket .woocommerce .select2-container .select2-selection--single .select2-selection__rendered{line-height:1.3!important;padding:0!important}
body.ncm-basket .woocommerce .select2-container .select2-selection--single .select2-selection__arrow{height:48px!important;right:10px!important}
body.ncm-basket .woocommerce form .form-row.woocommerce-invalid :is(input.input-text,select),
body.ncm-basket .woocommerce form .form-row.woocommerce-invalid .select2-selection{border-color:#d64545!important}
body.ncm-basket .woocommerce input[type=checkbox],body.ncm-basket .woocommerce input[type=radio]{accent-color:var(--ncm-green);
  width:18px;height:18px}

/* the checkout's divider rules, softened */
body.ncm-basket .woocommerce hr,body.ncm-basket .woocommerce-shipping-fields{border-color:var(--ncm-line)}

/* order summary and basket totals: one clean card */
body.ncm-basket .cart_totals,body.ncm-basket #order_review .shop_table{background:#fff;border:1px solid var(--ncm-line)!important;
  border-radius:16px!important;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.05)}
body.ncm-basket .cart_totals table,body.ncm-basket #order_review table.shop_table{border:0!important;margin:0!important;
  border-collapse:collapse!important;border-spacing:0!important;width:100%}
body.ncm-basket #order_review .shop_table .product-name{text-align:left!important}
body.ncm-basket .cart_totals :is(th,td),body.ncm-basket #order_review .shop_table :is(th,td){border-color:var(--ncm-line)!important;
  padding:15px 20px!important;font-size:14.5px;color:var(--ncm-grey);background:transparent!important}
body.ncm-basket :is(.cart_totals,#order_review) .order-total :is(th,td){font-size:19px!important;font-weight:800!important;
  background:var(--ncm-grey-l)!important;border-top:0!important}
body.ncm-basket :is(.cart_totals,#order_review) .order-total .amount{color:var(--ncm-grey)}
body.ncm-basket :is(.cart_totals,#order_review) a{color:var(--ncm-green);font-weight:600}
body.ncm-basket #order_review .cart_item td{font-size:13.8px}
body.ncm-basket #order_review .product-name{color:var(--ncm-grey);font-weight:500}
body.ncm-basket #order_review img{border-radius:10px;background:var(--ncm-grey-l)}

/* payment: the design's grey panel, the card area on white */
body.ncm-basket #payment{background:var(--ncm-grey-l)!important;border-radius:16px!important;padding:6px 6px 18px!important;margin-top:22px}
body.ncm-basket #payment ul.payment_methods{border:0!important;padding:14px 16px 4px!important;margin:0!important}
body.ncm-basket #payment ul.payment_methods li{list-style:none;font-weight:700;color:var(--ncm-grey)}
body.ncm-basket #payment div.payment_box{background:#fff!important;border:1px solid var(--ncm-line);border-radius:14px!important;
  margin:12px 0 4px!important;padding:18px!important;color:var(--ncm-mute);font-size:13.8px}
body.ncm-basket #payment div.payment_box::before{display:none!important}
body.ncm-basket #payment .place-order{padding:10px 16px 0!important;margin:0!important}
body.ncm-basket .woocommerce-privacy-policy-text p,body.ncm-basket .woocommerce-terms-and-conditions-wrapper{font-size:13.2px;
  color:var(--ncm-mute);line-height:1.6}
body.ncm-basket .woocommerce-privacy-policy-text a,body.ncm-basket .woocommerce-terms-and-conditions-wrapper a{color:var(--ncm-green)}

/* the two big buttons, as the design's pink buying action */
body.ncm-basket #place_order,body.ncm-basket .wc-proceed-to-checkout .checkout-button{width:100%;min-height:56px;
  border-radius:999px!important;background:var(--ncm-pink)!important;border:0!important;color:#fff!important;font-size:17px!important;
  font-weight:700!important;letter-spacing:.1px;display:flex!important;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 10px 24px rgba(234,68,152,.25);transition:filter .2s,transform .2s}
body.ncm-basket #place_order:hover,body.ncm-basket .wc-proceed-to-checkout .checkout-button:hover{filter:brightness(.93);
  transform:translateY(-1px)}

/* basket table */
body.ncm-basket table.shop_table.cart{border:0!important;border-collapse:collapse}
body.ncm-basket table.shop_table.cart :is(th,td){border-color:var(--ncm-line)!important;padding-top:18px!important;
  padding-bottom:18px!important;vertical-align:middle}
body.ncm-basket table.shop_table.cart .product-name a{color:var(--ncm-grey)!important;font-weight:600;text-decoration:none}
body.ncm-basket table.shop_table.cart .product-name a:hover{color:var(--ncm-green)!important}
body.ncm-basket table.shop_table.cart .product-thumbnail img{border-radius:10px;background:var(--ncm-grey-l)}
body.ncm-basket table.shop_table.cart :is(.product-subtotal,.product-price) .amount{font-weight:700;color:var(--ncm-grey)}
body.ncm-basket table.shop_table.cart .product-remove a{color:var(--ncm-mute)!important;border-radius:50%;transition:color .2s,background .2s}
body.ncm-basket table.shop_table.cart .product-remove a:hover{color:#c62828!important;background:#fdecec}
body.ncm-basket .woocommerce .quantity{border-radius:12px;overflow:hidden}
body.ncm-basket .woocommerce .quantity .qty{border-radius:12px;font-weight:600}

/* coupon */
body.ncm-basket .coupon{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
body.ncm-basket .coupon #coupon_code{min-height:48px;border:1.7px solid var(--ncm-line)!important;border-radius:999px!important;
  padding:0 18px!important;width:auto!important;flex:0 1 240px;min-width:0}
body.ncm-basket .coupon .button,body.ncm-basket button[name=update_cart]{min-height:48px;border-radius:999px!important;
  background:#fff!important;color:var(--ncm-grey)!important;border:1.6px solid var(--ncm-line)!important;font-weight:700!important}
body.ncm-basket .coupon .button:hover,body.ncm-basket button[name=update_cart]:hover{border-color:var(--ncm-green)!important;
  color:var(--ncm-green)!important}
body.ncm-basket .woocommerce-form-coupon-toggle .woocommerce-info{border-radius:12px}

/* notices: the design's soft panels */
body.ncm-basket :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){border:0!important;border-left:5px solid var(--ncm-green)!important;
  border-radius:12px!important;background:var(--ncm-green-l,#e9f4ee)!important;color:var(--ncm-grey)!important;
  padding:16px 20px!important;font-size:14.4px}
body.ncm-basket .woocommerce-info{border-left-color:var(--ncm-pink)!important;background:#fdeef6!important}
body.ncm-basket .woocommerce-error{border-left-color:#d64545!important;background:#fdecec!important}
body.ncm-basket :is(.woocommerce-message,.woocommerce-info,.woocommerce-error)::before{color:inherit}
body.ncm-basket :is(.woocommerce-message,.woocommerce-info) a{color:var(--ncm-green);font-weight:600}

/* "You may be interested in": spaced like the listings */
body.ncm-basket .cross-sells{margin-top:50px}
body.ncm-basket .cross-sells>h2{font-size:clamp(22px,2.4vw,28px)!important}
body.ncm-basket .cross-sells ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px!important;
  margin:0!important;padding:0!important;width:auto!important}
body.ncm-basket .cross-sells ul.products::before,body.ncm-basket .cross-sells ul.products::after{display:none!important;content:none!important}
body.ncm-basket .cross-sells ul.products li.product{width:auto!important;max-width:none!important;float:none!important;margin:0!important}
@media(max-width:1000px){body.ncm-basket .cross-sells ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  body.ncm-basket .site-main{padding-top:22px}
  body.ncm-basket .coupon #coupon_code{min-width:0;flex:1 1 160px}
}
@media(max-width:520px){body.ncm-basket .cross-sells ul.products{grid-template-columns:1fr}}

/* ==========================================================================
   v1.9: "Speak to an expert" pop-up, in the design's form style, holding the
   site's own WPForms contact form. And the pink band above every footer.
   ========================================================================== */
.ncm-footer{margin-top:0!important}

.ncm-modal.ncm-expert{align-items:center}
.ncm-modal .ncm-sheet.ncm-sheet-form{position:relative;max-width:640px;padding:34px 38px 30px;border-radius:24px;
  font-family:var(--ncm-font);box-shadow:0 30px 80px rgba(0,0,0,.3)}
.ncm-expert .ncm-x{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:12px;border:1.6px solid var(--ncm-line);
  background:#fff;color:var(--ncm-grey);font-size:24px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;
  justify-content:center;transition:border-color .2s,color .2s}
.ncm-expert .ncm-x:hover,.ncm-expert .ncm-x:focus-visible{border-color:var(--ncm-green);color:var(--ncm-green);outline:none}
.ncm-expert .ncm-eyebrow{display:inline-block;background:var(--ncm-pink);color:#fff;font-size:12px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;padding:7px 16px;border-radius:999px}
.ncm-expert h2{font-size:27px;font-weight:800;color:var(--ncm-grey);letter-spacing:-.6px;line-height:1.15;margin:14px 50px 0 0}
.ncm-expert .ncm-sub{font-size:14.8px;line-height:1.6;color:var(--ncm-mute);margin:10px 0 0}
.ncm-expert .ncm-formnote{margin:14px 0 0;font-size:13px;color:var(--ncm-mute)}
.ncm-expert .ncm-formnote a{color:var(--ncm-green);font-weight:700;text-decoration:none}
.ncm-expert .ncm-btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.ncm-expert .ncm-btnrow .ncm-btn{margin:0}
.ncm-expert .ncm-unconfirmed-inline{background:rgba(227,179,65,.28);outline:1.5px dashed #e3b341;border-radius:4px;cursor:help}

/* the WPForms form, in the design's field style (pop-up and Contact page) */
.ncm-modal .ncm-formslot{margin-top:18px}
.ncm-modal .ncm-formslot .wpforms-container{margin:0!important}
.ncm-modal .ncm-formslot .wpforms-field{padding:0 0 15px!important}
.ncm-modal .ncm-formslot .wpforms-field-label{font-size:13.2px!important;font-weight:600!important;color:var(--ncm-grey)!important;
  margin-bottom:6px!important}
.ncm-modal .ncm-formslot .wpforms-required-label{color:var(--ncm-pink)!important}
.ncm-modal .ncm-formslot :is(input[type=text],input[type=email],input[type=tel],input[type=number],input[type=url],select,textarea){
  width:100%!important;max-width:100%!important;font-family:var(--ncm-font)!important;font-size:15px!important;color:#4a4949!important;
  border:1.7px solid var(--ncm-line)!important;border-radius:12px!important;padding:12px 14px!important;background:#fff!important;
  box-shadow:none!important;height:auto!important;min-height:50px}
.ncm-modal .ncm-formslot textarea{min-height:110px!important}
.ncm-modal .ncm-formslot :is(input,select,textarea):focus{border-color:var(--ncm-green)!important;
  box-shadow:0 0 0 4px rgba(0,128,55,.1)!important;outline:none}
.ncm-modal .ncm-formslot input[type=checkbox],.ncm-modal .ncm-formslot input[type=radio]{accent-color:var(--ncm-green);width:18px;height:18px}
.ncm-modal .ncm-formslot .wpforms-field-layout-rows,.ncm-modal .ncm-formslot .wpforms-one-half{margin-left:0}
.ncm-modal .ncm-formslot :is(button[type=submit],.wpforms-submit){width:100%!important;min-height:56px;background:var(--ncm-green)!important;
  color:#fff!important;border:0!important;border-radius:999px!important;padding:15px 24px!important;font-family:var(--ncm-font)!important;
  font-size:17px!important;font-weight:700!important;height:auto!important;cursor:pointer;margin-top:4px}
.ncm-modal .ncm-formslot :is(button[type=submit],.wpforms-submit):hover{background:var(--ncm-green-d)!important}
.ncm-modal .ncm-formslot .wpforms-confirmation-container-full,.ncm-modal .ncm-formslot .wpforms-confirmation-container{
  background:var(--ncm-green-l,#e9f4ee)!important;border:0!important;border-left:5px solid var(--ncm-green)!important;border-radius:12px!important;
  color:var(--ncm-grey)!important;padding:18px 20px!important;font-size:15px}
.ncm-modal .ncm-formslot label.wpforms-error,.ncm-modal .ncm-formslot .wpforms-error{color:#c62828!important;font-size:12.6px!important}
@media(max-width:600px){
  .ncm-modal .ncm-sheet.ncm-sheet-form{padding:26px 20px 22px;border-radius:20px;max-height:92vh}
  .ncm-expert h2{font-size:22px}
}
/* the page behind the pop-up dimmed and softly blurred, as the design */
.ncm-modal.ncm-expert.open{background:rgba(35,35,35,.55)!important;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}

/* ==========================================================================
   v1.10
   ========================================================================== */
/* headings balanced everywhere in the design, no orphaned last words */
:is(.ncm-plp-intro,.ncm-pdp-more,.ncm-pdp-details,.ncm-modal,.ncm-footer,.ncm-answer) :is(h1,h2,h3,h4),
body.ncm-pdp .product_title,body.ncm-basket h1.entry-title,
body.ncm-2026 ul.products li.product .woocommerce-loop-product__title{text-wrap:balance}
:is(.ncm-modal,.ncm-pdp-details,.ncm-footer) p{text-wrap:pretty}

/* footer: the Nursecall Mats logo, and the Digital Design logo */
.ncm-flogo{height:44px!important;width:auto}
.ncm-credit img{height:22px!important;width:auto}
.ncm-credit{gap:14px}

/* the search button keeps its icon whatever the theme does to buttons */
.ncm-header .ncm-searchbtn{background:transparent!important;border:0!important;box-shadow:none!important;color:var(--ncm-grey)!important;
  padding:0!important;min-width:0!important;min-height:0!important}
.ncm-header .ncm-searchbtn svg{display:block!important;width:21px;height:21px;stroke:currentColor;fill:none}
.ncm-header .ncm-searchbtn:hover,.ncm-header .ncm-searchbtn[aria-expanded="true"]{background:var(--ncm-grey-l)!important;
  color:var(--ncm-green)!important}
.ncm-header .ncm-searchbtn:focus{outline:none}
.ncm-header .ncm-searchbtn:focus-visible{outline:2px solid var(--ncm-green)!important;outline-offset:2px}

/* ==========================================================================
   v1.11: INSIGHTS ARTICLES, in the design's reading style. The article's
   own content keeps its own spacing (it sits outside the design wrapper).
   ========================================================================== */
.ncm-article-sec{background:#fff;padding:0 0 56px;font-family:var(--ncm-font)}
.ncm-article-sec .ncm-wrap{max-width:872px}
.ncm-article-sec .ncm-crumbs{display:block;padding:30px 0 26px;font-size:13px;color:var(--ncm-mute)}
.ncm-article-sec .ncm-crumbs a{color:var(--ncm-mute);text-decoration:none}
.ncm-article-sec .ncm-crumbs a:hover{color:var(--ncm-green)}
.ncm-article-img{margin:0 0 32px;border-radius:22px;overflow:hidden;background:var(--ncm-grey-l);border:1px solid var(--ncm-line)}
.ncm-article-img img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;margin:0 auto}
.ncm-article-body{font-size:17px;line-height:1.75;color:#4a4949}
.ncm-article-body>*:first-child{margin-top:0}
.ncm-article-body p{margin:0 0 1.15em;text-wrap:pretty}
.ncm-article-body :is(h2,h3,h4){font-family:var(--ncm-font);font-weight:800;color:var(--ncm-grey);letter-spacing:-.4px;
  line-height:1.2;margin:1.7em 0 .6em;text-wrap:balance}
.ncm-article-body h2{font-size:clamp(23px,2.4vw,28px)}
.ncm-article-body h3{font-size:21px}
.ncm-article-body h4{font-size:18px}
.ncm-article-body a{color:var(--ncm-green);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ncm-article-body a:hover{color:var(--ncm-green-d)}
.ncm-article-body :is(ul,ol){margin:0 0 1.15em;padding-left:1.35em}
.ncm-article-body li{margin:0 0 .4em}
.ncm-article-body li::marker{color:var(--ncm-pink);font-weight:700}
.ncm-article-body blockquote{margin:1.6em 0;padding:18px 22px;border-left:5px solid var(--ncm-pink);background:#fdeef6;
  border-radius:12px;font-size:18px;color:var(--ncm-grey)}
.ncm-article-body blockquote p:last-child{margin-bottom:0}
.ncm-article-body img{max-width:100%;height:auto;border-radius:14px}
.ncm-article-body figure{margin:1.6em 0}
.ncm-article-body figcaption{font-size:13.5px;color:var(--ncm-mute);margin-top:8px}
.ncm-article-body table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:15px}
.ncm-article-body :is(th,td){border-bottom:1px solid var(--ncm-line);padding:10px 12px;text-align:left}
.ncm-article-foot{margin-top:36px;padding-top:26px;border-top:1px solid var(--ncm-line);display:flex;gap:10px;flex-wrap:wrap}
.ncm-article-foot .ncm-btn{margin:0}
.ncm-btn.ncm-btn-green,.ncm-btn.ncm-btn-green:visited{background:var(--ncm-green);color:#fff}
.ncm-btn.ncm-btn-green:hover{background:var(--ncm-green-d)}
/* the theme's own author box and post navigation never show on articles */
body.ncm-article-page :is(.author-info,.post-author,.author-box,.entry-author,.post-navigation){display:none!important}
@media(max-width:760px){
  .ncm-article-sec .ncm-crumbs{padding:22px 0 18px}
  .ncm-article-body{font-size:16px}
  .ncm-article-img{border-radius:16px;margin-bottom:24px}
}
.ncm-btn.ghost,.ncm-btn.ghost:visited{background:#fff;color:var(--ncm-grey);border:1.6px solid var(--ncm-line)}
.ncm-btn.ghost:hover{background:#fff;border-color:var(--ncm-green);color:var(--ncm-green)}

/* ==========================================================================
   v1.12: LOG IN button in the header, and MY ACCOUNT in the design.
   Appearance only: logging in, registering, lost password, orders,
   addresses and account details are WooCommerce's own and work as before.
   ========================================================================== */
.ncm-account{display:flex;align-items:center;gap:7px;color:var(--ncm-grey);font:600 14px var(--ncm-font);
  text-decoration:none;padding:7px 9px;border-radius:10px;white-space:nowrap;transition:color .2s,background .2s}
.ncm-account:hover,.ncm-account:focus-visible{color:var(--ncm-green);background:var(--ncm-grey-l);outline:none}
body.ncm-accountpage .ncm-account{color:var(--ncm-green)}
/* header fit steps, applied by ncm.js only when the row would overflow */
.ncm-header .ncm-nav{flex:0 1 auto;min-width:0}
.ncm-header .ncm-nav a{white-space:nowrap}
.ncm-header.ncm-fit-1 .ncm-wrap{gap:18px}
.ncm-header.ncm-fit-1 .ncm-nav{gap:16px}
.ncm-header.ncm-fit-1 .ncm-acts{gap:6px}
.ncm-header.ncm-fit-1 .ncm-acts .ncm-btn{padding:10px 18px}
.ncm-header.ncm-fit-2 .ncm-account span{display:none}
.ncm-header.ncm-fit-3 .ncm-acts .ncm-btn.ghost{display:none}
.ncm-header.ncm-fit-4 .ncm-nav{display:none}
.ncm-header.ncm-fit-4 .ncm-acts{margin-left:auto}
.ncm-header.ncm-fit-4 .ncm-burger{display:block}

/* log in and register: two cards side by side */
body.ncm-accountpage #customer_login{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;
  max-width:1000px;margin:0!important}
body.ncm-accountpage #customer_login::before,body.ncm-accountpage #customer_login::after{display:none!important;content:none!important}
body.ncm-accountpage #customer_login>div{float:none!important;width:auto!important;max-width:none!important;margin:0!important;
  background:#fff;border:1px solid var(--ncm-line);border-radius:22px;padding:32px 32px 30px!important;box-shadow:0 14px 34px rgba(0,0,0,.05)}
body.ncm-accountpage #customer_login>div.u-column2{background:#fdeef6;border-color:#f6d3e5}
body.ncm-accountpage :is(#customer_login,.woocommerce-ResetPassword,.lost_reset_password) form{border:0!important;padding:0!important;margin:18px 0 0!important;
  background:transparent!important;box-shadow:none!important}
body.ncm-accountpage #customer_login h2{font-size:24px!important;margin:0!important}
body.ncm-accountpage #customer_login h2::after{content:'';display:block;width:84px;height:3px;border-radius:3px;background:var(--ncm-pink);margin-top:12px}
body.ncm-accountpage .woocommerce form .form-row{margin:0 0 16px;padding:0}
body.ncm-accountpage .woocommerce-form-login__rememberme{display:inline-flex!important;align-items:center;gap:9px;font-size:14px;
  color:var(--ncm-mute);font-weight:500!important;margin:4px 0 16px}
body.ncm-accountpage :is(.woocommerce-form-login__submit,.woocommerce-form-register__submit,.woocommerce-Button,.woocommerce-button,
  button[name=save_account_details],button[name=save_address],.woocommerce-ResetPassword .button){min-height:52px;border-radius:999px!important;
  background:var(--ncm-green)!important;color:#fff!important;border:0!important;font-size:16px!important;font-weight:700!important;
  padding:0 28px!important;cursor:pointer;transition:background .2s,transform .2s;display:inline-flex!important;align-items:center;justify-content:center}
body.ncm-accountpage :is(.woocommerce-form-login__submit,.woocommerce-form-register__submit){width:100%;margin:6px 0 0!important;float:none!important}
body.ncm-accountpage :is(.woocommerce-form-login__submit,.woocommerce-form-register__submit,.woocommerce-Button,.woocommerce-button,
  button[name=save_account_details],button[name=save_address]):hover{background:var(--ncm-green-d)!important;transform:translateY(-1px)}
body.ncm-accountpage .woocommerce-LostPassword{margin:16px 0 0;font-size:14px}
body.ncm-accountpage .woocommerce-LostPassword a,body.ncm-accountpage .woocommerce-privacy-policy-text a{color:var(--ncm-green);font-weight:600}
body.ncm-accountpage .woocommerce-privacy-policy-text p{font-size:13px;color:var(--ncm-mute);line-height:1.6}
body.ncm-accountpage .woocommerce-password-strength{border-radius:10px;padding:8px 12px!important;font-size:13px;margin-top:8px}
body.ncm-accountpage .woocommerce-password-hint{font-size:12.6px;color:var(--ncm-mute)}
body.ncm-accountpage .password-input{display:block;position:relative}
body.ncm-accountpage .show-password-input{top:50%!important;transform:translateY(-50%)}

/* signed in: menu card on the left, content on the right */
body.ncm-accountpage .woocommerce:has(>.woocommerce-MyAccount-navigation){display:grid;grid-template-columns:260px minmax(0,1fr);
  gap:36px;align-items:start}
body.ncm-accountpage .woocommerce:has(>.woocommerce-MyAccount-navigation)>:not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content){grid-column:1/-1}
body.ncm-accountpage .woocommerce::before,body.ncm-accountpage .woocommerce::after{display:none!important}
body.ncm-accountpage .woocommerce-MyAccount-navigation{float:none!important;width:auto!important;margin:0!important;background:#fff;
  border:1px solid var(--ncm-line);border-radius:20px;padding:10px!important;box-shadow:0 14px 34px rgba(0,0,0,.05);position:sticky;top:110px}
body.ncm-accountpage .woocommerce-MyAccount-navigation ul{list-style:none;margin:0!important;padding:0!important;border:0!important}
body.ncm-accountpage .woocommerce-MyAccount-navigation li{margin:0!important;padding:0!important;border:0!important}
body.ncm-accountpage .woocommerce-MyAccount-navigation li a{display:block;padding:12px 16px!important;border-radius:12px;font-size:14.8px;
  font-weight:600;color:var(--ncm-grey)!important;text-decoration:none!important;transition:background .2s,color .2s}
body.ncm-accountpage .woocommerce-MyAccount-navigation li a::before{display:none!important}
body.ncm-accountpage .woocommerce-MyAccount-navigation li a:hover{background:var(--ncm-grey-l);color:var(--ncm-green)!important}
body.ncm-accountpage .woocommerce-MyAccount-navigation li.is-active a{background:var(--ncm-green-l);color:var(--ncm-green)!important;
  box-shadow:inset 4px 0 0 var(--ncm-green)}
body.ncm-accountpage .woocommerce-MyAccount-navigation-link--customer-logout{margin-top:6px!important;padding-top:6px!important;
  border-top:1px solid var(--ncm-line)!important}
body.ncm-accountpage .woocommerce-MyAccount-navigation-link--customer-logout a:hover{color:#c62828!important;background:#fdecec}
body.ncm-accountpage .woocommerce-MyAccount-content{float:none!important;width:auto!important;margin:0!important;font-size:15.2px;
  line-height:1.7;color:#4a4949}
body.ncm-accountpage .woocommerce-MyAccount-content>p:first-child{background:var(--ncm-grey-l);border-radius:16px;padding:20px 22px;margin:0 0 18px}
body.ncm-accountpage .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-button){color:var(--ncm-green);font-weight:600}
body.ncm-accountpage .woocommerce-MyAccount-content :is(h2,h3){font-size:21px!important;margin:6px 0 14px!important}

/* orders and order details */
body.ncm-accountpage .woocommerce-MyAccount-content table{width:100%;border:1px solid var(--ncm-line)!important;border-radius:16px!important;
  border-collapse:separate!important;border-spacing:0;overflow:hidden;background:#fff;margin:0 0 22px}
body.ncm-accountpage .woocommerce-MyAccount-content table :is(th,td){padding:14px 16px!important;border:0!important;
  border-bottom:1px solid var(--ncm-line)!important;font-size:14.2px;text-align:left;vertical-align:middle}
body.ncm-accountpage .woocommerce-MyAccount-content table thead th{background:var(--ncm-grey-l);font-weight:700;color:var(--ncm-grey)}
body.ncm-accountpage .woocommerce-MyAccount-content table tr:last-child :is(th,td){border-bottom:0!important}
body.ncm-accountpage .woocommerce-MyAccount-content table .button,body.ncm-accountpage .woocommerce-orders-table .woocommerce-button{
  min-height:36px!important;padding:0 16px!important;font-size:13px!important;background:#fff!important;color:var(--ncm-grey)!important;
  border:1.6px solid var(--ncm-line)!important;margin:2px 4px 2px 0!important}
body.ncm-accountpage .woocommerce-MyAccount-content table .button:hover,body.ncm-accountpage .woocommerce-orders-table .woocommerce-button:hover{
  border-color:var(--ncm-green)!important;color:var(--ncm-green)!important;transform:none}
body.ncm-accountpage .woocommerce-orders-table__cell-order-number a{font-weight:700}
body.ncm-accountpage mark{background:var(--ncm-green-l);color:var(--ncm-green-d);border-radius:6px;padding:1px 7px;font-weight:600}

/* addresses as cards */
body.ncm-accountpage .woocommerce-Addresses{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:0!important}
body.ncm-accountpage .woocommerce-Addresses::before,body.ncm-accountpage .woocommerce-Addresses::after{display:none!important}
body.ncm-accountpage .woocommerce-Address{float:none!important;width:auto!important;margin:0!important;background:#fff;border:1px solid var(--ncm-line);
  border-radius:18px;padding:22px 22px 20px}
body.ncm-accountpage .woocommerce-Address-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
body.ncm-accountpage .woocommerce-Address-title h2,body.ncm-accountpage .woocommerce-Address-title h3{font-size:18px!important;margin:0!important}
body.ncm-accountpage .woocommerce-Address address{font-style:normal;line-height:1.7;color:var(--ncm-mute)}

/* account details form */
body.ncm-accountpage .woocommerce-EditAccountForm fieldset{border:1px solid var(--ncm-line);border-radius:18px;padding:18px 22px 6px;margin:10px 0 22px}
body.ncm-accountpage .woocommerce-EditAccountForm legend{font-weight:800;color:var(--ncm-grey);padding:0 8px;font-size:16px}
body.ncm-accountpage .woocommerce-EditAccountForm em{font-size:12.6px;color:var(--ncm-mute)}

@media(max-width:900px){
  body.ncm-accountpage .woocommerce:has(>.woocommerce-MyAccount-navigation){grid-template-columns:1fr;gap:22px}
  body.ncm-accountpage .woocommerce-MyAccount-navigation{position:static}
  body.ncm-accountpage .woocommerce-MyAccount-navigation ul{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
  body.ncm-accountpage .woocommerce-MyAccount-navigation li a{white-space:nowrap;padding:10px 14px!important}
  body.ncm-accountpage .woocommerce-MyAccount-navigation-link--customer-logout{margin-top:0!important;padding-top:0!important;border-top:0!important}
  body.ncm-accountpage #customer_login>div{padding:24px 22px!important}
}

/* ==========================================================================
   v1.13.0 (29/09/26, RGS feedback before launch)
   ========================================================================== */

/* group bar: RGS Group first, each site with its brand colour (as RGS) */
.ncm-gb-links a{display:inline-flex;align-items:center;gap:7px}
.ncm-gb-links a::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gb,#fff);flex:0 0 7px}
.ncm-gb-links a.gb-rgs{--gb:var(--ncm-green)}
.ncm-gb-links a.gb-nursecall{--gb:var(--ncm-pink)}
.ncm-gb-links a.gb-medical{--gb:var(--ncm-orange)}
.ncm-gb-links a.gb-air{--gb:var(--ncm-blue)}
.ncm-groupbar .ncm-gb-links a:hover,.ncm-groupbar .ncm-gb-links a.on{border-bottom-color:var(--gb)}

/* the pink category bar stays with the header as the page scrolls.
   --ncm-hdr-h is the header's height, measured by ncm.js. */
.ncm-catbar{position:sticky;top:var(--ncm-hdr-h,78px);z-index:49}
body.admin-bar .ncm-catbar{top:calc(32px + var(--ncm-hdr-h,78px))}
@media(max-width:782px){body.admin-bar .ncm-catbar{top:calc(46px + var(--ncm-hdr-h,78px))}}
@media(max-width:600px){body.admin-bar .ncm-catbar{top:var(--ncm-hdr-h,70px)}}
.ncm-header.stuck:has(~ .ncm-catbar){box-shadow:none}
.ncm-catbar.stuck{box-shadow:0 6px 24px rgba(0,0,0,.12)}

/* finder: each system with a picture of its call point, when it has one */
.ncm-syspick button.has-pic,
.ncm-home :is(.hero,.ncm-finder) .ncm-engine .ncm-syspick button.has-pic{display:flex;align-items:center;gap:8px;text-align:left;
  padding:6px 8px 6px 6px}
.ncm-syspick button.has-pic img{width:38px;height:38px;flex:0 0 38px;object-fit:contain;background:#fff;border-radius:7px;padding:2px}
.ncm-syspick button span{min-width:0}

/* product cards: title, price and stock only */
.ncm-card-desc,.ncm-card-vat{display:none!important}
.ncm-stock{display:block;font-family:var(--ncm-font);font-size:12.6px;font-weight:600;margin:-6px 0 14px;text-align:left;
  line-height:1.3}
.ncm-stock::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;
  vertical-align:1px;background:currentColor}
.ncm-stock-ok{color:var(--ncm-green)}
.ncm-stock-back{color:#b36b00}
.ncm-stock-out{color:#c62828}
.ncm-home .prod .ncm-stock{margin:6px 0 0}
body.ncm-2026 ul.products li.product .product-out-of-stock,
body.ncm-2026 ul.products li.product .ncm-dup-stock{display:none!important}

/* Add to basket on cards: after adding, a clear "View basket" link
   (it was a green bar with green text, so it looked empty) */
body.ncm-2026 ul.products li.product .added_to_cart,
body.ncm-2026 ul.products li.product a.added_to_cart{display:flex!important;align-items:center;justify-content:center;
  margin-top:8px!important;margin-bottom:0!important;min-height:42px;height:auto!important;padding:9px 16px!important;
  border-radius:999px!important;background:#fff!important;border:1.6px solid var(--ncm-green)!important;
  color:var(--ncm-green)!important;font-family:var(--ncm-font);font-size:13.5px!important;font-weight:700!important;
  line-height:1.2!important;text-decoration:none!important;text-indent:0!important;width:auto!important;
  position:static!important;opacity:1!important;visibility:visible!important;transform:none!important}
body.ncm-2026 ul.products li.product .added_to_cart:hover{background:var(--ncm-green-l)!important}
body.ncm-2026 ul.products li.product .add_to_cart_button.added::after{content:' \2713';margin-left:6px;font-weight:800}
body.ncm-2026 ul.products li.product .add_to_cart_button.loading{opacity:.7!important}

/* quantity: a clear minus / number / plus stepper (ncm.js adds the buttons) */
.ncm-qty{display:inline-flex!important;align-items:stretch;border:1.7px solid var(--ncm-line);border-radius:12px;
  background:#fff;overflow:hidden;font-family:var(--ncm-font);height:52px;flex:0 0 auto}
.ncm-qty .ncm-qbtn{width:40px;border:0;background:var(--ncm-grey-l);color:var(--ncm-grey);font-size:20px;font-weight:600;
  line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .15s}
.ncm-qty .ncm-qbtn:hover{background:var(--ncm-pink-l);color:var(--ncm-pink)}
.ncm-qty .ncm-qbtn:disabled{opacity:.4;cursor:default;background:var(--ncm-grey-l);color:var(--ncm-grey)}
.ncm-qty input.qty{border:0!important;border-radius:0!important;height:100%!important;width:48px!important;min-width:0!important;
  padding:0!important;margin:0!important;text-align:center;font-size:16px!important;font-weight:700;color:var(--ncm-grey);
  background:#fff!important;box-shadow:none!important;-moz-appearance:textfield;appearance:textfield}
.ncm-qty input.qty::-webkit-outer-spin-button,.ncm-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ncm-qty .minus,.ncm-qty .plus,.ncm-qty .quantity-nav,.ncm-qty .quantity-button,.ncm-qty .qib-button{display:none!important}
.ncm-qty .screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;
  clip:rect(0 0 0 0)!important;white-space:nowrap!important;margin:-1px!important;padding:0!important;border:0!important}
.ncm-buybox form.cart .quantity.ncm-qty .qty{height:100%!important;width:48px!important;border:0!important}
body.ncm-basket .woocommerce .quantity.ncm-qty{height:44px}
body.ncm-basket .woocommerce .quantity.ncm-qty .ncm-qbtn{width:34px}
body.ncm-basket .woocommerce .quantity.ncm-qty .qty{width:42px!important}
