/* Northwater Tackle — "Stillwater" storefront (header, category sidebar, homepage, cards, footer).
   Colours and fonts come from the Northwater identity pack via theme.json; layout after the reference storefront. */

:root {
	--nw-pine: var(--wp--preset--color--brand, #2F4A3E);
	--nw-pine-d: var(--wp--preset--color--brand-dark, #233A30);
	--nw-pine-l: #EAF0EC;
	--nw-navy: var(--wp--preset--color--ink, #17222D);
	--nw-brass: var(--wp--preset--color--accent, #B08D57);
	--nw-off: var(--wp--preset--color--base, #F5F6F7);
	--nw-white: var(--wp--preset--color--card, #FFFFFF);
	--nw-line: var(--wp--preset--color--border, #E1E4E6);
	--nw-line-2: #ECEEEF; /* dividers inside a surface */
	--nw-line-h: #C5CBD0; /* hovered edge */
	--nw-body: var(--wp--preset--color--body, #2A3540);
	--nw-muted: var(--wp--preset--color--muted, #5F6A73);
	--nw-sale: #A8382A;
	--nw-r: 8px;
	--nw-r-sm: 6px;
	/* system UI fonts only (San Francisco / Segoe UI / Roboto → Helvetica, Arial): what US shoppers read every day */
	--nw-sys: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
	--nw-slab: var(--nw-sys);
	--nw-text: var(--nw-sys);
	--nw-side: 248px;
	--nw-ann: 34px;
	--nw-bar: 78px;
	--nw-top: calc(var(--nw-ann) + var(--nw-bar));
	--nw-gut: 28px;
}

body { background: var(--nw-off); color: var(--nw-body); font-family: var(--nw-text); -webkit-font-smoothing: antialiased; overflow-x: clip; }
h1, h2, h3, h4, h5, h6 { font-family: var(--nw-slab); color: var(--nw-navy); letter-spacing: -.005em; }
a { color: var(--nw-pine); }

.nw-slab { display: block; font-family: var(--nw-slab); font-weight: 700; color: var(--nw-navy); letter-spacing: -.015em; line-height: 1.12; }
.nw-slab em { font-style: normal; color: inherit; }
.nw-label { display: inline-block; font: 500 13px/1.3 var(--nw-text); color: var(--nw-muted); }
.nw-icon { display: inline-block; flex: none; vertical-align: middle; }

.nw-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: var(--nw-r-sm); font: 600 14px/1 var(--nw-text); text-decoration: none; white-space: nowrap; border: 1px solid transparent; transition: background .15s, color .15s, border-color .15s; }
.nw-btn--pine { background: var(--nw-pine); color: #fff; }
.nw-btn--pine:hover { background: var(--nw-pine-d); color: #fff; }
.nw-btn--light { background: #fff; color: var(--nw-navy); }
.nw-btn--light:hover { background: #E6EAED; color: var(--nw-navy); }
.nw-btn--line { border-color: rgba(255,255,255,.3); color: #fff; }
.nw-btn--line:hover { border-color: rgba(255,255,255,.7); color: #fff; }
.nw-btn--ghost { border-color: var(--nw-line); color: var(--nw-navy); background: #fff; }
.nw-btn--ghost:hover { border-color: var(--nw-navy); color: var(--nw-navy); }
.nw-btn--sm { height: 36px; padding: 0 14px; font-size: 13px; }

/* ---------- header ---------- */
#main-container > #header { position: sticky; top: 0; z-index: 50; }
.admin-bar #main-container > #header { top: 32px; }
.nw-announce { background: var(--nw-navy); color: #B4C0CA; font: 400 12.5px/1 var(--nw-text); }
.nw-announce__row { display: flex; justify-content: center; align-items: center; gap: 26px; height: var(--nw-ann); padding: 0 16px; }
.nw-announce b { color: #fff; font-weight: 500; }
.nw-announce a { color: inherit; text-decoration: none; }
.nw-announce i { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.3); display: inline-block; }
.nw-bar { background: #fff; border-bottom: 1px solid var(--nw-line); display: grid; grid-template-columns: var(--nw-side) 1fr auto; gap: 28px; align-items: center; height: var(--nw-bar); padding: 0 var(--nw-gut) 0 22px; box-sizing: border-box; }
.nw-burger { display: none; background: none; border: 0; color: var(--nw-navy); padding: 4px; cursor: pointer; }
.nw-logo { display: flex; align-items: center; }
.nw-logo__img { height: 44px; width: auto; max-width: 100%; }
.nw-search { position: relative; display: flex; align-items: stretch; height: 46px; max-width: 760px; width: 100%; background: #fff; border: 1px solid var(--nw-line-h); border-radius: var(--nw-r-sm); overflow: hidden; box-sizing: border-box; transition: border-color .15s, box-shadow .15s; }
.nw-search:focus-within { border-color: var(--nw-pine); box-shadow: 0 0 0 3px rgba(47,74,62,.14); }
.nw-search__ic { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--nw-muted); pointer-events: none; }
.nw-search input[type=search] { flex: 1; min-width: 0; border: 0; background: transparent; font: 14.5px var(--nw-text); color: var(--nw-navy); outline: none; box-shadow: none; padding: 0 12px 0 42px; margin: 0; height: auto; border-radius: 0; }
.nw-search input[type=search]::placeholder { color: #8A949C; }
.nw-search button { flex: none; border: 0; border-radius: 0; margin: 0; padding: 0 20px; background: var(--nw-pine); color: #fff; font: 600 14px/1 var(--nw-text); cursor: pointer; transition: background .15s; }
.nw-search button:hover { background: var(--nw-pine-d); }
.nw-tools { display: flex; gap: 22px; align-items: center; font: 500 14px/1 var(--nw-text); }
.nw-tools a { display: flex; align-items: center; gap: 8px; color: var(--nw-navy); text-decoration: none; }
.nw-tools a:hover { color: var(--nw-pine); }
.nw-cart-count { background: var(--nw-pine); color: #fff; font: 600 11px/1 var(--nw-text); border-radius: 10px; padding: 3px 6px; min-width: 18px; text-align: center; box-sizing: border-box; }
.nw-cart-count[data-count="0"] { background: var(--nw-off); color: var(--nw-muted); }

/* ---------- category sidebar (desktop: fixed column; the page reserves its width) ---------- */
.nw-side { position: fixed; left: 0; top: calc(var(--nw-top) + var(--nw-adminbar, 0px)); bottom: 0; width: var(--nw-side); background: #fff; border-right: 1px solid var(--nw-line); padding: 18px 14px 30px; box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain; z-index: 40; }
.admin-bar { --nw-adminbar: 32px; }
.nw-side__head { font: 600 11px/1 var(--nw-text); letter-spacing: .08em; text-transform: uppercase; color: var(--nw-muted); margin: 22px 10px 8px; }
.nw-side__head:first-child { margin-top: 4px; }
.nw-side__list { list-style: none; margin: 0; padding: 0; }
.nw-side__link { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: var(--nw-r-sm); font: 400 14.5px/1.25 var(--nw-text); color: var(--nw-navy); text-decoration: none; transition: background .12s; }
.nw-side__item.is-open > .nw-side__link, .nw-side__link:hover, .nw-side__link:focus-visible { background: var(--nw-off); color: var(--nw-navy); }
.nw-side__ic { color: var(--nw-muted); }
.nw-side__item.is-open > .nw-side__link .nw-side__ic, .nw-side__link:hover .nw-side__ic { color: var(--nw-pine); }
.nw-side__chev { margin-left: auto; color: #B3BAC0; font-size: 14px; }
.nw-side__item--deal > .nw-side__link { color: var(--nw-navy); }
.nw-fly { position: fixed; left: calc(var(--nw-side) - 1px); top: calc(var(--nw-top) + var(--nw-adminbar, 0px)); width: min(660px, calc(100vw - var(--nw-side) - 40px)); max-height: calc(100vh - var(--nw-top) - var(--nw-adminbar, 0px) - 20px); overflow-y: auto; background: #fff; border: 1px solid var(--nw-line); border-radius: 0 var(--nw-r) var(--nw-r) 0; box-shadow: 0 1px 2px rgba(23,34,45,.06), 8px 12px 28px rgba(23,34,45,.10); padding: 22px 26px; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 18px 22px; z-index: 45; box-sizing: border-box; visibility: hidden; opacity: 0; transition: opacity .12s, visibility 0s .12s; }
.nw-side__item.is-open > .nw-fly { visibility: visible; opacity: 1; transition-delay: 0s; }
.nw-fly h4 { font: 600 14.5px/1.2 var(--nw-slab); color: var(--nw-navy); margin: 0 0 8px; }
.nw-fly h4 a { color: inherit; text-decoration: none; }
.nw-fly__col a { display: block; padding: 4px 0; font-size: 13.5px; color: var(--nw-body); text-decoration: none; }
.nw-fly a:hover { color: var(--nw-pine); }
.nw-fly__all { grid-column: 1 / -1; border-top: 1px solid var(--nw-line-2); padding-top: 12px; font: 600 13.5px var(--nw-text); color: var(--nw-pine) !important; text-decoration: none; }

@media (min-width: 981px) {
	.nw-has-side #main, .nw-has-side #footer { margin-left: var(--nw-side); }
	/* Blocksy sizes its containers from 100vw: take the sidebar out of that width */
	/* (it is resolved on :root, so the derived --theme-container-width has to be redefined here too) */
	.nw-has-side #main { --theme-container-width-base: calc(100vw - var(--nw-side) - 2 * var(--nw-gut)); --theme-container-width: min(100%, var(--theme-container-width-base)); }
}

/* drawer (phones) */
.nw-drawer { position: fixed; inset: 0; z-index: 100; visibility: hidden; }
.nw-drawer.is-open { visibility: visible; }
.nw-drawer__backdrop { position: absolute; inset: 0; background: rgba(23,34,45,.45); opacity: 0; transition: opacity .2s; }
.nw-drawer.is-open .nw-drawer__backdrop { opacity: 1; }
.nw-drawer__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(340px, 88vw); background: #fff; overflow-y: auto; transform: translateX(-100%); transition: transform .25s; padding: 0 14px 32px; box-sizing: border-box; }
.nw-drawer.is-open .nw-drawer__panel { transform: none; }
.nw-drawer__head { display: flex; justify-content: space-between; align-items: center; height: 64px; border-bottom: 1px solid var(--nw-line); margin: 0 -14px 6px; padding: 0 14px; }
.nw-drawer__head .nw-logo__img { height: 34px; }
.nw-drawer__head button { background: none; border: 0; font-size: 30px; line-height: 1; color: var(--nw-navy); cursor: pointer; }
.nw-drawer .nw-side__item { position: relative; }
.nw-side__toggle { position: absolute; right: 0; top: 0; width: 44px; height: 40px; border: 0; background: none; cursor: pointer; padding: 0; }
.nw-side__toggle span, .nw-side__toggle span::after { position: absolute; left: 50%; top: 50%; width: 12px; height: 1.8px; margin: -1px 0 0 -6px; background: var(--nw-pine); border-radius: 1px; transition: transform .28s ease; }
.nw-side__toggle span::after { content: ""; left: 0; top: 0; margin: 0; transform: rotate(90deg); }
.nw-side__toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.nw-side__toggle[aria-expanded="true"] span::after { transform: rotate(180deg); }
.nw-side__sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.nw-side__sub.is-open { grid-template-rows: 1fr; }
.nw-side__sub-in { overflow: hidden; min-height: 0; }
.nw-side__sub ul { list-style: none; margin: 0 0 8px 44px; padding: 0; opacity: 0; transform: translateY(-4px); transition: opacity .25s ease, transform .25s ease; }
.nw-side__sub.is-open ul { opacity: 1; transform: none; }
.nw-side__sub li a { display: block; padding: 7px 0; font-size: 14px; color: var(--nw-body); text-decoration: none; }
.nw-drawer .nw-side__chev { display: none; }
.nw-drawer__link { display: block; margin-top: 14px; padding: 12px 10px; border-top: 1px solid var(--nw-line); font: 600 14px var(--nw-text); color: var(--nw-navy); text-decoration: none; }
html.nw-drawer-open { overflow: hidden; }

/* ---------- homepage shell ---------- */
.home .site-main > .ct-container-full { padding-block: 0 !important; }
.home .hero-section, .home .entry-header { display: none; }
.entry-content > .nw-home { max-width: none !important; width: auto; margin: 0 !important; }
.nw-home { padding: 24px var(--nw-gut) 0; }
.nw-section { margin: 0 0 52px; }
.nw-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 16px; flex-wrap: wrap; }
.nw-sec-head h2 { font-size: 24px; margin: 0; }
.nw-more { font: 500 14px/1.2 var(--nw-text); color: var(--nw-pine); white-space: nowrap; text-decoration: none; }
.nw-more::after { content: " \2192"; }
.nw-more:hover { color: var(--nw-pine-d); text-decoration: underline; text-underline-offset: 3px; }

/* hero: one flat ink panel, copy left, three product shots right */
.nw-hero { position: relative; border-radius: var(--nw-r); overflow: hidden; background: var(--nw-navy); color: #fff; display: grid; grid-template-columns: 1fr 1fr; min-height: 380px; margin-bottom: 48px; }
.nw-hero--solo { grid-template-columns: 1fr; }
.nw-hero__copy { position: relative; padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; }
.nw-hero h1 { font-size: 52px; line-height: 1.04; letter-spacing: -.025em; color: #fff; margin: 0 0 16px; }
.nw-hero p { color: #B4C0CA; font-size: 16px; line-height: 1.55; max-width: 400px; margin: 0 0 28px; }
.nw-hero__ctas { display: flex; gap: 10px; flex-wrap: wrap; }
.nw-hero__shots { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; padding: 24px 24px 24px 0; }
.nw-hero__shots--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.nw-hero__shots--2 { grid-template-rows: 1fr; }
.nw-hero__shot { background: #fff; border-radius: var(--nw-r-sm); display: grid; place-items: center; padding: 16px 16px 42px; position: relative; overflow: hidden; text-decoration: none; }
.nw-hero__shot img { width: 100%; height: 100%; max-height: 140px; object-fit: contain; }
.nw-hero__shot.is-big { grid-row: 1 / 3; }
.nw-hero__shots--2 .nw-hero__shot.is-big { grid-row: auto; }
.nw-hero__shot.is-big img { max-height: 280px; }
.nw-hero__shot span { position: absolute; left: 14px; right: 14px; bottom: 13px; font: 500 12.5px/1.3 var(--nw-text); color: var(--nw-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* product cards & rails */
.nw-rail { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.nw-card { position: relative; background: #fff; border: 1px solid var(--nw-line); border-radius: var(--nw-r); overflow: hidden; display: flex; flex-direction: column; transition: border-color .15s; }
.nw-card:hover { border-color: var(--nw-line-h); }
.nw-badge { position: absolute; top: 10px; left: 10px; z-index: 1; font: 600 11px/1 var(--nw-text); padding: 5px 7px; border-radius: 4px; background: var(--nw-navy); color: #fff; }
.nw-badge--sale { background: var(--nw-sale); color: #fff; }
.nw-card__img { aspect-ratio: 1 / 1; display: grid; place-items: center; padding: 16px; background: #fff; }
.nw-card__img img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
.nw-card__meta { padding: 12px 14px 14px; border-top: 1px solid var(--nw-line-2); display: flex; flex-direction: column; gap: 4px; flex: 1; }
.nw-card__brand { font: 500 12px/1.2 var(--nw-text); color: var(--nw-muted); }
.nw-card__title { font: 500 14px/1.35 var(--nw-text); color: var(--nw-navy); text-decoration: none; }
.nw-card__title::after { content: ""; position: absolute; inset: 0; } /* the whole card is the product link */
.nw-card__opts { font-size: 12px; color: var(--nw-muted); }
.nw-card__row { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 6px; }
.nw-price { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.nw-price b { font: 600 16px/1 var(--nw-slab); color: var(--nw-navy); }
.nw-price s { font-size: 12px; color: var(--nw-muted); }
.nw-price__from { font-size: 12px; color: var(--nw-muted); }
.nw-price__off { font: 600 12px/1 var(--nw-text); color: var(--nw-sale); }
.nw-add { position: relative; z-index: 2; width: 34px; height: 34px; border-radius: var(--nw-r-sm); border: 1px solid var(--nw-line); color: var(--nw-navy); display: grid; place-items: center; background: #fff; flex: none; text-decoration: none; transition: background .15s, color .15s, border-color .15s; }
.nw-add:hover { background: var(--nw-pine); border-color: var(--nw-pine); color: #fff; }
.nw-add.loading { opacity: .5; }
.nw-add.added::after, .nw-card .added_to_cart { display: none; }

/* technique tiles: a photo tile when the Media Library has one, otherwise a product tile from the category */
.nw-tech { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.nw-tech--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nw-tech--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nw-tile { position: relative; border-radius: var(--nw-r); overflow: hidden; aspect-ratio: 4 / 5; padding: 18px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; text-decoration: none; background: var(--nw-navy); }
.nw-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.nw-tile.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(23,34,45,0) 50%, rgba(23,34,45,.75)); }
.nw-tile .nw-slab, .nw-tile__line { position: relative; z-index: 1; }
.nw-tile .nw-slab { color: #fff; font-size: 22px; }
.nw-tile__line { font-size: 13px; color: #D3DAE0; margin-top: 4px; }
.nw-tile--product { aspect-ratio: auto; display: grid; grid-template-columns: 88px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; column-gap: 16px; padding: 12px 16px 12px 12px; background: #fff; border: 1px solid var(--nw-line); color: var(--nw-navy); transition: border-color .15s; }
.nw-tile--product:hover { border-color: var(--nw-line-h); }
.nw-tile__pic { grid-row: 1 / 3; display: grid; place-items: center; width: 88px; height: 88px; padding: 6px; box-sizing: border-box; }
.nw-tile__pic img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
.nw-tile--product .nw-slab { align-self: end; color: var(--nw-navy); font-size: 16px; }
.nw-tile--product .nw-tile__line { align-self: start; color: var(--nw-muted); }

/* offer + promo panels */
.nw-promos { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 12px; }
.nw-promos--1 { grid-template-columns: 1fr; }
.nw-promos--2 { grid-template-columns: 1.3fr 1fr; }
.nw-panel { position: relative; border-radius: var(--nw-r); padding: 24px; min-height: 210px; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; overflow: hidden; text-decoration: none; }
.nw-panel--offer { background: var(--nw-pine); color: #fff; }
.nw-panel--offer .nw-slab { color: #fff; font-size: 34px; margin-top: 8px; }
.nw-panel--offer .nw-label { color: rgba(255,255,255,.72); }
.nw-panel small { display: block; font-size: 12.5px; color: rgba(255,255,255,.72); }
.nw-code { display: inline-flex; align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); border-radius: 4px; padding: 8px 12px; font: 600 14px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .08em; margin-bottom: 10px; }
.nw-panel--img { background: #fff; border: 1px solid var(--nw-line); color: var(--nw-body); transition: border-color .15s; }
.nw-panel--img:hover { border-color: var(--nw-line-h); }
.nw-panel--img .nw-slab { font-size: 22px; position: relative; z-index: 1; }
.nw-panel--img .nw-more { align-self: flex-start; position: relative; z-index: 1; }
.nw-panel--img img { position: absolute; right: -6px; bottom: -6px; width: 52%; height: auto; object-fit: contain; }

/* service strip: the three promises, worded from the policy facts */
.nw-why { background: #fff; border-block: 1px solid var(--nw-line); margin: 0 calc(-1 * var(--nw-gut)) 52px; padding: 26px var(--nw-gut); }
.nw-why__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.nw-why__col { display: grid; grid-template-columns: 22px 1fr; column-gap: 14px; align-items: start; }
.nw-why__col .nw-icon { color: var(--nw-pine); grid-row: 1 / 3; margin-top: 1px; }
.nw-why__col h3 { font: 600 15px/1.3 var(--nw-slab); color: var(--nw-navy); margin: 0 0 4px; }
.nw-why__col p { color: var(--nw-muted); font-size: 13.5px; line-height: 1.5; margin: 0; }

/* brands */
.nw-brands { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.nw-brand { height: 84px; background: #fff; border: 1px solid var(--nw-line); border-radius: var(--nw-r); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 10px; text-align: center; text-decoration: none; transition: border-color .15s; box-sizing: border-box; }
.nw-brand:hover { border-color: var(--nw-line-h); }
.nw-brand img { max-height: 40px; width: auto; max-width: 100%; object-fit: contain; }
.nw-brand-name { font: 600 16px/1.15 var(--nw-slab); color: var(--nw-navy); }
.nw-brand small { font-size: 11px; color: var(--nw-muted); }
.nw-az { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 24px; }
.nw-az a { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--nw-line); border-radius: var(--nw-r-sm); font: 700 16px var(--nw-slab); color: var(--nw-navy); text-decoration: none; background: #fff; }
.nw-az a { font: 600 15px var(--nw-slab); transition: border-color .15s; }
.nw-az a:hover { border-color: var(--nw-line-h); }
.nw-az__head { font-size: 24px; margin: 36px 0 12px; }

/* ---------- footer (structure after the reference: lead | link columns | payments + support; legal line) ---------- */
.nw-footer { background: var(--nw-navy); color: #AEBAC4; font-size: 14px; padding: 0 var(--nw-gut); }
.nw-footer a { color: inherit; text-decoration: none; }
.nw-footer a:hover { color: #fff; }
.nw-footer__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.2fr) minmax(0, 1.1fr); gap: 48px; padding: 56px 0 44px; }
.nw-footer__logo .nw-logo__img { height: 40px; }
.nw-footer__lead h4 { font: 700 22px/1.2 var(--nw-sys); letter-spacing: -.01em; color: #fff; margin: 26px 0 10px; }
.nw-footer__lead p { margin: 0 0 22px; max-width: 380px; line-height: 1.55; }
.nw-footer__ctas { display: flex; gap: 10px; flex-wrap: wrap; }
.nw-footer__ctas .nw-btn { height: 44px; }
.nw-footer__ctas .nw-btn--pine { color: #fff; }
.nw-footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.nw-fcol + .nw-fcol { margin-top: 26px; }
.nw-footer h5 { font: 600 12px/1 var(--nw-sys); letter-spacing: .08em; text-transform: uppercase; color: #7F8C98; margin: 0 0 14px; }
.nw-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.nw-footer__marks { display: flex; gap: 8px; flex-wrap: wrap; }
.nw-pay { display: block; width: 46px; height: 29px; border-radius: 4px; }
.nw-pay--text { display: grid; place-items: center; width: auto; padding: 0 8px; background: #fff; color: var(--nw-navy); font: 600 11px var(--nw-sys); }
.nw-footer__support { margin-top: 30px; }
.nw-footer__support h4 { font: 600 12px/1 var(--nw-sys); color: #7F8C98; margin: 0 0 14px; letter-spacing: .08em; text-transform: uppercase; }
.nw-footer__support-grid { display: grid; gap: 14px; }
.nw-footer ul.nw-footer__hours { gap: 4px; font-size: 13.5px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.14); }
.nw-footer address { font-style: normal; display: grid; gap: 4px; font-size: 13.5px; line-height: 1.45; }
.nw-footer address a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.3); }
.nw-footer__legal { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px 0; padding: 20px 0 26px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; color: #8D9AA6; }
.nw-footer__legal > * { padding: 0 14px; }
.nw-footer__legal > * + * { border-left: 1px solid rgba(255,255,255,.18); }

/* ---------- product page ---------- */
.single-product .hero-section { padding-top: 22px; padding-bottom: 0; margin-bottom: 0; }
.single-product .ct-breadcrumbs { font: 400 13px/1.4 var(--nw-text); letter-spacing: 0; text-transform: none; color: var(--nw-muted); }
.single-product .ct-breadcrumbs span, .single-product .ct-breadcrumbs a { text-transform: none; letter-spacing: 0; }
.single-product .ct-breadcrumbs a { color: var(--nw-muted); }
.single-product .ct-breadcrumbs a:hover { color: var(--nw-pine); }
.single-product .site-main > .ct-container-full { padding-top: 0 !important; }
.single-product .product-entry-wrapper { display: grid !important; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 44px; align-items: start; padding-top: 18px; }
.single-product .product-entry-wrapper > .woocommerce-product-gallery, .single-product .product-entry-wrapper > .summary { width: auto !important; max-width: none !important; margin: 0 !important; float: none !important; }
.single-product .woocommerce-product-gallery { position: sticky; top: calc(var(--nw-top) + 20px); }
.single-product .ct-product-gallery-container { margin: 0 !important; }
.single-product .flexy-container .flexy { background: #fff; border: 1px solid var(--nw-line); border-radius: var(--nw-r); overflow: hidden; }
.single-product .flexy-view img, .single-product .ct-product-gallery-container .ct-media-container img { object-fit: contain !important; background: #fff; }
.single-product .flexy-pills { position: relative; margin-top: 12px !important; padding: 0 !important; }
.single-product .flexy-pills ol { gap: 10px !important; justify-content: flex-start !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 2px !important; margin: 0 !important; }
.single-product .flexy-pills ol::-webkit-scrollbar { display: none; }
.single-product .flexy-pills ol li { scroll-snap-align: start; width: 76px !important; height: 76px !important; flex: 0 0 76px !important; margin: 0 !important; border: 1px solid var(--nw-line); border-radius: var(--nw-r-sm); overflow: hidden; background: #fff; opacity: 1 !important; transition: border-color .15s; box-sizing: border-box; }
.single-product .flexy-pills ol li:hover { border-color: var(--nw-line-h); }
.single-product .flexy-pills ol li.active { border-color: var(--nw-navy); box-shadow: inset 0 0 0 1px var(--nw-navy); }
.single-product .woocommerce-product-gallery li .ct-media-container::after { display: none !important; }
.single-product .flexy-pills ol li .ct-media-container { height: 100%; border-radius: 0; }
.single-product .flexy-pills ol li img { object-fit: contain !important; padding: 6px; box-sizing: border-box; }
.nw-thumbs { padding: 0 34px !important; }
.nw-thumbs__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--nw-line); background: #fff; color: var(--nw-navy); display: grid; place-items: center; padding: 0; cursor: pointer; transition: opacity .15s; }
.nw-thumbs__arrow--prev { left: 0; }
.nw-thumbs__arrow--next { right: 0; }
.nw-thumbs.at-start .nw-thumbs__arrow--prev, .nw-thumbs.at-end .nw-thumbs__arrow--next { opacity: .3; pointer-events: none; }
.single-product .flexy-arrow-prev, .single-product .flexy-arrow-next { background: #fff !important; color: var(--nw-navy) !important; border: 1px solid var(--nw-line); }

.single-product .summary { display: flex; flex-direction: column; }
.nw-pdp__brand { align-self: flex-start; font: 500 14px/1.2 var(--nw-text); color: var(--nw-pine); text-decoration: none; margin-bottom: 8px; }
.nw-pdp__brand:hover { text-decoration: underline; text-underline-offset: 3px; }
.single-product .summary .product_title { font: 700 30px/1.15 var(--nw-slab); letter-spacing: -.015em; color: var(--nw-navy); margin: 0 0 8px; }
.single-product .summary .woocommerce-product-details__short-description { display: none; }
.single-product .summary .product_meta.nw-pdp__sku { display: block; }
.single-product .summary .nw-pdp__sku .sku { display: inline; }
.single-product .summary .product_meta:not(.nw-pdp__sku) { display: none; }
.nw-pdp__sku { font-size: 13px; color: var(--nw-muted); margin: 0 0 18px; }
.nw-pdp__sku .sku { color: var(--nw-body); font-weight: 500; margin-left: 4px; }
.single-product .summary > .price { font: 600 26px/1 var(--nw-slab) !important; color: var(--nw-navy) !important; margin: 0 0 20px !important; padding: 0 0 20px; border-bottom: 1px solid var(--nw-line); display: flex; gap: 10px; align-items: baseline; }
.single-product .summary .price del { font-size: 17px; color: var(--nw-muted); font-weight: 400; }
.single-product .summary .price ins { text-decoration: none; }
.single-product .ct-product-divider { display: none !important; }
.single-product table.variations { margin: 0 0 6px; border: 0; }
.single-product form.nw-has-opts table.variations { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nw-opts { margin: 0 0 18px; }
.nw-opts__summary { font: 500 15px/1.3 var(--nw-sys); color: var(--nw-navy); padding: 0 0 14px; margin: 0 0 16px; border-bottom: 1px solid var(--nw-line); }
.nw-opts__summary:empty { display: none; }
.nw-opt { margin-bottom: 18px; }
.nw-opt__head { font-size: 14px; color: var(--nw-muted); margin-bottom: 10px; }
.nw-opt__name { font-weight: 600; color: var(--nw-navy); }
.nw-opt__val { color: var(--nw-body); font-weight: 400; }
.nw-opt__list { display: flex; flex-wrap: wrap; gap: 8px; }
.nw-chip { min-width: 46px; height: 40px; padding: 0 14px; border: 1px solid var(--nw-line-h); border-radius: var(--nw-r-sm); background: #fff; color: var(--nw-navy); font: 400 14px/1 var(--nw-sys); cursor: pointer; transition: border-color .12s, opacity .12s; }
.nw-chip:hover { border-color: var(--nw-navy); }
.nw-chip.is-on { border-color: var(--nw-navy); color: var(--nw-navy); font-weight: 500; box-shadow: inset 0 0 0 1px var(--nw-navy); }
.nw-chip:focus-visible { outline: 2px solid var(--nw-pine); outline-offset: 2px; }
.nw-chip.is-off { opacity: .4; }
.nw-chip.is-off.is-on { opacity: 1; }
.nw-opt--img .nw-chip { width: 66px; height: 66px; padding: 4px; }
.nw-opt--img .nw-chip img { width: 100%; height: 100%; object-fit: contain; display: block; }
.single-product .reset_variations { display: none !important; }
.single-product .woocommerce-variation-price, .single-product .woocommerce-variation-description { display: none; }
.single-product .stock { font-size: 13.5px; color: var(--nw-pine); font-weight: 500; margin: 4px 0 14px; }
.single-product .stock.out-of-stock { color: #9B3A2E; }
.single-product form.cart:not(.variations_form), .single-product .woocommerce-variation-add-to-cart { display: flex !important; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.single-product form.cart .quantity { margin: 0 !important; height: 52px; width: 132px; display: flex !important; align-items: stretch; border: 1px solid var(--nw-line-h) !important; border-radius: var(--nw-r-sm) !important; background: #fff !important; box-shadow: none !important; overflow: hidden; box-sizing: border-box; }
.single-product form.cart .quantity::before, .single-product form.cart .quantity::after { display: none !important; }
.single-product form.cart .quantity input.qty { flex: 1; width: auto !important; min-width: 0; height: 100% !important; border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; margin: 0 !important; text-align: center; font: 600 16px var(--nw-sys); color: var(--nw-navy); -moz-appearance: textfield; }
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button, .single-product form.cart .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.single-product form.cart .quantity .ct-increase, .single-product form.cart .quantity .ct-decrease { position: static !important; flex: 0 0 40px; width: 40px !important; height: 100% !important; border: 0 !important; background: transparent !important; display: grid !important; place-items: center; color: var(--nw-navy); cursor: pointer; transform: none !important; }
.single-product form.cart .quantity .ct-decrease { order: 1; }
.single-product form.cart .quantity input.qty { order: 2; }
.single-product form.cart .quantity .ct-increase { order: 3; }
.single-product form.cart .quantity .ct-increase:hover, .single-product form.cart .quantity .ct-decrease:hover { background: var(--nw-off) !important; }
.single-product .single_variation_wrap, .single-product .ct-product-add-to-cart, .single-product form.cart { width: 100%; }
.single-product .ct-cart-actions { display: flex !important; gap: 12px; width: 100%; align-items: stretch; }
.single-product .single_add_to_cart_button { flex: 1 1 auto !important; width: auto !important; min-width: 200px; height: 52px !important; border-radius: var(--nw-r-sm) !important; background: var(--nw-pine) !important; font: 600 15px/1 var(--nw-text) !important; letter-spacing: 0 !important; text-transform: none !important; }
.single-product .single_add_to_cart_button:hover { background: var(--nw-pine-d) !important; }
.single-product .single_add_to_cart_button.disabled { opacity: .55; }
.nw-pdp__service { margin-top: 22px; background: #fff; border: 1px solid var(--nw-line); border-radius: var(--nw-r); padding: 18px 20px; display: grid; gap: 12px; }
.nw-pdp__service-row { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--nw-navy); }
.nw-pdp__service-row .nw-icon { color: var(--nw-pine); }
.nw-pdp__ask { border-top: 1px solid var(--nw-line-2); padding-top: 12px; font-size: 13.5px; color: var(--nw-muted); }
.nw-pdp__ask a { color: var(--nw-pine); font-weight: 600; }

.nw-pdp__more { margin-top: 48px; }
.nw-pdp__nav { position: sticky; top: var(--nw-top); z-index: 5; display: flex; gap: 28px; flex-wrap: wrap; background: var(--nw-off); border-bottom: 1px solid var(--nw-line); margin-bottom: 8px; }
.nw-pdp__nav a { font: 500 14.5px/1 var(--nw-text); color: var(--nw-muted); text-decoration: none; white-space: nowrap; flex: none; padding: 16px 0 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .12s, border-color .12s; }
.nw-pdp__nav a:hover { color: var(--nw-navy); border-bottom-color: var(--nw-line-h); }
.nw-pdp__sec { padding: 34px 0; border-bottom: 1px solid var(--nw-line); scroll-margin-top: calc(var(--nw-top) + 64px); }
.nw-pdp__sec > h2 { font-size: 22px; margin: 0 0 18px; }
.nw-pdp__desc { max-width: 780px; font-size: 15.5px; line-height: 1.7; color: var(--nw-body); }
.nw-pdp__desc h2, .nw-pdp__desc h3, .nw-pdp__desc h4 { font-size: 19px; margin: 1.4em 0 .5em; }
.nw-pdp__desc ul { padding-left: 1.2em; }
.nw-pdp__desc table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 18px 0; background: #fff; }
.nw-pdp__desc table th, .nw-pdp__desc table td { border: 1px solid var(--nw-line); padding: 8px 10px; text-align: left; }
.nw-pdp__desc img { height: auto; border-radius: var(--nw-r-sm); }
.nw-vtable-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--nw-line); border-radius: var(--nw-r); }
.nw-vtable { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; }
.nw-vtable th { font: 600 12.5px/1 var(--nw-text); color: var(--nw-muted); text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--nw-line); background: #F8F9FA; }
.nw-vtable td { padding: 10px 16px; border-bottom: 1px solid var(--nw-line-2); vertical-align: middle; color: var(--nw-navy); }
.nw-vtable tr:last-child td { border-bottom: 0; }
.nw-vtable__opt { display: flex; align-items: center; gap: 12px; font-weight: 500; }
.nw-vtable__opt img { width: 44px; height: 44px; object-fit: contain; border: 1px solid var(--nw-line-2); border-radius: 6px; background: #fff; }
.nw-vtable__sku { color: var(--nw-muted); font-size: 13px; }
.nw-vtable__price { font-weight: 600; white-space: nowrap; }
.nw-vtable td:last-child { text-align: right; }
.nw-pdp__policy { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; max-width: 980px; }
.nw-pdp__policy h3 { font: 600 16px var(--nw-slab); margin: 0 0 10px; }
.nw-pdp__policy ul { margin: 0 0 10px; padding-left: 1.1em; font-size: 14.5px; line-height: 1.6; }
.nw-pdp__policy p { font-size: 14.5px; line-height: 1.6; margin: 0 0 10px; }
.nw-pdp__related { border-bottom: 0; }
.single-product .woocommerce-tabs, .single-product .related, .single-product .upsells { display: none; }

/* ---------- shop / category / brand archives: left-aligned title, the homepage card in a denser grid ---------- */
.woocommerce-archive .hero-section { background: none; }
.woocommerce-archive .hero-section .entry-header { max-width: none; min-height: 0; height: auto; width: var(--theme-container-width); margin: 0 auto; padding: 28px 0 0; text-align: left; align-items: flex-start; }
.woocommerce-archive .hero-section .page-title { font: 700 28px/1.15 var(--nw-slab); letter-spacing: -.015em; color: var(--nw-navy); margin: 0; }
.woocommerce-archive .hero-section .page-description { max-width: 680px; margin-top: 8px; color: var(--nw-muted); font-size: 14.5px; }
.woocommerce-archive .site-main > .ct-container[data-vertical-spacing] { padding-top: 18px; }
.woocommerce-archive .woo-listing-top { align-items: center; margin-bottom: 16px; }
.woocommerce-archive .woocommerce-result-count { font: 400 13.5px/1 var(--nw-text); letter-spacing: 0; text-transform: none; color: var(--nw-muted); }
.woocommerce-archive ul.products[data-products] { --grid-columns-gap: 12px; gap: 12px; }
ul.products > li.nw-li { display: flex; margin: 0; padding: 0; background: none; border: 0; }
ul.products > li.nw-li > .nw-card { flex: 1; }
@media (min-width: 981px) {
	.woocommerce-archive ul.products[data-products] { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
	.woocommerce-archive .woocommerce-ordering select { height: 38px; border: 1px solid var(--nw-line-h); border-radius: var(--nw-r-sm); background-color: #fff; font: 400 14px var(--nw-text); color: var(--nw-navy); }
}
@media (max-width: 980px) {
	.woocommerce-archive ul.products[data-products] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.woocommerce-archive .hero-section .entry-header { padding-top: 20px; }
	.woocommerce-archive .hero-section .page-title { font-size: 24px; }
	.nw-card__img { padding: 10px; }
	.nw-card__meta { padding: 10px 10px 12px; }
}
.woocommerce-pagination .page-numbers { border-radius: var(--nw-r-sm) !important; }

/* ---------- motion & responsive ---------- */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.nw-card:hover .nw-card__img img, .nw-tile--product:hover .nw-tile__pic img { transform: scale(1.03); }
	.nw-tile:hover .nw-tile__img { transform: scale(1.03); }
}
@media (prefers-reduced-motion: reduce) {
	.nw-fly, .nw-drawer__panel, .nw-drawer__backdrop { transition: none; }
}
@media (max-width: 1280px) {
	.nw-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.nw-rail .nw-card:nth-child(n+5) { display: none; }
	.nw-hero h1 { font-size: 44px; }
	.nw-brands { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
	:root { --nw-gut: 16px; }
	.nw-side { display: none; }
	.nw-bar { grid-template-columns: auto 1fr auto; height: auto; padding: 10px 16px; gap: 12px; }
	.nw-burger { display: block; }
	.nw-logo__img { height: 34px; }
	.nw-search { grid-column: 1 / -1; order: 3; max-width: none; }
	.nw-tools__lbl { display: none; }
	.nw-search button { padding: 0 16px; }
	.nw-announce__row span:nth-of-type(n+2), .nw-announce i { display: none; }
	.nw-home { padding-top: 16px; }
	.nw-hero { grid-template-columns: 1fr; }
	.nw-hero__copy { padding: 32px 22px 24px; }
	.nw-hero h1 { font-size: 36px; }
	.nw-hero__shots { padding: 0 14px 14px; grid-template-rows: auto; }
	.nw-hero__shot.is-big { grid-row: auto; grid-column: 1 / -1; }
	.nw-hero__shot.is-big img { max-height: 170px; }
	.nw-hero__shot img { max-height: 96px; }
	.nw-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nw-rail .nw-card:nth-child(n+5) { display: flex; }
	.nw-tech, .nw-tech--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nw-promos, .nw-promos--2 { grid-template-columns: 1fr; }
	.nw-why__cols { grid-template-columns: 1fr; gap: 18px; }
	.nw-pdp__nav { gap: 20px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
	.nw-brands { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nw-footer__grid { grid-template-columns: 1fr; gap: 36px; padding-top: 40px; }
	.single-product .product-entry-wrapper { grid-template-columns: 1fr; gap: 24px; }
	.single-product .woocommerce-product-gallery { position: static; }
	.single-product .summary .product_title { font-size: 25px; }
	.nw-pdp__policy { grid-template-columns: 1fr; }
	.nw-vtable th:nth-child(2), .nw-vtable td:nth-child(2) { display: none; }
}
@media (max-width: 480px) {
	.nw-panel--offer .nw-slab { font-size: 30px; }
	.nw-sec-head h2 { font-size: 21px; }
	.nw-brands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nw-tech:has(.nw-tile--product) { grid-template-columns: 1fr; gap: 8px; }
	.nw-tile__pic { width: 72px; height: 72px; }
	.nw-tile--product { grid-template-columns: 72px minmax(0, 1fr); }
}

/* ---- business details card (policy pages, Contact, About: {{store.contact_block}}): label | value rows ---- */
.store-biz { margin: 20px 0 0; padding: 0; max-width: 640px; background: var(--nw-white); border: 1px solid var(--nw-line); border-radius: var(--nw-r); }
.store-biz > div { display: grid; grid-template-columns: 112px 1fr; gap: 16px; padding: 14px 20px; border-top: 1px solid var(--nw-line); }
.store-biz > div:first-child { border-top: 0; }
.store-biz dt { font: 600 11px/22px var(--nw-text); letter-spacing: .08em; text-transform: uppercase; color: var(--nw-muted); margin: 0; }
.store-biz dd { margin: 0; font-size: 15px; line-height: 22px; color: var(--nw-navy); overflow-wrap: anywhere; }
.store-biz a { color: var(--nw-pine); text-decoration: none; font-weight: 500; }
.store-biz a:hover { text-decoration: underline; }
@media (max-width: 480px) { .store-biz > div { grid-template-columns: 1fr; gap: 2px; padding: 12px 16px; } }

/* ---- About ---- */
.store-about-hero { padding: 56px var(--nw-gut) 40px; background: var(--nw-navy); color: #fff; }
.store-about-hero .store-eyebrow { font: 600 12px/1 var(--nw-text); letter-spacing: .1em; text-transform: uppercase; color: var(--nw-brass); margin: 0 0 14px; }
.store-about-hero h1 { color: #fff; font-size: clamp(30px, 4vw, 44px); line-height: 1.1; letter-spacing: -.01em; margin: 0; }

/* ---- brand archive: brand header (logo card, name, count) and category chips instead of Blocksy's image hero ---- */
.nw-brand-archive .hero-section { display: none; }
.nw-brand-archive .woocommerce-products-header { margin: 10px 0 22px; }
.nw-brandhead { display: flex; align-items: center; gap: 22px; }
.nw-brandhead__logo { flex: 0 0 auto; width: 176px; height: 104px; display: flex; align-items: center; justify-content: center; padding: 16px 20px; box-sizing: border-box; background: var(--nw-white); border: 1px solid var(--nw-line); border-radius: var(--nw-r); }
.nw-brandhead__logo img { max-width: 100%; max-height: 64px; width: auto; height: auto; object-fit: contain; }
.nw-brandhead__all { display: inline-block; font: 500 13px/1 var(--nw-text); color: var(--nw-muted); text-decoration: none; margin-bottom: 8px; }
.nw-brandhead__all::before { content: "← "; }
.nw-brandhead__all:hover { color: var(--nw-pine); }
.nw-brandhead__title { font: 700 28px/1.15 var(--nw-slab); letter-spacing: -.015em; color: var(--nw-navy); margin: 0; }
.nw-brandhead__count { margin: 6px 0 0; font-size: 14px; color: var(--nw-muted); }
.nw-brandhead__desc { max-width: 680px; margin-top: 8px; font-size: 14.5px; color: var(--nw-body); }
.nw-catchips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.nw-catchip { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; background: var(--nw-white); border: 1px solid var(--nw-line); border-radius: 999px; font: 500 13.5px/1 var(--nw-text); color: var(--nw-navy); text-decoration: none; transition: border-color .15s, color .15s; }
.nw-catchip span { font-size: 12px; color: var(--nw-muted); }
.nw-catchip:hover { border-color: var(--nw-pine); color: var(--nw-pine); }
.nw-catchip.is-on { border-color: var(--nw-pine); background: var(--nw-pine-l); color: var(--nw-pine); }
.nw-catchip.is-on span { color: var(--nw-pine); }
@media (max-width: 689px) {
	.nw-brandhead { gap: 14px; }
	.nw-brandhead__logo { width: 112px; height: 72px; padding: 10px 12px; }
	.nw-brandhead__logo img { max-height: 44px; }
	.nw-brandhead__title { font-size: 24px; }
	.nw-catchips { flex-wrap: nowrap; overflow-x: auto; margin: 16px calc(-1 * var(--nw-gut)) 0; padding: 0 var(--nw-gut) 2px; scrollbar-width: none; }
	.nw-catchips::-webkit-scrollbar { display: none; }
	.nw-catchip { flex: 0 0 auto; }
}

/* option with a single value (368 products have one): a spec line, not a lone chip */
.nw-opt--fixed .nw-opt__list { display: none; }
.nw-opt--fixed .nw-opt__head { margin-bottom: 0; }
.nw-opts__summary[hidden] { display: none; }

/* Cart drawer line items: − qty + stepper and line total (functions.php → woocommerce_widget_cart_item_quantity) */
.store-cart-drawer__body .product-data { min-width: 0; padding-right: 28px; /* clear of the remove icon */ }
.store-cart-drawer__body .store-mq { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.store-cart-drawer__body .store-mq__step { display: inline-flex; align-items: stretch; height: 34px; border: 1px solid var(--wp--preset--color--border); border-radius: 6px; background: #fff; overflow: hidden; }
.store-cart-drawer__body .store-mq__step button { width: 34px; border: 0; padding: 0; background: transparent; color: var(--wp--preset--color--ink); font-size: 18px; line-height: 1; cursor: pointer; }
.store-cart-drawer__body .store-mq__step button:hover:not(:disabled) { background: var(--wp--preset--color--surface); }
.store-cart-drawer__body .store-mq__step button:disabled { opacity: .35; cursor: default; }
.store-cart-drawer__body .store-mq__n { min-width: 32px; display: grid; place-items: center; font-weight: 600; font-size: .9375rem; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--ink); }
.store-cart-drawer__body .store-mq__price { font-weight: 600; color: var(--wp--preset--color--ink); white-space: nowrap; }
.store-cart-drawer__body .store-mq.is-busy { opacity: .55; pointer-events: none; }

/* Dead ends (product search without results, 404): search, category chips, popular products (inc/catalog.php → nw_discover) */
.search.woocommerce-archive .hero-section .page-description { display: none; } /* Blocksy's "Sorry, but nothing matched…": nw_discover says it once */
.nw-discover__lead { margin: 0 0 16px; color: var(--nw-body); font-size: 15px; }
.nw-discover { text-align: left; }
.nw-discover .nw-search { max-width: 560px; }
.nw-discover .nw-catchips { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; }
.nw-discover__head { font: 600 17px/1.2 var(--nw-slab); color: var(--nw-navy); margin: 28px 0 12px; }
.error404 .nw-discover { max-width: var(--theme-container-width, 1200px); margin: 24px auto 0; }
.error404 .nw-discover .nw-search { margin: 0 auto; }
@media (max-width: 980px) {
	.nw-discover .nw-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.nw-discover .nw-rail .nw-card:nth-child(n+5) { display: none; }
}

/* Cart / checkout: a compact left-aligned page title over the blocks (style.css used to hide it and leave a gap) */
.woocommerce-cart .hero-section, .woocommerce-checkout .hero-section { margin: 0 auto; padding: 0; background: none; }
.woocommerce-checkout .hero-section { margin-bottom: 18px; }
.woocommerce-cart .hero-section .entry-header, .woocommerce-checkout .hero-section .entry-header { max-width: 1120px; width: 100%; min-height: 0; height: auto; margin: 0 auto; padding: 28px 0 0; text-align: left; align-items: flex-start; }
.woocommerce-cart .hero-section .page-title, .woocommerce-checkout .hero-section .page-title { font: 700 28px/1.15 var(--nw-slab); letter-spacing: -.015em; color: var(--nw-navy); margin: 0; }
.woocommerce-cart .site-main > .ct-container-full[data-vertical-spacing], .woocommerce-checkout .site-main > .ct-container-full[data-vertical-spacing] { padding-top: 12px; }
@media (max-width: 980px) {
	.woocommerce-cart .hero-section .entry-header, .woocommerce-checkout .hero-section .entry-header { padding-top: 20px; }
	.woocommerce-cart .hero-section .page-title, .woocommerce-checkout .hero-section .page-title { font-size: 24px; }
}

/* Empty cart: the store's cards (inc/catalog.php) under a plain heading, no dotted rule */
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots { display: none; }
.wp-block-woocommerce-empty-cart-block h2.wp-block-heading { font: 600 20px/1.2 var(--nw-slab); color: var(--nw-navy); text-align: left !important; margin: 36px 0 14px; }
@media (max-width: 980px) {
	.nw-cart-empty__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.nw-cart-empty__rail .nw-card:nth-child(n+5) { display: none; }
}

/* All variations on phones: each row a card line (option on top, price and stock under it, Select on the right) —
   five table columns do not fit 375px and pushed Select off screen */
@media (max-width: 640px) {
	.nw-vtable-wrap { overflow: visible; }
	.nw-vtable, .nw-vtable tbody { display: block; }
	.nw-vtable thead { display: none; }
	.nw-vtable tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "opt opt" "price btn" "stock btn"; gap: 4px 12px; padding: 12px 14px; border-bottom: 1px solid var(--nw-line-2); }
	.nw-vtable tr:last-child { border-bottom: 0; }
	.nw-vtable td { display: block; padding: 0; border: 0; text-align: left; }
	.nw-vtable td:nth-child(1) { grid-area: opt; margin-bottom: 4px; }
	.nw-vtable td:nth-child(3) { grid-area: price; }
	.nw-vtable td:nth-child(4) { grid-area: stock; color: var(--nw-muted); font-size: 13px; }
	.nw-vtable td:nth-child(5) { grid-area: btn; align-self: center; text-align: right; }
}

/* Footer legal row on phones: copyright on its own line, links spaced without dividers (a wrapped line began with "|") */
@media (max-width: 640px) {
	.nw-footer__legal { gap: 8px 18px; }
	.nw-footer__legal > * { padding: 0; }
	.nw-footer__legal > * + * { border-left: 0; }
	.nw-footer__legal > span:first-child { flex-basis: 100%; text-align: center; }
}

/* Phones: the sticky header keeps the logo bar and search but lets the announcement scroll away (negative sticky
   top = its height, set by nw.js), and the product page's section tabs scroll with the page — together they took a
   quarter of the screen */
@media (max-width: 980px) {
	#main-container > #header { top: calc(-1 * var(--nw-ann, 0px)); }
	.nw-pdp__nav { position: static; }
}

/* ---- Holiday sale (inc/home.php nw_home_sale): category tiles + the biggest savings ---- */
.nw-sale__ends { display: block; margin-top: 6px; font: 500 14px/1.3 var(--nw-text); color: var(--nw-sale); }
.nw-sale__tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)); gap: 10px; margin-bottom: 14px; }
.nw-sale__tile { display: flex; flex-direction: column; gap: 6px; padding: 16px; min-height: 128px; background: var(--nw-white); border: 1px solid var(--nw-line); border-radius: var(--nw-r); text-decoration: none; color: var(--nw-body); transition: border-color .15s; }
.nw-sale__tile:hover { border-color: var(--nw-line-h); }
.nw-sale__pct { font: 700 30px/1 var(--nw-slab); color: var(--nw-sale); letter-spacing: -.02em; }
.nw-sale__pct span { font-size: 15px; font-weight: 600; letter-spacing: 0; }
.nw-sale__what { flex: 1; font: 600 14px/1.3 var(--nw-text); color: var(--nw-navy); }
.nw-sale__tile .nw-more { font-size: 13px; }

/* welcome coupon: code + Copy code (homepage panel and the welcome card) */
.nw-offer-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.nw-offer-row .nw-code { margin: 0; }
.nw-panel--offer .nw-btn--sm { height: 32px; }

/* ---- Newsletter: footer band ---- */
.nw-news { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px 48px; align-items: center; padding: 32px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.nw-news h4 { color: #fff; font-size: 20px; margin: 0 0 4px; }
.nw-news p { margin: 0; }
.nw-news__row { display: flex; gap: 8px; }
.nw-news__row input { flex: 1; min-width: 0; height: 44px; padding: 0 14px; border-radius: var(--nw-r-sm); border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.06); color: #fff; font: 400 15px/1 var(--nw-text); }
.nw-news__row input::placeholder { color: #8C99A5; }
.nw-news__row .nw-btn:disabled { opacity: .6; }
.nw-news__row input:focus { outline: 2px solid var(--nw-brass); outline-offset: 1px; background: rgba(255,255,255,.1); color: #fff; }
.nw-news__row input[aria-invalid="true"] { border-color: #E08A7E; }
.nw-news__fine { margin: 8px 0 0; font-size: 12.5px; line-height: 1.45; color: #8C99A5; }
.nw-news__fine a { text-decoration: underline; text-underline-offset: 2px; }
.nw-news__fine.is-error { color: #F0A69B; }
.nw-news__fine.is-done { color: #CFE3D6; font-size: 14px; }
.nw-news__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* ---- Welcome offer card (bottom-left corner, not a page-covering overlay) ---- */
.nw-welcome { position: fixed; right: 20px; bottom: 20px; z-index: 990; width: min(400px, calc(100vw - 32px)); border-radius: var(--nw-r); overflow: hidden; box-shadow: 0 18px 50px rgba(15, 25, 35, .28); animation: nw-welcome-in .28s ease-out; }
.nw-welcome[hidden] { display: none; }
@keyframes nw-welcome-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .nw-welcome { animation: none; } }
.nw-welcome__close { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: rgba(255,255,255,.8); font-size: 24px; line-height: 1; cursor: pointer; }
.nw-welcome__close:hover, .nw-welcome__close:focus-visible { background: rgba(255,255,255,.12); color: #fff; }
.nw-welcome__deal { background: var(--nw-pine); color: #fff; padding: 20px 20px 12px; }
.nw-welcome__deal .nw-label { color: rgba(255,255,255,.72); }
.nw-welcome__deal .nw-slab { color: #fff; font-size: 26px; margin: 6px 40px 6px 0; }
.nw-welcome__terms { display: block; font-size: 13px; color: rgba(255,255,255,.8); margin-bottom: 12px; }
.nw-welcome__news { background: var(--nw-navy); color: #AEBAC4; padding: 16px 20px 18px; }
.nw-welcome__news .nw-label { color: #7F8C98; font-size: 12px; }
.nw-welcome__lead { margin: 4px 0 10px; color: #fff; font: 600 15px/1.3 var(--nw-text); }
.nw-welcome .nw-news__fine a { color: inherit; }

/* subscribed toast (FluentCRM confirmation link lands on /?subscribed=1) */
.nw-toast { position: fixed; left: 50%; top: 18px; transform: translateX(-50%); z-index: 1000; width: min(560px, calc(100vw - 32px)); display: flex; align-items: flex-start; gap: 8px; padding: 14px 48px 14px 18px; background: var(--nw-pine); color: #fff; border-radius: var(--nw-r); box-shadow: 0 12px 34px rgba(15,25,35,.25); font-size: 14px; line-height: 1.45; }
.nw-toast[hidden] { display: none; }
.nw-toast b { color: #fff; }
.nw-toast button { position: absolute; top: 6px; right: 6px; width: 34px; height: 34px; border: 0; background: transparent; color: #fff; font-size: 22px; cursor: pointer; border-radius: 50%; }

/* checkout: newsletter box under the email field */
.woocommerce-checkout .nw-news-optin label { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--nw-body); }
.woocommerce-checkout .nw-news-optin input { margin-top: 3px; }

@media (max-width: 980px) {
	.nw-news { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.nw-sale__tiles { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 42%; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: calc(-1 * var(--nw-gut)); padding-right: var(--nw-gut); scrollbar-width: none; }
	.nw-sale__tiles::-webkit-scrollbar { display: none; }
	.nw-sale__tile { scroll-snap-align: start; }
	.nw-sale__tile { min-height: 112px; padding: 14px; }
	.nw-sale__pct { font-size: 26px; }
	.nw-welcome { left: 12px; right: 12px; bottom: 12px; width: auto; }
	.nw-welcome__deal { padding: 16px 16px 10px; }
	.nw-welcome__deal .nw-slab { font-size: 22px; }
	.nw-welcome__news { padding: 12px 16px 14px; }
	.nw-news__row { flex-direction: column; }
	.nw-news__row .nw-btn { width: 100%; }
	.nw-welcome .nw-news__row { flex-direction: row; } /* keep the corner card short on phones */
	.nw-welcome .nw-news__row .nw-btn { width: auto; }
}
