/**
 * BLOW Dark — the identity's onyx composition (BLOW Brand Identity, pages 1–9).
 *
 * Loaded after design-blow.css (BLOW Dark is in the BLOW family, so it gets the
 * shared refinements: light Jost, square corners, hairlines, no glow). This file
 * holds only what differs on onyx:
 * - palette: Onyx ground, Carbon panels, Line separators, white type and the
 *   white primary button; no grey-green, no coloured shadows (BLOW's footer
 *   inversion and sage fills are reset here);
 * - composition: centred wordmark with navigation left and actions right, a
 *   hero split in two halves with the visual on a Carbon panel, label rows
 *   under 1px rules;
 * - type: the identity's tracking (display .08em, subhead .14em, labels .32em);
 *   nothing under 11px; touch targets of at least 44 × 44px.
 * Steel (#4a4a4a) and Line (#242424) are below 3:1 on onyx, so they are only used
 * for decoration; controls use border-strong (#6a6a6a, 3.2:1).
 */

/* ---------- Tokens ---------- */
.ns-design-blow-dark {
	--blow-onyx: var(--wp--custom--color--onyx, #0b0b0b);
	--blow-carbon: var(--wp--custom--color--carbon, #141414);
	--blow-line: var(--wp--custom--color--line, #242424);
	--blow-steel: var(--wp--custom--color--steel, #4a4a4a);
	--blow-ash: var(--wp--custom--color--ash, #8e8e8e);
	--blow-white: var(--wp--custom--color--white, #f7f7f7);
	--blow-sage: var(--blow-white);
	--blow-ivory: var(--blow-white);
	--blow-hairline: 1px solid var(--blow-line);
	--blow-label-tracking: .32em;
	--ns-announcement-h: 34px;
	color-scheme: dark;
}
.ns-design-blow-dark ::selection { background: var(--blow-white); color: var(--blow-onyx); }
.ns-design-blow-dark :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 1px solid var(--blow-white); outline-offset: 3px; }

/* ---------- Labels (Jost Regular, 11–12px, .32em capitals) ---------- */
.ns-design-blow-dark :is(.is-style-eyebrow, .ns-eyebrow, .ns-kicker, .ns-card__cat, .ns-ticker, .wc-block-breadcrumbs, .woocommerce-breadcrumb, .ns-pdp__meta) {
	font-size: max(11px, var(--wp--preset--font-size--x-small)) !important;
	font-weight: 400;
	letter-spacing: var(--blow-label-tracking);
	text-transform: uppercase;
	color: var(--blow-ash);
}
.ns-design-blow-dark .is-style-eyebrow::before { background: var(--blow-ash); }

/* ---------- Announcement: onyx bar, ash labels, 1px rule ---------- */
.ns-design-blow-dark .ns-announcement {
	background: var(--blow-onyx) !important;
	color: var(--blow-ash) !important;
	border-bottom: var(--blow-hairline);
	font-size: max(11px, var(--wp--preset--font-size--x-small));
	letter-spacing: .2em;
}

/* ---------- Header: navigation · centred wordmark · actions ---------- */
.ns-design-blow-dark .ns-header { background: var(--blow-onyx); border-bottom: var(--blow-hairline); }
/* Main header only (the checkout header keeps its own row). */
.ns-design-blow-dark .ns-header__inner:has(> .ns-header__nav) {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 16px;
}
.ns-design-blow-dark .ns-header__inner > .ns-brand-wrap { grid-column: 2; grid-row: 1; justify-self: center; }
.ns-design-blow-dark .ns-header__inner > .ns-header__nav { grid-column: 1; grid-row: 1; justify-self: start; }
.ns-design-blow-dark .ns-header__inner > .ns-header__actions { grid-column: 3; grid-row: 1; justify-self: end; gap: 4px; }
.ns-design-blow-dark .ns-header__nav { font-size: max(11px, var(--wp--preset--font-size--x-small)); letter-spacing: .2em; }
.ns-design-blow-dark .ns-header__nav .wp-block-navigation__container { gap: 2.25rem; }
.ns-design-blow-dark .ns-header__nav .wp-block-navigation-item__content { min-height: 44px; display: inline-flex; align-items: center; }
.ns-design-blow-dark .ns-kit-logo { height: 20px; }
/* Search as an icon (the wordmark keeps the centre); the cart is the primary action. */
@media (min-width: 782px) {
	.ns-design-blow-dark .ns-header__search .wp-block-search__button { min-width: 0; width: 44px; border: 0 !important; justify-content: center; }
	.ns-design-blow-dark .ns-header__search .ns-header__search-text { display: none; }
}
.ns-design-blow-dark :is(.ns-header__search .wp-block-search__button, .ns-header__account a) { color: var(--blow-white) !important; }
.ns-design-blow-dark :is(.ns-header__search .wp-block-search__button, .ns-header__account a):hover { background: var(--blow-carbon) !important; }
.ns-design-blow-dark .ns-header__cart .wc-block-mini-cart__button {
	width: 48px;
	background: var(--blow-white) !important;
	color: var(--blow-onyx) !important;
	border-radius: 0 !important;
}
.ns-design-blow-dark .ns-header__cart .wc-block-mini-cart__button:hover { background: #b4b4b4 !important; color: var(--blow-onyx) !important; }
.ns-design-blow-dark .ns-header__cart .wc-block-mini-cart__badge { background: var(--blow-onyx) !important; color: var(--blow-white) !important; border: 1px solid var(--blow-white); }
.ns-design-blow-dark .wp-block-navigation__responsive-container.is-menu-open { background: var(--blow-onyx) !important; }
.ns-design-blow-dark .ns-header__nav .is-menu-open .wp-block-navigation-item__content { font-weight: 300; letter-spacing: .2em; min-height: 44px; }
/* Menu buttons: 44 × 44px touch areas (their display stays WordPress's own). */
.ns-design-blow-dark :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }

/* ---------- Hero: two halves, the visual on a Carbon panel ---------- */
.ns-design-blow-dark .ns-hero {
	min-height: min(82vh, 760px);
	padding-block: clamp(3rem, 7vw, 5rem);
	border-bottom: var(--blow-hairline);
}
.ns-design-blow-dark :is(.ns-hero, .wp-block-group.is-style-grid-bg, .ns-fx--grid)::before { display: none; }   /* flat grounds, no grid texture */
@media (min-width: 782px) {
	.ns-design-blow-dark .ns-hero::after {
		display: block;
		content: "";
		position: absolute;
		inset: 0 0 0 50%;
		width: auto;
		height: auto;
		z-index: -1;
		border-radius: 0;
		background: var(--blow-carbon);
		border-left: var(--blow-hairline);
		filter: none;
		animation: none;
	}
	.ns-design-blow-dark .ns-hero__inner { gap: clamp(3rem, 8vw, 7rem) !important; }
	.ns-design-blow-dark .ns-hero__copy { flex-basis: 50% !important; padding-right: clamp(1rem, 4vw, 4rem); }
	.ns-design-blow-dark .ns-hero__visual-col { flex-basis: 50% !important; }
}
.ns-design-blow-dark .ns-hero__title.has-huge-font-size {
	font-size: clamp(2.35rem, 4.5vw, 4.1rem) !important;   /* ≈ the reference's 65px line at 1440px; two lines at 390px */
	letter-spacing: .08em !important;
	line-height: 1.1 !important;
}
.ns-design-blow-dark .ns-hero__title mark,
.ns-design-blow-dark .ns-hero__title .has-accent-color { color: var(--blow-white) !important; text-shadow: none; }
/* The single fading hairline under the claim. */
.ns-design-blow-dark .ns-hero__title::after {
	content: "";
	display: block;
	width: min(180px, 40%);
	height: 1px;
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
	background: linear-gradient(90deg, var(--blow-white), transparent);
}
.ns-design-blow-dark .ns-hero__sub { font-size: max(15px, 1.0625rem) !important; color: #c9c9c9; }
/* Proof points as a label row under a 1px rule (no chips). */
.ns-design-blow-dark .ns-hero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 12px clamp(1.5rem, 3vw, 2.75rem);
	margin-block-start: clamp(2.5rem, 6vw, 4.5rem) !important;
	padding-top: 1.5rem !important;
	border-top: var(--blow-hairline);
}
.ns-design-blow-dark .ns-hero__chips li {
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: max(11px, var(--wp--preset--font-size--x-small));
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--blow-ash);
}
.ns-design-blow-dark .ns-hero__chips li::before { display: none; }
/* The visual: monochrome object, the only bright line is its label. */
.ns-design-blow-dark .ns-capsule { display: none; }
.ns-design-blow-dark .ns-bottle { --r: 0deg; animation: none; }
.ns-design-blow-dark .ns-bottle__body {
	background: linear-gradient(100deg, #1c1c1c 0%, #2b2b2b 38%, #171717 70%, #121212);
	border-color: var(--blow-steel);
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--blow-white) 8%, transparent);
}
.ns-design-blow-dark .ns-bottle__cap { background: #1c1c1c; border-color: var(--blow-steel); }
.ns-design-blow-dark .ns-bottle__label { background: transparent; color: var(--blow-white); border-top: 1px solid color-mix(in srgb, var(--blow-white) 60%, transparent); border-radius: 0; }
.ns-design-blow-dark .ns-bottle__label b { font-weight: 300; letter-spacing: .3em; text-transform: uppercase; }
.ns-design-blow-dark .ns-bottle__spec { color: var(--blow-ash); }

/* ---------- Buttons ---------- */
/* Secondary: transparent with light border and text. */
.ns-design-blow-dark :is(.wp-block-button.is-style-outline .wp-block-button__link, .is-style-outline > .wp-element-button) {
	background: transparent !important;
	color: var(--blow-white) !important;
	border: 1px solid var(--blow-white) !important;
}
.ns-design-blow-dark :is(.wp-block-button.is-style-outline .wp-block-button__link, .is-style-outline > .wp-element-button):is(:hover, :focus-visible) {
	background: var(--blow-white) !important;
	color: var(--blow-onyx) !important;
}
.ns-design-blow-dark .wp-element-button, .ns-design-blow-dark .wp-block-button__link { min-height: 48px; }
.ns-design-blow-dark :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-mini-cart__footer-checkout, .woocommerce-Button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title + p a) {
	background: var(--blow-white) !important;
	color: var(--blow-onyx) !important;
}
.ns-design-blow-dark :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-mini-cart__footer-checkout, .woocommerce-Button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button):is(:hover, :focus-visible) {
	background: #b4b4b4 !important;
	color: var(--blow-onyx) !important;
}
/* Product-card buttons: outlined until hovered. */
.ns-design-blow-dark :is(.wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart .wp-block-button__link, .add_to_cart_button) {
	background: transparent !important;
	color: var(--blow-white) !important;
	border: 1px solid var(--wp--preset--color--border-strong) !important;
	min-height: 44px;
}
.ns-design-blow-dark :is(.wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart .wp-block-button__link, .add_to_cart_button):is(:hover, :focus-visible) {
	background: var(--blow-white) !important;
	color: var(--blow-onyx) !important;
	border-color: var(--blow-white) !important;
}

/* ---------- Cards, panels and selected states ---------- */
.ns-design-blow-dark :is(.ns-card, .ns-cat-card) { background: var(--blow-carbon); border-color: var(--blow-line); }
.ns-design-blow-dark :is(.ns-card, .ns-cat-card):is(:hover, :focus-within) { border-color: var(--blow-white); }
.ns-design-blow-dark .ns-card__media { background: var(--blow-onyx); border-bottom: var(--blow-hairline); }
.ns-design-blow-dark :is(.wc-block-components-product-badge, .onsale, .ns-card .wc-block-components-product-sale-badge, .ns-pdp__gallery .wc-block-components-product-sale-badge) {
	background: var(--blow-white) !important;
	color: var(--blow-onyx) !important;
	font-size: max(11px, .6875rem) !important;
	letter-spacing: .2em;
}
/* Variation choices, filter chips, shipping and payment options: white rule when chosen. */
.ns-design-blow-dark :is(.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill, .wc-block-product-filter-chips__item, .wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option) {
	border-color: var(--wp--preset--color--border-strong) !important;
	min-height: 44px;
}
.ns-design-blow-dark :is(.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill:has(input:checked), .wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill[aria-checked="true"], .wc-block-product-filter-chips__item[aria-checked="true"], .wc-block-components-radio-control__option--checked-option-highlighted, .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked) {
	border-color: var(--blow-white) !important;
	background: var(--blow-carbon) !important;
	color: var(--blow-white) !important;
	box-shadow: inset 0 0 0 1px var(--blow-white) !important;
}

/* ---------- Forms, notices and errors ---------- */
.ns-design-blow-dark :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], select, textarea, .wc-block-components-text-input input, .wc-blocks-components-select .wc-blocks-components-select__select) {
	background: var(--blow-onyx) !important;
	color: var(--blow-white) !important;
	border: 1px solid var(--wp--preset--color--border-strong) !important;
	min-height: 48px;
}
.ns-design-blow-dark :is(input, select, textarea):focus { border-color: var(--blow-white) !important; box-shadow: inset 0 0 0 1px var(--blow-white) !important; }
.ns-design-blow-dark .wc-block-components-text-input label,
.ns-design-blow-dark .wc-blocks-components-select__label { color: var(--blow-ash) !important; }
.ns-design-blow-dark :is(.wc-block-components-checkbox__input, input[type="checkbox"], input[type="radio"]) { border-color: var(--wp--preset--color--border-strong) !important; background-color: var(--blow-onyx) !important; }
.ns-design-blow-dark :is(.wc-block-components-checkbox__input:checked, input[type="checkbox"]:checked) { background-color: var(--blow-white) !important; border-color: var(--blow-white) !important; }
.ns-design-blow-dark .wc-block-components-checkbox__mark { fill: var(--blow-onyx) !important; }
.ns-design-blow-dark :is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info) {
	background: var(--blow-carbon) !important;
	color: var(--blow-white) !important;
	border: 1px solid var(--blow-line) !important;
	border-left: 1px solid var(--blow-white) !important;
}
.ns-design-blow-dark :is(.wc-block-components-notice-banner.is-error, .woocommerce-error) {
	background: var(--blow-carbon) !important;
	border-left-color: var(--wp--custom--color--error) !important;
}
.ns-design-blow-dark .wc-block-components-notice-banner > svg { fill: currentColor; background: transparent !important; }
.ns-design-blow-dark :is(.wc-block-components-validation-error, .woocommerce-invalid label) { color: var(--wp--custom--color--error-text) !important; }

