/*
Theme Name: NerdWare Shop
Theme URI: https://nerd-ware.com
Author: NerdWare
Description: NerdWare's own shop theme — Pokémon singles, graded slabs and sealed. Front page in the style of a big UK card retailer; shop and product pages laid out like eBay: filters on the left, a clear list, and one big button to buy. No paid theme or page builder needed.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: nerdware-shop
*/

/* ============================================================
   Colours & basics — NerdWare brand: aqua, deep navy, white
   ============================================================ */
:root {
  --nw-navy: #0b2a5b;
  --nw-navy-2: #123d80;
  --nw-blue: #1d74d0;
  --nw-blue-dark: #155aa6;
  --nw-aqua: #3cc8ec;
  --nw-aqua-soft: #d8f4fc;
  --nw-ink: #0a1f3f;
  --nw-muted: #5b6b85;
  --nw-line: #dbe5f0;
  --nw-bg: #f3f8fc;
  --nw-white: #ffffff;
  --nw-yellow: #ffd23f;
  --nw-red: #d93f45;
  --nw-green: #16924e;
  --nw-radius: 14px;
  --nw-shadow: 0 4px 18px rgba(11, 42, 91, 0.10);
  --nw-font: "Nunito", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --nw-wrap: 1320px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--nw-font);
  font-size: 16px;
  line-height: 1.5;
  color: var(--nw-ink);
  background: var(--nw-bg);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--nw-blue); text-decoration: none; }
