/* ==========================================================================
   Sal-Tech Nordic — design layer
   Loaded after custom.css (carried over from saltech-theme). Only refines;
   remove this file from config/theme.yml to fall back to the previous look.
   ========================================================================== */

/* ---------- Fonts (self-hosted, OFL) ---------- */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Latin Extended: Latvian, and other EU store languages */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
  /* Logo red (sampled from the sal-tech.com logo) and Nordic neutrals. */
  --saltech-red: #e20012;
  --saltech-red-dark: #b8000e;
  --saltech-navy: #141414;
  --saltech-ink: #1f1f1f;
  --saltech-muted: #f7f7f5;
  --saltech-line: #e2e2df;
  --saltech-radius: 10px;

  --nordic-ground: #f7f7f5;
  --nordic-surface: #ffffff;
  --nordic-line-soft: #eeeeec;
  --nordic-text-2: #555555;
  --nordic-text-3: #666666;
  --nordic-dark: #141414;
  --nordic-dark-2: #1a1a1a;
  --nordic-font: "Poppins", Inter, "Helvetica Neue", Arial, sans-serif;
  /* One typeface everywhere: the former mono accents (numbers, small labels) use Poppins too. */
  --nordic-mono: var(--nordic-font);

  --bs-primary: var(--saltech-red);
  --bs-primary-rgb: 226, 0, 18;
  --bs-link-color: var(--saltech-navy);
  --bs-link-hover-color: var(--saltech-red-dark);
  --bs-body-font-family: var(--nordic-font);
}

body {
  font-family: var(--nordic-font);
  color: var(--saltech-ink);
  letter-spacing: -0.003em;
}

h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
  font-family: var(--nordic-font);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.nordic-mono { font-family: var(--nordic-mono); }
/* Rich text from the back office (category, product and CMS descriptions) carries inline
   fonts such as Calibri, which falls back to a serif on most devices. */
[style*="font-family"],
font[face] { font-family: inherit !important; }
#header .saltech-search-result__reference { font-family: inherit; }
.stgcc-x { font-family: inherit !important; } /* cookie banner close button (stgcookieconsent sets Arial) */

.btn-primary {
  --bs-btn-bg: var(--saltech-red);
  --bs-btn-border-color: var(--saltech-red);
  --bs-btn-hover-bg: var(--saltech-red-dark);
  --bs-btn-hover-border-color: var(--saltech-red-dark);
  --bs-btn-active-bg: var(--saltech-red-dark);
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
}

/* ---------- Header ---------- */
button, input, select, textarea { font-family: inherit; }

/* Top bar: contact + tagline | Language and Currency */
#header .header-top.nordic-topbar {
  min-height: 0; max-height: none; padding: 0;
  border-bottom: 1px solid var(--saltech-line); background: #fff;
  color: var(--nordic-text-2); font-size: .82rem;
}
.nordic-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; }
.nordic-topbar__contact { display: flex; align-items: center; gap: 1.6rem; min-width: 0; }
#header .nordic-topbar__contact a,
#header .nordic-topbar .saltech-support-email {
  margin: 0; padding: 0; border: 0;
  color: var(--nordic-text-2) !important; font-family: var(--nordic-mono); font-size: .78rem; font-weight: 400; text-decoration: none;
}
#header .nordic-topbar__contact a:hover { color: var(--saltech-red-dark) !important; }
#header .nordic-topbar .saltech-support-email::before { content: none; }
.nordic-topbar__tagline { overflow: hidden; color: var(--nordic-text-2); white-space: nowrap; text-overflow: ellipsis; }
.nordic-topbar__settings { display: flex; flex: none; align-items: center; gap: 1.1rem; }
.nordic-topbar__setting { display: flex; align-items: center; gap: .5rem; }
#header .nordic-topbar .ps-languageselector,
#header .nordic-topbar .ps-currencyselector { padding: 0; border: 0; }
#header .nordic-topbar .saltech-select__toggle,
#header .nordic-topbar .form-select {
  min-height: 28px; padding: .15rem .55rem; border: 1px solid #c9c9c5; border-radius: 4px;
  background-color: #fff; color: var(--nordic-dark); font-size: .8rem; font-weight: 500;
}
#header .nordic-topbar .form-select { padding-right: 1.7rem; }
#header .nordic-topbar .saltech-select__toggle::after { width: .38rem; height: .38rem; border-width: 1.5px; }

/* Main row: wordmark | search | Sign in + Cart */
#header .header-bottom { padding-block: 1rem; border-bottom: 0; background: #fff; }
#header .nordic-header-row { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); min-height: 56px; }
#header .nordic-header-row .header-bottom__logo { flex: none; }
#header .header-bottom__h1 { font-size: inherit; line-height: 1; }

#header .header-bottom__logo .logo { display: block; width: auto; max-height: 50px; }
body.saltech-header-scrolled #header .header-bottom__logo .logo { max-height: 34px; }

/* ps_mainmenu (displayTop) renders an empty desktop menu that took the space on the right;
   the mega menu replaces it from tablet width up. */
@media (min-width: 768px) {
  #header .nordic-header-row .ps-mainmenu--desktop { display: none; }
}

#header .nordic-header-search { flex: 1 1 auto; max-width: 590px; min-width: 0; }
#header .nordic-header-search .ps-searchbar { width: 100%; }
#header .nordic-header-search .ps-searchbar__input {
  min-height: 46px; padding-left: 2.8rem; border: 1px solid #dcdcd8; border-radius: 6px;
  background: #f4f4f1; color: var(--nordic-dark); font-size: .92rem;
}
#header .nordic-header-search .ps-searchbar__input::placeholder { color: #666; }
#header .nordic-header-search .ps-searchbar__magnifier { left: 1rem; color: #555; font-size: 20px; }

.nordic-header-actions { flex: none; align-items: center; gap: 1.4rem; margin-left: auto; }
#header .nordic-header-actions .header-block__action-btn { gap: .5rem; padding: .4rem 0; color: var(--nordic-dark); font-size: .92rem; font-weight: 500; }
#header .nordic-header-actions .header-block__icon {
  width: 20px; height: 20px; overflow: hidden; background: currentColor; font-size: 0;
  -webkit-mask: var(--nordic-icon) center / contain no-repeat; mask: var(--nordic-icon) center / contain no-repeat;
}
#header .nordic-header-actions .ps-customersignin .header-block__icon {
  --nordic-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 21c0-4 3.4-6.8 7.5-6.8s7.5 2.8 7.5 6.8'/%3E%3C/svg%3E");
}
#header .nordic-header-actions .ps-shoppingcart .header-block__icon,
:is(.nordic-shop, #js-product-list, body#product .module-products) .product-miniature__add .material-icons {
  --nordic-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 4h2.6l2.2 11h10.8l2.2-8H6.2'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.4'/%3E%3Ccircle cx='17' cy='19.5' r='1.4'/%3E%3C/svg%3E");
}
#header .nordic-header-actions > div,
#header .nordic-header-actions .header-block { display: flex; align-items: center; }
#header .nordic-header-actions .ps-customersignin { padding-right: 0; border-right: 0; }
/* The cart button carries Bootstrap's layered `pe-md-0 !important`, which outranks any
   unlayered rule, so the right-hand space comes from the badge's margin instead. */
