/* ==========================================================================
   Northwind design system — child of Hello Elementor
   1. Tokens  2. Base  3. Primitives  4. Header  5. Footer  6. Page heroes
   7. Blog  8. Prose  9. WooCommerce catalog  10. Product card
   11. Single product  12. Cart / Checkout blocks  13. My Account
   14. Elementor alignment  15. Responsive
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--nw-ink: #0f172a;
	--nw-body: #334155;
	--nw-muted: #64748b;
	--nw-line: #e2e8f0;
	--nw-line-strong: #cbd5e1;
	--nw-soft: #f8fafc;
	--nw-sand: #f6f2eb;
	--nw-brand: #1f4d43;
	--nw-brand-600: #2b6357;
	--nw-brand-50: #e8f1ee;
	--nw-accent: #c2620f;
	--nw-sale: #c81e1e;
	--nw-ok: #15803d;
	--nw-warn: #b45309;
	--nw-white: #ffffff;

	--nw-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--nw-font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;

	--nw-fs-xs: 0.78rem;
	--nw-fs-sm: 0.875rem;
	--nw-fs-base: 1rem;
	--nw-fs-lg: 1.125rem;
	--nw-fs-h4: 1.25rem;
	--nw-fs-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	--nw-fs-h2: clamp(1.6rem, 1.3rem + 1.3vw, 2.25rem);
	--nw-fs-h1: clamp(2rem, 1.5rem + 2.4vw, 3.25rem);

	--nw-radius: 14px;
	--nw-radius-sm: 10px;
	--nw-radius-xs: 6px;
	--nw-radius-pill: 999px;
	--nw-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 6px 20px rgba(15, 23, 42, .06);
	--nw-shadow-lg: 0 2px 4px rgba(15, 23, 42, .06), 0 18px 40px rgba(15, 23, 42, .10);

	--nw-max: 1240px;
	--nw-max-narrow: 760px;
	--nw-gutter: clamp(16px, 3vw, 32px);
	--nw-section: clamp(48px, 6vw, 88px);
	--nw-ease: cubic-bezier(.2, .7, .2, 1);
}

/* 2. Base ------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
body.nw-site {
	font-family: var(--nw-font);
	font-size: var(--nw-fs-base);
	line-height: 1.65;
	color: var(--nw-body);
	background: var(--nw-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
body.nw-site h1, body.nw-site h2, body.nw-site h3, body.nw-site h4, body.nw-site h5, body.nw-site h6 {
	font-family: var(--nw-font);
	color: var(--nw-ink);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin: 0 0 .5em;
}
body.nw-site h1 { font-size: var(--nw-fs-h1); letter-spacing: -0.03em; }
body.nw-site h2 { font-size: var(--nw-fs-h2); }
body.nw-site h3 { font-size: var(--nw-fs-h3); }
body.nw-site h4 { font-size: var(--nw-fs-h4); }
body.nw-site a { color: var(--nw-brand); text-decoration: none; transition: color .15s var(--nw-ease); }
body.nw-site a:not(.elementor-button):not(.button):not(.nw-btn):not(.wp-element-button):hover { color: var(--nw-accent); }
body.nw-site img { max-width: 100%; height: auto; }
body.nw-site :focus-visible { outline: 2px solid var(--nw-accent); outline-offset: 2px; }
body.nw-site ::selection { background: var(--nw-brand-50); color: var(--nw-ink); }

/* Form controls (site-wide, incl. WooCommerce classic forms) */
body.nw-site input[type=text], body.nw-site input[type=email], body.nw-site input[type=url],
body.nw-site input[type=password], body.nw-site input[type=search], body.nw-site input[type=number],
body.nw-site input[type=tel], body.nw-site textarea, body.nw-site select {
	font-family: var(--nw-font);
	font-size: var(--nw-fs-base);
	color: var(--nw-ink);
	background: var(--nw-white);
	border: 1px solid var(--nw-line-strong);
	border-radius: var(--nw-radius-sm);
	padding: .7rem .9rem;
	line-height: 1.4;
	transition: border-color .15s, box-shadow .15s;
}
body.nw-site input:focus, body.nw-site textarea:focus, body.nw-site select:focus {
	border-color: var(--nw-brand);
	box-shadow: 0 0 0 3px var(--nw-brand-50);
	outline: none;
}

/* Buttons: Hello's reset colours links/buttons pink — replace globally. */
body.nw-site button, body.nw-site input[type=submit], body.nw-site input[type=button],
body.nw-site .button, body.nw-site .nw-btn, body.nw-site .wp-element-button,
body.nw-site .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	font-family: var(--nw-font);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .01em;
	color: var(--nw-white);
	background: var(--nw-brand);
	border: 1px solid var(--nw-brand);
	border-radius: var(--nw-radius-sm);
	padding: .85rem 1.4rem;
	cursor: pointer;
	text-decoration: none;
	transition: background .15s var(--nw-ease), border-color .15s, color .15s, transform .15s;
}
body.nw-site button:hover, body.nw-site input[type=submit]:hover, body.nw-site .button:hover,
body.nw-site .nw-btn:hover, body.nw-site .wp-element-button:hover, body.nw-site .wp-block-button__link:hover {
	background: var(--nw-brand-600);
	border-color: var(--nw-brand-600);
	color: var(--nw-white);
}
body.nw-site button:disabled, body.nw-site .button.disabled, body.nw-site .button:disabled {
	opacity: .45;
	cursor: not-allowed;
}
.nw-btn--sm { padding: .55rem 1rem !important; font-size: .85rem !important; }
body.nw-site .nw-btn--ghost { background: transparent; color: var(--nw-brand); border-color: var(--nw-line-strong); }
body.nw-site .nw-btn--ghost:hover { background: var(--nw-brand-50); color: var(--nw-brand); border-color: var(--nw-brand); }
body.nw-site .nw-btn--light { background: var(--nw-white); color: var(--nw-ink); border-color: var(--nw-white); }
body.nw-site .nw-btn--light:hover { background: var(--nw-sand); color: var(--nw-ink); border-color: var(--nw-sand); }
body.nw-site .nw-btn--outline-light { background: transparent; color: var(--nw-white); border-color: rgba(255,255,255,.5); }
body.nw-site .nw-btn--outline-light:hover { background: rgba(255,255,255,.1); color: var(--nw-white); border-color: var(--nw-white); }

/* Hello constrains .site-main; Northwind templates manage their own widths. */
body.nw-site main.site-main.nw-blog, body.nw-site main.site-main.nw-page, body.nw-site main.site-main.nw-single, body.nw-site main.site-main.nw-404 { max-width: none !important; width: 100%; padding: 0 !important; margin: 0 !important; }

/* 3. Primitives ------------------------------------------------------------ */
.nw-wrap { width: 100%; max-width: var(--nw-max); margin-inline: auto; padding-inline: var(--nw-gutter); box-sizing: border-box; }
.nw-wrap--narrow { max-width: calc(var(--nw-max-narrow) + 2 * var(--nw-gutter)); }
.nw-section { padding-block: var(--nw-section); }
.nw-section--soft { background: var(--nw-soft); }
.nw-section-title { font-size: var(--nw-fs-h3) !important; margin: 0 0 1.25rem !important; }
.nw-eyebrow {
	display: inline-block;
	font-size: var(--nw-fs-xs);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--nw-accent);
	margin-bottom: .6rem;
}
.nw-icon { flex: none; display: inline-block; vertical-align: middle; }
.nw-dot { color: var(--nw-line-strong); }
.nw-empty { color: var(--nw-muted); }