a:hover { color: var(--nw-blue-dark); text-decoration: underline; }
h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 .5em; font-weight: 900; color: var(--nw-navy); }
h1 { font-size: 2rem; }
h2 { font-size: 1.6rem; }
button, input, select, textarea { font: inherit; }
.nw-wrap { max-width: var(--nw-wrap); margin: 0 auto; padding: 0 20px; }
.screen-reader-text { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* Buttons */
.nw-btn, .button, button.button, a.button, input[type="submit"].button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wc-block-components-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 22px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--nw-blue); color: #fff; font-weight: 800; line-height: 1.1;
  text-decoration: none; transition: background .15s, transform .05s;
}
.nw-btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover {
  background: var(--nw-blue-dark); color: #fff; text-decoration: none;
}
.nw-btn:active { transform: translateY(1px); }
.nw-btn-navy { background: var(--nw-navy); }
.nw-btn-navy:hover { background: var(--nw-navy-2); }
.nw-btn-aqua { background: var(--nw-aqua); color: var(--nw-navy); }
.nw-btn-aqua:hover { background: #22b6dd; color: var(--nw-navy); }
.nw-btn-ghost { background: transparent; color: var(--nw-navy); box-shadow: inset 0 0 0 2px var(--nw-navy); }
.nw-btn-ghost:hover { background: var(--nw-navy); color: #fff; }
.nw-btn-block { width: 100%; }
.nw-btn-lg { padding: 16px 28px; font-size: 1.1rem; }
.button:disabled, .button.disabled, .nw-btn:disabled { opacity: .45; cursor: not-allowed; }

/* ============================================================
   Top bar + header
   ============================================================ */
.nw-topbar { background: var(--nw-navy); color: #cfe3ff; font-size: .85rem; }
.nw-topbar .nw-wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; }
.nw-topbar a { color: #fff; font-weight: 700; }
.nw-topbar-links { display: flex; gap: 18px; }

.nw-header { background: linear-gradient(90deg, var(--nw-navy-2), var(--nw-blue)); position: sticky; top: 0; z-index: 50; box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.admin-bar .nw-header { top: 32px; }
.nw-header .nw-wrap { display: flex; align-items: center; gap: 20px; min-height: 76px; }
.nw-logo { display: flex; align-items: center; flex-shrink: 0; }
.nw-logo img { max-height: 56px; width: auto; }
.nw-logo-text {
  font-size: 2rem; font-weight: 900; letter-spacing: -.5px; color: #fff; line-height: 1;
  text-shadow: 0 3px 0 var(--nw-navy);
}
.nw-logo-text span { color: var(--nw-aqua); }
.nw-logo:hover { text-decoration: none; }

.nw-search { flex: 1; display: flex; background: #fff; border-radius: 999px; overflow: hidden; box-shadow: 0 2px 0 rgba(0,0,0,.12); max-width: 760px; }
.nw-search select {
  border: 0; background: var(--nw-aqua); color: var(--nw-navy); font-weight: 800;
  padding: 0 14px; max-width: 170px; cursor: pointer;
}
.nw-search input[type="search"] { flex: 1; border: 0; padding: 14px 16px; min-width: 0; outline: none; }
.nw-search button { border: 0; background: var(--nw-yellow); color: var(--nw-navy); padding: 0 22px; font-weight: 900; cursor: pointer; }
.nw-search button:hover { background: #ffc400; }

.nw-header-icons { display: flex; gap: 6px; margin-left: auto; }
.nw-icon-link {
  display: flex; flex-direction: column; align-items: center; gap: 2px; color: #fff; font-size: .75rem;
  font-weight: 800; padding: 6px 10px; border-radius: 12px; position: relative;
}
.nw-icon-link:hover { background: rgba(255,255,255,.14); color: #fff; text-decoration: none; }
.nw-icon-link svg { width: 26px; height: 26px; fill: currentColor; }
.nw-basket-count {
  position: absolute; top: 0; right: 4px; background: var(--nw-yellow); color: var(--nw-navy);
  border-radius: 999px; min-width: 20px; height: 20px; font-size: .72rem; display: flex;
  align-items: center; justify-content: center; padding: 0 5px; font-weight: 900;
}
.nw-menu-toggle { display: none; background: transparent; border: 0; color: #fff; padding: 6px; cursor: pointer; }
.nw-menu-toggle svg { width: 30px; height: 30px; fill: currentColor; }

/* Main nav + mega menus */
.nw-nav { background: var(--nw-aqua); }
.nw-nav > .nw-wrap > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.nw-nav li { position: relative; }
.nw-nav > .nw-wrap > ul > li > a {
  display: block; padding: 13px 16px; color: var(--nw-navy); font-weight: 900; font-size: .95rem;
}
.nw-nav > .nw-wrap > ul > li > a:hover, .nw-nav > .nw-wrap > ul > li.is-open > a { background: rgba(255,255,255,.4); text-decoration: none; }
.nw-nav .nw-has-mega > a::after { content: " ▾"; font-size: .8em; }
.nw-mega {
  display: none; position: absolute; left: 0; top: 100%; background: #fff; min-width: 280px;
  box-shadow: var(--nw-shadow); border-radius: 0 0 var(--nw-radius) var(--nw-radius); padding: 18px 20px; z-index: 60;
}
.nw-mega-wide { width: min(900px, 90vw); }
.nw-nav li:hover > .nw-mega, .nw-nav li.is-open > .nw-mega { display: block; }
.nw-mega h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--nw-muted); margin: 0 0 8px; }
.nw-mega h4 a { color: var(--nw-navy); font-weight: 900; }
.nw-mega-cols { display: flex; gap: 28px; flex-wrap: wrap; }
.nw-mega-col { flex: 1 1 200px; min-width: 0; }
.nw-mega ul { list-style: none; margin: 0; padding: 0; }
.nw-mega-cols:has(> .nw-mega-col:only-child) ul { columns: 3; column-gap: 24px; }
.nw-mega:not(.nw-mega-wide) ul { columns: 1 !important; }
.nw-mega li { break-inside: avoid; }
.nw-mega a { display: block; padding: 4px 0; color: var(--nw-ink); font-weight: 700; }
.nw-mega a:hover { color: var(--nw-blue); }
.nw-mega .nw-count { color: var(--nw-muted); font-weight: 600; font-size: .85em; }
.nw-mega-all { display: inline-block; margin-top: 12px; font-weight: 900; }

/* ============================================================
   Front page
   ============================================================ */
.nw-section { padding: 34px 0; }
.nw-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.nw-section-head h2 { margin: 0; }
.nw-section-head a { font-weight: 900; }

/* Hero */
.nw-hero { position: relative; margin-top: 20px; border-radius: 22px; overflow: hidden; box-shadow: var(--nw-shadow); background: var(--nw-aqua); }
.nw-hero-slide { display: none; position: relative; min-height: 380px; }
.nw-hero-slide.is-active { display: block; }
.nw-hero-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nw-hero-content {
  position: relative; z-index: 1; max-width: 560px; padding: 56px 48px; color: var(--nw-navy);
}
.nw-hero-slide.has-image .nw-hero-content {
  background: linear-gradient(90deg, rgba(255,255,255,.92), rgba(255,255,255,.75) 70%, rgba(255,255,255,0));
  min-height: 380px; max-width: 640px;
}
.nw-hero-content h2 { font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.05; margin-bottom: 14px; }
.nw-hero-content p { font-size: 1.15rem; font-weight: 700; margin: 0 0 22px; }
.nw-hero-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.nw-hero-default {
  background:
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.55) 0 60px, transparent 61px),
    radial-gradient(circle at 92% 70%, rgba(11,42,91,.18) 0 120px, transparent 121px),
    radial-gradient(circle at 70% 110%, rgba(255,255,255,.35) 0 160px, transparent 161px),
    linear-gradient(120deg, var(--nw-aqua), #7ddcf5);
}
.nw-hero-dots { position: absolute; bottom: 14px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; z-index: 2; }
.nw-hero-dots button { width: 34px; height: 8px; border-radius: 99px; border: 0; background: rgba(11,42,91,.25); cursor: pointer; }
.nw-hero-dots button.is-active { background: var(--nw-navy); }

/* Trust strip */
.nw-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 18px; }
.nw-trust-item { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: var(--nw-radius); padding: 14px 16px; box-shadow: 0 1px 0 var(--nw-line); }
.nw-trust-icon { width: 44px; height: 44px; border-radius: 50%; background: var(--nw-aqua-soft); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1.3rem; }
.nw-trust-item strong { display: block; color: var(--nw-navy); font-weight: 900; }
.nw-trust-item span { font-size: .85rem; color: var(--nw-muted); }

/* "Shop by" tiles */
.nw-tiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.nw-tile {
  display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: var(--nw-shadow); border: 3px solid transparent; transition: border-color .15s, transform .15s;
}
.nw-tile:hover { border-color: var(--nw-aqua); transform: translateY(-3px); text-decoration: none; }
.nw-tile-img { aspect-ratio: 4 / 3; background: var(--nw-aqua-soft); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.nw-tile-img img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.nw-tile-img .nw-tile-emoji { font-size: 3.2rem; }
.nw-tile-label { padding: 12px 14px; font-weight: 900; color: var(--nw-navy); font-size: 1.05rem; display: flex; justify-content: space-between; align-items: center; }
.nw-tile-label span { font-size: .8rem; color: var(--nw-muted); font-weight: 700; }

/* Set chips */
.nw-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.nw-chip { background: #fff; border: 2px solid var(--nw-line); border-radius: 999px; padding: 8px 16px; font-weight: 800; color: var(--nw-navy); }
.nw-chip:hover { border-color: var(--nw-aqua); background: var(--nw-aqua-soft); text-decoration: none; color: var(--nw-navy); }
.nw-chip span { color: var(--nw-muted); font-weight: 700; font-size: .85em; }

/* Rewards band */
.nw-rewards { background: var(--nw-navy); color: #fff; border-radius: 22px; padding: 34px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 28px; align-items: center; position: relative; overflow: hidden; }
.nw-rewards::after { content: ""; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: rgba(60,200,236,.18); }
.nw-rewards h2 { color: #fff; font-size: 2rem; }
.nw-rewards p { color: #cfe3ff; font-size: 1.05rem; margin: 0 0 18px; }
.nw-coins { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; position: relative; z-index: 1; }
.nw-coin { background: var(--nw-navy-2); border-radius: 18px; padding: 18px 12px; text-align: center; }
.nw-coin b { display: block; font-size: 1.6rem; color: var(--nw-yellow); font-weight: 900; }
.nw-coin span { font-size: .85rem; color: #cfe3ff; }

/* Visit us */
.nw-visit { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.nw-card { background: #fff; border-radius: 18px; padding: 24px; box-shadow: var(--nw-shadow); }
.nw-hours { width: 100%; border-collapse: collapse; }
.nw-hours td { padding: 6px 0; border-bottom: 1px solid var(--nw-line); }
.nw-hours td:last-child { text-align: right; font-weight: 800; }
.nw-hours tr.is-today td { color: var(--nw-blue); font-weight: 900; }
.nw-open-now { display: inline-block; margin-bottom: 12px; padding: 4px 12px; border-radius: 99px; font-weight: 900; font-size: .85rem; }
.nw-open-now.is-open { background: #dff6e8; color: var(--nw-green); }
.nw-open-now.is-closed { background: #fde7e8; color: var(--nw-red); }

/* ============================================================
   Product cards (grid) & rows (list) — shared
   ============================================================ */
.nw-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; list-style: none; margin: 0; padding: 0; }
.nw-pcard {
  background: #fff; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column;
  box-shadow: 0 1px 0 var(--nw-line), 0 2px 10px rgba(11,42,91,.06); border: 2px solid transparent; transition: border-color .15s;
}
.nw-pcard:hover { border-color: var(--nw-aqua); }
.nw-pcard-img { position: relative; aspect-ratio: 3 / 4; background: #fff; display: flex; align-items: center; justify-content: center; padding: 10px; }
.nw-pcard-img img { width: 100%; height: 100%; object-fit: contain; }
.nw-badge { position: absolute; top: 8px; left: 8px; padding: 3px 10px; border-radius: 99px; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .03em; }
.nw-badge-graded { background: var(--nw-yellow); color: var(--nw-navy); }
.nw-badge-sale { background: var(--nw-red); color: #fff; }
.nw-badge-new { background: var(--nw-aqua); color: var(--nw-navy); }
.nw-pcard-body { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.nw-pcard-title { font-weight: 800; color: var(--nw-ink); font-size: .92rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.nw-pcard-title:hover { color: var(--nw-blue); }
.nw-pcard-meta { font-size: .78rem; color: var(--nw-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nw-price { font-weight: 900; color: var(--nw-navy); font-size: 1.15rem; }
.nw-price del { color: var(--nw-muted); font-weight: 600; font-size: .8em; margin-right: 4px; }
.nw-price ins { text-decoration: none; color: var(--nw-red); }
.nw-stock { font-size: .78rem; font-weight: 800; }
.nw-stock.is-low { color: var(--nw-red); }
.nw-stock.is-in { color: var(--nw-green); }
.nw-stock.is-out { color: var(--nw-muted); }
.nw-pcard .nw-btn { margin-top: auto; padding: 10px 14px; font-size: .9rem; }
.nw-pcard .added_to_cart { display: block; text-align: center; font-weight: 800; font-size: .85rem; margin-top: 6px; }

/* List view (eBay style) */
.nw-results.is-list .nw-grid { grid-template-columns: 1fr; gap: 10px; }
.nw-results.is-list .nw-pcard { flex-direction: row; align-items: stretch; }
.nw-results.is-list .nw-pcard-img { width: 170px; flex-shrink: 0; aspect-ratio: auto; min-height: 170px; }
.nw-results.is-list .nw-pcard-body { flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 6px 24px; padding: 16px 18px; }
.nw-results.is-list .nw-pcard-main { flex: 1 1 320px; display: flex; flex-direction: column; gap: 6px; }
.nw-results.is-list .nw-pcard-title { font-size: 1.05rem; -webkit-line-clamp: 3; min-height: 0; }
.nw-results.is-list .nw-pcard-buy { width: 220px; display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.nw-results.is-list .nw-price { font-size: 1.5rem; }
.nw-results:not(.is-list) .nw-pcard-main, .nw-results:not(.is-list) .nw-pcard-buy { display: contents; }
.nw-grid-front .nw-pcard-main, .nw-grid-front .nw-pcard-buy { display: contents; }

/* ============================================================
   Shop / category pages — eBay-style
   ============================================================ */
.nw-breadcrumb { font-size: .85rem; color: var(--nw-muted); padding: 16px 0 6px; }
.nw-breadcrumb a { color: var(--nw-muted); }
.nw-shop-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 14px; flex-wrap: wrap; }
.nw-shop-head h1 { margin: 0; }
.nw-shop-head .nw-result-count { color: var(--nw-muted); font-weight: 700; }
.nw-shop-layout { display: grid; grid-template-columns: 270px 1fr; gap: 24px; align-items: start; padding-bottom: 40px; }

.nw-filters { background: #fff; border-radius: 16px; padding: 16px; box-shadow: 0 1px 0 var(--nw-line); position: sticky; top: 132px; max-height: calc(100vh - 150px); overflow: auto; }
.admin-bar .nw-filters { top: 164px; }
.nw-filter-group { border-bottom: 1px solid var(--nw-line); padding: 12px 0; }
.nw-filter-group:last-of-type { border-bottom: 0; }
.nw-filter-group h3 { font-size: .95rem; margin: 0 0 8px; color: var(--nw-navy); }
.nw-filter-group ul { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow: auto; }
.nw-filter-group li a { display: flex; justify-content: space-between; padding: 4px 6px; border-radius: 8px; color: var(--nw-ink); font-weight: 700; font-size: .92rem; }
.nw-filter-group li a:hover { background: var(--nw-aqua-soft); text-decoration: none; }
.nw-filter-group li.is-current > a { background: var(--nw-aqua-soft); color: var(--nw-navy); font-weight: 900; }
.nw-filter-group li a span { color: var(--nw-muted); font-weight: 600; font-size: .85em; }
.nw-filter-find { width: 100%; padding: 8px 12px; border: 2px solid var(--nw-line); border-radius: 10px; margin-bottom: 8px; }
.nw-check { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-weight: 700; cursor: pointer; }
.nw-check input { width: 18px; height: 18px; accent-color: var(--nw-blue); }
.nw-price-inputs { display: flex; gap: 8px; align-items: center; }
.nw-price-inputs input { width: 100%; padding: 8px 10px; border: 2px solid var(--nw-line); border-radius: 10px; }
.nw-filters .nw-btn { margin-top: 12px; }
.nw-filters-toggle { display: none; }

.nw-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: #fff; border-radius: 14px; padding: 10px 14px; margin-bottom: 12px; box-shadow: 0 1px 0 var(--nw-line); flex-wrap: wrap; }
.nw-active-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.nw-active-filters a { background: var(--nw-aqua-soft); color: var(--nw-navy); border-radius: 99px; padding: 4px 12px; font-weight: 800; font-size: .85rem; }
.nw-active-filters a::after { content: " ✕"; }
.nw-toolbar-right { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.nw-toolbar select { padding: 8px 12px; border: 2px solid var(--nw-line); border-radius: 10px; font-weight: 700; background: #fff; }
.nw-view-toggle { display: flex; border: 2px solid var(--nw-line); border-radius: 10px; overflow: hidden; }
.nw-view-toggle button { border: 0; background: #fff; padding: 7px 12px; cursor: pointer; font-weight: 800; color: var(--nw-muted); }
.nw-view-toggle button.is-active { background: var(--nw-navy); color: #fff; }

.nw-pagination { margin: 24px 0; }
.nw-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; justify-content: center; }
.nw-pagination a, .nw-pagination span { display: block; min-width: 42px; text-align: center; padding: 9px 12px; border-radius: 10px; background: #fff; font-weight: 800; box-shadow: 0 1px 0 var(--nw-line); }
.nw-pagination .current { background: var(--nw-navy); color: #fff; }
.nw-empty { background: #fff; border-radius: 16px; padding: 40px; text-align: center; }

/* ============================================================
   Single product — eBay-style
   ============================================================ */
.nw-product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 32px; align-items: start; padding-bottom: 20px; }
.nw-product-gallery { background: #fff; border-radius: 18px; padding: 18px; box-shadow: 0 1px 0 var(--nw-line); }
.nw-product-gallery .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.nw-product-gallery .woocommerce-product-gallery__image img { max-height: 620px; width: 100%; object-fit: contain; }
.nw-product-gallery .flex-control-thumbs { display: flex; gap: 8px; list-style: none; padding: 0; margin: 12px 0 0; }
.nw-product-gallery .flex-control-thumbs li { width: 72px; cursor: pointer; }
.nw-product-gallery .flex-control-thumbs img { border-radius: 8px; border: 2px solid var(--nw-line); opacity: .7; }
.nw-product-gallery .flex-control-thumbs img.flex-active { border-color: var(--nw-blue); opacity: 1; }
.nw-buybox { background: #fff; border-radius: 18px; padding: 24px; box-shadow: 0 1px 0 var(--nw-line); }
.nw-buybox h1 { font-size: 1.7rem; margin-bottom: 6px; }
.nw-buybox-sub { color: var(--nw-muted); font-weight: 700; margin-bottom: 14px; }
.nw-buybox .price { font-size: 2rem; font-weight: 900; color: var(--nw-navy); margin: 8px 0 12px; display: block; }
.nw-buybox .price del { font-size: .55em; color: var(--nw-muted); }
.nw-buybox .price ins { text-decoration: none; color: var(--nw-red); }
.nw-buybox .stock { font-weight: 900; margin: 6px 0; }
.nw-buybox .stock.in-stock { color: var(--nw-green); }
.nw-buybox .stock.out-of-stock { color: var(--nw-red); }
.nw-buybox form.cart { margin: 14px 0 0; }
.nw-buybox table.variations { width: 100%; border: 0; margin-bottom: 8px; }
.nw-buybox table.variations th, .nw-buybox table.variations td { display: block; text-align: left; padding: 0; border: 0; background: none; }
.nw-buybox table.variations label { font-weight: 900; color: var(--nw-navy); display: block; margin: 6px 0; }
.nw-buybox table.variations select.nw-hidden-select { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.nw-options { display: flex; flex-wrap: wrap; gap: 8px; }
.nw-option {
  border: 2px solid var(--nw-line); background: #fff; border-radius: 12px; padding: 9px 16px;
  font-weight: 800; color: var(--nw-ink); cursor: pointer;
}
.nw-option:hover { border-color: var(--nw-aqua); }
.nw-option.is-selected { border-color: var(--nw-blue); background: #e8f2fd; color: var(--nw-navy); }
.nw-option:disabled { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.nw-buybox .reset_variations { font-size: .85rem; font-weight: 800; }
.nw-buybox .single_variation_wrap .woocommerce-variation-price .price { font-size: 1.6rem; }
.nw-buybox .quantity { display: inline-flex; margin-right: 10px; }
.nw-buybox .quantity input.qty { width: 80px; padding: 12px; border: 2px solid var(--nw-line); border-radius: 12px; font-weight: 800; text-align: center; }
.nw-buybox .woocommerce-variation-add-to-cart, .nw-buybox form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.nw-buybox .single_add_to_cart_button { flex: 1; min-width: 180px; padding: 16px 22px; font-size: 1.05rem; }
.nw-promises { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--nw-line); display: grid; gap: 8px; }
.nw-promises li { display: flex; gap: 10px; align-items: center; font-weight: 700; color: var(--nw-ink); font-size: .95rem; }
.nw-promises li b { color: var(--nw-navy); }
.nw-specifics { background: #fff; border-radius: 18px; padding: 24px; box-shadow: 0 1px 0 var(--nw-line); margin: 20px 0; }
.nw-specifics table { width: 100%; border-collapse: collapse; }
.nw-specifics th, .nw-specifics td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--nw-line); vertical-align: top; }
.nw-specifics th { width: 34%; color: var(--nw-muted); font-weight: 800; }
.nw-specifics td p { margin: 0; }
.nw-description { background: #fff; border-radius: 18px; padding: 24px; box-shadow: 0 1px 0 var(--nw-line); margin-bottom: 20px; }
.related.products > h2, .upsells.products > h2 { font-size: 1.4rem; }

/* WooCommerce notices + cart/checkout tidy-up */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  list-style: none; background: #fff; border-left: 5px solid var(--nw-blue); border-radius: 12px;
  padding: 14px 18px; margin: 16px 0; box-shadow: 0 1px 0 var(--nw-line); font-weight: 700;
}
.woocommerce-error { border-left-color: var(--nw-red); }
.woocommerce-message .button { float: right; padding: 8px 16px; }
.nw-page { background: #fff; border-radius: 18px; padding: 28px; margin: 20px 0 40px; box-shadow: 0 1px 0 var(--nw-line); }
.woocommerce table.shop_table { border-collapse: collapse; width: 100%; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px; border-bottom: 1px solid var(--nw-line); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  padding: 11px 14px; border: 2px solid var(--nw-line); border-radius: 10px; width: 100%;
}

/* ============================================================
   Footer
   ============================================================ */
.nw-footer { background: var(--nw-navy); color: #cfe3ff; margin-top: 30px; }
.nw-footer .nw-wrap { padding-top: 40px; padding-bottom: 20px; }
.nw-footer-cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 28px; }
.nw-footer h4 { color: #fff; font-size: 1rem; margin-bottom: 12px; }
.nw-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.nw-footer a { color: #cfe3ff; font-weight: 700; }
.nw-footer a:hover { color: #fff; }
.nw-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 28px; padding-top: 16px; display: flex; justify-content: space-between; gap: 12px; font-size: .85rem; flex-wrap: wrap; }

/* ============================================================
   Smaller screens
   ============================================================ */
@media (max-width: 1100px) {
  .nw-grid, .nw-tiles { grid-template-columns: repeat(4, 1fr); }
  .nw-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .nw-topbar-links { display: none; }
  .nw-header .nw-wrap { flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; }
  .nw-search { order: 3; flex-basis: 100%; max-width: none; }
  .nw-menu-toggle { display: block; }
  .nw-nav { display: none; }
  .nw-nav.is-open { display: block; }
  .nw-nav > .nw-wrap > ul { flex-direction: column; }
  .nw-mega { position: static; box-shadow: none; border-radius: 0; width: auto; }
  .nw-mega ul { columns: 2; }
  .nw-grid, .nw-tiles { grid-template-columns: repeat(3, 1fr); }
  .nw-rewards, .nw-visit, .nw-product { grid-template-columns: 1fr; }
  .nw-shop-layout { grid-template-columns: 1fr; }
  .nw-filters { position: static; max-height: none; display: none; }
  .nw-filters.is-open { display: block; }
  .nw-filters-toggle { display: inline-flex; }
  .nw-footer-cols { grid-template-columns: 1fr 1fr; }
  .nw-results.is-list .nw-pcard-buy { width: 100%; }
}
@media (max-width: 600px) {
  .nw-grid, .nw-tiles { grid-template-columns: repeat(2, 1fr); }
  .nw-trust { grid-template-columns: 1fr; }
  .nw-coins { grid-template-columns: 1fr; }
  .nw-hero-content { padding: 36px 24px; }
  .nw-results.is-list .nw-pcard-img { width: 110px; min-height: 130px; }
  .nw-footer-cols { grid-template-columns: 1fr; }
}

/* ============================================================
   Extras: product rows, image-only slides, header coins
   ============================================================ */
.nw-basket-count[hidden] { display: none; }
.nw-coin-icon { font-size: 22px; line-height: 26px; }
a.nw-trust-item { color: inherit; }
a.nw-trust-item:hover { text-decoration: none; box-shadow: 0 0 0 2px var(--nw-aqua); }
.nw-cat-desc { background: #fff; border-radius: 14px; padding: 14px 18px; margin-bottom: 14px; color: var(--nw-muted); }
.nw-cat-desc p { margin: 0 0 .5em; }

/* Image-only hero slide: show the whole picture, no crop. */
.nw-hero-slide.is-image-only { min-height: 0; }
.nw-hero-slide.is-image-only img { position: static; width: 100%; height: auto; max-height: 460px; object-fit: contain; margin: 0 auto; }

/* Front-page product rows scroll sideways. */
.nw-row { position: relative; }
.nw-row .nw-grid-front {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 64px) / 5);
  grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  /* Room inside the scroller for ribbons above the cards and their glow below,
     which a scrolling box would otherwise cut off; the minus margins keep the
     cards lined up with the heading. */
  padding: 18px 14px 34px; margin: -18px -14px -34px; scroll-padding-inline: 14px;
}
.nw-row .nw-grid-front::-webkit-scrollbar { display: none; }
.nw-row .nw-pcard { scroll-snap-align: start; }
.nw-row-arrow {
  position: absolute; top: 38%; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer;
  background: #fff; color: var(--nw-navy); font-size: 1.8rem; line-height: 1; box-shadow: var(--nw-shadow);
}
.nw-row-arrow.is-prev { left: -14px; }
.nw-row-arrow.is-next { right: -14px; }
.nw-row-arrow[disabled] { opacity: 0; pointer-events: none; }

/* ============================================================
   Basket, checkout and account (WooCommerce classic pages)
   ============================================================ */
.nw-page-shop { background: transparent; box-shadow: none; padding: 0; }
.nw-page-shop > h1 { margin-top: 8px; }
.woocommerce-cart-form, .cart-collaterals .cart_totals, .woocommerce-checkout #customer_details,
#order_review_heading, .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content,
.woocommerce-form-login, .woocommerce-form-register {
  background: #fff; border-radius: 18px; padding: 20px; box-shadow: 0 1px 0 var(--nw-line);
}
.woocommerce-cart .nw-page-shop .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.woocommerce-cart .nw-page-shop .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .nw-page-shop .woocommerce > .cardscan-points-checkout,
.woocommerce-cart .nw-page-shop .woocommerce > .cart-empty,
.woocommerce-cart .nw-page-shop .woocommerce > .return-to-shop { grid-column: 1 / -1; }
table.shop_table.cart { border: 0; }
table.shop_table.cart thead th { text-align: left; color: var(--nw-muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }
table.shop_table.cart td.product-thumbnail img { width: 70px; border-radius: 8px; }
table.shop_table.cart td.product-name a { font-weight: 800; color: var(--nw-ink); }
table.shop_table.cart a.remove { display: inline-flex; width: 30px; height: 30px; border-radius: 50%; align-items: center; justify-content: center; background: #fde7e8; color: var(--nw-red); font-size: 1.2rem; font-weight: 900; }
table.shop_table.cart a.remove:hover { background: var(--nw-red); color: #fff; text-decoration: none; }
table.shop_table.cart .quantity input.qty { width: 70px; padding: 8px; border: 2px solid var(--nw-line); border-radius: 10px; text-align: center; font-weight: 800; }
table.shop_table.cart td.actions { text-align: right; }
table.shop_table.cart td.actions .coupon { float: left; display: flex; gap: 8px; }
table.shop_table.cart td.actions .coupon input { width: 190px !important; padding: 10px 12px; border: 2px solid var(--nw-line); border-radius: 10px; }
.cart_totals h2, #order_review_heading { font-size: 1.3rem; }
.cart_totals table { width: 100%; }
.cart_totals .order-total td, .woocommerce-checkout-review-order-table .order-total td { font-size: 1.4rem; font-weight: 900; color: var(--nw-navy); }
.wc-proceed-to-checkout .checkout-button { width: 100%; padding: 18px; font-size: 1.15rem; margin-top: 12px; }

.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 0 24px; align-items: start; }
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
.woocommerce-checkout #order_review_heading { grid-column: 2; margin: 0; border-radius: 18px 18px 0 0; padding-bottom: 0; }
.woocommerce-checkout #order_review { grid-column: 2; background: #fff; border-radius: 0 0 18px 18px; padding: 0 20px 20px; }
.woocommerce form .form-row { margin: 0 0 14px; }
.woocommerce form .form-row label { font-weight: 800; color: var(--nw-navy); display: block; margin-bottom: 4px; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); }
.woocommerce form .form-row-wide, .woocommerce form .form-row:not(.form-row-first):not(.form-row-last) { clear: both; }
.woocommerce form .form-row .required { color: var(--nw-red); text-decoration: none; }
#payment { background: var(--nw-bg); border-radius: 14px; padding: 14px; margin-top: 14px; }
#payment ul.payment_methods { list-style: none; margin: 0 0 12px; padding: 0; }
#payment ul.payment_methods li { padding: 8px 0; font-weight: 800; }
#payment .payment_box { background: #fff; border-radius: 10px; padding: 12px; margin-top: 8px; font-weight: 600; }
#place_order { width: 100%; padding: 18px; font-size: 1.15rem; }
.woocommerce-form-coupon-toggle .woocommerce-info { border-left-color: var(--nw-aqua); }
.select2-container .select2-selection--single { height: 46px; border: 2px solid var(--nw-line); border-radius: 10px; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 12px; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }

.woocommerce-account .nw-page-shop .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: 10px; font-weight: 800; color: var(--nw-ink); }
.woocommerce-MyAccount-navigation a:hover { background: var(--nw-aqua-soft); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--nw-navy); color: #fff; }
.woocommerce-account:not(.logged-in) .nw-page-shop .woocommerce { display: block; max-width: 520px; }

/* CardScan plugin: Nerd Coins box on the basket/checkout and [cardscan_my_points]. */
.cardscan-points-checkout {
  background: var(--nw-navy) !important; color: #fff; border: 0 !important; border-radius: 18px !important;
  padding: 18px 20px !important; box-shadow: var(--nw-shadow);
}
.cardscan-points-checkout strong { color: var(--nw-yellow); }
.cardscan-points-checkout p { color: #dbe9ff !important; }
.cardscan-points-checkout span { color: #aac6ee !important; }
.cardscan-points-checkout input[type="number"] { padding: 9px 10px; border-radius: 10px; border: 0; font-weight: 800; }
.cardscan-points-checkout .button { background: var(--nw-yellow) !important; color: var(--nw-navy) !important; border: 0 !important; }
.cardscan-my-points > div:first-child { background: var(--nw-navy) !important; border: 0 !important; border-radius: 18px !important; }
.cardscan-my-points > div:first-child > div:first-child { color: var(--nw-yellow) !important; }
.cardscan-my-points > div:first-child div { color: #dbe9ff !important; }

@media (max-width: 1100px) {
  .nw-row .nw-grid-front { grid-auto-columns: calc((100% - 48px) / 4); }
}
@media (max-width: 900px) {
  .nw-row .nw-grid-front { grid-auto-columns: calc((100% - 32px) / 3); }
  .nw-row-arrow { display: none; }
  .woocommerce-cart .nw-page-shop .woocommerce,
  .woocommerce-checkout form.checkout,
  .woocommerce-account .nw-page-shop .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
  .nw-coins-link { display: none; }
}
@media (max-width: 600px) {
  .nw-row .nw-grid-front { grid-auto-columns: 46%; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
}

/* Old page-builder content, turned back into normal page parts */
.nw-page img { border-radius: 12px; }
.nw-legacy-figure { margin: 0 0 20px; }
.nw-legacy-figure img { margin: 0 auto; }
.nw-legacy-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 16px 0; }
.nw-legacy-gallery img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.nw-legacy-q { margin: 22px 0 6px; padding: 12px 16px; background: var(--nw-aqua-soft); border-radius: 12px; font-size: 1.1rem; }
.nw-legacy-map iframe { width: 100%; height: 380px; border: 0; border-radius: 14px; }
.nw-page .nw-tiles { margin: 16px 0; }

/* WooCommerce's own layout floats these at 48% — the grid handles it instead. */
.woocommerce div.product.nw-product div.images,
.woocommerce div.product.nw-product div.summary,
.nw-product .woocommerce-product-gallery, .nw-product .summary { width: auto !important; float: none !important; margin: 0 !important; }
.nw-promises li { display: block; }
.nw-buybox .single_variation_wrap .woocommerce-variation-price .price { margin-top: 0; }
.nw-buybox .woocommerce-variation-availability .stock { margin: 0 0 10px; }

/* Basket fixes: WooCommerce squeezes the totals box to 48% — let it fill its column. */
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { float: none; width: 100%; }
.cart_totals table.shop_table { border: 0; }
.cart_totals table.shop_table th { text-align: left; font-weight: 800; color: var(--nw-muted); padding: 12px 0; }
.cart_totals table.shop_table td { text-align: right; padding: 12px 0; }
.wc-proceed-to-checkout .checkout-button { white-space: nowrap; }
/* Item details under the name (e.g. "Grade: 9") on one line. */
.woocommerce td.product-name dl.variation, .woocommerce-checkout-review-order-table dl.variation {
  display: flex; flex-wrap: wrap; gap: 2px 6px; margin: 6px 0 0; font-size: .9rem; color: var(--nw-muted);
}
.woocommerce td.product-name dl.variation dt, .woocommerce-checkout-review-order-table dl.variation dt { margin: 0; font-weight: 800; }
.woocommerce td.product-name dl.variation dd, .woocommerce-checkout-review-order-table dl.variation dd { margin: 0; }
.woocommerce td.product-name dl.variation dd p, .woocommerce-checkout-review-order-table dl.variation dd p { margin: 0; }

/* ============================================================
   Sign-in page (login only)
   ============================================================ */
.nw-page-signin { max-width: 1040px; margin: 36px auto 56px; }
.woocommerce-account:not(.logged-in) .nw-page-shop .woocommerce { max-width: none; }
.nw-login {
  display: grid; grid-template-columns: 1fr 1fr; border-radius: 28px; overflow: hidden;
  background: #fff; box-shadow: 0 18px 50px rgba(11, 42, 91, .18);
}
.nw-login-hello {
  position: relative; overflow: hidden; color: #fff; padding: 48px 44px;
  background: linear-gradient(150deg, var(--nw-navy) 0%, var(--nw-navy-2) 55%, var(--nw-blue) 100%);
  display: flex; flex-direction: column; justify-content: center;
}
.nw-login-hello > * { position: relative; z-index: 1; }
.nw-login-hello .nw-logo-text { font-size: 2.6rem; margin-bottom: 26px; }
.nw-login-hello h2 { color: #fff; font-size: 2.3rem; margin-bottom: 8px; }
.nw-login-hello > p { color: #cfe3ff; font-size: 1.1rem; font-weight: 700; margin: 0 0 26px; }
.nw-login-perks { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.nw-login-perks li { display: flex; align-items: center; gap: 14px; color: #dbe9ff; font-weight: 700; }
.nw-login-perks li .nw-perk-icon {
  width: 46px; height: 46px; flex-shrink: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .12); font-size: 1.35rem;
}
.nw-login-perks li b { color: #fff; margin-right: 4px; }
.nw-login-bubbles span { position: absolute; border-radius: 50%; z-index: 0; }
.nw-login-bubbles span:nth-child(1) { width: 260px; height: 260px; right: -90px; top: -90px; background: rgba(60, 200, 236, .25); }
.nw-login-bubbles span:nth-child(2) { width: 160px; height: 160px; left: -50px; bottom: -60px; background: rgba(255, 210, 63, .18); }
.nw-login-bubbles span:nth-child(3) { width: 70px; height: 70px; right: 60px; bottom: 50px; background: rgba(255, 255, 255, .10); }

.nw-login-card { padding: 48px 44px; }
.nw-login-card h1 { font-size: 2.1rem; margin: 0 0 4px; }
.nw-login-sub { color: var(--nw-muted); font-weight: 700; margin: 0 0 26px; }
.nw-login-card form.login { background: none; box-shadow: none; padding: 0; margin: 0; border: 0; }
.nw-login-card .nw-field { margin-bottom: 18px !important; }
.nw-login-card .nw-field label { font-weight: 800; color: var(--nw-navy); margin-bottom: 6px; display: block; }
.nw-input-wrap { position: relative; display: block; }
.nw-input-wrap .password-input { display: block; position: relative; }
.nw-input-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); z-index: 1; pointer-events: none; display: flex; }
.nw-input-icon svg { width: 20px; height: 20px; fill: var(--nw-muted); }
.nw-input-wrap:focus-within .nw-input-icon svg { fill: var(--nw-blue); }
.nw-login-card input.input-text {
  width: 100%; padding: 16px 18px 16px 48px !important; font-size: 1.05rem; font-weight: 700;
  border: 2px solid var(--nw-line) !important; border-radius: 14px !important; background: var(--nw-bg); transition: border-color .15s, background .15s, box-shadow .15s;
}
.nw-login-card input.input-text:focus { outline: none; border-color: var(--nw-blue) !important; background: #fff; box-shadow: 0 0 0 4px rgba(29, 116, 208, .15); }
.nw-login-card .show-password-input {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; cursor: pointer; padding: 6px;
}
.nw-login-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 4px 0 22px; flex-wrap: wrap; }
.nw-login-row .nw-check { font-weight: 700; color: var(--nw-ink); margin: 0; }
.nw-login-forgot { font-weight: 800; }
.nw-login-card .woocommerce-form-login__submit { width: 100%; padding: 17px 24px; font-size: 1.15rem; box-shadow: 0 8px 20px rgba(29, 116, 208, .3); }
.nw-login-help { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--nw-line); color: var(--nw-muted); font-weight: 600; }
.nw-login-help p { margin: 0 0 6px; }
.nw-login-help b { color: var(--nw-navy); }
.nw-login-help a { font-weight: 800; }

/* Errors ("wrong password") sit above the card, same width. */
.nw-page-signin .woocommerce-error, .nw-page-signin .woocommerce-message, .nw-page-signin .woocommerce-info { margin: 0 0 16px; }

/* Reset-password page uses the same card look. */
.nw-page-signin form.lost_reset_password, .nw-page-signin form.woocommerce-ResetPassword {
  background: #fff; border-radius: 24px; padding: 36px; box-shadow: 0 18px 50px rgba(11, 42, 91, .14); max-width: 520px;
}
.nw-page-signin form.lost_reset_password .form-row-first { width: 100%; float: none; }
.nw-page-signin form.lost_reset_password input.input-text { padding: 15px 16px; font-size: 1.05rem; border-radius: 14px; }
.nw-page-signin form.lost_reset_password button { width: 100%; padding: 16px; font-size: 1.1rem; }

@media (max-width: 800px) {
  .nw-page-signin { margin: 16px auto 36px; }
  .nw-login { grid-template-columns: 1fr; border-radius: 22px; }
  .nw-login-hello { padding: 30px 24px; }
  .nw-login-hello .nw-logo-text { font-size: 2rem; margin-bottom: 14px; }
  .nw-login-hello h2 { font-size: 1.7rem; }
  .nw-login-perks { display: none; }
  .nw-login-card { padding: 30px 24px; }
}
.nw-page-signin ul.woocommerce-error { max-width: none; padding: 14px 18px; }
.nw-page-signin ul.woocommerce-error li { list-style: none; }

/* Sign in ⇄ sign up switch */
.nw-login-view { display: none; }
.nw-login:not(.is-signup) .nw-view-signin, .nw-login.is-signup .nw-view-signup { display: block; animation: nwFade .25s ease; }
.nw-hello-signup, .nw-login.is-signup .nw-hello-signin { display: none; }
.nw-login.is-signup .nw-hello-signup { display: block; }
@keyframes nwFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.nw-login-perks li { align-items: center; }
.nw-login-perks li > span:last-child { line-height: 1.35; }
.nw-login-or { display: flex; align-items: center; gap: 12px; margin: 24px 0 14px; color: var(--nw-muted); font-weight: 800; font-size: .92rem; }
.nw-login-or::before, .nw-login-or::after { content: ""; flex: 1; height: 1px; background: var(--nw-line); }
.nw-login-guest { margin: 18px 0 0; color: var(--nw-muted); font-weight: 600; font-size: .95rem; text-align: center; }
.nw-login-guest a { font-weight: 800; }
.nw-login-note { color: var(--nw-muted); font-weight: 700; }
.nw-login-card form.register { background: none; box-shadow: none; padding: 0; margin: 0; border: 0; }
.nw-login-card .woocommerce-privacy-policy-text { font-size: .85rem; color: var(--nw-muted); margin: 4px 0 16px; }
.nw-login-card .woocommerce-privacy-policy-text p { margin: 0; }
.nw-login-card .woocommerce-password-strength { margin-top: 8px; padding: 8px 12px; border-radius: 10px; font-weight: 800; font-size: .88rem; }
.nw-login-card .woocommerce-password-strength.short, .nw-login-card .woocommerce-password-strength.bad { background: #fde7e8; color: var(--nw-red); }
.nw-login-card .woocommerce-password-strength.good { background: #fff5d6; color: #8a6200; }
.nw-login-card .woocommerce-password-strength.strong { background: #dff6e8; color: var(--nw-green); }
.nw-login-card .woocommerce-password-hint { display: block; font-size: .82rem; color: var(--nw-muted); margin-top: 6px; }
.nw-login-card .nw-btn-ghost { padding: 15px 24px; }
@media (max-width: 800px) {
  .nw-login-hello { order: -1; }
}

/* "Sign up now" / "Sign in" call-out on the blue panel */
.nw-hello-cta { margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .18); }
.nw-hello-cta p { color: #fff; font-size: 1.15rem; font-weight: 900; margin: 0 0 12px; }
.nw-btn-yellow { background: var(--nw-yellow); color: var(--nw-navy); box-shadow: 0 8px 20px rgba(0, 0, 0, .2); padding: 16px 34px; font-size: 1.1rem; }
.nw-btn-yellow:hover { background: #ffc400; color: var(--nw-navy); }
.nw-login-guest { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--nw-line); }
@media (max-width: 800px) {
  .nw-hello-cta { margin-top: 18px; padding-top: 16px; }
}

/* ── Sign-in panel, round 2: cleaner blue panel ─────────────── */
.nw-login-bubbles { display: none; }
.nw-login-hello {
  background:
    radial-gradient(circle at 100% 0%, rgba(60, 200, 236, .30), transparent 42%),
    radial-gradient(circle at 0% 100%, rgba(255, 210, 63, .14), transparent 38%),
    linear-gradient(160deg, #0b2a5b 0%, #123d80 60%, #1a63b8 100%);
  padding: 52px 48px;
}
/* Three faint "trading cards" fanned out in the corner. */
.nw-login-cards span {
  position: absolute; z-index: 0; width: 118px; height: 165px; border-radius: 14px;
  border: 2px solid rgba(255, 255, 255, .16);
  background: linear-gradient(160deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .02));
}
.nw-login-cards span:nth-child(1) { right: 34px;  top: 34px; transform: rotate(14deg); }
.nw-login-cards span:nth-child(2) { right: 84px;  top: 44px; transform: rotate(-4deg); border-color: rgba(60, 200, 236, .35); }
.nw-login-cards span:nth-child(3) { right: 132px; top: 64px; transform: rotate(-18deg); border-color: rgba(255, 210, 63, .30); }
.nw-login-hello .nw-logo-text { font-size: 2.1rem; margin-bottom: 22px; }
.nw-login-hello h2 { font-size: 2.4rem; letter-spacing: -.5px; }
.nw-login-hello > p { font-size: 1.05rem; margin-bottom: 22px; }
.nw-login-perks { gap: 16px; }
.nw-login-perks li b { margin-right: 0; }
.nw-login-perks li .nw-perk-icon {
  background: rgba(255, 255, 255, .10); border: 1px solid rgba(255, 255, 255, .14); border-radius: 14px;
}

.nw-hello-cta {
  align-items: center; justify-content: space-between; gap: 16px;
  margin-top: 30px; padding: 18px 20px; border: 1px solid rgba(255, 255, 255, .16); border-top-color: rgba(255, 255, 255, .16);
  border-radius: 18px; background: rgba(255, 255, 255, .07);
}
.nw-login:not(.is-signup) .nw-hello-cta.nw-hello-signin, .nw-login.is-signup .nw-hello-cta.nw-hello-signup { display: flex; }
.nw-hello-cta p { margin: 0 0 2px; font-size: 1.1rem; }
.nw-hello-cta small { color: #aac6ee; font-weight: 700; font-size: .88rem; }
.nw-hello-cta .nw-btn-yellow { flex-shrink: 0; padding: 14px 26px; font-size: 1.05rem; }

@media (max-width: 800px) {
  .nw-login-hello { padding: 30px 24px; }
  .nw-login-cards { display: none; }
  .nw-hello-cta { flex-direction: column; align-items: stretch; text-align: center; }
}

/* Item specifics inside the buy box, under the delivery/returns lines */
.nw-specifics-in-box { background: none; box-shadow: none; border-radius: 0; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--nw-line); }
.nw-specifics-in-box h2 { font-size: 1.1rem; margin-bottom: 8px; }
.nw-specifics-in-box th, .nw-specifics-in-box td { padding: 8px 10px; font-size: .92rem; }
.nw-specifics-in-box th { width: 40%; padding-left: 0; }
.nw-specifics-in-box tr:last-child th, .nw-specifics-in-box tr:last-child td { border-bottom: 0; }
.nw-specifics-in-box td { font-weight: 700; color: var(--nw-ink); word-break: break-word; }
/* Promises now sit last in the buy box */
.nw-specifics-in-box + .nw-promises { margin-top: 16px; }
/* No zoom cursor or magnifier on product pictures */
.woocommerce-product-gallery__trigger { display: none !important; }
.woocommerce-product-gallery__image img { cursor: default; }
/* Card note under "Secure checkout" (cards only) */
.nw-promises li.nw-card-note {
  display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px;
  background: #fff7dc; border: 1px solid #ffe08a; color: #6b4d00; font-weight: 700; font-size: .9rem; line-height: 1.4;
}

/* ============================================================
   Category / shop header — in the home banner's style
   ============================================================ */
.nw-cat-hero {
  position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 24px;
  margin: 6px 0 18px; padding: 30px 36px; border-radius: 24px; color: #fff;
  background:
    radial-gradient(circle at 85% 50%, rgba(60, 200, 236, .45), transparent 38%),
    radial-gradient(circle at 0% 0%, rgba(255, 255, 255, .08), transparent 40%),
    linear-gradient(135deg, #0b2a5b 0%, #10336e 60%, #0b2a5b 100%);
  box-shadow: 0 14px 34px rgba(11, 42, 91, .2);
}
.nw-cat-hero.has-fan { grid-template-columns: minmax(0, 1fr) 280px; }
.nw-cat-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .3;
  background-image: radial-gradient(rgba(255, 255, 255, .2) 1px, transparent 1.5px); background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%, transparent); mask-image: linear-gradient(90deg, transparent, #000 60%, transparent);
}
.nw-cat-hero-text { position: relative; z-index: 1; min-width: 0; }
.nw-cat-hero-count {
  display: inline-block; padding: 5px 12px; border-radius: 99px; background: var(--nw-yellow); color: var(--nw-navy);
  font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em;
}
.nw-cat-hero h1 { color: #fff; font-size: clamp(2rem, 3.4vw, 2.8rem); letter-spacing: -.5px; margin: 10px 0 6px; }
.nw-cat-hero-desc {
  color: #cfe3ff; font-weight: 600; font-size: 1rem; line-height: 1.55; margin: 0 0 16px; max-width: 760px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.nw-cat-hero-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nw-cat-hero-chips a {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 99px;
  background: rgba(255, 255, 255, .1); color: #fff; font-weight: 800; font-size: .9rem;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); transition: background .15s, color .15s;
}
.nw-cat-hero-chips a span { font-size: .72rem; font-weight: 900; padding: 1px 7px; border-radius: 99px; background: rgba(255, 255, 255, .16); }
.nw-cat-hero-chips a:hover { background: var(--nw-yellow); color: var(--nw-navy); text-decoration: none; }
.nw-cat-hero-chips a:hover span { background: rgba(11, 42, 91, .15); }
/* Fan of three cards (same look as the home page tiles) */
.nw-cat-hero-fan { position: relative; z-index: 1; height: 190px; display: flex; align-items: center; justify-content: center; }
.nw-cat-hero-fan .nw-fan-card {
  position: absolute; width: 100px; aspect-ratio: 63 / 88; border-radius: 9px; overflow: hidden; background: #fff;
  box-shadow: 0 14px 26px rgba(0, 0, 0, .4);
}
.nw-cat-hero-fan .nw-fan-card img { width: 100%; height: 100%; object-fit: contain; }
.nw-cat-hero-fan.n3 .nw-fan-card:nth-child(1) { transform: translateX(-58px) rotate(-14deg); }
.nw-cat-hero-fan.n3 .nw-fan-card:nth-child(2) { transform: translateX(58px) rotate(14deg); }
.nw-cat-hero-fan.n3 .nw-fan-card:nth-child(3) { transform: translateY(-8px); z-index: 2; }
.nw-cat-hero-fan.n2 .nw-fan-card:nth-child(1) { transform: translateX(-30px) rotate(-10deg); }
.nw-cat-hero-fan.n2 .nw-fan-card:nth-child(2) { transform: translateX(30px) rotate(8deg); z-index: 2; }
/* The old separate title row is now only the phone "Filters" button */
.nw-shop-head-mobile { display: none; }
.nw-cat-desc { display: none; }
@media (max-width: 900px) {
  .nw-cat-hero, .nw-cat-hero.has-fan { grid-template-columns: 1fr; padding: 24px 20px; }
  .nw-cat-hero-fan { display: none; }
  .nw-shop-head-mobile { display: flex; margin-bottom: 12px; }
}

/* ============================================================
   Shop pages: menu + filters down the left from the top,
   category header on the right above the products
   ============================================================ */
.nw-shop-layout { grid-template-columns: 280px minmax(0, 1fr); }
.nw-side {
  position: relative; z-index: 30; align-self: start; border-radius: 22px; background: #fff;
  box-shadow: 0 1px 0 var(--nw-line), 0 10px 28px rgba(11, 42, 91, .1);
}
.nw-side .nw-hero-menu {
  position: relative; inset: auto; top: auto; left: auto; right: auto; bottom: auto; width: auto;
  border: 0; border-radius: 22px 22px 0 0; backdrop-filter: none; -webkit-backdrop-filter: none;
  background:
    radial-gradient(circle at 100% 0%, rgba(60, 200, 236, .3), transparent 45%),
    linear-gradient(160deg, #10336e, #0b2a5b);
}
/* Drop-outs open to the right, over the products */
.nw-side .nw-hm-fly { width: min(800px, calc(100vw - 420px)); }
.nw-side .nw-filters {
  position: static; top: auto; max-height: none; overflow: visible;
  border-radius: 0 0 22px 22px; box-shadow: none; padding: 16px 16px 18px;
}
.admin-bar .nw-side .nw-filters { top: auto; }
.nw-filters-title {
  display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--nw-muted);
}
.nw-filters-title::before { content: "⚙"; font-size: 1rem; color: var(--nw-blue); }
.nw-results .nw-cat-hero { margin-top: 0; }
.nw-shop-layout { padding-top: 4px; }

/* Big screens: this left menu replaces the top menu (like the home page) */
@media (min-width: 1101px) {
  body:has(.nw-side .nw-hero-menu) .nw-nav { display: none; }
}
/* Smaller screens: top menu comes back, left menu hides, filters stand alone */
@media (max-width: 1100px) {
  .nw-side-menu { display: none; }
  .nw-side .nw-filters { border-radius: 22px; }
}
@media (max-width: 900px) {
  .nw-shop-layout { grid-template-columns: 1fr; }
  .nw-side { box-shadow: none; background: none; }
  .nw-side .nw-filters { box-shadow: 0 1px 0 var(--nw-line); background: #fff; }
}

/* ============================================================
   Left column: sort + view on top, menu, then the Filter button
   ============================================================ */
.nw-side { background: none; box-shadow: none; display: grid; gap: 12px; }
.nw-side .nw-hero-menu { border-radius: 22px; box-shadow: 0 10px 28px rgba(11, 42, 91, .18); }
.nw-side-tools {
  display: flex; gap: 8px; align-items: center; padding: 8px; border-radius: 18px; background: #fff;
  box-shadow: 0 1px 0 var(--nw-line), 0 6px 18px rgba(11, 42, 91, .07);
}
.nw-side-tools .woocommerce-ordering { flex: 1; min-width: 0; margin: 0; }
.nw-side-tools .woocommerce-ordering select {
  width: 100%; padding: 10px 12px; border: 2px solid var(--nw-line); border-radius: 12px; font-weight: 800; background: #fff; color: var(--nw-navy);
}
.nw-side-tools .nw-view-toggle { flex-shrink: 0; }
.nw-filter-open {
  width: 100%; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 0; border-radius: 18px; cursor: pointer; text-align: left;
  background: #fff; color: var(--nw-navy); box-shadow: 0 1px 0 var(--nw-line), 0 6px 18px rgba(11, 42, 91, .07);
  transition: box-shadow .15s, transform .15s;
}
.nw-filter-open:hover { box-shadow: 0 0 0 2px var(--nw-aqua), 0 10px 24px rgba(11, 42, 91, .12); transform: translateY(-1px); }
.nw-filter-open-ico {
  width: 42px; height: 42px; flex-shrink: 0; border-radius: 13px; display: flex; align-items: center; justify-content: center;
  background: var(--nw-navy); color: var(--nw-yellow); font-size: 1.3rem;
}
.nw-filter-open-txt { flex: 1; font-weight: 900; font-size: 1.05rem; line-height: 1.2; }
.nw-filter-open-txt small { display: block; color: var(--nw-muted); font-weight: 700; font-size: .8rem; }
.nw-filter-open-count { min-width: 26px; height: 26px; padding: 0 8px; border-radius: 99px; background: var(--nw-yellow); color: var(--nw-navy); font-weight: 900; display: flex; align-items: center; justify-content: center; }

/* "Filters on:" row above the products */
.nw-active-row {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; padding: 10px 14px; border-radius: 16px;
  background: #fff; box-shadow: 0 1px 0 var(--nw-line);
}
.nw-active-row > span { font-weight: 900; color: var(--nw-navy); font-size: .9rem; }
.nw-clear-all { margin-left: auto; font-weight: 900; font-size: .9rem; color: var(--nw-red); }

/* ── The filter pop-up ── */
.nw-pop[hidden] { display: none; }
.nw-pop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.nw-pop-backdrop { position: absolute; inset: 0; background: rgba(5, 20, 48, .55); backdrop-filter: blur(3px); animation: nwPopFade .2s ease both; }
.nw-pop-box {
  position: relative; width: min(860px, 100%); max-height: min(86vh, 760px); display: flex; flex-direction: column;
  border-radius: 26px; background: #fff; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); overflow: hidden; animation: nwPopIn .25s cubic-bezier(.2, .8, .2, 1) both;
}
@keyframes nwPopFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes nwPopIn { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }
.nw-pop-head {
  display: flex; align-items: center; justify-content: space-between; padding: 18px 24px; color: #fff;
  background: radial-gradient(circle at 100% 0%, rgba(60, 200, 236, .35), transparent 50%), linear-gradient(135deg, #0b2a5b, #123d80);
}
.nw-pop-head h2 { color: #fff; margin: 0; font-size: 1.5rem; }
.nw-pop-x { width: 40px; height: 40px; border: 0; border-radius: 50%; cursor: pointer; background: rgba(255, 255, 255, .15); color: #fff; font-size: 1.1rem; }
.nw-pop-x:hover { background: var(--nw-yellow); color: var(--nw-navy); }
.nw-pop-body { padding: 18px 24px; overflow: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 6px 24px; align-content: start; }
.nw-pop-body .nw-filter-group { border-bottom: 0; padding: 8px 0; }
.nw-pop-body .nw-filter-group h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--nw-muted); margin-bottom: 8px; }
.nw-pop-body .nw-filter-group ul { max-height: 260px; display: grid; gap: 4px; }
.nw-pop-body .nw-filter-group li a { padding: 8px 12px; border-radius: 10px; background: var(--nw-bg); }
.nw-pop-body .nw-filter-group li a:hover { background: var(--nw-aqua-soft); }
.nw-pop-body .nw-filter-group li.is-current > a { background: var(--nw-navy); color: #fff; }
.nw-pop-body .nw-filter-group li.is-current > a span { color: #cfe3ff; }
.nw-pop-body .nw-check { padding: 8px 12px; border-radius: 10px; background: var(--nw-bg); }
.nw-pop-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 24px;
  border-top: 1px solid var(--nw-line); background: #fff;
}
body.nw-pop-open { overflow: hidden; }

/* The old list panel and the separate phone button are no longer used */
.nw-side .nw-filters, .nw-shop-head-mobile { display: none !important; }

@media (max-width: 900px) {
  .nw-side { gap: 10px; }
  .nw-pop { padding: 0; align-items: flex-end; }
  .nw-pop-box { width: 100%; max-height: 90vh; border-radius: 24px 24px 0 0; }
  .nw-pop-foot .nw-btn { flex: 1; }
}

/* One "Filter & sort" control at the top of the left column */
.nw-side-tools { padding: 8px; gap: 8px; }
.nw-side-tools .nw-filter-open { flex: 1; min-width: 0; padding: 8px 10px; box-shadow: none; border-radius: 12px; background: var(--nw-bg); }
.nw-side-tools .nw-filter-open:hover { box-shadow: 0 0 0 2px var(--nw-aqua); transform: none; }
.nw-side-tools .nw-filter-open-ico { width: 38px; height: 38px; border-radius: 11px; font-size: 1.15rem; }
.nw-side-tools .nw-filter-open-txt { font-size: .98rem; min-width: 0; }
.nw-side-tools .nw-filter-open-txt small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nw-side-tools .nw-view-toggle { align-self: stretch; }
.nw-side-tools .nw-view-toggle button { padding: 0 11px; }
.nw-pop-body .nw-sort-group ul { max-height: none; }

/* Keep the left column inside its 280px (long set names shorten with …) */
.nw-side, .nw-side-menu, .nw-side .nw-hero-menu, .nw-hm-drop, .nw-hm-drop ul > li { min-width: 0; }
.nw-side-tools { min-width: 0; }

/* ── Filter & sort: make picked things obvious ── */
.nw-filter-open.has-active { box-shadow: inset 0 0 0 2px var(--nw-yellow) !important; background: #fff8d9 !important; }
.nw-filter-open.has-active .nw-filter-open-txt small { color: var(--nw-navy); font-weight: 800; }
.nw-pop-body .nw-filter-group h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.nw-pop-body .nw-filter-group h3 em {
  font-style: normal; text-transform: none; letter-spacing: 0; font-size: .78rem; font-weight: 900;
  padding: 2px 9px; border-radius: 99px; background: var(--nw-yellow); color: var(--nw-navy);
}
.nw-pop-body .nw-filter-group li.is-current > a {
  background: var(--nw-yellow); color: var(--nw-navy); font-weight: 900; box-shadow: inset 0 0 0 2px #e6b800;
}
.nw-pop-body .nw-filter-group li.is-current > a span { color: var(--nw-navy); }
.nw-pop-body .nw-check:has(input:checked) { background: var(--nw-yellow); color: var(--nw-navy); font-weight: 900; }
/* Tidy Filter & sort button: words on one line, count badge on the icon */
.nw-side-tools .nw-filter-open { gap: 9px; padding: 8px; position: relative; }
.nw-side-tools .nw-filter-open-ico { width: 34px; height: 34px; position: relative; }
.nw-side-tools .nw-filter-open-txt { white-space: nowrap; overflow: hidden; }
.nw-side-tools .nw-filter-open-count {
  position: absolute; left: 30px; top: 2px; min-width: 20px; height: 20px; padding: 0 5px; font-size: .72rem;
  box-shadow: 0 0 0 2px #fff;
}
.nw-side-tools .nw-view-toggle button { padding: 0 9px; }

/* No breadcrumb path: give the pages a little top space instead */
.nw-breadcrumb { display: none; }
.nw-shop-layout { padding-top: 22px; }
.nw-product { margin-top: 22px; }

/* Online orders off (CardScan plugin switch): a bar under the header, and
   "In our shop" instead of the basket buttons. */
.nw-orders-off { background: var(--nw-yellow); color: var(--nw-navy); font-weight: 800; }
.nw-orders-off .nw-wrap { display: flex; align-items: center; justify-content: center; gap: 10px; padding-top: 10px; padding-bottom: 10px; text-align: center; flex-wrap: wrap; }
.nw-orders-off a { color: var(--nw-navy); text-decoration: underline; font-weight: 900; white-space: nowrap; }
.nw-add-instore { background: #e8f4fb; color: var(--nw-navy); box-shadow: inset 0 0 0 2px var(--nw-aqua); }
.nw-add-instore:hover { background: var(--nw-aqua-soft); color: var(--nw-navy); }
.nw-instore-box { margin: 14px 0 18px; padding: 16px 18px; border-radius: 16px; background: linear-gradient(160deg, #eaf6fd, #d8f0fb); }
.nw-instore-box b { font-size: 1.1rem; color: var(--nw-navy); }
.nw-instore-box p { margin: 6px 0 10px; font-weight: 700; }
.nw-instore-today { color: var(--nw-blue-dark); }