#header .nordic-header-actions .ps-shoppingcart .header-block__action-btn {
  min-height: 48px; padding: 0 0 0 1.15rem; border-radius: 6px;
  background: var(--nordic-dark); color: #fff; font-size: .95rem; font-weight: 600;
}
#header .nordic-header-actions .ps-shoppingcart a.header-block__action-btn:hover { background: #000; color: #fff; }
/* Hummingbird turns the icon red once the cart has items (.header-block--active). */
#header .nordic-header-actions .ps-shoppingcart .header-block__icon { color: #fff; }
#header .nordic-header-actions .ps-shoppingcart .header-block__badge {
  position: static; display: inline; min-width: 0; height: auto; margin: 0 1.15rem 0 -.2rem; padding: 0;
  border-radius: 0; background: none; color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit;
}
#header .nordic-header-actions .ps-shoppingcart .header-block__badge::before { content: "· "; }
#header #_mobile_ps_customersignin { margin-left: auto; }

body.saltech-header-scrolled #header .header-bottom { padding-block: .35rem; }

/* Mega menu: centred on the page width, labels on one line */
#header .saltech-header-menu { border-top: 1px solid var(--nordic-line-soft); }
#header .saltech-mega-menu { border-bottom: 3px solid var(--saltech-red); }
#header .saltech-mega-menu__item > a { color: var(--nordic-dark); font-size: .74rem; font-weight: 600; letter-spacing: .02em; }
/* Labels wrap inside their item (max 135px): translated names such as Danish
   "Produktionsudstyr til emballeringsmateriale" are far longer than the English ones. */
@media (min-width: 768px) {
  #header .saltech-mega-menu__list { max-width: 1320px; padding-inline: 1rem; }
  #header .saltech-mega-menu__item { min-width: 0; }
  #header .saltech-mega-menu__item > a { justify-content: flex-start; padding-inline: .2rem; }
  #header .saltech-mega-menu__item > a span { overflow-wrap: break-word; hyphens: auto; hyphenate-limit-chars: 10 4 4; text-wrap: balance; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  #header .saltech-mega-menu__item > a { font-size: .64rem; }
}
@media (max-width: 1199px) {
  .nordic-topbar__tagline { display: none; }
}

/* ---------- Homepage shell ---------- */
/* Off-white page ground on every page (#f7f7f5), replacing custom.css's white. */
#wrapper,
.page-content,
#content { background: var(--nordic-ground); }
.nordic-home { padding-bottom: 0; }

/* Full-width banner (ps_imageslider) */
.nordic-home .ps-imageslider { margin: 0; background: #0a0a0a; }
.nordic-home .ps-imageslider .carousel-indicators [data-bs-target] {
  width: 28px; height: 3px; border: 0; border-radius: 2px; opacity: .55; background: #fff;
}
.nordic-home .ps-imageslider .carousel-indicators .active { opacity: 1; background: var(--saltech-red); }
.nordic-home .ps-imageslider .carousel-control-prev,
.nordic-home .ps-imageslider .carousel-control-next {
  width: 44px; height: 44px; top: 50%; transform: translateY(-50%);
  margin-inline: 14px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.35); background: rgba(10,10,10,.55); opacity: 1;
}
.nordic-home .ps-imageslider .carousel-control-prev-icon,
.nordic-home .ps-imageslider .carousel-control-next-icon { width: 16px; height: 16px; }

/* Section rhythm */
.nordic-section { padding-top: clamp(2.75rem, 5vw, 4.5rem); }
.nordic-section__head {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end;
  gap: .75rem 1.5rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--nordic-dark);
}
.nordic-section__title { margin: .35rem 0 0; font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.1; }
.nordic-section__lead { margin: 0; max-width: 440px; color: var(--nordic-text-2); }
.nordic-eyebrow {
  display: flex; align-items: center; gap: .6rem; margin: 0;
  font-family: var(--nordic-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--nordic-text-2);
}
.nordic-eyebrow::before { content: ""; width: 24px; height: 3px; background: var(--saltech-red); }
.nordic-eyebrow--dark { color: #a3a3a3; }
.nordic-link { font-weight: 600; font-size: .9rem; color: var(--nordic-dark); text-decoration: none; }
.nordic-link:hover { color: var(--saltech-red-dark); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Service promises ---------- */
.nordic-promises { padding-top: 1.75rem; }
.nordic-promises__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--nordic-surface); border: 1px solid var(--saltech-line); border-radius: var(--saltech-radius);
}
.nordic-promises__item { display: flex; gap: .9rem; align-items: flex-start; padding: 1.25rem 1.5rem; }
.nordic-promises__item + .nordic-promises__item { border-left: 1px solid var(--saltech-line); }
.nordic-promises__icon { flex: none; width: 26px; height: 26px; margin-top: 1px; color: var(--saltech-red); }
.nordic-promises__item strong { display: block; font-size: .95rem; color: var(--nordic-dark); }
.nordic-promises__item span { display: block; font-size: .85rem; color: var(--nordic-text-2); }
.nordic-promises__item a { color: var(--nordic-dark); font-size: .8rem; display: inline; white-space: nowrap; }

/* ---------- Product areas ---------- */
.nordic-tasks { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: 1rem 0 1.15rem; }
.nordic-tasks__label { margin-right: .25rem; font-size: .82rem; font-weight: 600; color: var(--nordic-text-2); }
.nordic-chip {
  display: inline-flex; align-items: center; gap: .35rem; min-height: 36px; padding: 0 .9rem;
  border: 1px solid #d6d6d2; border-radius: 18px; background: var(--nordic-surface);
  font-size: .82rem; color: var(--nordic-dark); text-decoration: none; white-space: nowrap;
}
.nordic-chip span { color: var(--nordic-text-3); }
.nordic-chip:hover { border-color: var(--saltech-red); color: var(--nordic-dark); }