.nw-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 0; }
.nw-chips--center { justify-content: center; }
body.nw-site .nw-chip {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .45rem .95rem;
	font-size: var(--nw-fs-sm);
	font-weight: 600;
	color: var(--nw-body);
	background: var(--nw-white);
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius-pill);
	transition: all .15s var(--nw-ease);
	white-space: nowrap;
}
body.nw-site .nw-chip:hover { border-color: var(--nw-brand); color: var(--nw-brand); }
body.nw-site .nw-chip.is-active { background: var(--nw-brand); border-color: var(--nw-brand); color: var(--nw-white); }
body.nw-site .nw-chip--sm { padding: .25rem .7rem; font-size: var(--nw-fs-xs); }
body.nw-site .nw-chip--brand { background: var(--nw-brand-50); border-color: transparent; color: var(--nw-brand); }
.nw-chip__count { font-size: var(--nw-fs-xs); opacity: .6; font-weight: 500; }

body.nw-site .nw-link-arrow { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; font-size: var(--nw-fs-sm); }
body.nw-site .nw-link-arrow .nw-icon { transition: transform .15s var(--nw-ease); }
body.nw-site .nw-link-arrow:hover .nw-icon { transform: translateX(3px); }

.nw-breadcrumb, .woocommerce .woocommerce-breadcrumb.nw-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45rem;
	font-size: var(--nw-fs-sm);
	color: var(--nw-muted);
	margin: 0 0 1rem;
}
.nw-breadcrumb a { color: var(--nw-muted) !important; }
.nw-breadcrumb a:hover { color: var(--nw-brand) !important; }
.nw-breadcrumb .sep { color: var(--nw-line-strong); }

.nw-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	padding: .3rem .6rem;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	border-radius: var(--nw-radius-pill);
	line-height: 1;
}
.nw-badge--brand { background: var(--nw-brand); color: var(--nw-white); }
.nw-badge--muted { background: var(--nw-ink); color: var(--nw-white); }

.nw-assurance { list-style: none; margin: 1.5rem 0 0; padding: 1rem 1.1rem; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; background: var(--nw-soft); border: 1px solid var(--nw-line); border-radius: var(--nw-radius-sm); }
.nw-assurance li { display: flex; align-items: center; gap: .55rem; font-size: var(--nw-fs-sm); color: var(--nw-body); }
.nw-assurance .nw-icon { color: var(--nw-brand); }
.nw-assurance--row { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; background: transparent; border: 0; margin: 0 0 var(--nw-section); }

.nw-steps { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1rem 0 0; padding: 0; font-size: var(--nw-fs-sm); color: var(--nw-muted); }
.nw-steps li { display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.nw-steps span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--nw-line); color: var(--nw-body); font-size: .75rem; }
.nw-steps .is-done { color: var(--nw-ink); }
.nw-steps .is-done span { background: var(--nw-brand); color: var(--nw-white); }

/* 4. Header ---------------------------------------------------------------- */
.nw-header { position: sticky; top: -38px; z-index: 50; background: var(--nw-white); box-shadow: 0 1px 0 var(--nw-line); }
body.admin-bar .nw-header { top: -6px; }
.nw-topbar { background: var(--nw-ink); color: #e2e8f0; font-size: .8rem; }
.nw-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 38px; }
body.nw-site .nw-topbar__item { display: inline-flex; align-items: center; gap: .45rem; color: #e2e8f0; white-space: nowrap; }
body.nw-site .nw-topbar__item:hover { color: var(--nw-white); }
.nw-topbar__promo { font-weight: 600; color: #fcd34d !important; }

.nw-mainbar { position: relative; background: var(--nw-white); border-bottom: 1px solid var(--nw-line); }
.nw-mainbar__inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); min-height: 76px; }
.nw-nav-toggle { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.nw-burger { display: none; cursor: pointer; color: var(--nw-ink); padding: .4rem; margin: 0; border-radius: var(--nw-radius-xs); }

body.nw-site .nw-logo { display: inline-flex; align-items: center; gap: .6rem; color: var(--nw-brand); }
.nw-logo__text { font-size: 1.3rem; font-weight: 800; letter-spacing: -0.03em; color: var(--nw-ink); white-space: nowrap; }
body.nw-site .nw-logo--light { color: var(--nw-white); }
.nw-logo--light .nw-logo__mark svg rect { fill: var(--nw-brand-600); }
.nw-logo--light .nw-logo__text { color: var(--nw-white); }

.nw-search { position: relative; display: flex; max-width: 560px; width: 100%; justify-self: center; margin: 0; }
body.nw-site .nw-search input[type=search] {
	width: 100%;
	height: 46px;
	padding: 0 3.2rem 0 1.1rem;
	background: var(--nw-soft);
	border-color: var(--nw-line);
	border-radius: var(--nw-radius-pill);
	font-size: .95rem;
}
body.nw-site .nw-search input[type=search]:focus { background: var(--nw-white); }
body.nw-site .nw-search button {
	position: absolute;
	right: 4px;
	top: 4px;
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 50%;
}

.nw-actions { display: flex; align-items: center; gap: .35rem; }
body.nw-site .nw-action {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .55rem .75rem;
	border-radius: var(--nw-radius-sm);
	color: var(--nw-ink);
	font-weight: 600;
	font-size: var(--nw-fs-sm);
}
body.nw-site .nw-action:hover { background: var(--nw-soft); color: var(--nw-brand); }
.nw-cart-count {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: var(--nw-radius-pill);
	background: var(--nw-accent);
	color: var(--nw-white);
	font-size: .72rem;
	font-weight: 700;
	line-height: 1;
}
.nw-cart-count.is-empty { background: var(--nw-line); color: var(--nw-body); }

/* Primary navigation */
.nw-nav { border-bottom: 1px solid var(--nw-line); background: var(--nw-white); }
.nw-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: .15rem; }
.nw-menu li { position: relative; list-style: none; }
body.nw-site .nw-menu a {
	display: flex;
	align-items: center;
	gap: .3rem;
	padding: .95rem .9rem;
	font-size: .95rem;
	font-weight: 600;
	color: var(--nw-ink);
	white-space: nowrap;
}
body.nw-site .nw-menu > li > a:hover, body.nw-site .nw-menu > li.current-menu-item > a,
body.nw-site .nw-menu > li.current-menu-ancestor > a, body.nw-site .nw-menu > li.current-menu-parent > a { color: var(--nw-brand); }
.nw-menu > li.current-menu-item > a, .nw-menu > li.current-menu-ancestor > a { box-shadow: inset 0 -2px 0 var(--nw-brand); }
.nw-menu > li.menu-item-has-children > a::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 1.8px solid currentColor;
	border-bottom: 1.8px solid currentColor;
	transform: rotate(45deg) translate(-2px, -2px);
	margin-left: .3rem;
	opacity: .6;
}
.nw-menu .sub-menu {
	display: none;
	position: absolute;
	left: 0;
	top: 100%;
	min-width: 240px;
	margin: 0;
	padding: .5rem;
	list-style: none;
	background: var(--nw-white);
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius);
	box-shadow: var(--nw-shadow-lg);
	z-index: 60;
}
.nw-menu li:hover > .sub-menu, .nw-menu li:focus-within > .sub-menu { display: block; }
body.nw-site .nw-menu .sub-menu a { padding: .55rem .75rem; border-radius: var(--nw-radius-xs); font-weight: 500; font-size: .92rem; color: var(--nw-body); }
body.nw-site .nw-menu .sub-menu a:hover { background: var(--nw-soft); color: var(--nw-brand); }
.nw-menu .sub-menu .sub-menu { position: static; display: block; box-shadow: none; border: 0; padding: 0 0 0 .75rem; min-width: 0; }