/* ---------- Filters ---------- */
.ns-design-blow-dark .wc-block-product-filter-price-slider :is(.wc-block-product-filter-price-slider__range, input[type="range"]) { accent-color: var(--blow-white); }
.ns-design-blow-dark .wc-block-product-filters h3 { font-size: max(11px, var(--wp--preset--font-size--x-small)) !important; letter-spacing: var(--blow-label-tracking); text-transform: uppercase; color: var(--blow-ash); }

/* ---------- Footer: back to the onyx palette (BLOW inverts it to ivory) ---------- */
.ns-design-blow-dark .ns-footer {
	--wp--preset--color--base: var(--blow-onyx);
	--wp--preset--color--surface: var(--blow-carbon);
	--wp--preset--color--surface-raised: var(--blow-carbon);
	--wp--preset--color--border: var(--blow-line);
	--wp--preset--color--border-strong: #6a6a6a;
	--wp--preset--color--contrast: var(--blow-white);
	--wp--preset--color--contrast-muted: var(--blow-ash);
	--wp--preset--color--secondary: var(--blow-ash);
	--wp--preset--color--accent: var(--blow-white);
	--wp--preset--color--on-accent: var(--blow-onyx);
	background: var(--blow-onyx);
	color: var(--blow-white);
	border-top: var(--blow-hairline);
}
.ns-design-blow-dark .ns-footer__wordmark.ns-has-kit-logo { border-top-color: var(--blow-line); }
.ns-design-blow-dark .ns-footer :is(h2, h3, .wp-block-heading) { font-size: max(11px, var(--wp--preset--font-size--x-small)) !important; letter-spacing: var(--blow-label-tracking); color: var(--blow-ash); }
.ns-design-blow-dark .ns-footer .wp-block-navigation-item__content { min-height: 44px; display: inline-flex; align-items: center; }