.nordic-areas {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 1px;
  background: var(--saltech-line); border: 1px solid var(--saltech-line); border-radius: var(--saltech-radius); overflow: hidden;
}
.nordic-area { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.1rem; background: var(--nordic-surface); }
.nordic-area__icon { flex: none; width: 40px; height: 40px; object-fit: contain; }
.nordic-area__body { min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.nordic-area__name { font-size: 1rem; font-weight: 600; color: var(--nordic-dark); text-decoration: none; }
.nordic-area__name:hover { color: var(--saltech-red-dark); }
.nordic-area__subs { display: flex; flex-wrap: wrap; gap: .1rem .65rem; margin: 0; padding: 0; list-style: none; font-size: .82rem; line-height: 1.5; }
.nordic-area__subs a, .nordic-area__all { color: var(--nordic-text-2); text-decoration: none; font-size: .82rem; }
.nordic-area__subs a:hover, .nordic-area__all:hover { color: var(--saltech-red-dark); text-decoration: underline; }

/* ---------- Shop tabs ---------- */
.nordic-tabs { display: flex; gap: 4px; padding: 4px; background: #efefec; border-radius: 8px; }
.nordic-tabs__tab {
  min-height: 36px; padding: 0 .9rem; border: 0; border-radius: 6px; background: transparent;
  font: inherit; font-size: .82rem; font-weight: 600; color: var(--nordic-text-2); cursor: pointer;
}
.nordic-tabs__tab.is-active { background: #fff; color: var(--nordic-dark); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.nordic-tabs__tab:focus-visible { outline: 2px solid var(--saltech-red); outline-offset: 2px; }
.nordic-tabs__panel { padding-top: 1.5rem; }
.nordic-tabs__panel[hidden] { display: none !important; }
/* The modules bring their own container + title; the tabs replace both. */
.nordic-tabs__panel .module-products.container,
.nordic-tabs__panel .container,
.nordic-tabs__panel .saltech-best-sellers { max-width: none; width: 100%; margin: 0; padding: 0; }
.nordic-tabs__panel .section-title,
.nordic-tabs__panel .products-section-title,
.nordic-tabs__panel h2:first-child { display: none; }
/* The tabs header carries "View all products"; the modules' own buttons are hidden. */
.nordic-shop .nordic-section__head > div:first-child { margin-right: auto; }
.nordic-shop__all { align-self: center; white-space: nowrap; }
.nordic-shop__all[hidden],
.nordic-tabs__panel .module-products__buttons,
.nordic-tabs__panel .saltech-best-sellers > .text-center { display: none !important; }

/* Product cards: 5 columns × 2 rows (the modules decide how many products they send). */
.product-miniature__category { display: none; }
.nordic-tabs__panel .products {
  display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem;
  margin: 0 !important; padding: 0;
}
.nordic-tabs__panel .products > * { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; flex: none !important; }
.nordic-tabs__panel .products > :nth-child(n+11) { display: none !important; }

/* Price 0 = on request: a full-width Request price button replaces the price and cart button. */
.product-miniature__request {
  display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; padding: 0 1rem;
  border: 1px solid var(--nordic-dark); border-radius: 6px; background: #fff;
  color: var(--nordic-dark); font-size: .86rem; font-weight: 600; text-decoration: none;
}
.product-miniature__request:hover,
.product-miniature__request:focus-visible { background: var(--nordic-dark); color: #fff; }
.product-miniature__prices:has(.product-miniature__request) { grid-column: 1 / -1 !important; }
.product-miniature:has(.product-miniature__request) .product-miniature__actions { display: none !important; }
/* Listing pages and the product page's product lists: same cards, as many columns as fit. */
#js-product-list .products,
body#product .module-products .products {
  display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 1rem;
  margin: 0 !important; padding: 0;
}
:is(#js-product-list, body#product .module-products) .products > * { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; flex: none !important; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature {
  display: flex; height: 100%; overflow: hidden;
  border: 1px solid var(--saltech-line); border-radius: var(--saltech-radius); background: #fff; box-shadow: none;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature:hover { border-color: #c9c9c5; transform: none; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__inner { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; border: 0; box-shadow: none; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__top { position: relative; border-bottom: 0; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__image-container { display: flex; align-items: center; justify-content: center; aspect-ratio: 5 / 4; padding: 1.5rem; background: #fff; border: 0; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__image-link { display: block; width: 100%; height: 100%; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__image { width: 100%; height: 100%; object-fit: contain; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature .product-miniature__quickview-button,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__quickview-touch,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .saltech-card-gallery__nav,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .saltech-card-gallery__thumbs,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .quantity-button,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-list-review,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__variants,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__discount-price,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__add-text { display: none !important; }

:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-flags {
  position: absolute; top: .65rem; left: .65rem; z-index: 2;
  display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; margin: 0; padding: 0; list-style: none;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-flags .badge {
  padding: .32rem .5rem; border-radius: 4px; background: var(--saltech-red); color: #fff;
  font-family: var(--nordic-font); font-size: .66rem; font-weight: 700; letter-spacing: .04em; line-height: 1; text-transform: uppercase;
}
/* Hummingbird sets the flag background-color with a layered !important; paint over it. */
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-flags .nordic-badge--best { border-color: var(--nordic-dark); background-image: linear-gradient(var(--nordic-dark), var(--nordic-dark)); }

:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__bottom {
  display: grid; flex: 1; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr auto;
  column-gap: .75rem; padding: 1.1rem 1rem 1rem;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__infos { display: contents; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__category,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__title { grid-column: 1 / -1; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__category {
  display: block; margin-bottom: .35rem; color: var(--nordic-text-3);
  font-family: var(--nordic-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__title {
  align-self: start; margin: 0 0 1.25rem; color: var(--nordic-dark);
  font-size: .9rem; font-weight: 500; line-height: 1.4; text-decoration: none;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__title:hover { color: var(--saltech-red-dark); }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__prices { grid-column: 1; grid-row: 3; align-self: center; margin: 0; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__price {
  display: inline; min-height: 0; padding: 0; border: 0; background: none;
  color: var(--nordic-dark) !important; font-size: 1rem; font-weight: 700;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .nordic-price__currency { color: var(--nordic-text-3); font-size: .72rem; font-weight: 500; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__actions { grid-column: 2; grid-row: 3; align-self: center; margin: 0; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__form { display: flex; margin: 0; }
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__add {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
  border: 0; border-radius: 6px; background: var(--nordic-dark); color: #fff;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__add:hover,
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__add:focus-visible { background: var(--saltech-red); color: #fff; }
:is(.nordic-shop, #js-product-list, body#product .module-products) .product-miniature__add .material-icons {
  width: 20px; height: 20px; overflow: hidden; background: currentColor; font-size: 0;
  -webkit-mask: var(--nordic-icon) center / contain no-repeat; mask: var(--nordic-icon) center / contain no-repeat;
}
:is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .product-miniature__details { min-height: 44px; padding-inline: .8rem; font-size: .8rem; }

@media (max-width: 1199px) { .nordic-tabs__panel .products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 991px) { .nordic-tabs__panel .products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575px) { :is(.nordic-tabs__panel, #js-product-list, body#product .module-products) .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; } }

/* ---------- By trade ---------- */
.nordic-trade {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 2.25rem;
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 3vw, 3rem);
  border-top: 4px solid var(--saltech-red); border-radius: var(--saltech-radius);
  background: var(--nordic-dark); color: #fff;
}
.nordic-trade__intro h2 { margin: .75rem 0 .75rem; color: #fff; font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.12; }
.nordic-trade__intro p { margin: 0; color: #cfcfcf; }
.nordic-trade__item {
  display: flex; flex-direction: column; gap: .5rem; padding-top: 1.1rem; border-top: 1px solid #333;
  color: #fff; text-decoration: none;
}
.nordic-trade__item .nordic-mono { font-size: .75rem; color: #a3a3a3; }
.nordic-trade__item strong { font-size: 1.3rem; font-weight: 600; }
.nordic-trade__item span:not(.nordic-mono) { font-size: .88rem; color: #cfcfcf; }
.nordic-trade__item em { margin-top: .3rem; font-style: normal; font-weight: 600; font-size: .88rem; }
.nordic-trade__item:hover { color: #fff; }
.nordic-trade__item:hover em { color: #ff4d4d; }

/* ---------- Products A–Z ---------- */
.nordic-az__letters { display: flex; flex-wrap: wrap; gap: 6px; padding: 1.5rem 0 1rem; }
.nordic-az__letter {
  width: 44px; height: 44px; border: 1px solid #d6d6d2; border-radius: 6px; background: #fff;
  font-family: var(--nordic-mono); font-size: .88rem; font-weight: 500; color: var(--nordic-dark); cursor: pointer;
}
.nordic-az__letter:hover:not(:disabled) { border-color: var(--nordic-dark); }
.nordic-az__letter.is-active { border-color: var(--saltech-red); background: var(--saltech-red); color: #fff; }
.nordic-az__letter:disabled { border-style: dashed; background: transparent; color: #8a8a8a; cursor: default; }
.nordic-az__list { padding: 1.1rem 1.25rem; border: 1px solid var(--saltech-line); border-radius: var(--saltech-radius); background: #fff; }
.nordic-az__count { margin: 0 0 .6rem; font-family: var(--nordic-mono); font-size: .75rem; letter-spacing: .06em; color: var(--nordic-text-3); }
.nordic-az__list ul { columns: 4 220px; column-gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.nordic-az__list li { break-inside: avoid; padding: .2rem 0; font-size: .86rem; }
.nordic-az__list a { color: var(--nordic-dark); text-decoration: none; }
.nordic-az__list a:hover { color: var(--saltech-red-dark); text-decoration: underline; }

/* ---------- After the sale ---------- */
.nordic-service { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); border-top: 1px solid var(--nordic-dark); }
.nordic-service__intro { padding: 1.75rem 1.75rem 1.75rem 0; }
.nordic-service__intro h2 { margin: .75rem 0 0; font-size: 1.8rem; line-height: 1.15; }
.nordic-service__item { padding: 1.75rem; border-left: 1px solid var(--saltech-line); }
.nordic-service__item .nordic-mono { font-size: .75rem; color: var(--nordic-text-3); }
.nordic-service__item h3 { margin: .5rem 0 .4rem; font-size: 1.15rem; }
.nordic-service__item p { margin: 0; font-size: .88rem; color: var(--nordic-text-2); }
.nordic-cta {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.25rem;
  margin-top: 1.5rem; padding: 2rem 2.25rem; border: 1px solid var(--saltech-line); border-radius: var(--saltech-radius);
  background: #fff; box-shadow: inset 4px 0 0 var(--saltech-red);
}
.nordic-cta h3 { margin: 0; font-size: 1.5rem; }
.nordic-cta p { margin: .3rem 0 0; color: var(--nordic-text-2); }
.nordic-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.nordic-cta__actions .btn { min-height: 50px; display: inline-flex; align-items: center; padding-inline: 1.4rem; font-weight: 600; border-radius: 6px; }

/* ---------- Find the right equipment (above the footer) ---------- */
.saltech-solutions.nordic-equipment {
  max-width: none; margin: clamp(3rem, 6vw, 4.5rem) 0 0; padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2rem, 4vw, 3rem);
  border-top: 1px solid var(--saltech-line); background: #fff;
}
.nordic-equipment .saltech-solutions__eyebrow { color: var(--saltech-red); }
.nordic-equipment .saltech-solution-card { color: var(--nordic-dark); text-decoration: none; border-color: var(--saltech-line); }
.nordic-equipment .saltech-solution-card:hover { border-color: var(--nordic-dark); transform: none; box-shadow: none; }
.nordic-equipment .saltech-solution-card h3 { font-size: 1.02rem; font-weight: 600; }
.nordic-equipment .saltech-solution-card p { color: var(--nordic-text-2); }

/* ---------- Footer ---------- */
#footer { margin-top: 0; border-top: 0; background: var(--nordic-dark); }

/* Group shop logos, in black and white, above the dark footer */
.nordic-brands { padding: 2rem 0; border-top: 1px solid var(--saltech-line); border-bottom: 4px solid var(--saltech-red); background: #fff; }
.nordic-brands__list { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2.5rem; margin: 0; padding: 0; list-style: none; }
.nordic-brands__item img { display: block; width: auto; height: 44px; filter: grayscale(1); opacity: .75; transition: opacity .2s ease; }
.nordic-brands__item a:hover img,
.nordic-brands__item a:focus-visible img { opacity: 1; }
@media (max-width: 991px) {
  .nordic-brands__list { justify-content: center; }
  .nordic-brands__item img { height: 34px; }
}
#footer .saltech-footer-intro { display: none; } /* intro block retired in Nordic */

/* Newsletter strip */
#footer .nordic-footer-before { background: var(--nordic-dark-2); border-bottom: 1px solid #2c2c2c; }
.nordic-newsletter { background: transparent !important; padding: 2.5rem 0; }
.nordic-newsletter__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3.5rem; }
.nordic-newsletter__intro { display: flex; gap: 1.1rem; align-items: flex-start; flex: 1 1 380px; min-width: 0; }
.nordic-newsletter__icon { flex: none; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--saltech-red); }
.nordic-newsletter__title { margin: 0 0 .35rem; color: #fff; font-size: 1.3rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
.nordic-newsletter__lead { margin: 0; max-width: 420px; color: #bdbdbd; font-size: .88rem; }
.nordic-newsletter__form { flex: 1 1 460px; max-width: 600px; display: flex; flex-direction: column; gap: .75rem; }
.nordic-newsletter__row { display: flex; flex-wrap: wrap; gap: .6rem; }
.nordic-newsletter__row .form-control {
  flex: 1 1 260px; min-width: 0; height: 50px; padding: 0 1rem; border: 1px solid #3a3a3a; border-radius: 6px;
  background: #111; color: #fff; font-size: .95rem;
}
.nordic-newsletter__row .form-control::placeholder { color: #8f8f8f; }
.nordic-newsletter__row .form-control:focus { border-color: var(--saltech-red); box-shadow: 0 0 0 3px rgba(226,0,18,.25); }
.nordic-newsletter__row .btn { flex: none; height: 50px; padding: 0 1.6rem; border-radius: 6px; font-weight: 600; }
.nordic-newsletter__consent, .nordic-newsletter__consent label, .nordic-newsletter__consent p { color: #cfcfcf !important; font-size: .82rem; line-height: 1.45; }
.nordic-newsletter__consent input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--saltech-red); }
.nordic-newsletter__consent .form-check { display: flex; align-items: flex-start; gap: .65rem; min-height: 0; margin: 0; padding: 0; }
.nordic-newsletter__consent .form-check-input { flex: none; float: none; margin: .1rem 0 0; border-color: #bdbdbd; background-color: #fff; }
.nordic-newsletter__consent .form-check-label { color: #e6e6e6 !important; }
/* psgdpr disables Subscribe until the box is ticked; keep the button at full colour as in the design. */
.nordic-newsletter__row .btn:disabled { opacity: 1; cursor: not-allowed; }
.nordic-newsletter__conditions { margin: 0; color: #9a9a9a; font-size: .75rem; }
#footer .nordic-newsletter__conditions a { color: #e6e6e6; text-decoration: underline; text-underline-offset: 2px; }
#footer .nordic-newsletter__conditions a:hover { color: #fff; }
/* The social icon row (ps_socialfollow on displayFooterBefore) is not part of the footer design. */
#footer .nordic-footer-before .ps-socialfollow { display: none; }

/* Columns */
#footer .footer__main { padding-top: 3.5rem; background: var(--nordic-dark); }
#footer .footer-block__title,
#footer .block-title { color: #fff; font-size: .95rem; font-weight: 600; letter-spacing: 0; margin-bottom: 1rem; }
#footer .footer-block__list li,
#footer .footer-block__list { font-size: .92rem; }
#footer .footer-block__list a,
#footer .ps-contactinfo a,
#footer .footer__main a { color: #cfcfcf; }
#footer .footer__main a:hover { color: #fff; }
#footer .footer-block__list li { margin-bottom: .2rem; }
/* The back-office logo is a JPG on white, so it sits on a white tile in the dark footer. */
/* The tile is on the wrapper: the logo link has Bootstrap's layered `d-block !important`. */
#footer .ps-contactinfo__logo { display: table; margin-bottom: 1rem; padding: .3rem .5rem; border-radius: 5px; background: #fff; }
#footer .ps-contactinfo__logo .logo { display: block; width: auto; max-height: 28px; }
#footer .ps-contactinfo__social { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
#footer .ps-contactinfo__social a {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border: 1px solid #3a3a3a; border-radius: 50%; color: #fff; transition: background-color .2s ease, border-color .2s ease;
}
#footer .ps-contactinfo__social a:hover,
#footer .ps-contactinfo__social a:focus-visible { border-color: var(--saltech-red); background: var(--saltech-red); color: #fff; text-decoration: none; }
#footer .ps-contactinfo__infos { margin-bottom: .9rem; color: #cfcfcf; font-size: .9rem; line-height: 1.65; }

/* Legal / payments / copyright */
#footer .post-footer-container { border-top-color: #333; }
#footer .cms-line-footer a { color: #fff; font-size: .92rem; }
#footer .post-footer__notice { color: #a3a3a3; font-size: .85rem; }
#footer .payments { gap: .5rem; margin-top: .35rem; }
#footer .payments__badge {
  display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 30px;
  border-radius: 4px; background: #fff; line-height: 1;
}
#footer .payments__badge--visa span[aria-hidden] { color: #1a1f71; font-size: .8rem; font-style: italic; font-weight: 800; letter-spacing: .02em; }
#footer .payments__badge--paypal span[aria-hidden] { color: #253b80; font-size: .7rem; font-style: italic; font-weight: 700; }
#footer .payments__badge--mastercard svg { width: 30px; height: 20px; }
#footer .rights { border-top-color: #333; font-size: .82rem; font-weight: 600; }

/* ---------- Category description (back-office HTML) ---------- */
/* Uniform text: the descriptions carry inline sizes (11pt, 18px) and colours. */
.category__description { color: var(--nordic-text-2); font-size: .98rem; line-height: 1.7; }
.category__description [style*="font-size"] { font-size: inherit !important; }
.category__description p { line-height: 1.7 !important; }

/* Text + video tables become a card: text left, video right, support bar below. */
.category__description table:has(video, iframe) {
  display: block; width: 100% !important; max-width: none !important; margin: 0 0 1.5rem !important; overflow: hidden;
  border: 1px solid var(--saltech-line) !important; border-radius: var(--saltech-radius); background: #fff;
}
.category__description table:has(video, iframe) tbody { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.category__description table:has(video, iframe) tr { display: contents; }
.category__description table:has(video, iframe) td {
  display: block; width: auto !important; padding: clamp(1.25rem, 2.5vw, 2rem) !important; border: 0 !important; background: none !important;
}
.category__description table:has(video, iframe) td:has(video, iframe) { display: flex; padding: 0 !important; background: #000 !important; }
.category__description table:has(video, iframe) td:not(:has(video, iframe)):not([colspan]) { align-self: center; }
.category__description table:has(video, iframe) p { max-width: 62ch !important; margin: 0 !important; color: var(--nordic-text-2) !important; }
.category__description table video,
.category__description table iframe {
  display: block; width: 100% !important; max-width: none !important; height: 100% !important; min-height: 260px; aspect-ratio: 16 / 9; object-fit: cover;
}
.category__description table:has(video, iframe) td[colspan] { grid-column: 1 / -1; padding: 0 clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 2.5vw, 2rem) !important; }

/* Video cell with nothing to play: logo cube placeholder (nordic.js) */
.category__description td.is-empty-media { background: #f3f3f1 !important; }
.category__description td.is-empty-media > :not(.nordic-media-placeholder) { display: none !important; }
.nordic-media-placeholder {
  display: flex; flex: 1; align-items: center; justify-content: center; width: 100%;
  min-height: 260px; aspect-ratio: 16 / 9; background: #f3f3f1;
}
.nordic-media-placeholder svg { width: clamp(64px, 18%, 104px); height: auto; opacity: .9; }

/* Support bar (built by nordic.js from the description's "Call for support" row) */
.nordic-support {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem;
  margin-top: clamp(1.25rem, 2.5vw, 2rem); padding: 1rem 1.25rem; border-radius: var(--saltech-radius); background: #f3f3f1;
}
.category__description .nordic-support .nordic-support__label,
.nordic-support__label { margin: 0 !important; color: var(--nordic-dark) !important; font-size: 1rem; font-weight: 600; }
.nordic-support__phone {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 46px; padding: 0 1.25rem;
  border: 1px solid #d6d6d2; border-radius: 999px; background: #fff;
  color: var(--nordic-dark); font-size: .95rem; font-weight: 500; text-decoration: none; white-space: nowrap;
}
.nordic-support__phone:hover,
.nordic-support__phone:focus-visible { border-color: var(--saltech-red); color: var(--saltech-red-dark); }
.nordic-support__phone svg { flex: none; color: var(--saltech-red); }

@media (max-width: 767px) {
  .category__description table:has(video, iframe) tbody { grid-template-columns: 1fr; }
  .category__description table:has(video, iframe) td[colspan] { padding-top: 0 !important; }
  .category__description table video,
  .category__description table iframe { height: auto !important; min-height: 0; }
}

/* ---------- Buttons ---------- */
/* Bootstrap's outline-primary is compiled blue; match the dark outline style used across the site. */
.btn-outline-primary {
  --bs-btn-color: var(--nordic-dark);
  --bs-btn-border-color: #cfcfca;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--nordic-dark);
  --bs-btn-hover-border-color: var(--nordic-dark);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--nordic-dark);
  --bs-btn-active-border-color: var(--nordic-dark);
  --bs-btn-disabled-color: #8a8a85;
  --bs-btn-disabled-border-color: #dcdcd8;
  --bs-btn-focus-shadow-rgb: 20, 20, 20;
}

/* ---------- Checkout ---------- */
/* Selection states use a calm green (reads as "selected / secure"); red stays for the brand accents. */
body#checkout { --nordic-select: #1f7a4d; --nordic-select-tint: #f3faf6; --nordic-select-ring: rgba(31, 122, 77, .16); }
/* Steps: done = green with a tick, current = green with a soft halo, upcoming = grey outline. */
/* No breadcrumb on checkout: the steps bar sits directly under the menu. */
body#checkout #wrapper { padding-top: 0; }
body#checkout .checkout-steps { margin-block-end: 2rem; padding-block: 1.75rem 1.5rem; border-bottom: 1px solid var(--saltech-line); background: #fff; }
body#checkout .checkout-steps__step::before,
body#checkout .checkout-steps__step::after { top: 15px; height: 2px; background: #dcdcd8; }
body#checkout .checkout-steps__number {
  width: 32px; height: 32px; margin-block-end: .6rem;
  border: 2px solid #d0d0cc; background: #fff; color: #8a8a85; font-size: .85rem; font-weight: 600;
}
body#checkout .checkout-steps__btn { padding: .25rem .5rem; color: #6b6b66; font-size: .88rem; font-weight: 500; text-decoration: none; }
body#checkout .checkout-steps__step--current .checkout-steps__number { border-color: var(--nordic-select); background: var(--nordic-select); color: #fff; box-shadow: 0 0 0 4px var(--nordic-select-ring); }
body#checkout .checkout-steps__step--current .checkout-steps__btn { color: var(--nordic-dark); font-weight: 600; }
body#checkout .checkout-steps__step--current::before,
body#checkout .checkout-steps__step--success::before,
body#checkout .checkout-steps__step--success::after { background: var(--nordic-select); }
body#checkout .checkout-steps__step--success .checkout-steps__number {
  border-color: var(--nordic-select); color: transparent; font-size: 0;
  background: var(--nordic-select) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat;
}
body#checkout .checkout-steps__step--success .checkout-steps__btn { color: var(--nordic-dark); }
body#checkout .checkout-steps__btn:not(:disabled):hover { color: var(--nordic-select); }
body#checkout .checkout-steps__btn:disabled { opacity: 1; }
body#checkout .checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .checkout-steps__btn:disabled { color: #8a8a85; }

/* Phone stepper: the ring's colour comes from a layered text-success utility, so set the stroke directly. */
body#checkout .checkout-steps__mobile .progress-ring__circle { stroke: var(--nordic-select); }
body#checkout .checkout-steps__mobile .progress-ring__background-circle { stroke: #e6e6e3; }
body#checkout .checkout-steps__mobile .progress-ring__text { fill: var(--nordic-dark); font-size: .9rem; font-weight: 600; }

/* Step content in a white card */
body#checkout .checkout-grid__content > .tab-content {
  padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--saltech-line); border-radius: 12px; background: #fff;
}
body#checkout .step__title .page-title-section { margin: 0; font-size: clamp(1.4rem, 2.2vw, 1.75rem); }
body#checkout .step__title hr { margin: 1rem 0 1.5rem; border-color: var(--saltech-line); opacity: 1; }
body#checkout .nav-underline .nav-link { color: #6b6b66; font-weight: 600; }
body#checkout .nav-underline .nav-link.active { border-bottom-color: var(--saltech-red); color: var(--nordic-dark); }

/* Fields */
body#checkout .form-label { margin-bottom: .35rem; color: var(--nordic-dark); font-size: .86rem; font-weight: 600; }
body#checkout .form-control,
body#checkout .form-select {
  min-height: 46px; border: 1px solid #d6d6d2; border-radius: 6px; background-color: #fff; color: var(--nordic-dark); font-size: .95rem;
}
body#checkout .form-control:focus,
body#checkout .form-select:focus { border-color: var(--nordic-select); box-shadow: 0 0 0 3px var(--nordic-select-ring); }
body#checkout .form-text { color: var(--nordic-text-3); font-size: .76rem; }
body#checkout .form-check-input { width: 18px; height: 18px; border-color: #b5b5b0; }
body#checkout .form-check-input:checked { border-color: var(--nordic-select); background-color: var(--nordic-select); }
body#checkout .form-check-input:focus { border-color: var(--nordic-select); box-shadow: 0 0 0 3px var(--nordic-select-ring); }
body#checkout .form-check-label { color: var(--nordic-dark); font-size: .9rem; }
body#checkout .form-check-label a,
body#checkout .js-terms a { color: var(--nordic-dark); text-decoration: underline; text-underline-offset: 2px; }

/* Payment and delivery options: one bordered row each, selected row in red */
body#checkout .payment-options__list,
body#checkout .delivery-options__list { display: grid; gap: .6rem; }
body#checkout .payment-option,
body#checkout .delivery-option__item {
  padding: 0; border: 1px solid #dcdcd8; border-radius: 10px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease;
}
body#checkout .payment-option:hover,
body#checkout .delivery-option__item:hover { border-color: #b5b5b0; }
body#checkout .payment-option:has(.payment-option__input:checked),
body#checkout .delivery-option__item:has(.form-check-input:checked) {
  border-color: var(--nordic-select); box-shadow: inset 0 0 0 1px var(--nordic-select); background: var(--nordic-select-tint);
}
body#checkout .payment-option__form-check { display: flex; align-items: center; gap: .75rem; min-height: 56px; margin: 0; padding: .7rem 1rem; }
body#checkout .payment-option__input { flex: none; float: none; margin: 0; }
body#checkout .payment-option__label {
  display: flex; flex: 1; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; color: var(--nordic-dark); font-size: .95rem; font-weight: 500; cursor: pointer;
}
body#checkout .payment-option__label img { order: 2; width: auto; max-height: 28px; }
body#checkout .payment-option__additional-information,
body#checkout .payment-option .js-payment-option-form > *:not(:empty) { margin: 0 1rem; }
body#checkout .payment-option__additional-information { padding: .9rem 0 1rem; border-top: 1px solid var(--saltech-line); color: var(--nordic-text-2); font-size: .88rem; }
body#checkout .payment-option .js-payment-option-form:not(:empty) { padding-bottom: .25rem; }
body#checkout .delivery-option__item { overflow: hidden; }
body#checkout .delivery-option__label { gap: .5rem 1rem; padding: .9rem 1rem; }
body#checkout .delivery-option__carrier-name { color: var(--nordic-dark); }
body#checkout .delivery-option__content { color: var(--nordic-text-2); font-size: .86rem; }
body#checkout .delivery-option__price { color: var(--nordic-dark); font-weight: 600; }

/* Terms */
body#checkout #conditions-to-approve { margin-top: 1.25rem !important; padding: .9rem 1rem; border-radius: 10px; background: #f6f6f4; }
body#checkout #conditions-to-approve .form-check { margin: 0 !important; }

/* Addresses */
body#checkout .address-card { border-color: #dcdcd8; border-radius: 10px; background: #fff; }
body#checkout .address-card--radio.selected { border-color: var(--nordic-select); box-shadow: inset 0 0 0 1px var(--nordic-select); background: var(--nordic-select-tint); }
body#checkout .address-card__alias { font-size: 1rem; }

/* Step buttons */
body#checkout .buttons-wrapper { align-items: center; gap: .75rem; margin-top: 1.5rem !important; padding-top: 1.25rem; border-top: 1px solid var(--saltech-line); }
body#checkout .buttons-wrapper .btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 48px; padding: 0 1.4rem; border-radius: 6px; font-weight: 600; }
body#checkout .buttons-wrapper .btn .material-icons { font-size: 1.15rem; }
@media (max-width: 767px) {
  body#checkout .buttons-wrapper > *,
  body#checkout .buttons-wrapper .btn,
  body#checkout #payment-confirmation .btn { width: 100%; }
}
body#checkout .buttons-wrapper .btn.disabled,
body#checkout .buttons-wrapper .btn:disabled { opacity: .45; }

/* Order summary */
body#checkout .checkout__summary-accordion { padding: 1.25rem; border: 1px solid var(--saltech-line); border-radius: 12px; background: #fff; }
body#checkout .checkout__summary-accordion-item { border: 0; background: transparent; }
body#checkout .checkout__summary-accordion-header .accordion-button { padding: 0 0 1rem; background: transparent; box-shadow: none; color: var(--nordic-dark); font-weight: 600; }
body#checkout .cart-summary__products-number { margin: 0 !important; color: var(--nordic-dark); font-size: .95rem; font-weight: 600; }
body#checkout .cart-summary hr { margin: .75rem 0; border-color: var(--saltech-line); opacity: 1; }
body#checkout .cart-summary__products-accordion .accordion-button {
  padding: .4rem 0; background: transparent; box-shadow: none; color: var(--nordic-text-2); font-size: .86rem; font-weight: 600;
}
body#checkout .cart-summary-product { gap: .75rem; }
body#checkout .cart-summary-product__img { width: 56px; height: 56px; border: 1px solid var(--saltech-line); border-radius: 6px; object-fit: contain; background: #fff; }
body#checkout .cart-summary-product__link { color: var(--nordic-dark); font-size: .86rem; font-weight: 600; text-decoration: none; }
body#checkout .cart-summary-product__attributes,
body#checkout .cart-summary-product__quantity { color: var(--nordic-text-3); font-size: .78rem; }
body#checkout .cart-summary__subtotals { padding-top: .25rem; border: 0; }
body#checkout .cart-summary__line { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; font-size: .9rem; }
body#checkout .cart-summary__label { color: var(--nordic-text-2); }
body#checkout .cart-summary__value { color: var(--nordic-dark); font-weight: 600; white-space: nowrap; }
body#checkout .cart-summary__total { margin-top: .5rem; padding-top: .6rem; border-top: 1px solid var(--saltech-line); border-bottom: 0; }
body#checkout .cart-summary > :last-child,
body#checkout .js-cart > :last-child { border-bottom: 0; }
body#checkout .cart-summary__line--bold .cart-summary__label { color: var(--nordic-dark); font-weight: 600; }
body#checkout .cart-summary__total .cart-summary__line:last-child .cart-summary__value { font-size: 1.15rem; }
body#checkout .blockreassurance--checkout { margin-top: 1rem; padding: 1rem 1.25rem; border: 1px solid var(--saltech-line); border-radius: 12px; background: #fff; }

/* ---------- Page spacing ---------- */
/* Homepage: the last section runs straight into the shop logos above the footer. */
body#index #wrapper,
body#index #center-column { padding-bottom: 0; }
/* Pages with a breadcrumb: the trail sits directly under the menu. */
#wrapper:has(> .breadcrumb__wrapper) { padding-top: 0; }

/* ---------- Sidebar (category tree + filters) ---------- */
#left-column .left-block {
  margin: 0 0 1.25rem; padding: 1.1rem 1rem 1rem;
  border: 1px solid var(--saltech-line); border-radius: var(--saltech-radius); background: #fff;
}
#left-column .left-block__eyebrow {
  display: flex; align-items: center; gap: .5rem; margin: 0 0 .35rem;
  color: var(--nordic-text-3); font-family: var(--nordic-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
}
#left-column .left-block__eyebrow::before { content: ""; width: 16px; height: 2px; background: var(--saltech-red); }
#left-column .left-block__title {
  margin: 0 0 .65rem; padding-bottom: .75rem; border-bottom: 1px solid var(--saltech-line);
  font-size: 1.05rem; font-weight: 600; line-height: 1.3;
}
#left-column .left-block__title-link { color: var(--nordic-dark); text-decoration: none; }
#left-column .left-block__title-link:hover { color: var(--saltech-red-dark); }

/* Category list: one row per category, chevron on hover, current category marked in red */
#left-column .category-tree__list { row-gap: 2px; margin: 0; padding: 0; list-style: none; }
#left-column .category-tree__item-header { align-items: center; padding: 0; }
#left-column .category-tree__item-link {
  display: flex; align-items: center; gap: .5rem; padding: .5rem .65rem; border-radius: 6px;
  color: #3a3a3a; font-size: .86rem; font-weight: 500 !important; line-height: 1.35; text-decoration: none;
}
#left-column .category-tree__item-link::after {
  content: "›"; margin-left: auto; color: #b5b5b0; font-size: 1.1rem; line-height: 1; transition: transform .15s ease, color .15s ease;
}
#left-column .category-tree__item-header.split .category-tree__item-link::after { content: none; }
#left-column .category-tree__item-link:hover { background: var(--nordic-ground); color: var(--nordic-dark); }
#left-column .category-tree__item-link:hover::after { color: var(--saltech-red); transform: translateX(2px); }
#left-column .category-tree__item.is-current > .category-tree__item-header .category-tree__item-link {
  background: #fff1f1; color: var(--saltech-red-dark); font-weight: 600 !important; box-shadow: inset 3px 0 0 var(--saltech-red);
}
#left-column .left-block__title.is-current .left-block__title-link { color: var(--saltech-red-dark); }
#left-column .category-tree__item-header.split .accordion-button {
  flex: none; width: 32px; height: 32px; margin: 0; padding: 0; justify-content: center; border-radius: 6px; box-shadow: none;
}
#left-column .category-tree__item-header.split .accordion-button::after { margin: 0; }
#left-column .category-tree .accordion-body { padding: 0; }
#left-column .category-tree__list[data-depth="1"],
#left-column .category-tree__list[data-depth="2"] { margin: 2px 0 4px .65rem; padding-left: .5rem; border-left: 1px solid var(--saltech-line); }
#left-column .category-tree__list[data-depth="1"] .category-tree__item-link,
#left-column .category-tree__list[data-depth="2"] .category-tree__item-link { padding-block: .4rem; font-size: .82rem; }
.nordic-fold__toggle {
  display: block; width: 100%; margin-top: .5rem; padding: .55rem .65rem;
  border: 1px dashed #d6d6d2; border-radius: 6px; background: transparent;
  color: var(--nordic-dark); font-size: .82rem; font-weight: 600; text-align: left; cursor: pointer;
}
.nordic-fold__toggle:hover { border-color: var(--nordic-dark); }
.nordic-fold__toggle:focus-visible { outline: 2px solid var(--saltech-red); outline-offset: 2px; }

/* Filters: accordion per facet, checkbox rows with a result count pill */
#left-column .search-filters .accordion-item { border: 0; border-bottom: 1px solid var(--saltech-line); background: transparent; }
#left-column .search-filters .accordion-item:last-child { border-bottom: 0; }
#left-column .search-filters .accordion-button {
  padding: .8rem .1rem; background: transparent; box-shadow: none;
  color: var(--nordic-dark); font-size: .9rem; font-weight: 600;
}
#left-column .search-filters .accordion-button:not(.collapsed) { color: var(--saltech-red-dark); }
#left-column .search-filters .accordion-body { display: flex; flex-direction: column; gap: .1rem; margin: 0; padding: 0 0 .8rem; list-style: none; }
/* Long facets (e.g. 25 categories) scroll inside their section instead of stretching the sidebar. */
#left-column .search-filters ul.accordion-body { max-height: 330px; overflow-y: auto; scrollbar-width: thin; }
#left-column .search-filters__item { padding: .25rem 0; }
#left-column .search-filters__form-check { display: flex; align-items: center; gap: .6rem; min-height: 0; margin: 0; padding: 0; }
#left-column .search-filters__form-check .form-check-input { flex: none; float: none; width: 17px; height: 17px; margin: 0; border-color: #bdbdb8; }
#left-column .search-filters__form-check .form-check-input:checked { border-color: var(--saltech-red); background-color: var(--saltech-red); }
#left-column .search-filters__form-label { flex: 1; min-width: 0; }
#left-column .search-filters__link { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: #3a3a3a; font-size: .86rem; text-decoration: none; }
#left-column .search-filters__link:hover { color: var(--nordic-dark); }
#left-column .search-filters__magnitude {
  flex: none; min-width: 28px; padding: .1rem .45rem; border-radius: 999px;
  background: var(--nordic-ground); color: var(--nordic-text-3); font-size: .72rem; text-align: center;
}

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
  .nordic-promises__grid { grid-template-columns: 1fr; }
  .nordic-promises__item + .nordic-promises__item { border-left: 0; border-top: 1px solid var(--saltech-line); }
}
@media (max-width: 767px) {
  .nordic-service__intro { padding-right: 0; }
  .nordic-service__item { border-left: 0; border-top: 1px solid var(--saltech-line); padding-inline: 0; }
  .nordic-cta { padding: 1.5rem; }
  .nordic-tabs { width: 100%; overflow-x: auto; }
  .nordic-home .ps-imageslider .carousel-control-prev,
  .nordic-home .ps-imageslider .carousel-control-next { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nordic-home .ps-imageslider .carousel-item { transition: none; }
}