/* Mega menu: add the CSS class "nw-mega" to a top-level menu item. */
.nw-menu > li.nw-mega { position: static; }
.nw-menu > li.nw-mega > .sub-menu {
	left: 50%;
	transform: translateX(-50%);
	width: min(960px, calc(100vw - 2 * var(--nw-gutter)));
	padding: 1.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}
.nw-menu > li.nw-mega:hover > .sub-menu, .nw-menu > li.nw-mega:focus-within > .sub-menu { display: grid; }
body.nw-site .nw-menu > li.nw-mega > .sub-menu > li > a {
	font-weight: 700;
	color: var(--nw-ink);
	font-size: .82rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--nw-line);
	border-radius: 0;
	margin-bottom: .4rem;
	padding: 0 0 .6rem;
}
body.nw-site .nw-menu > li.nw-mega > .sub-menu > li > a:hover { background: transparent; }
.nw-menu > li.nw-mega > .sub-menu > li > .sub-menu { padding-left: 0; }

/* 5. Footer ---------------------------------------------------------------- */
.nw-footer { background: var(--nw-ink); color: #cbd5e1; margin-top: 0; }
.nw-footer__cta { background: var(--nw-brand); color: #e8f1ee; }
.nw-footer__cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 2.5rem; }
body.nw-site .nw-footer__cta-title { color: var(--nw-white); font-size: var(--nw-fs-h3); margin: 0 0 .3rem; }
.nw-footer__cta p { margin: 0; color: #cfe3dd; }
.nw-footer__cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.nw-footer__grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 2.5rem; padding-block: 4rem 3rem; }
.nw-footer__brand p { margin: 1rem 0 1.25rem; max-width: 34ch; font-size: var(--nw-fs-sm); line-height: 1.7; }
body.nw-site .nw-footer__title { color: var(--nw-white); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 1rem; }
.nw-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
body.nw-site .nw-footer__links a { color: #cbd5e1; font-size: var(--nw-fs-sm); }
body.nw-site .nw-footer__links a:hover { color: var(--nw-white); }
.nw-social { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; }
body.nw-site .nw-social a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); color: #e2e8f0; }
body.nw-site .nw-social a:hover { background: rgba(255,255,255,.08); color: var(--nw-white); }
.nw-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); font-size: .8rem; }
.nw-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; }
.nw-footer__bottom p { margin: 0; color: #94a3b8; }
.nw-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1.25rem; }
body.nw-site .nw-footer__legal a { color: #94a3b8; }
body.nw-site .nw-footer__legal a:hover { color: var(--nw-white); }

/* 6. Page heroes ----------------------------------------------------------- */
.nw-page-hero { background: linear-gradient(180deg, var(--nw-sand), #fbf9f5); border-bottom: 1px solid #ede6da; padding-block: clamp(40px, 5vw, 72px); }
.nw-page-hero--compact { padding-block: clamp(28px, 3vw, 44px); }
.nw-page-hero--center { text-align: center; }
.nw-page-hero--center .nw-breadcrumb { justify-content: center; }
body.nw-site .nw-page-hero__title { margin: 0; font-size: var(--nw-fs-h1); }
.nw-page-hero__lead { max-width: 62ch; margin: .9rem 0 0; font-size: var(--nw-fs-lg); color: var(--nw-body); }
.nw-page-hero--center .nw-page-hero__lead { margin-inline: auto; }
.nw-page-hero__lead p { margin: 0; }
.nw-page-hero .search-form { display: flex; gap: .5rem; max-width: 480px; margin: 1.25rem auto 0; }
.nw-page-hero .search-form label { flex: 1; }
.nw-page-hero .search-form .search-field { width: 100%; }

/* 7. Blog ------------------------------------------------------------------ */
.nw-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.nw-post-card {
	display: flex;
	flex-direction: column;
	background: var(--nw-white);
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius);
	overflow: hidden;
	transition: box-shadow .2s var(--nw-ease), transform .2s var(--nw-ease);
}
.nw-post-card:hover { box-shadow: var(--nw-shadow-lg); transform: translateY(-2px); }
.nw-post-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--nw-soft); }
.nw-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--nw-ease); }
.nw-post-card:hover .nw-post-card__media img { transform: scale(1.03); }
.nw-post-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--nw-brand-50), var(--nw-sand)); }
.nw-post-card__body { display: flex; flex-direction: column; gap: .6rem; padding: 1.25rem 1.35rem 1.5rem; flex: 1; }
.nw-post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: var(--nw-fs-xs); color: var(--nw-muted); }
body.nw-site .nw-post-card__title { font-size: 1.15rem; margin: 0; line-height: 1.3; }
body.nw-site .nw-post-card__title a { color: var(--nw-ink); }
body.nw-site .nw-post-card__title a:hover { color: var(--nw-brand); }
.nw-post-card__excerpt { margin: 0; font-size: var(--nw-fs-sm); color: var(--nw-body); flex: 1; }
.nw-featured-post { margin-bottom: 3rem; }
.nw-post-card--featured { display: grid; grid-template-columns: 1.25fr 1fr; }
.nw-post-card--featured .nw-post-card__media { aspect-ratio: auto; min-height: 340px; }
.nw-post-card--featured .nw-post-card__body { justify-content: center; padding: clamp(1.5rem, 3vw, 3rem); gap: .9rem; }
body.nw-site .nw-post-card--featured .nw-post-card__title { font-size: var(--nw-fs-h2); }
.nw-post-card--featured .nw-post-card__excerpt { font-size: var(--nw-fs-base); flex: 0; }

.nw-pagination, .navigation.pagination { margin-top: 3rem; }
.nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; }
body.nw-site .nav-links .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .9rem;
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius-sm);
	font-weight: 600;
	color: var(--nw-ink);
}
body.nw-site .nav-links .page-numbers.current { background: var(--nw-brand); border-color: var(--nw-brand); color: var(--nw-white); }
body.nw-site .nav-links a.page-numbers:hover { border-color: var(--nw-brand); color: var(--nw-brand); }

