/*
 * Nostu — storefront design on Zenith + Nova Builder.
 *
 * Colours, fonts and sizes come from Theme Options (the --zenith-* variables); the few extra
 * tokens below derive from them. Sections:
 *  1 tokens · 2 base type · 3 buttons · 4 header · 5 title bar · 6 Nova sections (ns-*)
 *  7 WooCommerce: cards · 8 shop · 9 single product · 10 cart/checkout/account · 11 footer
 *  12 content pages · 13 responsive
 */

/* ============ 1. Tokens ============ */
:root {
	--ns-ink: var(--zenith-color-heading, #2a1a11);
	--ns-text: var(--zenith-color-text, #4a3a2f);
	--ns-muted: var(--zenith-color-text-muted, #8a7868);
	--ns-gold: var(--zenith-color-secondary, #b0843f);
	--ns-cream: var(--zenith-color-surface, #fcfaf6);
	--ns-parchment: var(--zenith-color-surface-alt, #f5eee3);
	--ns-sand: var(--zenith-color-soft-bg, #efe4d3);
	--ns-line: var(--zenith-color-border, #e7dccb);
	--ns-espresso: var(--zenith-footer-bg, #21160f);
	--ns-on-dark: #f3e8d6;
	--ns-on-dark-muted: #bba98f;
	--ns-chilli: #9b3b24;
	--ns-serif: var(--zenith-font-heading, 'Cormorant Garamond', Georgia, serif);
	--ns-sans: var(--zenith-font-body, 'Jost', sans-serif);
	--ns-wrap: var(--zenith-container-width, 80rem);
	--ns-gutter: clamp(1.25rem, 4vw, 2.5rem);
	--ns-block: clamp(4.5rem, 8vw, 7.5rem);
	--ns-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--nova-container-width: var(--ns-wrap);
}

/* ============ 2. Base type ============ */
body.nostu {
	background: var(--ns-cream);
	color: var(--ns-text);
	letter-spacing: 0.005em;
}

.nostu h1, .nostu h2, .nostu h3, .nostu h4 {
	font-family: var(--ns-serif);
	font-weight: var(--zenith-heading-weight, 500);
	color: var(--ns-ink);
}

.nostu h1 em, .nostu h2 em, .nostu h3 em, .ns-quote__text em {
	font-style: italic;
	font-weight: 500;
	color: var(--ns-gold);
}

.nostu ::selection {
	background: var(--ns-gold);
	color: #fff;
}

.ns-wrap {
	width: 100%;
	max-width: var(--ns-wrap);
	margin-inline: auto;
	padding-inline: var(--ns-gutter);
}

.ns-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	margin: 0 0 1.1rem;
	color: var(--ns-gold);
	font-family: var(--ns-sans);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.28em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ns-kicker::before {
	content: "";
	width: 2rem;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
}

/* ============ 3. Buttons ============ */
.ns-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem 2rem;
	margin-top: 2.25rem;
}

.ns-actions--center {
	justify-content: center;
}

.ns-btn,
.nostu .zenith-button,
.nostu .woocommerce .button,
.nostu.woocommerce .button,
.nostu .woocommerce button.button,
.nostu.woocommerce button.button,
.nostu .woocommerce a.button,
.nostu.woocommerce a.button,
.nostu .woocommerce input.button,
.nostu.woocommerce input.button,
.nostu .woocommerce #respond input#submit,
.nostu.woocommerce #respond input#submit,
.nostu .woocommerce .button.alt,
.nostu.woocommerce .button.alt,
.nostu .woocommerce button.button.alt,
.nostu.woocommerce button.button.alt,
.nostu .woocommerce a.button.alt,
.nostu.woocommerce a.button.alt,
.nostu .nova-form button[type="submit"],
.nostu .nova-contact-form button[type="submit"],
.nostu button[type="submit"].button:not(.zenith-icon-button):not(.zenith-search-form__submit) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	min-height: 3.1rem;
	padding: 0.95em 2.1em;
	border: 1px solid var(--ns-ink);
	border-radius: var(--zenith-button-radius, 2px);
	background: var(--ns-ink);
	color: var(--ns-cream);
	font-family: var(--ns-sans);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.35s var(--ns-ease), border-color 0.35s var(--ns-ease), color 0.35s var(--ns-ease);
}

.ns-btn:hover,
.nostu .zenith-button:hover,
.nostu .woocommerce .button:hover,
.nostu.woocommerce .button:hover,
.nostu .woocommerce button.button:hover,
.nostu.woocommerce button.button:hover,
.nostu .woocommerce a.button:hover,
.nostu.woocommerce a.button:hover,
.nostu .woocommerce .button.alt:hover,
.nostu.woocommerce .button.alt:hover,
.nostu .woocommerce button.button.alt:hover,
.nostu.woocommerce button.button.alt:hover,
.nostu .woocommerce a.button.alt:hover,
.nostu.woocommerce a.button.alt:hover,
.nostu .nova-form button[type="submit"]:hover,
.nostu .nova-contact-form button[type="submit"]:hover,
.nostu button[type="submit"].button:not(.zenith-icon-button):not(.zenith-search-form__submit):hover {
	border-color: var(--ns-gold);
	background: var(--ns-gold);
	color: #fff;
}

.ns-btn--light {
	border-color: var(--ns-cream);
	background: var(--ns-cream);
	color: var(--ns-ink);
}

.ns-btn--outline {
	background: transparent;
	color: var(--ns-ink);
}

.ns-btn--outline:hover {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.ns-btn--link,
.ns-btn--link:hover {
	min-height: 0;
	padding: 0 0 0.4em;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	background: none;
	color: var(--ns-ink);
}

.ns-btn--link:hover {
	color: var(--ns-gold);
}

.ns-btn__arrow {
	display: inline-block;
	transition: transform 0.35s var(--ns-ease);
}

.ns-btn--link:hover .ns-btn__arrow {
	transform: translateX(0.35em);
}

.ns-tone--dark .ns-btn--link,
.ns-tone--dark .ns-btn--link:hover {
	color: var(--ns-on-dark);
}

/* ============ 4. Header ============ */
.nostu .zenith-topbar {
	border-bottom: 0;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
}

.nostu .zenith-topbar__inner {
	min-height: 2.5rem;
}

.nostu .zenith-topbar__text {
	font-size: 0.68rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.nostu .zenith-topbar .zenith-contact__item i {
	color: var(--ns-gold);
}

.nostu .zenith-site-header {
	background: var(--ns-cream);
}

.nostu .zenith-site-header--centered .zenith-site-header__inner {
	min-height: 6.25rem;
}

.nostu .zenith-logo img {
	width: auto;
	transition: max-height 0.35s var(--ns-ease);
}

.nostu .zenith-site-header__nav-row {
	border-top: 1px solid var(--ns-line);
}

.nostu .zenith-site-header__nav-row .zenith-site-nav__menu > li > a {
	padding-block: 1.05rem;
}

.nostu .zenith-site-nav__menu > li > a {
	color: var(--ns-ink);
}

.nostu .zenith-icon-button {
	color: var(--ns-ink);
	font-size: 1.05rem;
}

.nostu .zenith-icon-button:hover {
	color: var(--ns-gold);
}

.nostu .zenith-cart-count,
.nostu .zenith-wishlist-count {
	background: var(--ns-gold);
	color: #fff;
	font-family: var(--ns-sans);
	font-weight: 500;
}

.nostu .zenith-search-overlay input[type="search"] {
	font-family: var(--ns-serif);
}

/* Sticky menu bar (assets/js/nostu.js): the header is sticky with a negative top, so the top bar
   and logo row scroll away and only the menu row stays pinned. On phones, where the menu row is
   replaced by the burger, the logo row stays pinned instead. */
.nostu.ns-sticky-nav .zenith-site-header {
	top: calc(-1 * var(--ns-header-offset, 0px));
}

.nostu.ns-sticky-nav.admin-bar .zenith-site-header {
	top: calc(32px - var(--ns-header-offset, 0px));
}

@media (max-width: 782px) {
	.nostu.ns-sticky-nav.admin-bar .zenith-site-header {
		top: calc(-1 * var(--ns-header-offset, 0px));
	}
}

.nostu.ns-nav-stuck .zenith-site-header {
	box-shadow: 0 12px 30px rgba(42, 26, 17, 0.08);
}

.nostu .zenith-site-header__nav-row .zenith-header-container {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ns-nav-logo,
.ns-nav-tools {
	position: absolute;
	top: 50%;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.35s ease, transform 0.35s var(--ns-ease), visibility 0s linear 0.35s;
}

.ns-nav-logo {
	left: var(--zenith-gutter);
	transform: translate(-10px, -50%);
}

.nostu .ns-nav-logo img {
	width: auto;
	max-height: 32px;
}

.ns-nav-tools {
	right: var(--zenith-gutter);
	display: flex;
	align-items: center;
	gap: 0.35rem;
	transform: translate(10px, -50%);
}

.ns-nav-stuck .ns-nav-logo,
.ns-nav-stuck .ns-nav-tools {
	opacity: 1;
	visibility: visible;
	transform: translate(0, -50%);
	transition: opacity 0.35s ease, transform 0.35s var(--ns-ease);
}

/* Header search (left of the centered logo) with live results — includes/shop-tools.php. */
.ns-search {
	position: relative;
	width: min(100%, 20rem);
}

.nostu .ns-search input.ns-search__input {
	width: 100%;
	height: 2.85rem;
	padding: 0 3rem 0 2.7rem;
	border: 1px solid var(--ns-line);
	border-radius: 999px;
	background: var(--ns-parchment);
	color: var(--ns-ink);
	font-family: var(--ns-sans);
	font-size: 0.9rem;
	letter-spacing: 0.01em;
	transition: border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.nostu .ns-search input.ns-search__input::placeholder {
	color: var(--ns-muted);
	opacity: 1;
}

.nostu .ns-search input.ns-search__input:hover {
	border-color: rgba(176, 132, 63, 0.45);
}

.nostu .ns-search input.ns-search__input:focus {
	border-color: var(--ns-gold);
	outline: none;
	background: #fff;
	box-shadow: 0 0 0 4px rgba(176, 132, 63, 0.12);
}

.ns-search__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

.ns-search__icon {
	position: absolute;
	top: 50%;
	left: 1.05rem;
	color: var(--ns-gold);
	font-size: 0.85rem;
	pointer-events: none;
	transform: translateY(-50%);
}

.ns-search.is-loading .ns-search__icon {
	animation: ns-pulse 0.9s ease-in-out infinite alternate;
}

@keyframes ns-pulse {
	to { opacity: 0.3; }
}

.nostu form.ns-search button.ns-search__submit[type="submit"] {
	position: absolute;
	top: 50%;
	right: 0.3rem;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ns-ink);
	color: var(--ns-cream);
	font-size: 0.95rem;
	opacity: 0;
	transform: translateY(-50%) scale(0.85);
	transition: opacity 0.25s ease, transform 0.25s ease, background 0.25s ease;
	cursor: pointer;
}

.nostu form.ns-search:focus-within button.ns-search__submit[type="submit"],
.nostu form.ns-search.is-open button.ns-search__submit[type="submit"] {
	opacity: 1;
	transform: translateY(-50%) scale(1);
}

.nostu form.ns-search button.ns-search__submit[type="submit"]:hover {
	background: var(--ns-gold);
}

.ns-search__panel {
	position: absolute;
	top: calc(100% + 0.65rem);
	left: 0;
	z-index: 70;
	width: 27rem;
	max-width: calc(100vw - 2rem);
	padding: 0.5rem;
	border: 1px solid var(--ns-line);
	border-radius: 0.6rem;
	background: #fff;
	box-shadow: 0 24px 60px rgba(42, 26, 17, 0.14);
	animation: ns-drop 0.25s var(--ns-ease);
}

@keyframes ns-drop {
	from { opacity: 0; transform: translateY(-6px); }
}

.ns-search__item {
	display: flex;
	align-items: center;
	gap: 0.95rem;
	padding: 0.55rem 0.65rem;
	border-radius: 0.4rem;
	color: inherit;
	text-decoration: none;
	transition: background 0.2s ease;
}

.ns-search__item:hover,
.ns-search__item.is-active {
	background: var(--ns-parchment);
	color: inherit;
}

.nostu .ns-search__thumb {
	flex: none;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 0.35rem;
	background: var(--ns-sand);
	object-fit: cover;
}

.ns-search__text {
	min-width: 0;
}

.ns-search__title {
	display: block;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.2;
}

.ns-search__price {
	display: block;
	margin-top: 0.15rem;
	color: var(--ns-gold);
	font-size: 0.82rem;
	letter-spacing: 0.04em;
}

.ns-search__empty {
	margin: 0;
	padding: 0.9rem 0.7rem;
	color: var(--ns-muted);
	font-size: 0.92rem;
}

.nostu form.ns-search button.ns-search__all[type="submit"] {
	display: block;
	width: 100%;
	min-height: 0;
	margin-top: 0.35rem;
	padding: 0.85rem 0.65rem 0.5rem;
	border: 0;
	border-top: 1px solid var(--ns-line);
	border-radius: 0;
	background: none;
	color: var(--ns-ink);
	font-family: var(--ns-sans);
	font-size: 0.66rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-align: left;
	text-transform: uppercase;
	cursor: pointer;
}

.nostu form.ns-search button.ns-search__all[type="submit"]:hover {
	color: var(--ns-gold);
}

/* The field replaces the search icon on desktop; phones keep the icon (full-screen search). */
@media (min-width: 992px) {
	.nostu .zenith-site-header__side--right .zenith-header-extras .zenith-search-toggle {
		display: none;
	}
}

@media (max-width: 991px) {
	.ns-search {
		display: none;
	}
}

/* ============ 5. Title bar (shop, cart, policies…) ============ */
.nostu .zenith-titlebar--colored {
	padding-block: clamp(3rem, 6vw, 5rem);
	border-bottom: 1px solid var(--ns-line);
	background:
		radial-gradient(ellipse at 50% 120%, rgba(176, 132, 63, 0.14), transparent 60%),
		var(--ns-parchment);
}

.nostu .zenith-titlebar__title {
	font-size: clamp(2.5rem, 5vw, 3.75rem);
	font-weight: 500;
	line-height: 1.05;
}

.nostu .zenith-titlebar .zenith-breadcrumbs,
.nostu .zenith-titlebar .woocommerce-breadcrumb {
	margin-top: 1rem;
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ns-muted);
}

.nostu .zenith-titlebar a {
	color: var(--ns-muted);
	text-decoration: none;
}

.nostu .zenith-titlebar a:hover {
	color: var(--ns-gold);
}

/* ============ 6. Nova sections ============ */
.nostu [data-nova-type^="nostu_"] {
	margin: 0;
}

.nostu .nova-section--full-width {
	padding-block: 0;
}

.nostu .nova-section--full-width > .nova-section__inner > .nova-column,
.nostu .ns-block > .nova-section__inner > .nova-column {
	padding-block: 0;
}

.nostu .ns-block > .nova-section__inner {
	padding-inline: var(--ns-gutter);
}

.ns-tone--light { background: var(--ns-cream); }
.ns-tone--parchment { background: var(--ns-parchment); }
.ns-tone--dark {
	background: var(--ns-espresso);
	color: var(--ns-on-dark-muted);
}
.ns-tone--dark h1, .ns-tone--dark h2, .ns-tone--dark h3 { color: var(--ns-on-dark); }
.ns-tone--dark .ns-kicker { color: #c9a266; }

/* --- Hero slider: full-screen photographs, headline over them --- */
.ns-slider {
	--ns-hero-h: max(24rem, calc(100vh - var(--ns-header-h, 12.5rem)));
	--ns-controls: 5.5rem; /* space kept free at the bottom of each slide for the controls */
	position: relative;
	overflow: hidden;
	background: var(--ns-parchment);
	color: var(--ns-ink);
	isolation: isolate;
}

.ns-slider__track {
	display: grid;
}

@supports (height: 100svh) {
	.ns-slider {
		--ns-hero-h: max(24rem, calc(100svh - var(--ns-header-h, 12.5rem)));
	}
}

.ns-slide {
	position: relative;
	grid-area: 1 / 1;
	display: flex;
	align-items: center;
	min-height: var(--ns-hero-h);
	opacity: 0;
	visibility: hidden;
	transition: opacity 1.3s var(--ns-ease), visibility 0s linear 1.3s;
}

.ns-slide.is-active {
	z-index: 2;
	opacity: 1;
	visibility: visible;
	transition: opacity 1.3s var(--ns-ease);
}

.ns-slide.is-leaving {
	z-index: 1;
	visibility: visible;
}

.ns-slide__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.nostu .ns-slide__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ns-focus, 50% 50%);
	filter: brightness(1.06) saturate(1.04);
	transform: scale(1.1);
	transition: transform 9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ns-slide.is-active .ns-slide__img {
	transform: scale(1);
}

/* Scrims: a soft ivory veil behind the text, plus one along the bottom for the slide controls. */
.ns-slide__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(0deg, rgba(252, 250, 246, 0.72) 0%, rgba(252, 250, 246, 0) 26%),
		linear-gradient(90deg, rgba(252, 250, 246, 0.95) 0%, rgba(252, 250, 246, 0.86) 30%, rgba(252, 250, 246, 0.45) 52%, rgba(252, 250, 246, 0) 74%);
}

.ns-slide--right .ns-slide__media::after {
	background:
		linear-gradient(0deg, rgba(252, 250, 246, 0.72) 0%, rgba(252, 250, 246, 0) 26%),
		linear-gradient(270deg, rgba(252, 250, 246, 0.95) 0%, rgba(252, 250, 246, 0.86) 30%, rgba(252, 250, 246, 0.45) 52%, rgba(252, 250, 246, 0) 74%);
}

.ns-slide--center .ns-slide__media::after {
	background:
		linear-gradient(0deg, rgba(252, 250, 246, 0.72) 0%, rgba(252, 250, 246, 0) 26%),
		radial-gradient(ellipse 60% 70% at 50% 48%, rgba(252, 250, 246, 0.9) 0%, rgba(252, 250, 246, 0.6) 55%, rgba(252, 250, 246, 0.15) 100%);
}

.nostu .ns-slide__inner {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: flex-start;
}

.ns-slide--right .ns-slide__inner { justify-content: flex-end; }
.ns-slide--center .ns-slide__inner { justify-content: center; text-align: center; }

.ns-slide__content {
	max-width: 48rem;
	padding-block: clamp(2.5rem, 7vh, 4.5rem) calc(var(--ns-controls) + clamp(1.5rem, 4vh, 3rem));
}

.ns-slide--center .ns-slide__content {
	max-width: 50rem;
}

.ns-slider .ns-kicker {
	color: var(--ns-gold);
}

.ns-slide--center .ns-kicker::after {
	content: "";
	width: 2rem;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
}

.nostu .ns-slide__title {
	margin: 0;
	color: var(--ns-ink);
	font-size: clamp(2.6rem, min(6vw, 9.5vh), 5.75rem);
	font-weight: 500;
	line-height: 0.98;
	letter-spacing: -0.02em;
}

.nostu .ns-slide__title em {
	color: #9a7236;
}

.ns-slide__copy {
	max-width: 32rem;
	margin: 1.6rem 0 0;
	color: var(--ns-text);
	font-size: 1.15rem;
	line-height: 1.7;
}

.ns-slide--center .ns-slide__copy {
	margin-inline: auto;
}

.ns-slide--center .ns-actions {
	justify-content: center;
}

.ns-slider .ns-btn--link {
	color: var(--ns-ink);
}

.ns-slider .ns-btn--link:hover {
	color: var(--ns-gold);
}

/* Text rises in, line by line, each time a slide becomes active. */
.ns-slide__content > * {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.9s var(--ns-ease), transform 1.1s var(--ns-ease);
}

.ns-slide.is-active .ns-slide__content > * {
	opacity: 1;
	transform: none;
}

.ns-slide.is-active .ns-slide__content > :nth-child(1) { transition-delay: 0.35s; }
.ns-slide.is-active .ns-slide__content > :nth-child(2) { transition-delay: 0.5s; }
.ns-slide.is-active .ns-slide__content > :nth-child(3) { transition-delay: 0.68s; }
.ns-slide.is-active .ns-slide__content > :nth-child(4) { transition-delay: 0.84s; }

/* Controls: numbered progress bars + arrows. */
.ns-slider__ui {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 3;
	padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.ns-slider__bar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
}

.ns-slider__dots {
	display: flex;
	flex: 1;
	gap: clamp(1rem, 2.5vw, 2.25rem);
	max-width: 44rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-slider__dots li {
	flex: 1;
	min-width: 0;
}

.ns-slider__dot {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: baseline;
	gap: 0.65rem 0.75rem;
	width: 100%;
	padding: 0.5rem 0;
	border: 0;
	background: none;
	color: rgba(42, 26, 17, 0.6);
	font-family: var(--ns-sans);
	text-shadow: 0 0 14px rgba(252, 250, 246, 0.95), 0 0 4px rgba(252, 250, 246, 0.9);
	text-align: left;
	cursor: pointer;
	transition: color 0.3s ease;
}

.ns-slider__dot:hover,
.ns-slider__dot.is-active {
	color: var(--ns-ink);
}

.ns-slider__num {
	font-family: var(--ns-serif);
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 1;
}

.ns-slider__label {
	overflow: hidden;
	font-size: 0.64rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.ns-slider__progress {
	position: relative;
	grid-column: 1 / -1;
	display: block;
	overflow: hidden;
	background: rgba(42, 26, 17, 0.16);
	height: 1px;
}

.ns-slider__dot.is-active .ns-slider__progress {
	height: 2px;
}

.ns-slider__progress span {
	position: absolute;
	inset: 0;
	background: var(--ns-gold);
	transform: scaleX(0);
	transform-origin: left center;
}

.ns-slider__dot.is-active .ns-slider__progress span {
	transform: scaleX(1);
}

.ns-slider.is-timing .ns-slider__dot.is-active .ns-slider__progress span {
	animation: ns-progress var(--ns-slide-time, 7s) linear both;
}

@keyframes ns-progress {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

.ns-slider__arrows {
	display: flex;
	gap: 0.75rem;
}

.ns-slider__arrow {
	display: grid;
	place-items: center;
	width: 2.9rem;
	height: 2.9rem;
	padding: 0;
	border: 1px solid rgba(42, 26, 17, 0.22);
	border-radius: 50%;
	background: rgba(252, 250, 246, 0.55);
	color: var(--ns-ink);
	font-size: 1.1rem;
	cursor: pointer;
	transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.ns-slider__arrow:hover,
.ns-slider__arrow:focus-visible {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.ns-slider button:focus-visible {
	outline: 2px solid var(--ns-gold);
	outline-offset: 3px;
}

/* Short laptop screens: tighter hero so the whole slide, controls included, fits the view. */
@media (min-width: 56.01rem) and (max-height: 820px) {
	.ns-slider {
		--ns-controls: 4.75rem;
	}

	.ns-slide__content {
		padding-top: clamp(1.75rem, 5vh, 3rem);
	}

	.nostu .ns-slide__title {
		font-size: clamp(2.4rem, min(5.5vw, 8.5vh), 4.75rem);
	}

	.ns-slider .ns-kicker {
		margin-bottom: 0.8rem;
	}

	.ns-slide__copy {
		margin-top: 1.1rem;
		font-size: 1.05rem;
		line-height: 1.6;
	}

	.ns-slider .ns-actions {
		margin-top: 1.5rem;
	}

	.ns-slider__ui {
		padding-bottom: 1.25rem;
	}
}

/* --- Hero: photograph on one side, headline on ivory on the other --- */
.ns-hero {
	position: relative;
	display: grid;
	grid-template-columns: 56fr 44fr;
	min-height: clamp(34rem, calc(100vh - 12.5rem), 50rem);
	overflow: hidden;
	background: var(--ns-cream);
}

.ns-hero__media {
	position: relative;
	grid-area: 1 / 1;
	overflow: hidden;
}

.ns-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(252, 250, 246, 0) 72%, rgba(252, 250, 246, 0.55) 100%);
}

.ns-hero--left { grid-template-columns: 44fr 56fr; }
.ns-hero--left .ns-hero__media { grid-area: 1 / 2; }
.ns-hero--left .ns-hero__media::after {
	background: linear-gradient(270deg, rgba(252, 250, 246, 0) 72%, rgba(252, 250, 246, 0.55) 100%);
}

.nostu .ns-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: ns-hero-zoom 14s var(--ns-ease) both;
}

@keyframes ns-hero-zoom {
	from { transform: scale(1.06); }
	to { transform: scale(1); }
}

.nostu .ns-hero__inner {
	grid-area: 1 / 2;
	display: flex;
	align-items: center;
	max-width: none;
	margin: 0;
	padding: 4rem clamp(2rem, 5.5vw, 6.5rem);
	background:
		radial-gradient(ellipse at 100% 100%, rgba(176, 132, 63, 0.1), transparent 55%),
		var(--ns-cream);
}

.nostu .ns-hero--left .ns-hero__inner { grid-area: 1 / 1; }

.ns-hero__panel {
	max-width: 34rem;
	animation: ns-rise 1.1s var(--ns-ease) 0.15s both;
}
@keyframes ns-rise {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}

.ns-hero__title {
	margin: 0;
	font-size: clamp(3.25rem, 6.4vw, 5.75rem);
	font-weight: 500;
	line-height: 0.98;
	letter-spacing: -0.02em;
}

.ns-hero__copy {
	max-width: 29rem;
	margin: 1.75rem 0 0;
	color: var(--ns-text);
	font-size: 1.125rem;
	line-height: 1.7;
}

/* --- Promise strip --- */
.ns-promise {
	border-block: 1px solid var(--ns-line);
}

.ns-promise__list {
	display: grid;
	grid-template-columns: repeat(var(--ns-count, 3), minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-promise__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	padding: 1.9rem 1rem;
	text-align: left;
}

.ns-promise__item + .ns-promise__item {
	border-left: 1px solid var(--ns-line);
}

.ns-promise__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid rgba(176, 132, 63, 0.45);
	border-radius: 50%;
	color: var(--ns-gold);
	font-size: 1rem;
}

.ns-promise__text strong {
	display: block;
	color: var(--ns-ink);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	line-height: 1.45;
	text-transform: uppercase;
}

.ns-promise__text small {
	display: block;
	color: var(--ns-muted);
	font-size: 0.85rem;
}

.ns-promise.ns-tone--dark { border-color: rgba(255, 255, 255, 0.08); }
.ns-promise.ns-tone--dark .ns-promise__text strong { color: var(--ns-on-dark); }
.ns-promise.ns-tone--dark .ns-promise__item + .ns-promise__item { border-color: rgba(255, 255, 255, 0.1); }

/* --- Section heading --- */
.ns-head {
	margin-bottom: clamp(2.25rem, 4vw, 3.5rem);
}

.ns-head--split {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem 3rem;
	padding-bottom: 1.75rem;
	border-bottom: 1px solid var(--ns-line);
}

.ns-head--center {
	max-width: 46rem;
	margin-inline: auto;
	text-align: center;
}

.ns-head--center .ns-kicker::after {
	content: "";
	width: 2rem;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
}

.ns-head__title {
	margin: 0;
	font-size: clamp(2.25rem, 4.2vw, 3.5rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
}

h3.ns-head__title {
	font-size: clamp(1.9rem, 3vw, 2.5rem);
}

.ns-head__copy {
	max-width: 40rem;
	margin: 1.1rem 0 0;
	color: var(--ns-muted);
	font-size: 1.05rem;
}

.ns-head--center .ns-head__copy {
	margin-inline: auto;
}

.ns-head__link {
	flex: none;
}

.ns-head--center .ns-head__link {
	margin-top: 1.25rem;
}

/* --- Category tiles --- */
.ns-cats {
	display: grid;
	grid-template-columns: repeat(var(--ns-count, 4), minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-cat__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.ns-cat__media {
	display: block;
	overflow: hidden;
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: var(--ns-sand);
	aspect-ratio: 1 / 0.92;
}

.nostu .ns-cat__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ns-ease);
}

.nostu .ns-cat__link:hover .ns-cat__media img {
	transform: scale(1.06);
}

.ns-cat__body {
	display: grid;
	gap: 0.2rem;
	padding-top: 1.25rem;
	text-align: center;
}

.ns-cat__title {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 1.15;
}

.ns-cat__meta {
	color: var(--ns-muted);
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.ns-cat__cta {
	justify-self: center;
	margin-top: 0.75rem;
	padding-bottom: 0.3rem;
	border-bottom: 1px solid transparent;
	color: var(--ns-ink);
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	transition: border-color 0.3s ease, color 0.3s ease;
}

.ns-cat__link:hover .ns-cat__cta {
	border-color: currentColor;
	color: var(--ns-gold);
}

/* --- Image & story --- */
.ns-feature__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
}

.ns-feature--right .ns-feature__media {
	order: 2;
}

.nostu .ns-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Bleed: photo runs to the viewport edge and fills the section height. */
.ns-feature--bleed .ns-feature__grid {
	align-items: stretch;
	min-height: clamp(32rem, 48vw, 44rem);
}

.ns-feature--bleed .ns-feature__media {
	position: relative;
	min-height: 22rem;
}

.nostu .ns-feature--bleed .ns-feature__media img {
	position: absolute;
	inset: 0;
}

.ns-feature--bleed .ns-feature__content {
	display: flex;
	align-items: center;
	padding: clamp(3.5rem, 7vw, 6.5rem) clamp(1.5rem, 6vw, 6rem);
}

.ns-feature--bleed .ns-feature__text {
	max-width: 32rem;
}

/* Framed: photo and text sit inside the page grid. */
.ns-feature--framed {
	padding-block: var(--ns-block);
}

.ns-feature--framed .ns-feature__grid {
	gap: clamp(2.5rem, 7vw, 7rem);
	max-width: var(--ns-wrap);
	margin-inline: auto;
	padding-inline: var(--ns-gutter);
}

.ns-feature--framed .ns-feature__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--zenith-radius-md, 0.25rem);
	aspect-ratio: 4 / 5;
}

.ns-feature--framed.ns-ratio--square .ns-feature__media { aspect-ratio: 1; }
.ns-feature--framed.ns-ratio--landscape .ns-feature__media { aspect-ratio: 4 / 3; }

.ns-feature--framed .ns-feature__media::after {
	content: "";
	position: absolute;
	inset: 1rem;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 2px;
	pointer-events: none;
}

.ns-feature__title {
	margin: 0;
	font-size: clamp(2.25rem, 4.2vw, 3.5rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
}

.ns-feature__lead {
	margin: 1.6rem 0 0;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: clamp(1.3rem, 1.9vw, 1.55rem);
	font-style: italic;
	line-height: 1.45;
}

.ns-tone--dark .ns-feature__lead {
	color: var(--ns-on-dark);
}

.ns-feature__body {
	margin-top: 1.4rem;
}

.ns-feature__body p + p {
	margin-top: 1.1rem;
}

.ns-checks {
	display: grid;
	gap: 0.85rem;
	margin: 1.9rem 0 0;
	padding: 1.6rem 0 0;
	border-top: 1px solid var(--ns-line);
	list-style: none;
}

.ns-tone--dark .ns-checks {
	border-color: rgba(255, 255, 255, 0.12);
}

.ns-checks li {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	color: var(--ns-ink);
	font-size: 0.74rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ns-tone--dark .ns-checks li {
	color: var(--ns-on-dark);
}

.ns-checks li::before {
	content: "";
	flex: none;
	width: 0.45rem;
	height: 0.45rem;
	border: 1px solid var(--ns-gold);
	transform: rotate(45deg);
}

/* --- Promise quote --- */
.ns-quote {
	position: relative;
	overflow: hidden;
	padding-block: clamp(5rem, 9vw, 8rem);
	text-align: center;
}

.ns-quote.ns-tone--dark::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 50% 0%, rgba(201, 162, 102, 0.16), transparent 65%);
	pointer-events: none;
}

.ns-quote.ns-tone--parchment {
	border-top: 1px solid var(--ns-line);
}

.ns-quote.ns-tone--parchment::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 50% 0%, rgba(176, 132, 63, 0.12), transparent 62%);
	pointer-events: none;
}

.ns-quote__inner {
	position: relative;
	max-width: 58rem;
}

.nostu .ns-quote__logo img {
	width: auto;
	max-height: 7.5rem;
	margin: 0 auto 2.25rem;
}

.ns-quote .ns-kicker::after {
	content: "";
	width: 2rem;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
}

.ns-quote__text {
	margin: 0;
	padding: 0;
	border: 0;
}

.ns-quote__text p {
	margin: 0;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: clamp(2rem, 4.2vw, 3.4rem);
	font-weight: 500;
	line-height: 1.15;
}

.ns-tone--dark .ns-quote__text p {
	color: var(--ns-on-dark);
}

.ns-quote__cite {
	max-width: 40rem;
	margin: 1.75rem auto 0;
	font-size: 1.05rem;
}

/* --- Page banner --- */
.ns-pagehero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 18rem;
	overflow: hidden;
	padding-block: clamp(4rem, 8vw, 6.5rem);
	border-bottom: 1px solid var(--ns-line);
	background:
		radial-gradient(ellipse at 50% 120%, rgba(176, 132, 63, 0.14), transparent 60%),
		var(--ns-parchment);
	text-align: center;
}

.ns-pagehero--photo {
	min-height: clamp(24rem, 42vw, 32rem);
	border-bottom: 0;
	background: var(--ns-espresso);
}

.ns-pagehero__media {
	position: absolute;
	inset: 0;
}

.nostu .ns-pagehero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ns-pagehero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(33, 22, 15, 0.35), rgba(33, 22, 15, 0.62));
}

.ns-pagehero__inner {
	position: relative;
	max-width: 52rem;
}

.ns-pagehero .ns-kicker::after {
	content: "";
	width: 2rem;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
}

.ns-pagehero__title {
	margin: 0;
	font-size: clamp(2.75rem, 6vw, 4.75rem);
	line-height: 1;
	letter-spacing: -0.02em;
}

.ns-pagehero__copy {
	max-width: 36rem;
	margin: 1.4rem auto 0;
	font-size: 1.1rem;
}

.ns-pagehero--photo .ns-kicker { color: #e2c48f; }
.ns-pagehero--photo .ns-pagehero__title { color: #fff; }
.ns-pagehero--photo .ns-pagehero__title em { color: #e2c48f; }
.ns-pagehero--photo .ns-pagehero__copy { color: rgba(255, 255, 255, 0.86); }

/* --- Contact --- */
.ns-contact__title {
	margin: 0;
	font-size: clamp(2.1rem, 3.6vw, 3rem);
	line-height: 1.05;
}

.ns-contact__copy {
	margin: 1rem 0 0;
	color: var(--ns-muted);
}

.ns-contact__list {
	margin: 2.25rem 0 0;
	padding: 0;
	list-style: none;
}

.ns-contact__item {
	display: flex;
	gap: 1.25rem;
	padding: 1.6rem 0;
	border-top: 1px solid var(--ns-line);
}

.ns-contact__item:last-child {
	border-bottom: 1px solid var(--ns-line);
}

.ns-contact__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 2.9rem;
	height: 2.9rem;
	border-radius: 50%;
	background: var(--ns-parchment);
	color: var(--ns-gold);
}

.ns-contact__label {
	display: block;
	margin-bottom: 0.3rem;
	color: var(--ns-gold);
	font-size: 0.68rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.ns-contact__value {
	display: block;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.4rem;
	line-height: 1.35;
}

.ns-contact__value a {
	color: inherit;
	text-decoration: none;
}

.ns-contact__value a:hover {
	color: var(--ns-gold);
}

.nostu .ns-form-card {
	padding: clamp(1.75rem, 4vw, 3.25rem) !important;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
}

.ns-form-card .ns-head {
	display: block;
	margin-bottom: 1.75rem;
	padding-bottom: 0;
	border: 0;
}

/* Nova forms */
.nostu .nova-contact-form label,
.nostu .nova-form label {
	color: var(--ns-ink);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.nostu .nova-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.nostu .nova-contact-form textarea,
.nostu .nova-contact-form select {
	border: 1px solid var(--ns-line);
	border-radius: 2px;
	background: var(--ns-cream);
	color: var(--ns-ink);
	font-family: var(--ns-sans);
	font-size: 1rem;
}

.nostu .nova-contact-form input:focus,
.nostu .nova-contact-form textarea:focus {
	border-color: var(--ns-gold);
	outline: none;
	box-shadow: 0 0 0 3px rgba(176, 132, 63, 0.15);
}

/* ============ 7. WooCommerce: product cards ============ */
.nostu .woocommerce ul.products {
	gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1rem, 2vw, 1.75rem);
}

.nostu .zenith-product-card__media {
	margin-bottom: 1.2rem;
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: var(--ns-sand);
}

.nostu li.product:hover .zenith-product-card__media img:first-child {
	transform: scale(1.04);
}

.nostu li.product.outofstock .zenith-product-card__media img {
	filter: saturate(0.6);
	opacity: 0.8;
}

.nostu .zenith-product-card__category {
	margin-bottom: 0.4rem;
	color: var(--ns-gold);
	font-size: 0.64rem;
	font-weight: 500;
	letter-spacing: 0.24em;
}

.nostu .woocommerce ul.products li.product .woocommerce-loop-product__title,
.nostu.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin-bottom: 0.4rem;
	font-family: var(--ns-serif);
	font-size: 1.55rem;
	font-weight: 500;
	line-height: 1.15;
	transition: color 0.3s ease;
}

.nostu .woocommerce ul.products li.product a:hover .woocommerce-loop-product__title,
.nostu.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
	color: var(--ns-gold);
}

.nostu .woocommerce ul.products li.product .price,
.nostu.woocommerce ul.products li.product .price {
	margin-bottom: 1.1rem;
	color: var(--ns-ink);
	font-family: var(--ns-sans);
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.04em;
}

.nostu .woocommerce ul.products li.product .star-rating,
.nostu.woocommerce ul.products li.product .star-rating {
	font-size: 0.72rem;
	color: var(--ns-gold);
}

.nostu .woocommerce ul.products li.product .button,
.nostu.woocommerce ul.products li.product .button {
	display: flex;
	text-align: center;
	align-self: stretch;
	min-height: 2.85rem;
	margin-top: auto;
	padding: 0.8em 1.2em;
	border-color: var(--ns-line);
	background: transparent;
	color: var(--ns-ink);
	font-size: 0.66rem;
}

.nostu .woocommerce ul.products li.product .button:hover,
.nostu.woocommerce ul.products li.product .button:hover {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.nostu .woocommerce ul.products li.product .button.loading,
.nostu.woocommerce ul.products li.product .button.loading {
	opacity: 0.6;
}

.nostu .woocommerce ul.products li.product .added_to_cart,
.nostu.woocommerce ul.products li.product .added_to_cart {
	margin: 0.6rem 0 0;
	color: var(--ns-gold);
	font-size: 0.66rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-align: center;
	text-transform: uppercase;
}

.nostu .zenith-card-action {
	border: 0;
	background: rgba(252, 250, 246, 0.94);
	color: var(--ns-ink);
	box-shadow: 0 6px 18px rgba(42, 26, 17, 0.08);
}

.nostu .zenith-card-action:hover,
.nostu .zenith-card-action:focus-visible {
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.nostu .woocommerce span.onsale,
.nostu.woocommerce span.onsale,
.nostu .woocommerce ul.products li.product .onsale,
.nostu.woocommerce ul.products li.product .onsale,
.nostu .zenith-badge {
	min-height: 0;
	padding: 0.45em 0.8em;
	border-radius: 2px;
	background: var(--ns-chilli);
	color: #fff;
	font-family: var(--ns-sans);
	font-size: 0.6rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.2;
	text-transform: uppercase;
}

.nostu .zenith-badge--sold-out,
.nostu .zenith-badge--out-of-stock {
	background: var(--ns-cream);
	color: var(--ns-ink);
}

/* Add to Cart: a contrasting colour everywhere (Theme Options → Colors → Add to Cart Button Colour). */
.nostu ul.products li.product .button.add_to_cart_button,
.nostu .woocommerce ul.products li.product .button.add_to_cart_button,
.nostu.woocommerce ul.products li.product .button.add_to_cart_button,
.nostu .woocommerce div.product form.cart .single_add_to_cart_button,
.nostu.woocommerce div.product form.cart .single_add_to_cart_button,
.nostu .zenith-quick-view form.cart button.single_add_to_cart_button,
.nostu .zenith-sticky-atc .zenith-button.zenith-sticky-atc__button {
	border-color: var(--ns-cta, #a38058);
	background: var(--ns-cta, #a38058);
	color: #fff;
	font-weight: 600;
}

.nostu ul.products li.product .button.add_to_cart_button:hover,
.nostu .woocommerce ul.products li.product .button.add_to_cart_button:hover,
.nostu.woocommerce ul.products li.product .button.add_to_cart_button:hover,
.nostu .woocommerce div.product form.cart .single_add_to_cart_button:hover,
.nostu.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.nostu .zenith-quick-view form.cart button.single_add_to_cart_button:hover,
.nostu .zenith-sticky-atc .zenith-button.zenith-sticky-atc__button:hover {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream);
}

/* ============ 8. Shop / archives ============ */
.nostu .nostu-cat-pills {
	grid-column: 1 / -1;
	width: 100%;
	margin-bottom: 2rem;
}

.nostu .nostu-cat-pills ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nostu .nostu-cat-pills a {
	display: inline-block;
	padding: 0.7em 1.5em;
	border: 1px solid var(--ns-line);
	border-radius: 999px;
	color: var(--ns-ink);
	font-size: 0.68rem;
	letter-spacing: 0.2em;
	text-decoration: none;
	text-transform: uppercase;
	transition: all 0.3s ease;
}

.nostu .nostu-cat-pills a:hover {
	border-color: var(--ns-gold);
	color: var(--ns-gold);
}

.nostu .nostu-cat-pills a[aria-current="page"] {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.nostu .woocommerce .woocommerce-result-count,
.nostu.woocommerce .woocommerce-result-count,
.nostu .woocommerce .woocommerce-ordering,
.nostu.woocommerce .woocommerce-ordering {
	margin-bottom: 2.25rem;
}

.nostu .woocommerce .woocommerce-result-count,
.nostu.woocommerce .woocommerce-result-count {
	color: var(--ns-muted);
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.nostu .woocommerce .woocommerce-ordering select,
.nostu.woocommerce .woocommerce-ordering select,
.nostu select,
.nostu input[type="text"],
.nostu input[type="email"],
.nostu input[type="tel"],
.nostu input[type="password"],
.nostu input[type="search"],
.nostu input[type="number"],
.nostu textarea {
	border-color: var(--ns-line);
	border-radius: 2px;
	background-color: #fff;
	color: var(--ns-ink);
}

.nostu .woocommerce nav.woocommerce-pagination ul li a,
.nostu.woocommerce nav.woocommerce-pagination ul li a,
.nostu .woocommerce nav.woocommerce-pagination ul li span,
.nostu.woocommerce nav.woocommerce-pagination ul li span {
	border-radius: 2px;
}

/* Price filter above the product grid — includes/shop-tools.php. */
.nostu .ns-price {
	clear: both;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.85rem 1.5rem;
	max-width: 48rem;
	margin: 0 auto 2.5rem;
	padding: 0.85rem 0.85rem 0.85rem 1.75rem;
	border: 1px solid var(--ns-line);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(42, 26, 17, 0.04);
}

.ns-price__label {
	color: var(--ns-gold);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.ns-price__range {
	position: relative;
	flex: 1 1 13rem;
	min-width: 11rem;
	height: 1.5rem;
}

.ns-price__track {
	position: absolute;
	top: 50%;
	right: 0;
	left: 0;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--ns-line) var(--lo), var(--ns-cta, #a38058) var(--lo), var(--ns-cta, #a38058) var(--hi), var(--ns-line) var(--hi));
	transform: translateY(-50%);
}

.nostu .ns-price__range input[type="range"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 1.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}

.ns-price__range input[type="range"]::-webkit-slider-runnable-track {
	height: 1.5rem;
	background: transparent;
}

.ns-price__range input[type="range"]::-moz-range-track {
	height: 1.5rem;
	background: transparent;
}

.ns-price__range input[type="range"]::-webkit-slider-thumb {
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.175rem;
	border: 2px solid var(--ns-cta, #a38058);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 8px rgba(42, 26, 17, 0.2);
	cursor: grab;
	pointer-events: auto;
	-webkit-appearance: none;
	transition: transform 0.2s ease;
}

.ns-price__range input[type="range"]::-moz-range-thumb {
	width: 1.15rem;
	height: 1.15rem;
	border: 2px solid var(--ns-cta, #a38058);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 8px rgba(42, 26, 17, 0.2);
	cursor: grab;
	pointer-events: auto;
}

.ns-price__range input[type="range"]:active::-webkit-slider-thumb {
	cursor: grabbing;
	transform: scale(1.15);
}

.ns-price__range input[type="range"]:focus {
	outline: none;
}

.ns-price__range input[type="range"]:focus-visible::-webkit-slider-thumb {
	box-shadow: 0 0 0 4px rgba(163, 128, 88, 0.3);
}

.ns-price__range input[type="range"]:focus-visible::-moz-range-thumb {
	box-shadow: 0 0 0 4px rgba(163, 128, 88, 0.3);
}

.ns-price__values {
	min-width: 8.5rem;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.2rem;
	text-align: center;
	white-space: nowrap;
}

.nostu form.ns-price button.ns-price__apply[type="submit"] {
	min-height: 2.6rem;
	padding: 0.6em 1.6em;
	border: 1px solid var(--ns-ink);
	border-radius: 999px;
	background: var(--ns-ink);
	color: var(--ns-cream);
	font-family: var(--ns-sans);
	font-size: 0.66rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.3s ease, border-color 0.3s ease;
}

.nostu form.ns-price button.ns-price__apply[type="submit"]:hover {
	border-color: var(--ns-cta, #a38058);
	background: var(--ns-cta, #a38058);
}

.ns-price__reset {
	color: var(--ns-muted);
	font-size: 0.66rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.ns-price__reset:hover {
	color: var(--ns-gold);
}

@media (max-width: 48rem) {
	.nostu .ns-price {
		border-radius: 1rem;
		padding: 1.1rem 1.25rem;
	}

	.ns-price__range {
		flex-basis: 100%;
		order: 3;
	}

	.ns-price__values {
		min-width: 0;
	}
}

/* ============ 9. Single product ============ */
.nostu.single-product .zenith-titlebar--colored {
	padding-block: 1.4rem;
	background: var(--ns-cream);
	text-align: left;
}

.nostu.single-product .zenith-titlebar .woocommerce-breadcrumb,
.nostu.single-product .zenith-titlebar .zenith-breadcrumbs {
	margin-top: 0;
}

.nostu .woocommerce div.product .product_title,
.nostu.woocommerce div.product .product_title {
	margin-bottom: 0.75rem;
	font-size: clamp(2.5rem, 4.5vw, 3.75rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -0.015em;
}

.nostu .woocommerce div.product .summary .posted_in,
.nostu.woocommerce div.product .summary .posted_in,
.nostu .zenith-product-kicker {
	color: var(--ns-gold);
}

.nostu .woocommerce div.product .summary .price,
.nostu.woocommerce div.product .summary .price {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 2rem;
	font-weight: 500;
}

.nostu .woocommerce div.product .woocommerce-product-details__short-description,
.nostu.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--ns-text);
	font-size: 1.05rem;
}

.nostu .woocommerce div.product form.cart,
.nostu.woocommerce div.product form.cart {
	gap: 0.75rem;
	padding-block: 1.75rem;
	border-color: var(--ns-line);
}

.nostu .woocommerce div.product form.cart .single_add_to_cart_button,
.nostu.woocommerce div.product form.cart .single_add_to_cart_button {
	min-height: 3.35rem;
	font-size: 0.74rem;
}

.nostu .woocommerce .quantity,
.nostu.woocommerce .quantity {
	border-color: var(--ns-line);
	border-radius: 2px;
	background: #fff;
}

.nostu .woocommerce div.product .product_meta,
.nostu.woocommerce div.product .product_meta {
	color: var(--ns-muted);
	font-size: 0.78rem;
	letter-spacing: 0.08em;
}

.nostu .woocommerce div.product .product_meta a,
.nostu.woocommerce div.product .product_meta a {
	color: var(--ns-ink);
}

.nostu .zenith-trust-items li,
.nostu .zenith-trust li {
	color: var(--ns-text);
}

.nostu .zenith-trust-points i,
.nostu .star-rating,
.nostu .star-rating span,
.nostu .zenith-trust-items i,
.nostu .zenith-trust i {
	color: var(--ns-gold);
}

.nostu .woocommerce div.product div.images img,
.nostu.woocommerce div.product div.images img,
.nostu .woocommerce div.product div.images .flex-control-thumbs li img,
.nostu.woocommerce div.product div.images .flex-control-thumbs li img {
	border-radius: var(--zenith-radius-md, 0.25rem);
}

.nostu .woocommerce div.product .woocommerce-tabs ul.tabs,
.nostu.woocommerce div.product .woocommerce-tabs ul.tabs {
	justify-content: center;
	border-color: var(--ns-line);
}

.nostu .woocommerce div.product .woocommerce-tabs ul.tabs li a,
.nostu.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--ns-muted);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.nostu .woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.nostu.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--ns-ink);
}

.nostu .woocommerce div.product .woocommerce-tabs .panel,
.nostu.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 48rem;
	margin-inline: auto;
	font-size: 1.05rem;
}

.nostu .woocommerce .related > h2,
.nostu.woocommerce .related > h2,
.nostu .woocommerce .upsells > h2,
.nostu.woocommerce .upsells > h2,
.nostu .zenith-recently-viewed > h2,
.nostu .woocommerce .cross-sells > h2,
.nostu.woocommerce .cross-sells > h2 {
	margin-bottom: 2.5rem;
	font-size: clamp(2rem, 3.5vw, 3rem);
	text-align: center;
}

.nostu .woocommerce .related,
.nostu.woocommerce .related,
.nostu .zenith-recently-viewed {
	padding-top: var(--ns-block);
}

/* ============ 10. Cart, checkout, account ============ */
.nostu.woocommerce-account:not(.logged-in) .zenith-page__content > .woocommerce {
	max-width: 34rem;
	margin-inline: auto;
}

/* The billing column spans both rows; keep row 1 as tall as the "Your order" heading only. */
.nostu.woocommerce-checkout form.checkout {
	grid-template-rows: auto 1fr;
}

.nostu.woocommerce-checkout #customer_details h3:first-child,
.nostu.woocommerce-checkout #order_review_heading {
	margin-top: 0;
}

.nostu .woocommerce table.shop_table {
	border-color: var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
}

.nostu .woocommerce table.shop_table th,
.nostu.woocommerce table.shop_table th {
	color: var(--ns-ink);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.nostu .woocommerce table.shop_table .product-name a,
.nostu.woocommerce table.shop_table .product-name a {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.35rem;
	text-decoration: none;
}

.nostu .woocommerce-page .cart-collaterals .cart_totals,
.nostu .woocommerce-checkout #payment,
.nostu .woocommerce form.checkout #order_review,
.nostu.woocommerce form.checkout #order_review {
	border-color: var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: var(--ns-parchment);
}

.nostu .woocommerce .cart-collaterals h2,
.nostu.woocommerce .cart-collaterals h2,
.nostu .woocommerce-checkout h3,
.nostu #order_review_heading {
	font-size: 1.9rem;
}

.nostu .woocommerce-info,
.nostu .woocommerce-message {
	border-radius: 2px;
	border-top-color: var(--ns-gold);
	background: var(--ns-parchment);
}

.nostu .woocommerce-info::before,
.nostu .woocommerce-message::before {
	color: var(--ns-gold);
}

/* Mini-cart drawer */
.nostu .zenith-cart-drawer__panel {
	background: var(--ns-cream);
}

.nostu .zenith-cart-drawer__head h2 {
	font-size: 1.9rem;
}

.nostu .zenith-cart-drawer .woocommerce-mini-cart-item a:not(.remove) {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.2rem;
	font-weight: 500;
}

/* Cart on phones/tablets (card layout from Zenith): Nostu labels and item names. */
@media (max-width: 48rem) {
	.nostu .woocommerce table.shop_table_responsive tbody td[data-title]::before,
	.nostu.woocommerce table.shop_table_responsive tbody td[data-title]::before {
		color: var(--ns-muted);
		font-family: var(--ns-sans);
		font-size: 0.72rem;
		font-weight: 500;
		letter-spacing: 0.16em;
		text-transform: uppercase;
	}

	.nostu .woocommerce table.cart tr.cart_item td.product-name a,
	.nostu.woocommerce table.cart tr.cart_item td.product-name a {
		font-size: 1.3rem;
		line-height: 1.2;
	}

	.nostu .woocommerce table.cart tr.cart_item td.product-subtotal,
	.nostu.woocommerce table.cart tr.cart_item td.product-subtotal {
		color: var(--ns-ink);
		font-weight: 500;
	}
}
/* ============ Account (My Account pages) — includes/account.php ============ */
.nostu.woocommerce-account.logged-in .zenith-page__content > .woocommerce {
	grid-template-columns: 17rem minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 3.5rem);
}

/* Sidebar: profile card + navigation, kept in view while the content scrolls. */
.nostu.woocommerce-account .ns-account-sidebar {
	position: sticky;
	top: calc(var(--ns-sticky-offset, 4.5rem) + 1rem);
	overflow: hidden;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
}

.nostu.woocommerce-account .ns-account-sidebar .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
}

.ns-account-profile {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 1.4rem 1.25rem;
	border-bottom: 1px solid var(--ns-line);
	background: var(--ns-parchment);
}

.ns-account-profile__avatar {
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--ns-ink);
	color: var(--ns-cream);
	font-family: var(--ns-serif);
	font-size: 1.45rem;
	line-height: 1;
}

.ns-account-profile__text {
	display: grid;
	min-width: 0;
}

.ns-account-profile__name {
	overflow: hidden;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.3rem;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ns-account-profile__meta {
	color: var(--ns-muted);
	font-size: 0.78rem;
}

.nostu .woocommerce-MyAccount-navigation ul {
	padding: 0.6rem;
	border: 0;
	border-radius: 0;
}

.nostu .woocommerce-MyAccount-navigation li + li {
	margin-top: 0.15rem;
}

.nostu .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.8rem 0.9rem;
	border-radius: 2px;
	color: var(--ns-ink);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	transition: background 0.25s ease, color 0.25s ease;
}

.nostu .woocommerce-MyAccount-navigation a::before {
	width: 1.1rem;
	color: var(--ns-gold);
	font-family: "Font Awesome 6 Free";
	font-size: 0.9rem;
	font-weight: 900;
	letter-spacing: 0;
	text-align: center;
	transition: color 0.25s ease;
}

.nostu .woocommerce-MyAccount-navigation-link--dashboard a::before { content: "\f015"; }
.nostu .woocommerce-MyAccount-navigation-link--orders a::before { content: "\f290"; }
.nostu .woocommerce-MyAccount-navigation-link--downloads a::before { content: "\f019"; }
.nostu .woocommerce-MyAccount-navigation-link--edit-address a::before { content: "\f3c5"; }
.nostu .woocommerce-MyAccount-navigation-link--edit-account a::before { content: "\f007"; }
.nostu .woocommerce-MyAccount-navigation-link--customer-logout a::before { content: "\f2f5"; }
.nostu .woocommerce-MyAccount-navigation-link--zenith-wishlist a::before,
.nostu .woocommerce-MyAccount-navigation-link--wishlist a::before { content: "\f004"; }

.nostu .woocommerce-MyAccount-navigation a:hover {
	background: var(--ns-parchment);
	color: var(--ns-ink);
}

.nostu .woocommerce-MyAccount-navigation .is-active a,
.nostu .woocommerce-MyAccount-navigation .is-active a:hover {
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.nostu .woocommerce-MyAccount-navigation .is-active a::before {
	color: #e2c48f;
}

.nostu .woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 0.5rem !important;
	padding-top: 0.5rem;
	border-top: 1px solid var(--ns-line);
}

.nostu .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--ns-muted);
}

/* Content column. */
.nostu .woocommerce-MyAccount-content {
	min-width: 0;
	font-size: 1rem;
}

.nostu .woocommerce-MyAccount-content > p {
	color: var(--ns-text);
}

.nostu .woocommerce-MyAccount-content > p + p {
	margin-top: 0.75rem;
}

.nostu .woocommerce-MyAccount-content a:not(.button):not(.ns-btn):not(.ns-account-card) {
	color: var(--ns-gold);
	text-decoration-color: rgba(176, 132, 63, 0.4);
}

.nostu .woocommerce-MyAccount-content h2,
.nostu .woocommerce-MyAccount-content h3,
.nostu .woocommerce-MyAccount-content legend {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-weight: 500;
}

.nostu .woocommerce-MyAccount-content h2 {
	margin: 0 0 1.25rem;
	font-size: clamp(1.7rem, 2.6vw, 2.1rem);
	line-height: 1.15;
}

.nostu .woocommerce-MyAccount-content h3 {
	margin: 0;
	font-size: 1.6rem;
}

/* Dashboard: greeting as a heading line, latest order, quick-link cards. */
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type:has(> strong) {
	margin-bottom: 0.4rem;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: clamp(1.35rem, 2vw, 1.6rem);
	line-height: 1.3;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type:has(> strong) a {
	font-family: var(--ns-sans);
	font-size: 0.9rem;
}

.ns-account-latest {
	margin-top: 2rem;
	padding: 1.4rem 1.5rem;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: var(--ns-parchment);
}

.ns-account-latest__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.6rem;
}

.ns-account-latest .ns-kicker {
	margin: 0;
}

.ns-account-latest__body {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem 1.25rem;
}

.ns-account-latest__number {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.6rem;
}

.ns-account-latest__meta {
	flex: 1 1 14rem;
	color: var(--ns-text);
	font-size: 0.95rem;
}

.ns-account-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.ns-account-card {
	position: relative;
	display: grid;
	gap: 0.25rem;
	height: 100%;
	padding: 1.25rem 3rem 1.25rem 4.25rem;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s var(--ns-ease);
}

.ns-account-card::before {
	position: absolute;
	top: 50%;
	left: 1.25rem;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: var(--ns-parchment);
	color: var(--ns-gold);
	font-family: "Font Awesome 6 Free";
	font-size: 0.85rem;
	font-weight: 900;
	transform: translateY(-50%);
}

.ns-account-card--orders::before { content: "\f290"; }
.ns-account-card--addresses::before { content: "\f3c5"; }
.ns-account-card--account::before { content: "\f007"; }
.ns-account-card--shop::before { content: "\f54e"; }

.ns-account-card::after {
	content: "\2192";
	position: absolute;
	top: 50%;
	right: 1.25rem;
	color: var(--ns-muted);
	transform: translateY(-50%);
	transition: transform 0.25s var(--ns-ease), color 0.25s ease;
}

.ns-account-card:hover {
	border-color: rgba(176, 132, 63, 0.5);
	box-shadow: 0 12px 30px rgba(42, 26, 17, 0.07);
	color: inherit;
	transform: translateY(-2px);
}

.ns-account-card:hover::after {
	color: var(--ns-gold);
	transform: translate(4px, -50%);
}

.ns-account-card__title {
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.3rem;
	line-height: 1.2;
}

.ns-account-card__text {
	color: var(--ns-muted);
	font-size: 0.85rem;
}

/* Status pills (dashboard, orders list, order view). */
.ns-status,
.nostu .woocommerce-orders-table__cell-order-status {
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ns-status {
	display: inline-block;
	padding: 0.35em 0.85em;
	border-radius: 999px;
	background: var(--ns-sand);
	color: var(--ns-ink);
	line-height: 1.3;
}

.ns-status--completed,
.ns-order-status-completed mark.order-status { background: #e3eedf; color: #2f5a2a; }
.ns-status--processing,
.ns-order-status-processing mark.order-status { background: #f4e7cf; color: #7a5317; }
.ns-status--on-hold,
.ns-order-status-on-hold mark.order-status { background: #f6e3c8; color: #85500f; }
.ns-status--cancelled, .ns-status--failed, .ns-status--refunded,
.ns-order-status-cancelled mark.order-status,
.ns-order-status-failed mark.order-status,
.ns-order-status-refunded mark.order-status { background: #f3dcd5; color: #8a2f1c; }

/* Orders list. */
.nostu .woocommerce-orders-table {
	font-size: 0.95rem;
}

.nostu .woocommerce-orders-table th {
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.nostu .woocommerce-orders-table td,
.nostu .woocommerce-orders-table th {
	vertical-align: middle;
}

.nostu .woocommerce-orders-table__cell-order-number a {
	color: var(--ns-ink) !important;
	font-family: var(--ns-serif);
	font-size: 1.2rem;
	text-decoration: none !important;
}

.nostu .woocommerce-orders-table__cell-order-status {
	color: var(--ns-ink);
}

.nostu .woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { color: #2f5a2a; }
.nostu .woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status,
.nostu .woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status { color: #7a5317; }
.nostu .woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.nostu .woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status,
.nostu .woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status { color: #8a2f1c; }

.nostu .woocommerce-orders-table__cell-order-status::after {
	content: "";
	display: inline-block;
	width: 0.45rem;
	height: 0.45rem;
	margin-left: 0.5rem;
	border-radius: 50%;
	background: currentColor;
	vertical-align: 0.1em;
}

.nostu .woocommerce-orders-table__cell-order-actions {
	text-align: right;
}

.nostu .woocommerce-MyAccount-content .woocommerce-button.button,
.nostu .woocommerce-MyAccount-content .woocommerce-orders-table .button {
	min-height: 2.5rem;
	padding: 0.6em 1.3em;
	border-color: var(--ns-line);
	background: transparent;
	color: var(--ns-ink);
	font-size: 0.66rem;
}

.nostu .woocommerce-MyAccount-content .woocommerce-button.button:hover,
.nostu .woocommerce-MyAccount-content .woocommerce-orders-table .button:hover {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream);
}

.nostu .woocommerce-MyAccount-content .woocommerce-orders-table .button + .button {
	margin-left: 0.4rem;
}

.nostu .woocommerce-pagination--without-numbers {
	display: flex;
	gap: 0.5rem;
	margin-top: 1.5rem;
}

/* Order view: intro line as a summary bar with a status pill. */
.woocommerce-account .woocommerce-MyAccount-content > p:has(> mark.order-number) {
	margin-bottom: 2rem;
	padding: 1.1rem 1.4rem;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: var(--ns-parchment);
	line-height: 2;
}

.nostu .woocommerce-MyAccount-content mark {
	background: none;
	color: var(--ns-ink);
	font-weight: 600;
}

.nostu .woocommerce-MyAccount-content mark.order-status {
	display: inline-block;
	padding: 0.15em 0.85em;
	border-radius: 999px;
	background: var(--ns-sand);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.8;
	text-transform: uppercase;
}

.nostu .woocommerce-order-details,
.nostu .woocommerce-customer-details {
	margin-top: 2.5rem;
}

.nostu .woocommerce-order-details .order-again {
	margin-top: 1.25rem;
}

.nostu .woocommerce-table--order-details tfoot th {
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.nostu .woocommerce-customer-details address,
.nostu .woocommerce-Addresses address {
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
	color: var(--ns-text);
	font-style: normal;
	line-height: 1.75;
}

.nostu .woocommerce-customer-details address p {
	margin: 0.5rem 0 0;
	color: var(--ns-muted);
}

.nostu .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.nostu .woocommerce-customer-details .woocommerce-columns--addresses::before,
.nostu .woocommerce-customer-details .woocommerce-columns--addresses::after,
.nostu .woocommerce-Addresses::before,
.nostu .woocommerce-Addresses::after {
	content: none;
}

.nostu .woocommerce-customer-details .woocommerce-column,
.nostu .woocommerce-Addresses .woocommerce-Address {
	float: none;
	width: auto;
	max-width: none;
}

/* Addresses page: two cards with the edit link beside the title. */
.nostu .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	margin-top: 1.5rem;
}

.nostu .woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin-bottom: 0.9rem;
}

.nostu .woocommerce-Address-title::before,
.nostu .woocommerce-Address-title::after {
	content: none;
}

.nostu .woocommerce-Address-title h2,
.nostu .woocommerce-Address-title h3 {
	float: none;
	margin: 0;
	font-size: 1.6rem;
}

.nostu .woocommerce-Address-title a.edit {
	float: none;
	padding: 0.45em 1em;
	border: 1px solid var(--ns-line);
	border-radius: 999px;
	color: var(--ns-ink) !important;
	font-size: 0.66rem;
	letter-spacing: 0.16em;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: border-color 0.25s ease, background 0.25s ease;
}

.nostu .woocommerce-Address-title a.edit:hover {
	border-color: var(--ns-ink);
	background: var(--ns-ink);
	color: var(--ns-cream) !important;
}

/* Edit address / account details forms: one panel, two columns for paired fields. */
.nostu .woocommerce-MyAccount-content form.edit-account,
.nostu .woocommerce-MyAccount-content form:has(.woocommerce-address-fields) {
	padding: clamp(1.25rem, 3vw, 2.25rem);
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
}

.nostu .woocommerce-MyAccount-content form .form-row {
	margin-bottom: 1.1rem;
	padding: 0;
}

.nostu .woocommerce-MyAccount-content form .form-row label {
	margin-bottom: 0.4rem;
	color: var(--ns-ink);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.nostu .woocommerce-MyAccount-content form .form-row .required {
	color: var(--ns-chilli);
	text-decoration: none;
}

.nostu .woocommerce-MyAccount-content form .input-text,
.nostu .woocommerce-MyAccount-content form select {
	min-height: 3rem;
	padding: 0.7rem 0.95rem;
	border: 1px solid var(--ns-line);
	border-radius: 2px;
	background: var(--ns-cream);
}

.nostu .woocommerce-MyAccount-content form .input-text:focus,
.nostu .woocommerce-MyAccount-content form select:focus {
	border-color: var(--ns-gold);
	outline: none;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(176, 132, 63, 0.14);
}

.nostu .woocommerce-MyAccount-content form em,
.nostu .woocommerce-MyAccount-content form .description {
	display: block;
	margin-top: 0.35rem;
	color: var(--ns-muted);
	font-size: 0.82rem;
	font-style: normal;
}

.nostu .woocommerce-MyAccount-content fieldset {
	margin: 1.5rem 0 1.25rem;
	padding: 1.25rem 1.4rem 0.4rem;
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: var(--ns-parchment);
}

.nostu .woocommerce-MyAccount-content legend {
	padding: 0 0.5rem;
	font-size: 1.35rem;
}

.nostu .woocommerce-MyAccount-content form .select2-container .select2-selection--single {
	min-height: 3rem;
	border-color: var(--ns-line);
	border-radius: 2px;
	background: var(--ns-cream);
}

.nostu .woocommerce-MyAccount-content form button[type="submit"].button {
	margin-top: 0.5rem;
}

/* Login / register / lost password (logged out). */
.nostu .woocommerce form.login,
.nostu .woocommerce form.register,
.nostu .woocommerce form.lost_reset_password {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid var(--ns-line);
	border-radius: var(--zenith-radius-md, 0.25rem);
	background: #fff;
}

.nostu.woocommerce-account:not(.logged-in) .woocommerce > h2,
.nostu.woocommerce-account:not(.logged-in) .woocommerce .u-column1 > h2,
.nostu.woocommerce-account:not(.logged-in) .woocommerce .u-column2 > h2 {
	margin-bottom: 1.25rem;
	font-size: clamp(2rem, 3vw, 2.5rem);
	text-align: center;
}

.nostu .woocommerce form.login .form-row label,
.nostu .woocommerce form.register .form-row label,
.nostu .woocommerce form.lost_reset_password .form-row label {
	margin-bottom: 0.4rem;
	color: var(--ns-ink);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.nostu .woocommerce form.login .input-text,
.nostu .woocommerce form.register .input-text,
.nostu .woocommerce form.lost_reset_password .input-text {
	min-height: 3rem;
	border: 1px solid var(--ns-line);
	border-radius: 2px;
	background: var(--ns-cream);
}

.nostu .woocommerce form.login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.nostu .woocommerce form.login .woocommerce-form-login__submit {
	order: 2;
	min-width: 9rem;
}

.nostu .woocommerce form.login .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	color: var(--ns-text);
	font-size: 0.9rem;
	letter-spacing: 0;
	text-transform: none;
}

.nostu .woocommerce form.login .lost_password {
	margin: 1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--ns-line);
	font-size: 0.9rem;
	text-align: center;
}

.nostu .woocommerce form.login .lost_password a,
.nostu .woocommerce form.lost_reset_password a {
	color: var(--ns-gold);
}

/* Account: beat the generic content rules (.zenith-entry-content h2/ul/li spacing). */
.nostu .woocommerce-MyAccount-content .woocommerce-Address-title {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.nostu .woocommerce-MyAccount-content .woocommerce-Address-title h2,
.nostu .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
	flex: 1 1 auto;
	margin: 0;
	text-align: left;
}

.nostu .woocommerce-MyAccount-content .woocommerce-Address-title a.edit {
	flex: none;
	order: 2;
	white-space: nowrap;
}

/* WooCommerce's clearfix on .addresses .title (0,3,1) would become a flex item. */
.nostu.woocommerce-account .woocommerce-MyAccount-content .addresses .title::before,
.nostu.woocommerce-account .woocommerce-MyAccount-content .addresses .title::after {
	content: none;
	display: none;
}

/* Equal-height address cards. */
.nostu .woocommerce-MyAccount-content .woocommerce-Address {
	display: flex;
	flex-direction: column;
}

.nostu .woocommerce-MyAccount-content .woocommerce-Address address {
	flex: 1;
}

.nostu .woocommerce-MyAccount-content .ns-account-cards {
	margin: 1.25rem 0 0;
	padding: 0;
}

.nostu .woocommerce-MyAccount-content .ns-account-cards li {
	margin: 0;
	padding: 0;
}

.nostu .woocommerce-MyAccount-content .woocommerce-order-details__title,
.nostu .woocommerce-MyAccount-content .woocommerce-column__title,
.nostu .woocommerce-MyAccount-content form > h2,
.nostu .woocommerce-MyAccount-content form > h3 {
	margin-top: 0;
}
/* Tablet: narrower sidebar. Phones: profile + a scrollable row of menu pills. */
@media (max-width: 62rem) {
	.nostu.woocommerce-account.logged-in .zenith-page__content > .woocommerce {
		grid-template-columns: 14.5rem minmax(0, 1fr);
		gap: 1.75rem;
	}

	.ns-account-cards {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 48rem) {
	.nostu.woocommerce-account.logged-in .zenith-page__content > .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.nostu.woocommerce-account .ns-account-sidebar {
		position: static;
	}

	.ns-account-profile {
		padding: 1rem;
	}

	.nostu .woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 0.4rem;
		overflow-x: auto;
		padding: 0.6rem;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.nostu .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
	}

	.nostu .woocommerce-MyAccount-navigation li + li {
		margin-top: 0;
	}

	.nostu .woocommerce-MyAccount-navigation a {
		gap: 0.5rem;
		padding: 0.65rem 0.9rem;
		border: 1px solid var(--ns-line);
		border-radius: 999px;
		white-space: nowrap;
	}

	.nostu .woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 0 !important;
		padding-top: 0;
		border-top: 0;
	}

	.nostu .woocommerce-Addresses,
	.nostu .woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: minmax(0, 1fr);
	}

	.nostu .woocommerce-orders-table__cell-order-actions {
		text-align: right;
	}

	/* Orders list on phones: one card per order; values stay together (no flex splitting). */
	.nostu.woocommerce-account table.woocommerce-orders-table tbody tr {
		padding: 0.4rem 0;
	}

	.nostu.woocommerce-account table.woocommerce-orders-table tbody th,
	.nostu.woocommerce-account table.woocommerce-orders-table tbody td {
		display: block;
		padding: 0.45rem 1rem;
		border: 0;
		background: none;
		text-align: right;
	}

	.nostu.woocommerce-account table.woocommerce-orders-table tbody td[data-title]::before {
		float: left;
		margin-right: 1rem;
	}

	.nostu.woocommerce-account table.woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number {
		padding-top: 0.75rem;
		text-align: left;
	}

	.nostu.woocommerce-account table.woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number::before {
		content: none;
	}

	.nostu.woocommerce-account table.woocommerce-orders-table tbody td.woocommerce-orders-table__cell-order-actions::before {
		line-height: 2.5rem;
	}

	/* Notices with a button: button below the text. */
	.nostu .woocommerce-MyAccount-content .woocommerce-info,
	.nostu .woocommerce-MyAccount-content .woocommerce-message {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.nostu .woocommerce-MyAccount-content .woocommerce-info .button,
	.nostu .woocommerce-MyAccount-content .woocommerce-message .button {
		order: 2;
		float: none;
		margin: 0;
	}

	.nostu .woocommerce-MyAccount-content .woocommerce-Address-title h2,
	.nostu .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
		font-size: 1.35rem;
	}
	.nostu .woocommerce-MyAccount-content form .form-row-first,
	.nostu .woocommerce-MyAccount-content form .form-row-last {
		float: none;
		width: 100%;
	}
}

/* ============ 11. Footer ============ */
.nostu .zenith-site-footer__page .nova-section__inner {
	max-width: none;
	padding: 0;
}

.nostu .zenith-site-footer__page .nova-column {
	padding-block: 0;
}

.ns-footer {
	position: relative;
	padding-block: clamp(4.5rem, 7vw, 6rem) clamp(3rem, 5vw, 4rem);
	background: var(--ns-espresso);
	color: var(--ns-on-dark-muted);
}

.ns-footer::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(201, 162, 102, 0.55), transparent);
}

.ns-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
	gap: 3rem;
}

.nostu .ns-footer__logo img {
	width: auto;
	max-height: 6rem;
}

.ns-footer__about {
	max-width: 22rem;
	margin: 1.5rem 0 0;
	font-size: 0.98rem;
	line-height: 1.8;
}

.nostu .ns-footer__heading {
	margin: 0 0 1.4rem;
	color: #c9a266;
	font-family: var(--ns-sans);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.26em;
	text-transform: uppercase;
}

.ns-footer__menu,
.ns-footer__contact {
	display: grid;
	gap: 0.8rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ns-footer a {
	color: var(--ns-on-dark);
	text-decoration: none;
	transition: color 0.3s ease;
}

.ns-footer a:hover {
	color: #c9a266;
}

.ns-footer__menu a {
	font-size: 0.98rem;
}

.ns-footer__contact li {
	display: flex;
	gap: 0.9rem;
	font-size: 0.98rem;
	line-height: 1.65;
}

.ns-footer__contact i {
	flex: none;
	width: 1rem;
	margin-top: 0.35rem;
	color: #c9a266;
	font-size: 0.85rem;
}

.nostu .zenith-socket {
	border-top: 1px solid rgba(255, 255, 255, 0.07);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
}

/* ============ 12. Content pages (policies, blog) ============ */
.nostu:not(.woocommerce-page) .zenith-entry-content {
	max-width: 48rem;
	margin-inline: auto;
	font-size: 1.05rem;
}

.nostu .zenith-entry-content h2,
.nostu .zenith-entry-content h3,
.nostu .zenith-entry-content h4 {
	margin-top: 2.5rem;
}

.nostu .zenith-entry-content h2 { font-size: 2.25rem; }
.nostu .zenith-entry-content h3 { font-size: 1.75rem; }
.nostu .zenith-entry-content h4 { font-size: 1.4rem; }

.nostu .zenith-entry-content a:not(.button):not(.zenith-button) {
	color: var(--ns-gold);
}

/* Policy pages: headings and the <p><em><strong> subheads carried over from the old site. */
.nostu .zenith-entry-content h1 {
	font-size: clamp(2rem, 3.4vw, 2.6rem);
	line-height: 1.1;
}

.nostu .zenith-entry-content h1 em,
.nostu .zenith-entry-content h1 strong {
	font-style: normal;
	font-weight: 500;
	color: var(--ns-ink);
}

.nostu .zenith-entry-content p:has(> em:only-child > strong:only-child),
.nostu .zenith-entry-content p:has(> strong:only-child > em:only-child) {
	margin-top: 2.25rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ns-line);
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.6rem;
	line-height: 1.2;
}

.nostu .zenith-entry-content p:has(> em:only-child > strong:only-child) *,
.nostu .zenith-entry-content p:has(> strong:only-child > em:only-child) * {
	font-style: normal;
	font-weight: 500;
}

.nostu .zenith-entry-content p:empty {
	display: none;
}

/* Nova FAQ accordion */
.nostu .nova-faq {
	max-width: 52rem;
	margin: 0 auto clamp(4rem, 7vw, 6rem);
	border-top: 1px solid var(--ns-line);
}

.nostu .nova-faq__item {
	margin: 0;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--ns-line);
	border-radius: 0;
}

.nostu .nova-faq__question {
	position: relative;
	padding: 1.6rem 3rem 1.6rem 0;
	color: var(--ns-ink);
	font-family: var(--ns-serif);
	font-size: 1.45rem;
	font-weight: 500;
	line-height: 1.3;
	list-style: none;
	transition: color 0.3s ease;
}

.nostu .nova-faq__question::-webkit-details-marker {
	display: none;
}

.nostu .nova-faq__question::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 0.25rem;
	color: var(--ns-gold);
	font-family: var(--ns-sans);
	font-size: 1.5rem;
	font-weight: 300;
	transform: translateY(-50%);
	transition: transform 0.3s var(--ns-ease);
}

.nostu .nova-faq__item[open] .nova-faq__question::after {
	transform: translateY(-50%) rotate(45deg);
}

.nostu .nova-faq__question:hover {
	color: var(--ns-gold);
}

.nostu .nova-faq__answer {
	padding: 0 3rem 1.75rem 0;
	color: var(--ns-text);
}
/* ============ 13. Responsive ============ */
@media (max-width: 75rem) {
	.ns-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 62rem) {
	.ns-promise__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ns-promise__item:nth-child(odd) {
		border-left: 0;
	}

	.ns-promise__item:nth-child(n + 3) {
		border-top: 1px solid var(--ns-line);
	}

	.ns-promise__item {
		justify-content: flex-start;
		padding: 1.4rem 0.5rem;
	}

	.ns-cats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 2.5rem;
	}

	.ns-feature__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ns-feature--right .ns-feature__media {
		order: 0;
	}

	.ns-feature--bleed .ns-feature__grid {
		min-height: 0;
	}

	.ns-feature--bleed .ns-feature__media {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.ns-feature--bleed .ns-feature__content {
		padding: 3.5rem var(--ns-gutter) 4rem;
	}

	.ns-feature--framed .ns-feature__media {
		max-width: 36rem;
	}
}

@media (max-width: 56rem) {
	.ns-slide {
		align-items: flex-end;
	}

	.nostu .ns-slide__img {
		object-position: var(--ns-focus-m, 50% 50%);
	}

	.ns-slide__media::after,
	.ns-slide--right .ns-slide__media::after,
	.ns-slide--center .ns-slide__media::after {
		background: linear-gradient(0deg, rgba(252, 250, 246, 0.99) 0%, rgba(252, 250, 246, 0.95) 52%, rgba(252, 250, 246, 0.55) 68%, rgba(252, 250, 246, 0) 86%);
	}

	.nostu .ns-slide__inner,
	.nostu .ns-slide--right .ns-slide__inner {
		justify-content: flex-start;
	}

	.ns-slide__content {
		padding-block: 2.5rem calc(var(--ns-controls) + 1.25rem);
	}

	.ns-slide__copy {
		font-size: 1.02rem;
	}

	.ns-slider__label {
		display: none;
	}

	.ns-slider__dot {
		grid-template-columns: 1fr;
	}

	.ns-slider__arrow {
		width: 2.75rem;
		height: 2.75rem;
	}

	.ns-hero,
	.ns-hero--left {
		display: block;
		min-height: 0;
	}

	.ns-hero__media {
		aspect-ratio: 4 / 3.2;
	}

	.ns-hero__media::after,
	.ns-hero--left .ns-hero__media::after {
		background: linear-gradient(0deg, rgba(252, 250, 246, 0.9) 0%, rgba(252, 250, 246, 0) 22%);
	}

	.nostu .ns-hero__inner {
		display: block;
		padding: 0 var(--ns-gutter) 3.5rem;
		background: var(--ns-cream);
	}

	.ns-hero__panel {
		max-width: 36rem;
		padding-top: 1.75rem;
	}
}
@media (max-width: 48rem) {
	.ns-promise__item {
		flex-direction: column;
		justify-content: flex-start;
		gap: 0.7rem;
		padding: 1.5rem 0.5rem;
		text-align: center;
	}

	.ns-promise__text strong {
		font-size: 0.66rem;
		letter-spacing: 0.14em;
	}

	.nostu .zenith-topbar__text {
		font-size: 0.6rem;
		letter-spacing: 0.16em;
		text-align: center;
	}

	.nostu .zenith-topbar__right {
		display: none;
	}

	.nostu .zenith-topbar__inner {
		justify-content: center;
	}

	.ns-head--split {
		align-items: flex-start;
		flex-direction: column;
		gap: 1rem;
	}

	.ns-cat__title {
		font-size: 1.4rem;
	}

	.nostu .woocommerce ul.products li.product .woocommerce-loop-product__title,
.nostu.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 1.25rem;
	}

	.ns-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.ns-contact__value {
		font-size: 1.2rem;
	}
}

/* Small phones: keep search, cart and the menu button in the header; account and wishlist
   move into the mobile menu (includes/shop-tools.php). */
@media (max-width: 480px) {
	.nostu .zenith-site-header__main .zenith-header-extras .zenith-account-link,
	.nostu .zenith-site-header__main .zenith-header-extras .zenith-wishlist-link {
		display: none;
	}
}

@media (min-width: 481px) {
	.nostu .ns-mobile-extra {
		display: none;
	}
}

.nostu .ns-mobile-extra:first-of-type {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--ns-line);
}

/* Phones: small uppercase labels stay readable and links/handles are easy to tap. */
@media (max-width: 48rem) {
	.nostu .zenith-product-card__category,
	.ns-cat__meta,
	.ns-cat__cta,
	.ns-contact__label,
	.nostu .nostu-cat-pills a,
	.ns-price__label,
	.ns-price__reset {
		font-size: 0.72rem;
		letter-spacing: 0.16em;
	}

	.nostu ul.products li.product .button,
	.nostu .woocommerce ul.products li.product .button,
	.nostu.woocommerce ul.products li.product .button {
		min-height: 2.9rem;
		font-size: 0.7rem;
		letter-spacing: 0.14em;
	}

	.nostu .woocommerce span.onsale,
	.nostu .woocommerce ul.products li.product .onsale,
	.nostu .zenith-badge {
		font-size: 0.7rem;
	}

	.nostu form.ns-price button.ns-price__apply[type="submit"] {
		min-height: 2.75rem;
		font-size: 0.72rem;
	}

	.nostu .nova-contact-form label {
		font-size: 0.72rem;
	}

	.nostu .nostu-cat-pills a {
		padding: 0.8em 1.25em;
	}

	.ns-btn--link,
	.ns-btn--link:hover {
		padding-top: 0.75rem;
	}

	.ns-contact__value a {
		display: inline-block;
		padding-block: 0.35rem;
	}

	.ns-price__range,
	.nostu .ns-price__range input[type="range"] {
		height: 2.5rem;
	}

	.ns-price__range input[type="range"]::-webkit-slider-runnable-track {
		height: 2.5rem;
	}

	.ns-price__range input[type="range"]::-moz-range-track {
		height: 2.5rem;
	}

	.ns-price__range input[type="range"]::-webkit-slider-thumb {
		width: 1.6rem;
		height: 1.6rem;
		margin-top: 0.45rem;
	}

	.ns-price__range input[type="range"]::-moz-range-thumb {
		width: 1.6rem;
		height: 1.6rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ns-hero__img,
	.ns-hero__panel {
		animation: none;
	}
}