/* ---------- Checkout: 16px between fields, one line per edge ---------- */
/* WooCommerce spaces fields with 12px margins; a flex gap gives an even 16px, also when errors and conditional fields appear. */
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form { display: flex; flex-wrap: wrap; gap: 16px; }
.ns-design-blow-dark .wc-block-checkout:is(.is-mobile, .is-small) .wc-block-components-address-form > * { flex-basis: 100% !important; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form > * { margin-top: 0 !important; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input { flex-basis: calc(50% - 8px); }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form > :is(.wc-block-components-address-form__email, .wc-block-components-address-form__country, .wc-block-components-address-form__address_1, .wc-block-components-address-form__address_2, .wc-block-components-address-form__address_2-toggle) { flex-basis: 100%; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form > :is(.wc-block-checkout__guest-checkout-notice, .wc-block-components-checkbox, p) { flex-basis: 100%; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form .wc-block-components-state-input { flex: 1 0 calc(50% - 8px); }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select { margin-top: 0; }
.ns-design-blow-dark .wc-block-checkout :is(.wc-block-components-validation-error, .wc-block-components-address-form__address_2-toggle) { margin-top: 8px; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-address-form__address_2-toggle { justify-content: flex-start; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-checkout-step { margin-bottom: 32px !important; }
/* The fields column and the summary box never touch. */
.ns-design-blow-dark .wc-block-checkout:is(.is-large, .is-medium) .wc-block-checkout__main { padding-right: 32px !important; }
/* Shipping and payment options: one 1px rule; white when chosen. The payment option's inner row draws no second box. */
.ns-design-blow-dark .wc-block-checkout :is(.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option) { box-shadow: none !important; }
.ns-design-blow-dark .wc-block-checkout :is(.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted) { border-color: var(--blow-white) !important; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-radio-control-accordion-option > .wc-block-components-radio-control__option { border: 0 !important; margin: 0 !important; background: transparent; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-radio-control > :last-child { margin-bottom: 0 !important; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-radio-control__option { margin-bottom: 8px; }
/* Order summary: the outer box is the only box; rows are separated by single hairlines. */
.ns-design-blow-dark .wc-block-checkout :is(.checkout-order-summary-block-fill, .wc-block-components-totals-coupon.wc-block-components-panel) { border: 0 !important; padding: 0 !important; }
.ns-design-blow-dark .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-totals-block > .wc-block-components-totals-wrapper:first-child,
.ns-design-blow-dark .wc-block-checkout .checkout-order-summary-block-fill > .wc-block-components-totals-wrapper:first-child { border-top: 0 !important; }
.ns-design-blow-dark .wc-block-checkout :is(.wp-block-woocommerce-checkout-order-summary-totals-block, .wc-block-components-checkout-order-summary__title) { border-color: var(--blow-line) !important; }
.ns-design-blow-dark .wc-block-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button { margin: 0; }
/* Empty discount and fee rows would each draw a rule. */
.ns-design-blow-dark .wc-block-components-totals-wrapper:not(:has(*)) { display: none; }
@media (max-width: 781px) {
	/* The collapsed summary at the top: the box's own border, no rules inside it. */
	.ns-design-blow-dark .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title { border: 0 !important; margin: 0 !important; }
	.ns-design-blow-dark .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { padding: 0 20px !important; }
	/* The summary repeated above Place order keeps its own space. */
	.ns-design-blow-dark .wc-block-checkout__actions .checkout-order-summary-block-fill-wrapper { margin-bottom: 24px !important; }
}

/* ---------- Cart, phones: the pinned "Proceed to checkout" bar ---------- */
/* A hairline instead of WooCommerce's grey glow; room for the home indicator. */
.ns-design-blow-dark .wc-block-cart .wc-block-cart__submit-container--sticky { border-top: var(--blow-hairline); padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)) !important; }
.ns-design-blow-dark .wc-block-cart .wc-block-cart__submit-container--sticky::before { display: none; }
.ns-design-blow-dark .wc-block-cart .wc-block-cart__submit-container--sticky.ns-cart-bar--stale { display: none; }

/* ---------- Cards with direct purchase (inc/card-purchase.php) ---------- */
/* The title link no longer stretches over the card: selectors and buttons must not sit inside a link. */
.ns-design-blow-dark .ns-card:has(.ns-card__buy) .ns-card__title a::after { content: none; }
.ns-design-blow-dark .ns-card:has(.ns-card__buy) .ns-card__body { padding: 24px; gap: 12px; }
.ns-design-blow-dark .ns-card__excerpt { color: var(--blow-ash); font-size: .875rem; line-height: 1.55; }
.ns-design-blow-dark .ns-card__excerpt ~ .ns-card__spec { display: none; }
.ns-design-blow-dark .ns-card:has(.ns-card__buy) .ns-card__foot:not(:has(*)) { display: none; }
.ns-design-blow-dark .ns-card__buy { margin-top: auto !important; padding-top: 16px; border-top: var(--blow-hairline); display: flex; flex-direction: column; gap: 16px; }
.ns-design-blow-dark .ns-card__buy > *, .ns-design-blow-dark .ns-card__buy form > * { margin: 0 !important; }
.ns-design-blow-dark .ns-card__buy-price { font-size: 1.0625rem; color: var(--blow-white); letter-spacing: .02em; }
.ns-design-blow-dark .ns-card__buy form { display: flex; flex-direction: column; gap: 16px; }
.ns-design-blow-dark .ns-card__buy .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute > .wp-block-group { margin: 0 !important; gap: 8px !important; }
.ns-design-blow-dark .ns-card__buy .wc-block-add-to-cart-with-options-variation-selector-attribute-name { font-size: max(11px, .6875rem); letter-spacing: var(--blow-label-tracking); text-transform: uppercase; color: var(--blow-ash); }
.ns-design-blow-dark .ns-card__buy .wc-block-product-filter-chips__item { min-width: 64px; justify-content: center; }
.ns-design-blow-dark .ns-card__buy .wc-block-product-filter-chips__item[aria-checked="true"] { background: var(--blow-white) !important; border-color: var(--blow-white) !important; color: var(--blow-onyx) !important; }
.ns-design-blow-dark .ns-card__buy .wc-block-components-product-stock-indicator { margin: 0 !important; color: var(--blow-ash); }
.ns-design-blow-dark .ns-card__buy .wc-block-components-product-stock-indicator:empty { display: none; }
/* Quantity and Add to cart share one 48px row; the button takes the remaining width. */
.ns-design-blow-dark .ns-card__buy form > .wp-block-group:last-child,
.ns-design-blow-dark .ns-card__buy form > .wp-block-group:has(.wp-block-woocommerce-product-button) { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.ns-design-blow-dark .ns-card__buy .wc-block-add-to-cart-with-options__quantity-selector .wc-block-components-quantity-selector { width: 132px; height: 48px; display: flex; align-items: center; margin: 0 !important; box-sizing: border-box; }
.ns-design-blow-dark .ns-card__buy .wc-block-components-quantity-selector input { height: 46px; min-height: 0 !important; width: 44px; text-align: center; -moz-appearance: textfield; }
.ns-design-blow-dark .ns-card__buy .wc-block-components-quantity-selector input::-webkit-inner-spin-button { -webkit-appearance: none; }
.ns-design-blow-dark .ns-card__buy .wc-block-components-quantity-selector__button { width: 44px; min-width: 44px; height: 46px; }
.ns-design-blow-dark .ns-card__buy .wp-block-woocommerce-product-button { flex: 1 1 auto; min-width: fit-content; margin: 0 !important; display: flex; flex-direction: column; gap: 8px; }
.ns-design-blow-dark .ns-card__buy :is(.wp-block-woocommerce-product-button .wp-block-button__link, .ns-card__view) { width: 100%; height: 48px; min-height: 48px; padding: 0 .75rem; display: inline-flex; align-items: center; justify-content: center; text-align: center; white-space: nowrap; font-size: .8125rem; letter-spacing: .12em; }
.ns-design-blow-dark .ns-card__view { background: transparent !important; color: var(--blow-white) !important; border: 1px solid var(--blow-white) !important; text-decoration: none; }
.ns-design-blow-dark .ns-card__view:hover { background: var(--blow-white) !important; color: var(--blow-onyx) !important; }
.ns-design-blow-dark .ns-card__buy .wp-block-button__link.disabled { opacity: .55; }
.ns-design-blow-dark .ns-card__buy .added_to_cart { display: inline-flex; align-items: center; min-height: 44px; color: var(--blow-white); font-size: max(11px, .6875rem); letter-spacing: var(--blow-label-tracking); text-transform: uppercase; }
.ns-design-blow-dark .ns-card__buy .wp-block-button__link[aria-disabled="true"] { opacity: .7; cursor: progress; }
.ns-design-blow-dark .ns-card__message { margin: 0 !important; padding: 12px; border: 1px solid var(--wp--custom--color--error-soft, #ff9a8e); color: var(--wp--custom--color--error-soft, #ff9a8e); font-size: .8125rem; line-height: 1.5; }
.ns-design-blow-dark .ns-card__stock { color: var(--blow-ash); font-size: max(11px, .6875rem); letter-spacing: var(--blow-label-tracking); text-transform: uppercase; }
/* Narrow cards (three columns beside the filters): quantity and button stack, both full width. */
.ns-design-blow-dark .ns-card__buy { container-type: inline-size; }
@container (max-width: 360px) {
	.ns-design-blow-dark .ns-card__buy form > .wp-block-group:has(.wp-block-woocommerce-product-button) { flex-direction: column; }
	.ns-design-blow-dark .ns-card__buy .wc-block-add-to-cart-with-options__quantity-selector .wc-block-components-quantity-selector { width: 100%; justify-content: space-between; }
}
/* Errors and confirmations from the form sit in the card, in their own space
   (WooCommerce's notices region wraps the form). */
.ns-design-blow-dark .ns-card__buy .wc-block-components-notices { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.ns-design-blow-dark .ns-card__buy .wc-block-components-notice-banner { margin: 0; padding: 12px; font-size: .8125rem; gap: 8px; }
@media (max-width: 599px) {
	.ns-design-blow-dark .ns-products .wc-block-product-template:has(.ns-card__buy) { grid-template-columns: minmax(0, 1fr) !important; gap: 16px; }
	.ns-design-blow-dark .ns-card:has(.ns-card__buy) .ns-card__image img { aspect-ratio: 4 / 3 !important; object-fit: cover; }
	.ns-design-blow-dark .ns-card:has(.ns-card__buy) .ns-card__body { padding: 20px 16px; }
	.ns-design-blow-dark .ns-card:has(.ns-card__buy) .ns-card__title { font-size: 1.125rem; }
}

/* Quantity field: visible keyboard focus (WooCommerce removes the outline). */
.ns-design-blow-dark .wc-block-components-quantity-selector :is(input, .wc-block-components-quantity-selector__button):focus-visible { outline: 1px solid var(--blow-white) !important; outline-offset: -3px; }

/* ---------- Phones ---------- */
@media (max-width: 781px) {
	/* Touch areas of at least 44 × 44px for every tappable control that is not a link in running text. */
	.ns-design-blow-dark :is(
		.ns-card__title a, .ns-cat-card__name a, .ns-card__cat a, .taxonomy-category a, .taxonomy-pa_goal a, .ns-pdp__cats a,
		.woocommerce-breadcrumb a, .ns-footer__top-link a, .wc-block-components-product-name, .wp-block-post-title a,
		.woocommerce-LostPassword a, main li > a, .wc-block-components-address-form__address_2-toggle
	) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; }
	.ns-design-blow-dark .ns-card__cat a:not(:first-child) { display: none; }
	.ns-design-blow-dark :is(.wc-block-components-quantity-selector__button, .wc-block-cart-item__remove-link, .wc-block-product-filters__close-overlay, .show-password-input) {
		min-width: 44px !important;
		min-height: 44px !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}
	.ns-design-blow-dark .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { min-height: 44px; min-width: 44px !important; }
	/* The mini-cart's narrow stepper widens to fit three 44px parts. */
	.ns-design-blow-dark .wc-block-mini-cart-items .wc-block-components-quantity-selector { width: 134px !important; flex: none; height: 44px; }
	.ns-design-blow-dark :is(.wc-block-components-checkbox label, .woocommerce-form__label-for-checkbox, .wc-block-product-filter-checkbox-list__label) { min-height: 44px !important; display: flex !important; align-items: center; gap: 10px; }
	.ns-design-blow-dark .wc-block-product-filter-checkbox-list__input { min-height: 44px; }
	.ns-design-blow-dark :is(.wc-block-components-panel__button, .wc-block-components-product-button .wp-block-button__link, .wc-block-components-product-button__button) { min-height: 44px !important; }

	/* Menu left, wordmark centred, actions right (identity page 9). */
	.ns-design-blow-dark .ns-header__inner:has(> .ns-header__nav) { grid-template-columns: 44px 1fr auto; }
	.ns-design-blow-dark .ns-kit-logo { height: 16px; }
	.ns-design-blow-dark .ns-header__actions .ns-header__account { display: none; }
	.ns-design-blow-dark .ns-hero { min-height: 0; }
	.ns-design-blow-dark .ns-hero__visual-col { background: var(--blow-carbon); border: var(--blow-hairline); margin-inline: calc(var(--ns-gutter) * -1); }
	.ns-design-blow-dark .ns-hero__chips { flex-direction: column; gap: 10px; }
}