.nw-article-hero { padding-block: clamp(40px, 5vw, 72px) 2rem; }
body.nw-site .nw-article-hero__title { font-size: var(--nw-fs-h1); margin: 1rem 0 .75rem; }
.nw-article-hero__lead { font-size: var(--nw-fs-lg); color: var(--nw-body); margin: 0 0 1.25rem; }
.nw-article-meta { display: flex; flex-wrap: wrap; gap: .6rem; font-size: var(--nw-fs-sm); color: var(--nw-muted); }
.nw-article-cover { margin: 0 auto 3rem; }
.nw-article-cover img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--nw-radius); }
.nw-article-tags { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 2.5rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--nw-line); font-size: var(--nw-fs-sm); color: var(--nw-muted); }
.nw-article-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; margin: 2.5rem 0 var(--nw-section); padding: 1.75rem; background: var(--nw-brand-50); border-radius: var(--nw-radius); }
body.nw-site .nw-article-cta h2 { font-size: var(--nw-fs-h4); margin: 0 0 .25rem; }
.nw-article-cta p { margin: 0; font-size: var(--nw-fs-sm); }
.nw-article-cta__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.nw-comments { padding-bottom: var(--nw-section); }

/* 8. Prose ------------------------------------------------------------------ */
.nw-prose { font-size: 1.075rem; line-height: 1.8; color: var(--nw-body); }
.nw-prose > * + * { margin-top: 1.25em; }
.nw-prose > :first-child { margin-top: 0; }
body.nw-site .nw-prose h2 { font-size: 1.65rem; margin: 2.2em 0 .6em; }
body.nw-site .nw-prose h3 { font-size: 1.3rem; margin: 1.8em 0 .5em; }
.nw-prose p { margin: 0 0 1.1em; }
.nw-prose ul, .nw-prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.nw-prose li { margin: .35em 0; }
.nw-prose li::marker { color: var(--nw-brand); }
body.nw-site .nw-prose a { color: var(--nw-brand); text-decoration: underline; text-decoration-color: rgba(31, 77, 67, .35); text-underline-offset: 3px; }
body.nw-site .nw-prose a:hover { color: var(--nw-accent); text-decoration-color: currentColor; }
.nw-prose blockquote, .nw-prose .wp-block-quote {
	margin: 2em 0;
	padding: 1.25rem 1.5rem;
	border-left: 4px solid var(--nw-accent);
	background: var(--nw-sand);
	border-radius: 0 var(--nw-radius-sm) var(--nw-radius-sm) 0;
	font-family: var(--nw-font-serif);
	font-size: 1.25rem;
	line-height: 1.5;
	color: var(--nw-ink);
}
.nw-prose blockquote p { margin: 0; }
.nw-prose blockquote cite { display: block; margin-top: .75rem; font-family: var(--nw-font); font-size: var(--nw-fs-sm); font-style: normal; color: var(--nw-muted); }
.nw-prose figure { margin: 2em 0; }
.nw-prose figure img { border-radius: var(--nw-radius); }
.nw-prose figcaption { margin-top: .6rem; font-size: var(--nw-fs-sm); color: var(--nw-muted); text-align: center; }
.nw-prose table, .woocommerce table.shop_attributes { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--nw-line); border-radius: var(--nw-radius-sm); overflow: hidden; font-size: .95rem; }
.nw-prose th, .nw-prose td { padding: .75rem 1rem; border-bottom: 1px solid var(--nw-line); text-align: left; }
.nw-prose thead th { background: var(--nw-soft); color: var(--nw-ink); font-weight: 700; }
.nw-prose tbody tr:last-child td { border-bottom: 0; }
.nw-prose tbody tr:nth-child(even) td { background: #fcfcfd; }
.nw-prose .wp-block-table { overflow-x: auto; }
.nw-prose details { border: 1px solid var(--nw-line); border-radius: var(--nw-radius-sm); padding: .9rem 1.1rem; }
.nw-prose details + details { margin-top: .6rem; }
.nw-prose summary { cursor: pointer; font-weight: 600; color: var(--nw-ink); }
.nw-prose .wp-block-columns { gap: 2rem; }

/* 9. WooCommerce catalog ---------------------------------------------------- */
.woocommerce-page #primary, .woocommerce #primary { max-width: var(--nw-max); margin-inline: auto; padding: 1.5rem var(--nw-gutter) var(--nw-section); box-sizing: border-box; }
.nw-catalog-hero {
	position: relative;
	padding: clamp(28px, 4vw, 52px);
	margin-bottom: 1.25rem;
	border-radius: var(--nw-radius);
	background: radial-gradient(circle at 85% 20%, rgba(194, 98, 15, .12), transparent 45%), linear-gradient(135deg, var(--nw-sand), #fbf8f3);
	border: 1px solid #ede6da;
	overflow: hidden;
}
body.nw-site .nw-catalog-hero__title { margin: 0; font-size: var(--nw-fs-h1); }
.nw-catalog-hero__desc { max-width: 62ch; margin-top: .6rem; color: var(--nw-body); }
.nw-catalog-hero__desc p { margin: 0; }
.nw-catalog-hero__count { margin: .9rem 0 0; font-size: var(--nw-fs-sm); font-weight: 600; color: var(--nw-muted); }
.nw-catalog-hero + .nw-chips { margin: 0 0 2rem; }

.nw-shop { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.nw-shop__sidebar { position: sticky; top: 96px; display: grid; gap: 1.5rem; }
.nw-side-block { padding-bottom: 1.5rem; border-bottom: 1px solid var(--nw-line); }
.nw-side-block:last-child { border-bottom: 0; }
body.nw-site .nw-side-title { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--nw-ink); margin: 0 0 .9rem; }
.nw-cat-tree, .nw-cat-tree ul { list-style: none; margin: 0; padding: 0; }
.nw-cat-tree ul { padding-left: .9rem; border-left: 1px solid var(--nw-line); margin: .2rem 0 .2rem .35rem; }
.nw-cat-tree li { margin: 0; font-size: var(--nw-fs-sm); color: var(--nw-muted); }
body.nw-site .nw-cat-tree a { display: inline-block; padding: .28rem 0; color: var(--nw-body); font-weight: 500; }
body.nw-site .nw-cat-tree a:hover, body.nw-site .nw-cat-tree .current-cat > a { color: var(--nw-brand); font-weight: 700; }
.nw-swatches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
body.nw-site .nw-swatch { display: flex; align-items: center; gap: .5rem; font-size: var(--nw-fs-sm); color: var(--nw-body); padding: .2rem 0; }
body.nw-site .nw-swatch.is-active { color: var(--nw-brand); font-weight: 700; }
.nw-swatch__dot { width: 16px; height: 16px; border-radius: 50%; border: 1px solid rgba(15,23,42,.15); background: #ccc; flex: none; }
.nw-swatch--black .nw-swatch__dot { background: #111827; }
.nw-swatch--white .nw-swatch__dot { background: #ffffff; }
.nw-swatch--red .nw-swatch__dot { background: #c53030; }
.nw-swatch--blue .nw-swatch__dot { background: #2b6cb0; }
.nw-swatch--green .nw-swatch__dot { background: #2f855a; }
.nw-swatch--grey .nw-swatch__dot { background: #a0aec0; }
.nw-swatch--navy .nw-swatch__dot { background: #1a365d; }
.nw-swatch--beige .nw-swatch__dot { background: #e9dcc4; }
.nw-tag-cloud { display: flex; flex-wrap: wrap; gap: .4rem; }
.nw-side-help { background: var(--nw-brand-50); padding: 1.25rem !important; border-radius: var(--nw-radius); border: 0 !important; color: var(--nw-body); font-size: var(--nw-fs-sm); }
.nw-side-help .nw-icon { color: var(--nw-brand); margin-bottom: .4rem; }
.nw-side-help p { margin: 0 0 .9rem; }

.woocommerce .woocommerce-result-count { margin: 0 0 1.25rem; font-size: var(--nw-fs-sm); color: var(--nw-muted); line-height: 42px; }
.woocommerce .woocommerce-ordering { margin: 0 0 1.25rem; }
.woocommerce .woocommerce-ordering select { padding: .55rem 2.2rem .55rem .9rem; font-size: var(--nw-fs-sm); }

/* Product grid: CSS grid replaces WooCommerce's float layout. */
.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 22px;
	margin: 0 0 2rem !important;
	padding: 0;
	clear: both;
}
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
.nw-shop .woocommerce ul.products, .nw-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* 10. Product card ---------------------------------------------------------- */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--nw-white);
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius);
	overflow: hidden;
	transition: box-shadow .2s var(--nw-ease), transform .2s var(--nw-ease), border-color .2s;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--nw-shadow-lg); transform: translateY(-2px); border-color: transparent; }
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: inherit; }
.nw-card__media { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--nw-soft); }
.woocommerce ul.products li.product .nw-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0 !important; border-radius: 0; transition: opacity .35s var(--nw-ease), transform .5s var(--nw-ease); }
.woocommerce ul.products li.product .nw-card__media img.nw-card__hover { opacity: 0; }
.woocommerce ul.products li.product:hover .nw-card__media img.nw-card__hover { opacity: 1; }
.woocommerce ul.products li.product:hover .nw-card__media img:first-of-type { transform: scale(1.04); }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 3;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: .35rem .65rem;
	border-radius: var(--nw-radius-pill);
	background: var(--nw-sale);
	color: var(--nw-white);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1;
}
.nw-card__eyebrow { display: block; padding: 1rem 1.1rem 0; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nw-muted); }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .woocommerce-loop-category__title {
	padding: .35rem 1.1rem 0 !important;
	margin: 0;
	font-size: 1rem !important;
	font-weight: 700;
	line-height: 1.35;
	color: var(--nw-ink);
}
.woocommerce ul.products li.product .star-rating { margin: .5rem 1.1rem 0; font-size: .8rem; color: var(--nw-accent); }
.woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .1rem .5rem;
	padding: .5rem 1.1rem 0;
	margin: 0 0 1rem !important;
	font-size: 1.05rem !important;
	font-weight: 700;
	color: var(--nw-ink) !important;
}
.woocommerce ul.products li.product .price del { order: 2; font-size: .88rem; font-weight: 500; color: var(--nw-muted); opacity: 1; }
.woocommerce ul.products li.product .price ins { order: 1; text-decoration: none; color: var(--nw-sale); }
.woocommerce ul.products li.product .button {
	margin: auto 1.1rem 1.1rem !important;
	width: calc(100% - 2.2rem);
	padding: .7rem 1rem;
	font-size: .88rem;
	background: var(--nw-white);
	color: var(--nw-brand);
	border: 1px solid var(--nw-line-strong);
}
.woocommerce ul.products li.product .button:hover { background: var(--nw-brand); color: var(--nw-white); border-color: var(--nw-brand); }
.woocommerce ul.products li.product .button.loading { opacity: .6; }
.woocommerce ul.products li.product .added_to_cart { display: block; margin: -0.6rem 1.1rem 1rem; font-size: var(--nw-fs-sm); font-weight: 600; text-align: center; }
/* Category tiles from [product_categories] */
.woocommerce ul.products li.product-category a { display: block; }
.woocommerce ul.products li.product-category img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin: 0 !important; }
.woocommerce ul.products li.product-category .woocommerce-loop-category__title { padding: 1rem 1.1rem 1.1rem !important; }
.woocommerce ul.products li.product-category .count { background: none; color: var(--nw-muted); font-weight: 500; font-size: .85rem; }

.woocommerce nav.woocommerce-pagination ul { display: inline-flex; gap: .4rem; border: 0; margin: 1rem 0 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	display: inline-grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .8rem;
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius-sm);
	font-weight: 600;
	color: var(--nw-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--nw-brand); border-color: var(--nw-brand); color: var(--nw-white); }
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--nw-brand-50); color: var(--nw-brand); border-color: var(--nw-brand); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	border: 1px solid var(--nw-line) !important;
	border-left: 4px solid var(--nw-brand) !important;
	border-radius: var(--nw-radius-sm);
	background: var(--nw-soft) !important;
	color: var(--nw-body) !important;
	padding: 1rem 1.25rem 1rem 3.2rem !important;
}
.woocommerce-error { border-left-color: var(--nw-sale) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--nw-brand) !important; }
.woocommerce-message .button, .woocommerce-info .button { padding: .5rem .9rem !important; font-size: .85rem !important; }

/* 11. Single product -------------------------------------------------------- */
.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
	gap: 1.5rem clamp(2rem, 4vw, 4rem);
	align-items: start;
	position: relative;
}
.single-product div.product > * { grid-column: 1 / -1; }
.single-product div.product > .woocommerce-product-gallery { grid-column: 1; }
.single-product div.product > .summary { grid-column: 2; }
.single-product div.product > span.onsale { grid-column: 1; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--nw-radius); overflow: hidden; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { border-radius: var(--nw-radius); background: var(--nw-soft); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 12px !important; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: var(--nw-radius-xs); border: 2px solid transparent; opacity: .7; transition: opacity .15s, border-color .15s; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--nw-brand); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { top: 14px; right: 14px; background: var(--nw-white); box-shadow: var(--nw-shadow); }
.single-product div.product > span.onsale { top: 16px; left: 16px; }

.woocommerce div.product .product_title { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem) !important; margin: 0 0 .5rem !important; }
.woocommerce div.product .woocommerce-product-rating { display: flex; align-items: center; gap: .6rem; margin: 0 0 .5rem !important; font-size: var(--nw-fs-sm); }
.woocommerce div.product .woocommerce-product-rating .star-rating { color: var(--nw-accent); margin: 0; }
.woocommerce div.product .woocommerce-review-link { color: var(--nw-muted); }
.nw-sku-line { margin: 0 0 1rem; padding: 0 !important; border: 0 !important; font-size: var(--nw-fs-sm); color: var(--nw-muted); }
.nw-sku-line .sku { color: var(--nw-ink); font-weight: 600; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .2rem .7rem;
	font-size: 1.75rem !important;
	font-weight: 800;
	color: var(--nw-ink) !important;
	margin: 0 0 1rem;
}
.woocommerce div.product p.price del, .woocommerce div.product span.price del { order: 2; font-size: 1.1rem; font-weight: 500; color: var(--nw-muted); opacity: 1; }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { order: 1; text-decoration: none; color: var(--nw-sale); }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 1.05rem; color: var(--nw-body); margin-bottom: 1.25rem; }
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0; }
.woocommerce div.product p.stock {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin: 0 0 1rem;
	padding: .35rem .75rem;
	border-radius: var(--nw-radius-pill);
	font-size: var(--nw-fs-sm);
	font-weight: 600;
}
.woocommerce div.product p.stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.woocommerce div.product p.stock.in-stock { background: #e7f6ec; color: var(--nw-ok); }
.woocommerce div.product p.stock.out-of-stock { background: #fdecec; color: var(--nw-sale); }
.woocommerce div.product p.stock.available-on-backorder { background: #fdf3e3; color: var(--nw-warn); }

.woocommerce div.product form.cart { margin: 0 0 .5rem !important; padding: 1.25rem; background: var(--nw-soft); border: 1px solid var(--nw-line); border-radius: var(--nw-radius); }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0 !important; }
.woocommerce .quantity .qty { width: 5.2rem !important; height: 100%; min-height: 50px; text-align: center; font-weight: 600; }
.woocommerce div.product form.cart .button, .woocommerce div.product form.cart .single_add_to_cart_button {
	float: none;
	flex: 1;
	min-height: 50px;
	font-size: 1rem;
	background: var(--nw-brand) !important;
	color: var(--nw-white) !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--nw-brand-600) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button.disabled { opacity: .45 !important; }

/* Variations */
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 1rem; border: 0; border-collapse: collapse; }
.woocommerce div.product form.cart .variations tr { display: grid; grid-template-columns: 1fr; gap: .35rem; margin-bottom: .9rem; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0 !important; border: 0; background: none; text-align: left; line-height: 1.4; }
.woocommerce div.product form.cart .variations label { font-size: var(--nw-fs-sm); font-weight: 700; color: var(--nw-ink); text-transform: uppercase; letter-spacing: .06em; }
.woocommerce div.product form.cart .variations select {
	width: 100%;
	min-width: 0;
	height: 50px;
	margin: 0;
	padding: 0 2.6rem 0 1rem;
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--nw-white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230f172a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	font-weight: 600;
	cursor: pointer;
}
/* Selected state: a chosen option gets the brand outline. */
.woocommerce div.product form.cart .variations select:has(option:checked:not([value=""])) { border-color: var(--nw-brand); box-shadow: 0 0 0 1px var(--nw-brand); background-color: var(--nw-brand-50); }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: .5rem; font-size: var(--nw-fs-sm); font-weight: 600; color: var(--nw-muted); }
.woocommerce div.product form.cart .single_variation_wrap { display: grid; gap: .75rem; }
.woocommerce div.product .woocommerce-variation { margin: 0; }
.woocommerce div.product .woocommerce-variation-price .price { font-size: 1.4rem !important; margin: 0 0 .25rem; }
.woocommerce div.product .woocommerce-variation-availability p.stock { margin: 0; }
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; }
.woocommerce div.product .wc-no-matching-variations { margin: 0; }

/* Grouped */
.woocommerce div.product form.cart.grouped_form table.group_table { width: 100%; border: 0; margin-bottom: 1rem; }
.woocommerce div.product form.cart.grouped_form table.group_table td { padding: .75rem .5rem; border-bottom: 1px solid var(--nw-line); vertical-align: middle; }
.woocommerce div.product form.cart.grouped_form .woocommerce-grouped-product-list-item__label a { font-weight: 600; color: var(--nw-ink); }
.woocommerce div.product form.cart.grouped_form .woocommerce-grouped-product-list-item__price { font-weight: 700; text-align: right; }
.woocommerce div.product form.cart.grouped_form .single_add_to_cart_button { width: 100%; }
/* External */
.woocommerce div.product.product-type-external form.cart .single_add_to_cart_button { width: 100%; }

.woocommerce div.product .product_meta:not(.nw-sku-line) { display: grid; gap: .35rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--nw-line); font-size: var(--nw-fs-sm); color: var(--nw-muted); }
.woocommerce div.product .product_meta a { color: var(--nw-body); font-weight: 500; }
.woocommerce div.product .product_meta a:hover { color: var(--nw-brand); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: 2.5rem; padding-top: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0 0 2rem !important; padding: 0 !important; border-bottom: 1px solid var(--nw-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .9rem 1.2rem !important; font-weight: 600; color: var(--nw-muted) !important; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--nw-ink) !important; border-bottom-color: var(--nw-brand); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 820px; margin: 0 0 2rem; font-size: 1.02rem; line-height: 1.75; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { font-size: var(--nw-fs-h4); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { padding: .75rem 1rem !important; border-bottom: 1px solid var(--nw-line) !important; border-top: 0 !important; font-style: normal !important; background: none !important; }
.woocommerce table.shop_attributes th { width: 220px; background: var(--nw-soft) !important; color: var(--nw-ink); font-weight: 600; }
.woocommerce table.shop_attributes td p { margin: 0 !important; padding: 0 !important; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-radius: var(--nw-radius-sm) !important; border-color: var(--nw-line) !important; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border-radius: 50%; border: 0; background: var(--nw-soft); }
.woocommerce #review_form #respond { padding: 1.5rem; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); }
.woocommerce #review_form #respond textarea { width: 100%; }

.woocommerce div.product .related, .woocommerce div.product .upsells { margin-top: 1rem; padding-top: 2.5rem; border-top: 1px solid var(--nw-line); }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { font-size: var(--nw-fs-h3); margin-bottom: 1.5rem; }

/* 12. Cart / Checkout blocks ------------------------------------------------ */
.nw-page--wide .nw-page__content { padding-top: clamp(28px, 3vw, 44px); }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-size: 1rem; }
.wc-block-components-sidebar-layout { gap: 2rem; }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: 0 !important; }
.wc-block-cart .wc-block-cart__sidebar, .wc-block-checkout__sidebar {
	padding: 1.5rem !important;
	background: var(--nw-soft);
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius);
	align-self: flex-start;
}
body.nw-site .wc-block-cart-items { border: 1px solid var(--nw-line); border-radius: var(--nw-radius); border-collapse: separate; overflow: hidden; }
body.nw-site .wc-block-cart-items th { padding: 1rem 1.25rem !important; background: var(--nw-soft); font-size: .75rem !important; letter-spacing: .1em; }
body.nw-site .wc-block-cart-items td { padding: 1.25rem !important; border-top: 1px solid var(--nw-line) !important; }
body.nw-site .wc-block-cart-item__image img { border-radius: var(--nw-radius-sm); }
body.nw-site .wc-block-components-product-name { font-weight: 700; color: var(--nw-ink) !important; }
body.nw-site .wc-block-components-product-badge { border-radius: var(--nw-radius-pill); }
body.nw-site .wc-block-components-sale-badge { background: var(--nw-sale); color: var(--nw-white); border: 0; }
body.nw-site .wc-block-components-quantity-selector { border-radius: var(--nw-radius-sm); }
body.nw-site .wc-block-components-quantity-selector::after { border-color: var(--nw-line-strong) !important; border-radius: var(--nw-radius-sm); }
body.nw-site .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { background: transparent; color: var(--nw-ink); border: 0; padding: 0; }
body.nw-site .wc-block-cart-item__remove-link { color: var(--nw-muted) !important; font-size: var(--nw-fs-sm) !important; }
body.nw-site .wc-block-components-totals-wrapper { border-color: var(--nw-line) !important; }
body.nw-site .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.nw-site .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1.2rem; font-weight: 800; color: var(--nw-ink); }
body.nw-site .wc-block-components-button:not(.is-link), body.nw-site .wc-block-cart__submit-button, body.nw-site .wc-block-components-checkout-place-order-button {
	background: var(--nw-brand) !important;
	color: var(--nw-white) !important;
	border-radius: var(--nw-radius-sm) !important;
	min-height: 52px;
	font-weight: 700;
	border: 0 !important;
}
body.nw-site .wc-block-components-button:not(.is-link):hover { background: var(--nw-brand-600) !important; }
body.nw-site .wc-block-components-button.is-link { background: none; border: 0; color: var(--nw-brand); padding: 0; }
body.nw-site .wc-block-components-text-input input, body.nw-site .wc-block-components-combobox .wc-block-components-combobox-control input,
body.nw-site .wc-blocks-components-select .wc-blocks-components-select__select, body.nw-site .wc-block-components-textarea {
	border-radius: var(--nw-radius-sm) !important;
	border-color: var(--nw-line-strong) !important;
}
body.nw-site .wc-block-components-text-input.is-active input:focus, body.nw-site .wc-block-components-text-input input:focus { border-color: var(--nw-brand) !important; box-shadow: 0 0 0 1px var(--nw-brand) !important; }
body.nw-site .wc-block-components-checkout-step { padding: 1.5rem; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); margin-bottom: 1.25rem !important; }
body.nw-site .wc-block-components-checkout-step::after { display: none !important; }
body.nw-site .wc-block-components-checkout-step__title { font-size: 1.15rem !important; font-weight: 800; color: var(--nw-ink); }
body.nw-site .wc-block-components-checkout-step__container::after { display: none; }
body.nw-site .wc-block-components-radio-control--highlight-checked, body.nw-site .wc-block-components-radio-control-accordion-option { border-radius: var(--nw-radius-sm); }
body.nw-site .wc-block-components-radio-control--highlight-checked::after { border-color: var(--nw-line) !important; border-radius: var(--nw-radius-sm); }
body.nw-site .wc-block-components-radio-control__input:checked { border-color: var(--nw-brand) !important; }
body.nw-site .wc-block-components-radio-control__input:checked::before { background: var(--nw-brand) !important; }
body.nw-site .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--nw-brand); border-color: var(--nw-brand); }
body.nw-site .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }
body.nw-site .wc-block-components-panel__button { background: none; color: var(--nw-ink); border: 0; padding-left: 0; padding-right: 0; font-weight: 600; justify-content: space-between; }
body.nw-site .wc-block-components-order-summary-item__image img { border-radius: var(--nw-radius-xs); }
body.nw-site .wc-block-components-order-summary-item__quantity { background: var(--nw-ink); color: var(--nw-white); border: 0; }
body.nw-site .wc-block-cart__empty-cart__title { font-size: var(--nw-fs-h3); }
body.nw-site .wp-block-woocommerce-empty-cart-block .wp-block-separator { display: none; }
body.nw-site .wc-block-checkout__terms { font-size: var(--nw-fs-sm); color: var(--nw-muted); }
body.nw-site .wc-block-components-notice-banner { border-radius: var(--nw-radius-sm); }

/* 13. My Account ------------------------------------------------------------ */
.woocommerce-account .nw-page__content > .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.woocommerce-account .nw-page__content > .woocommerce::before, .woocommerce-account .nw-page__content > .woocommerce::after { display: none; }
.woocommerce-account .nw-page__content > .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account .nw-page__content > .woocommerce > h2,
.woocommerce-account .nw-page__content > .woocommerce > #customer_login,
.woocommerce-account .nw-page__content > .woocommerce > form.woocommerce-form-login,
.woocommerce-account .nw-page__content > .woocommerce > .woocommerce-form-login,
.woocommerce-account .nw-page__content > .woocommerce > .woocommerce-ResetPassword { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: .5rem; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); background: var(--nw-soft); }
body.nw-site .woocommerce-MyAccount-navigation a { display: block; padding: .65rem .9rem; border-radius: var(--nw-radius-xs); font-weight: 600; color: var(--nw-body); }
body.nw-site .woocommerce-MyAccount-navigation .is-active a, body.nw-site .woocommerce-MyAccount-navigation a:hover { background: var(--nw-white); color: var(--nw-brand); box-shadow: var(--nw-shadow); }
.woocommerce-MyAccount-content { padding: 1.5rem; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); }
.woocommerce #customer_login.u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.woocommerce #customer_login.u-columns::before, .woocommerce #customer_login.u-columns::after { display: none; }
.woocommerce #customer_login .u-column1, .woocommerce #customer_login .u-column2 { width: auto !important; float: none !important; padding: 2rem; border: 1px solid var(--nw-line); border-radius: var(--nw-radius); background: var(--nw-white); box-shadow: var(--nw-shadow); }
.woocommerce #customer_login h2 { font-size: var(--nw-fs-h3); }
.woocommerce form.login, .woocommerce form.register { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.woocommerce form .form-row { padding: 0; margin: 0 0 1rem; }
.woocommerce form .form-row label { font-weight: 600; font-size: var(--nw-fs-sm); color: var(--nw-ink); margin-bottom: .35rem; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { width: 100%; }
.woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: .4rem; font-weight: 500; }
.woocommerce form.login .button, .woocommerce form.register .button { width: 100%; margin-top: .5rem; }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.woocommerce table.shop_table { border: 1px solid var(--nw-line) !important; border-radius: var(--nw-radius-sm) !important; border-collapse: separate !important; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--nw-soft); color: var(--nw-ink); }

/* 14. Elementor alignment ---------------------------------------------------- */
[class*="elementor-kit-"] {
	--container-max-width: var(--nw-max) !important;
	--e-global-color-primary: #0f172a;
	--e-global-color-secondary: #334155;
	--e-global-color-text: #334155;
	--e-global-color-accent: #1f4d43;
	--e-global-typography-primary-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--e-global-typography-secondary-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--e-global-typography-text-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--e-global-typography-accent-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
body.nw-site .elementor-widget-heading .elementor-heading-title { font-family: var(--nw-font); letter-spacing: -0.02em; }
body.nw-site .elementor-widget-text-editor { color: var(--nw-body); line-height: 1.7; }
body.nw-site .elementor-button { font-family: var(--nw-font); font-weight: 600; border-radius: var(--nw-radius-sm); padding: .9rem 1.5rem; }
body.nw-site a.elementor-button:hover { filter: brightness(1.08); }
body.nw-site .elementor-widget-icon-box .elementor-icon { color: var(--nw-brand); fill: var(--nw-brand); }
body.nw-site .elementor-widget-icon-box .elementor-icon-box-title { color: var(--nw-ink); font-weight: 700; }
body.nw-site .elementor-widget-icon-list .elementor-icon-list-icon i, body.nw-site .elementor-widget-icon-list .elementor-icon-list-icon svg { color: var(--nw-brand); fill: var(--nw-brand); }
body.nw-site .elementor-widget-counter .elementor-counter-number-wrapper { color: var(--nw-brand); font-weight: 800; }
body.nw-site .elementor-widget-counter .elementor-counter-title { color: var(--nw-muted); }
body.nw-site .elementor-accordion .elementor-accordion-item { border: 1px solid var(--nw-line); border-radius: var(--nw-radius-sm); margin-bottom: .6rem; overflow: hidden; }
body.nw-site .elementor-accordion .elementor-accordion-item + .elementor-accordion-item { border-top: 1px solid var(--nw-line); }
body.nw-site .elementor-accordion .elementor-tab-title { padding: 1.1rem 1.25rem; font-weight: 700; }
body.nw-site .elementor-accordion .elementor-tab-title a { color: var(--nw-ink); }
body.nw-site .elementor-accordion .elementor-tab-title.elementor-active a { color: var(--nw-brand); }
body.nw-site .elementor-accordion .elementor-tab-content { border-top: 1px solid var(--nw-line); padding: 1.1rem 1.25rem; color: var(--nw-body); }
body.nw-site .elementor-testimonial-wrapper .elementor-testimonial-content { font-size: 1.05rem; color: var(--nw-ink); line-height: 1.7; }
body.nw-site .elementor-testimonial-wrapper .elementor-testimonial-name { color: var(--nw-ink); font-weight: 700; }
body.nw-site .elementor-testimonial-wrapper .elementor-testimonial-job { color: var(--nw-muted); }
body.nw-site .elementor-star-rating { color: var(--nw-accent); }
body.nw-site .elementor-widget-image img { border-radius: var(--nw-radius); }
body.nw-site .elementor-widget-shortcode .woocommerce { width: 100%; }
body.nw-site .nw-card-box { transition: box-shadow .2s var(--nw-ease), transform .2s var(--nw-ease); }
body.nw-site .nw-card-box:hover { box-shadow: var(--nw-shadow-lg); transform: translateY(-2px); }
body.nw-site .elementor-widget-html .nw-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--nw-line); border-radius: var(--nw-radius-sm); overflow: hidden; }
body.nw-site .nw-table th, body.nw-site .nw-table td { padding: .8rem 1rem; border-bottom: 1px solid var(--nw-line); text-align: left; }
body.nw-site .nw-table thead th { background: var(--nw-soft); color: var(--nw-ink); }
body.nw-site .nw-table tbody tr:last-child td { border-bottom: 0; }
body.nw-site .nw-table-wrap { overflow-x: auto; }

/* 15. Responsive ------------------------------------------------------------- */
@media (max-width: 1100px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nw-shop { grid-template-columns: 210px minmax(0, 1fr); gap: 1.75rem; }
	.nw-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.nw-footer__grid { grid-template-columns: 1fr 1fr 1fr; }
	.nw-footer__brand { grid-column: 1 / -1; }
	body.nw-site .nw-menu a { padding-inline: .6rem; font-size: .9rem; }
	.nw-topbar__support { display: none; }
}

@media (max-width: 900px) {
	/* Header: burger + logo + actions; search on its own row; nav collapses. */
	.nw-mainbar__inner { grid-template-columns: auto 1fr auto; row-gap: .5rem; min-height: 64px; padding-block: .6rem; }
	.nw-burger { display: inline-flex; }
	.nw-search { grid-column: 1 / -1; grid-row: 2; max-width: none; }
	.nw-action__label { display: none; }
	body.nw-site .nw-action { padding: .5rem; }
	.nw-cart-count { position: absolute; top: 0; right: -2px; }
	.nw-nav { display: none; border-top: 1px solid var(--nw-line); max-height: 75vh; overflow-y: auto; }
	.nw-nav-toggle:checked ~ .nw-burger { color: var(--nw-brand); background: var(--nw-brand-50); }
	.nw-mainbar:has(.nw-nav-toggle:checked) .nw-nav { display: block; }
	.nw-menu { flex-direction: column; align-items: stretch; padding-block: .5rem; }
	body.nw-site .nw-menu a { padding: .75rem .25rem; border-bottom: 1px solid var(--nw-line); }
	.nw-menu > li.current-menu-item > a, .nw-menu > li.current-menu-ancestor > a { box-shadow: none; }
	.nw-menu > li.menu-item-has-children > a::after { margin-left: auto; }
	.nw-menu .sub-menu, .nw-menu > li.nw-mega > .sub-menu { position: static; display: block; transform: none; width: auto; min-width: 0; box-shadow: none; border: 0; padding: 0 0 0 1rem; margin: 0; }
	.nw-menu > li.nw-mega > .sub-menu, .nw-menu > li.nw-mega:hover > .sub-menu { display: block; }
	body.nw-site .nw-menu > li.nw-mega > .sub-menu > li > a { border-bottom: 1px solid var(--nw-line); padding: .75rem .25rem; margin: 0; letter-spacing: .04em; }
	.nw-topbar__inner { justify-content: center; }
	.nw-topbar__item:not(.nw-topbar__promo) { display: none; }

	.nw-shop { grid-template-columns: 1fr; }
	.nw-shop__sidebar { position: static; order: 2; grid-template-columns: 1fr 1fr; padding-top: 2rem; border-top: 1px solid var(--nw-line); }
	.nw-shop__main { order: 1; }
	.nw-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

	.single-product div.product { grid-template-columns: 1fr; }
	.single-product div.product > .woocommerce-product-gallery, .single-product div.product > .summary { grid-column: 1; }

	.nw-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nw-post-card--featured { grid-template-columns: 1fr; }
	.nw-post-card--featured .nw-post-card__media { min-height: 0; aspect-ratio: 16 / 9; }

	.woocommerce-account .nw-page__content > .woocommerce { grid-template-columns: 1fr; }
	.woocommerce #customer_login.u-columns { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.woocommerce ul.products, .woocommerce-page ul.products, .nw-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .92rem !important; }
	.nw-card__eyebrow { padding: .8rem .8rem 0; font-size: .66rem; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price { padding-left: .8rem !important; padding-right: .8rem !important; }
	.woocommerce ul.products li.product .button { margin: auto .8rem .8rem !important; width: calc(100% - 1.6rem); padding: .6rem .5rem; font-size: .8rem; }
	.woocommerce ul.products li.product .star-rating { margin-left: .8rem; }
	.nw-logo__text { font-size: 1.1rem; }
	.nw-post-grid { grid-template-columns: 1fr; }
	.nw-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; padding-block: 3rem 2rem; }
	.nw-footer__cta-actions { width: 100%; }
	.nw-footer__cta-actions .nw-btn { flex: 1; }
	.nw-shop__sidebar { grid-template-columns: 1fr; }
	.nw-assurance { grid-template-columns: 1fr; }
	.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; margin-bottom: .75rem; }
	.woocommerce .woocommerce-ordering select { width: 100%; }
	.woocommerce table.shop_attributes th { width: 40%; }
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce #customer_login .u-column1, .woocommerce #customer_login .u-column2 { padding: 1.25rem; }
	.nw-article-cta { padding: 1.25rem; }
}
