/* Visual polish after review of category, product-media and notice states. */

/* Category names and counts stay separate without decorative arrows. */
.nf-category-rail { padding-block: .2rem; }
.nf-category-rail .nf-category-rail__track {
	grid-template-columns: repeat(5, minmax(10.5rem, 1fr));
	min-width: 0;
	gap: .65rem;
	border: 0;
}
.nf-category-rail .nf-category-rail__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	align-content: center;
	column-gap: .65rem;
	min-height: 4.5rem;
	padding: .8rem .9rem;
}
.nf-category-rail .nf-category-rail__name {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
	align-self: center;
	margin: 0;
	padding: 0;
	color: inherit;
	font-size: .875rem;
	line-height: 1.45;
	overflow-wrap: break-word;
}
.nf-category-rail .nf-category-rail__count {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	justify-self: end;
	margin: 0;
	color: #56667b;
	font-size: .875rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: nowrap;
}
.nf-category-rail .nf-category-rail__arrow {
	position: static;
	inset: auto;
	grid-column: 3;
	grid-row: 1;
	align-self: center;
	margin: 0;
	color: #56667b;
	font-size: 1rem;
	line-height: 1;
}
.nf-category-rail .nf-category-rail__item:is(:hover, :focus-visible, .is-current, .is-active) { border-color: var(--nf-graphite); background: var(--nf-graphite); color: #fff; }
.nf-category-rail .nf-category-rail__item:is(:hover, :focus-visible, .is-current, .is-active) :is(.nf-category-rail__count, .nf-category-rail__arrow) { color: #b0c2ff; }

/* One shared studio surface. Product pixels remain in separate transparent files. */
:root {
	--nf-product-media-stage: #e4e4e1;
	--nf-studio-background: url('../media/studio-neutral-v1.webp');
	--nf-studio-contact-shadow: drop-shadow(0 6px 5px rgb(13 19 28 / 18%)) drop-shadow(0 14px 12px rgb(13 19 28 / 10%));
	--nf-studio-hero-shadow: drop-shadow(0 12px 9px rgb(13 19 28 / 22%)) drop-shadow(0 24px 20px rgb(13 19 28 / 12%));
}
.woocommerce ul.products li.product .nf-product-card__media,
.woocommerce-page ul.products li.product .nf-product-card__media {
	position: relative;
	aspect-ratio: 1 / 1;
	min-height: 0;
	padding: 0;
	background: transparent;
	touch-action: pan-y pinch-zoom;
}
.woocommerce ul.products li.product .nf-product-card__image-link,
.woocommerce-page ul.products li.product .nf-product-card__image-link {
	position: absolute;
	inset: 0;
	min-width: 0;
	min-height: 0;
	padding: 0;
	background: transparent;
}
.woocommerce ul.products li.product .nf-product-card__image,
.woocommerce-page ul.products li.product .nf-product-card__image {
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	object-fit: contain;
	object-position: center;
	transform: none;
}
.woocommerce div.product div.images .flex-viewport,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce div.product div.images .woocommerce-product-gallery__image > a,
.woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce div.product div.images .flex-control-thumbs img { background: transparent; }
.woocommerce div.product div.images .woocommerce-product-gallery__image > a { padding: 0; }

/* Paint only the outer stage, not nested white boxes around each image. */
.nf-hero-product__stage,
.nf-area-card__image,
.nf-about-hero__image,
.nf-about-category__image,
.woocommerce ul.products li.product .nf-product-card__media,
.woocommerce-page ul.products li.product .nf-product-card__media,
.woocommerce div.product div.images .flex-viewport,
.woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce div.product div.images .zoomImg,
.woocommerce-cart .woocommerce table.cart .product-thumbnail img[data-nf-presentation],
.woocommerce-mini-cart img[data-nf-presentation],
.pswp .pswp__img {
	background: var(--nf-product-media-stage) var(--nf-studio-background) center / cover no-repeat;
}
.nf-hero-product__stage { border-radius: var(--nf-radius-card); overflow: hidden; }
.nf-about-hero__image figcaption { background: #fff; }
.nf-hero-product__stage img[data-nf-presentation],
.nf-area-card__image img[data-nf-presentation],
.nf-about-hero__image img[data-nf-presentation],
.nf-about-category__image img[data-nf-presentation],
.woocommerce ul.products li.product img.nf-product-card__image[data-nf-presentation],
.woocommerce-page ul.products li.product img.nf-product-card__image[data-nf-presentation],
.woocommerce div.product div.images .woocommerce-product-gallery__image img[data-nf-presentation] {
	filter: var(--nf-studio-contact-shadow);
}
.nf-area-card__image,
.nf-about-category__image {
	aspect-ratio: 1 / 1;
	min-height: 0;
	padding: 0;
}
.nf-area-card__image img[data-nf-presentation],
.nf-about-category__image img[data-nf-presentation] {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	transform: none;
}
.woocommerce div.product div.images .flex-control-thumbs {
	grid-template-columns: repeat(var(--nf-gallery-count, 5), minmax(44px, 1fr));
	max-width: 100%;
	overflow-x: auto;
}
.woocommerce div.product div.images .flex-control-thumbs li { min-width: 44px; }
.woocommerce div.product div.images .flex-control-thumbs img { min-width: 44px; min-height: 44px; }

/* A success message with an action needs a real gap, including in RTL. */
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { font-size: 1rem; line-height: 1.65; }
body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	display: inline-grid;
	place-items: center;
	box-sizing: border-box;
	width: 1.2rem;
	height: 1.2rem;
	font-family: inherit;
	font-size: .875rem;
	font-style: normal;
	font-weight: 700;
	line-height: 1;
}
body .woocommerce-message::before { content: "\2713"; content: "\2713" / ""; }
body .woocommerce-info::before { content: "i"; content: "i" / ""; }
body .woocommerce-error::before { content: "!"; content: "!" / ""; }
body :is(.woocommerce-info, .woocommerce-error)::before { border: 1px solid currentColor; border-radius: 50%; }
body :is(.woocommerce-message, .woocommerce-info):has(> .button) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	padding-block: 1rem;
	padding-inline: 3rem 1.25rem;
	overflow-wrap: break-word;
}
body :is(.woocommerce-message, .woocommerce-info):has(> .button)::before {
	left: auto;
	right: auto;
	inset-inline-start: 1rem;
	top: 1.15rem;
}
body :is(.woocommerce-message, .woocommerce-info):has(> .button)::after { display: none; content: none; }
body :is(.woocommerce-message, .woocommerce-info) > .button {
	display: inline-flex;
	float: none;
	min-width: 0;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	margin: 0;
	margin-inline-start: auto;
	padding: .65rem 1rem;
	border-radius: .55rem;
	font-size: .875rem;
	line-height: 1.4;
	text-align: center;
	white-space: normal;
}
.woocommerce-error li + li { margin-top: .45rem; }

/* Shared navigation text should not be tighter or smaller than product labels. */
.woocommerce .woocommerce-breadcrumb { margin-bottom: 1.25rem; font-size: .875rem; letter-spacing: 0; line-height: 1.6; text-transform: none; }
.nf-catalogue-head__inner > p { font-size: 1rem; line-height: 1.65; }
.nf-footer__grid h2 { font-size: .875rem; line-height: 1.5; }
.nf-footer__grid h2 a { font: inherit; color: inherit; }

/* Utility pages need the same legible copy and deliberate spacing as the shop. */
#nf-contact-form-title { scroll-margin-top: 8.25rem; }
.nf-policy-toc a { font-size: .875rem; line-height: 1.5; }
.nf-policy-reading { font-size: 1rem; }
.nf-policy-reading__guide,
.nf-policy-source-meta { font-size: .875rem; line-height: 1.5; }
.nf-account-content .woocommerce-MyAccount-content { align-self: start; min-height: 0; }

@media (max-width: 820px) {
	.nf-category-rail .nf-category-rail__track { grid-template-columns: repeat(5, minmax(12.5rem, 1fr)); }
	#nf-contact-form-title { scroll-margin-top: 6.5rem; }
}

@media (max-width: 600px) {
	body :is(.woocommerce-message, .woocommerce-info):has(> .button) { gap: .85rem; padding-inline: 2.5rem 1rem; }
	body :is(.woocommerce-message, .woocommerce-info) > .button { width: 100%; flex-basis: 100%; margin-inline-start: 0; }
}

/* Persistent gallery chevrons: quiet artwork, generous targets, no emoji glyphs. */
.nf-card-gallery__controls,
.woocommerce div.product .related ul.products li.product .nf-card-gallery__controls,
.nf-single-gallery__controls {
    grid-template-columns: 3rem minmax(0, 1fr) 3rem;
}
.nf-card-gallery__controls .nf-card-gallery__button,
.nf-single-gallery__controls button {
    width: 3rem;
    min-width: 3rem;
    min-height: 3rem;
    padding: 0;
    touch-action: manipulation;
}
.nf-card-gallery__button .nf-gallery-chevron,
.nf-single-gallery__controls button .nf-gallery-chevron {
    display: block;
    pointer-events: none;
    width: .6rem;
    height: .6rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
}
.nf-card-gallery__button .nf-gallery-chevron--previous,
.nf-single-gallery__controls button .nf-gallery-chevron--previous { transform: rotate(-135deg); }
html[dir="rtl"] .nf-card-gallery__button .nf-gallery-chevron--next,
html[dir="rtl"] .nf-single-gallery__controls button .nf-gallery-chevron--next { transform: rotate(-135deg); }
html[dir="rtl"] .nf-card-gallery__button .nf-gallery-chevron--previous,
html[dir="rtl"] .nf-single-gallery__controls button .nf-gallery-chevron--previous { transform: rotate(45deg); }
.woocommerce-product-gallery .flex-viewport { touch-action: pan-y pinch-zoom; }
.nf-area-card__copy { grid-template-columns: minmax(0, 1fr); }
.nf-card-gallery__position { overflow-wrap: anywhere; }
/* Keep the arrow hit target stationary during touchscreen hover emulation. */
@media (hover: none), (pointer: coarse) {
    .nf-product-card:hover { transform: none; }
}
/* WooCommerce already draws a magnifier in CSS; suppress its emoji fallback. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { font-size: 0; }
.woocommerce-product-gallery__trigger img.emoji { display: none !important; }
/* Keep the cart quantity legible and centred in both header colour states. */
.nf-header .nf-cart-link > span {
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 24px;
    height: 24px;
    padding: 0 4px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #013efd;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
    direction: ltr;
}
.nf-header.is-scrolled .nf-cart-link > span { border-color: var(--nf-graphite); }


/* NF approved design system — 2026-09-10. Product pixels and commerce are unchanged. */
:root { --nf-radius-card: 14px; --nf-radius-control: 9px; --nf-ui-gap: 24px; }
.nf-section { padding-block: 64px; }
.nf-section-heading { margin-bottom: 28px; gap: 24px; }
.nf-section-heading h2 { font-size: clamp(28px, 2.65vw, 36px); font-weight: 700; line-height: 1.18; letter-spacing: -.025em; }
.nf-section-heading > p { max-width: 48ch; font-size: 15px; line-height: 1.6; }
.nf-hero { min-height: 0; padding-block: 56px; }
.nf-hero__copy h1 { font-size: clamp(44px, 4.65vw, 64px); line-height: 1.08; font-weight: 750; letter-spacing: -.035em; }
.nf-hero__inner { gap: 40px; }
.nf-hero-product__stage { height: clamp(280px, 29vw, 400px); }
.nf-hero-product__meta span { font-size: 13px; font-weight: 500; letter-spacing: .015em; }
.nf-hero-product__meta strong { font-size: 17px; font-weight: 650; }
.nf-hero__search { display: none; } /* Search is now available in the shared header. */
.nf-catalogue-head h1 { font-size: clamp(32px, 3.2vw, 44px); font-weight: 750; line-height: 1.12; letter-spacing: -.03em; }
.nf-about-hero h1, .nf-contact-intro h1, .nf-policy-centre-hero h1,
.nf-account-hero h1, .nf-faq-hero h1, .nf-commerce-hero h1,
.nf-policy-review-hero h1 { font-size: clamp(30px, 3vw, 40px); font-weight: 700; line-height: 1.15; letter-spacing: -.025em; }
.nf-account-hero, .nf-faq-hero, .nf-commerce-hero, .nf-contact-intro,
.nf-policy-centre-hero, .nf-policy-review-hero { padding-block: 40px; }
.nf-about-hero__inner { padding-block: 48px; }
#nf-contact-form-title, .nf-support-cta h2 { font-size: clamp(26px, 2.35vw, 32px); font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }
.nf-support-cta { margin-top: 32px; padding: 28px; border-radius: 14px; }
.nf-support-cta .nf-kicker { display: none; }
.nf-support-cta .nf-button-row { flex-shrink: 0; }
.nf-intent-grid h3 { font-size: 20px; font-weight: 650; line-height: 1.4; }
.nf-button, .woocommerce button.button, .woocommerce a.button,
.woocommerce input.button { font-size: 15px; font-weight: 650; line-height: 1.4; letter-spacing: 0; text-transform: none; border-radius: 9px; min-height: 48px; }
.nf-text-link { font-weight: 600; letter-spacing: 0; text-transform: none; }
.nf-header__utility > .nf-language, .nf-header__utility > .nf-language a { font-size: 13px; }
.nf-header__utility { gap: 10px; }
.nf-header__inner { position: relative; }
.nf-header-search { flex-shrink: 0; }
.nf-header-search > summary { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #dce2ea; border-radius: 50%; color: #17202d; background: #fff; cursor: pointer; list-style: none; }
.nf-header-search > summary::-webkit-details-marker { display: none; }
.nf-header-search svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.nf-header-search[open] > summary, .nf-header-search > summary:hover { color: var(--nf-cobalt); border-color: var(--nf-cobalt); }
.nf-header.is-scrolled .nf-header-search > summary { color: #fff; background: transparent; border-color: #647084; }
.nf-header-search__panel { position: absolute; inset-block-start: calc(100% - 1px); inset-inline-end: 0; z-index: 60; width: min(440px, calc(100vw - 32px)); padding: 16px; border: 1px solid #dce2ea; border-radius: 0 0 12px 12px; background: #fff; box-shadow: 0 12px 24px rgb(13 19 28 / 12%); }
.nf-header-search__panel label, .nf-shop-search .nf-search-form label { display: block; min-width: 0; }
/* The original search form was a dark hero component; both new surfaces are white. */
.nf-header-search__panel .nf-search-form, .nf-shop-search .nf-search-form { width: 100%; max-width: none; margin: 0; border: 1px solid #c9d0db; border-radius: 9px; background: #fff; color: #17202d; backdrop-filter: none; }
.nf-header-search__panel .nf-search-form input, .nf-shop-search .nf-search-form input { min-width: 0; color: #17202d; background: #fff; font-size: 16px; border-start-start-radius: 8px; border-end-start-radius: 8px; }
.nf-header-search__panel .nf-search-form input::placeholder, .nf-shop-search .nf-search-form input::placeholder { color: #5c6675; opacity: 1; }
.nf-header-search__panel .nf-search-form button, .nf-shop-search .nf-search-form button { flex: 0 0 48px; color: #fff; background: var(--nf-cobalt); min-width: 48px; min-height: 48px; border-start-end-radius: 8px; border-end-end-radius: 8px; }
.nf-shop-search { margin: 16px 0 20px; max-width: 580px; }
.nf-shop-tools > summary { font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.nf-shop-tools label { font-weight: 600; letter-spacing: 0; text-transform: none; }
.nf-category-rail .nf-category-rail__item { min-height: 64px; }
.nf-category-rail .nf-category-rail__name { font-weight: 600; }
body:not(.nf-catalogue-mode) .woocommerce ul.products,
body:not(.nf-catalogue-mode).woocommerce-page ul.products { gap: 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products li.product.nf-product-card { border-radius: 14px; }
.woocommerce ul.products li.product.nf-product-card:hover { transform: none; border-color: #a6b4cd !important; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__body { min-height: 0; padding: 18px; gap: 0; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__category { min-height: 1.45em; margin: 0 0 6px; font-size: 13px; font-weight: 500; line-height: 1.45; letter-spacing: 0; text-transform: none; }
.woocommerce ul.products li.product.nf-product-card .woocommerce-loop-product__title { padding: 0; margin: 0; font-size: 18px; font-weight: 700; line-height: 1.35; letter-spacing: -.01em; }
.woocommerce ul.products li.product.nf-product-card .woocommerce-loop-product__title a { font-weight: inherit; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__descriptor { min-height: 2.9em; margin: 8px 0 12px; font-size: 14px; font-weight: 400; line-height: 1.5; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__meta { margin-top: auto; padding-top: 4px; }
.woocommerce ul.products li.product.nf-product-card .price { margin-bottom: 0; font-size: 20px; font-weight: 700; line-height: 1.3; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__cart { margin-top: 14px; padding: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__cart > .button { min-height: 48px; padding: 10px 12px; font-size: 15px; font-weight: 650; line-height: 1.4; border-radius: 9px; text-transform: none; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__cart > .nf-product-card__details { min-width: 104px; padding: 10px 8px; border: 1px solid transparent; border-radius: 9px; min-height: 48px; font-size: 14px; font-weight: 600; color: #344154; background: transparent; line-height: 1.4; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce ul.products li.product.nf-product-card .nf-product-card__details:hover { color: var(--nf-cobalt); background: #f3f6fc; }
.nf-card-gallery__controls, .woocommerce div.product .related ul.products li.product .nf-card-gallery__controls { background: #fff; border-top: 0; }
.nf-card-gallery__position { color: #637083; font-size: 13px; font-weight: 500; }
.nf-card-gallery__button { color: #637083; }
.woocommerce div.product .product_title { font-size: clamp(28px, 2.9vw, 40px); line-height: 1.16; font-weight: 700; letter-spacing: -.02em; }
.nf-product-intro h1 { font-size: 28px; line-height: 1.25; font-weight: 700; letter-spacing: -.015em; }
.woocommerce div.product .summary .price { font-size: 26px; font-weight: 700; line-height: 1.3; }
.woocommerce div.product form.cart .button { min-height: 50px; font-size: 16px; font-weight: 650; text-transform: none; }
.woocommerce div.product .stock { font-weight: 500; text-transform: none; }
.nf-product-info-row > summary { font-size: 16px; font-weight: 600; min-height: 56px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { font-size: 17px; font-weight: 650; min-height: 52px; padding: 14px 20px; line-height: 1.4; text-transform: none; }
.woocommerce .order-total .woocommerce-Price-amount { font-variant-numeric: tabular-nums; }
.nf-checkout-availability { margin: 16px 0 12px; font-size: 14px; line-height: 1.6; color: #4b596c; }
.woocommerce #place_order[disabled] { opacity: 1; color: #344154; background: #e8edf5; border-color: #d1d9e6; cursor: not-allowed; }
.nf-account-content .woocommerce-form label { min-height: 24px; line-height: 1.6; }
.nf-account-content input[type="checkbox"] { width: 19px; height: 19px; vertical-align: middle; flex-shrink: 0; accent-color: var(--nf-cobalt); }
.nf-account-content .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.nf-account-content p:has(> #nf_registration_age_18_plus), .nf-account-content label:has(#nf_registration_age_18_plus) { min-height: 44px; }
.nf-footer__grid h2 { font-weight: 650; letter-spacing: .025em; }
.nf-footer__grid > div > a { min-height: 36px; }
html[dir="rtl"] :is(.nf-section-heading h2, .nf-hero__copy h1, .nf-catalogue-head h1, .nf-about-hero h1, .nf-contact-intro h1, .nf-account-hero h1, .nf-faq-hero h1, .nf-policy-centre-hero h1, .nf-commerce-hero h1, .nf-policy-review-hero h1, .nf-support-cta h2, #nf-contact-form-title, .nf-product-intro h1, .woocommerce div.product .product_title) { letter-spacing: normal; line-height: 1.3; }
html[dir="rtl"] .woocommerce ul.products li.product.nf-product-card .nf-product-card__descriptor { line-height: 1.65; }
html[dir="rtl"] .nf-footer__grid h2, html[dir="rtl"] .nf-button { letter-spacing: normal; }
:is(.nf-header-search > summary, .nf-product-card__details, .nf-button):focus-visible { outline: 3px solid #779dff; outline-offset: 3px; }
@media (min-width: 961px) and (max-width: 1439px) {
 body:not(.nf-catalogue-mode) .woocommerce ul.products, body:not(.nf-catalogue-mode).woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
 body:not(.nf-catalogue-mode) .nf-latest.woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1199px) and (min-width: 601px) {
 body:not(.nf-catalogue-mode) .nf-latest.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) { .nf-header__utility { gap: 8px; } .nf-account-link span { display: none; } }
@media (max-width: 960px) and (min-width: 601px) {
 body:not(.nf-catalogue-mode) .woocommerce ul.products, body:not(.nf-catalogue-mode).woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
 .nf-section { padding-block: 40px; }
 .nf-hero { padding-block: 32px; }
 .nf-hero__inner { gap: 28px; }
 .nf-hero__copy h1 { font-size: clamp(34px, 6.5vw, 48px); line-height: 1.13; }
 .nf-header-search__panel { inset-inline-end: 0; }
 .nf-header__utility { gap: 6px; }
 .nf-header .nf-brand { min-width: 0; }
 .nf-header .nf-brand__wordmark { font-size: 14px; letter-spacing: .16em; }
 .nf-header .nf-header__inner { gap: 12px; }
 .nf-header .nf-header-search > summary, .nf-header .nf-cart-link, .nf-header .nf-menu-toggle { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
 .nf-support-cta { flex-direction: column; align-items: start; padding: 24px; gap: 20px; }
 .nf-account-hero, .nf-faq-hero, .nf-commerce-hero, .nf-contact-intro, .nf-policy-centre-hero { padding-block: 32px; }
}
@media (max-width: 600px) {
 body:not(.nf-catalogue-mode) .woocommerce ul.products, body:not(.nf-catalogue-mode).woocommerce-page ul.products { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .nf-section-heading { margin-bottom: 24px; }
 .nf-section-heading h2 { font-size: 28px; }
 .nf-hero-product__stage { height: clamp(230px, 68vw, 360px); }
 .nf-product-help { padding: 20px; }
 .nf-footer__grid { gap: 24px; }
}
@media print { .nf-header-search, .nf-shop-search { display: none; } }

/* Append after storefront-upgrade.css. No gallery, cart, order or payment behaviour changes. */
.nf-product-information .nf-product-info-row > summary { font-weight: 650; }
.nf-product-information .nf-product-info-row--appearance > summary { color: #465263; }
.nf-comparison-panel { max-width: 100%; }
.nf-comparison-panel > h2 { margin-bottom: .55rem; }
.nf-comparison-panel .nf-comparison-hint { margin: 0 0 1rem; color: #586575; font-size: .875rem; line-height: 1.55; }
.nf-comparison-panel .nf-related-comparison__scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.nf-comparison-panel .nf-comparison-table { width: 100%; min-width: calc(9rem + var(--nf-comparison-columns, 2) * 14rem); table-layout: fixed; font-size: .9375rem; line-height: 1.55; }
.nf-comparison-panel .nf-comparison-table :is(th, td) { padding: 1rem; overflow-wrap: anywhere; }
.nf-comparison-panel .nf-comparison-table tr > :first-child { width: 9rem; position: sticky; inset-inline-start: 0; z-index: 1; background: #f3f6fa; color: #344154; font-size: .875rem; font-weight: 600; box-shadow: 1px 0 0 #e1e6ed; }
html[dir="rtl"] .nf-comparison-panel .nf-comparison-table tr > :first-child { box-shadow: -1px 0 0 #e1e6ed; }
.nf-comparison-panel .nf-comparison-table thead th { vertical-align: top; background: #fff; }
.nf-comparison-panel .nf-comparison-table .nf-comparison-product--current { box-shadow: inset 0 3px 0 var(--nf-cobalt, #073bff); }
.nf-comparison-panel .nf-comparison-product__link { display: flex; align-items: flex-start; flex-direction: column; gap: .75rem; min-height: 44px; text-decoration: none; color: #111923; }
.nf-comparison-panel .nf-comparison-product__image { display: block; width: 112px; height: 112px; max-width: 100%; margin: 0; object-fit: contain; object-position: center; border-radius: .65rem; }
.nf-comparison-panel .nf-comparison-product__name { font-size: 1rem; line-height: 1.4; font-weight: 650; }
.nf-comparison-panel .nf-comparison-product__link:hover .nf-comparison-product__name { color: var(--nf-cobalt, #073bff); text-decoration: underline; text-underline-offset: .18em; }
.nf-comparison-panel .nf-comparison-product__current { display: block; margin-top: .45rem; color: #3c536e; font-size: .75rem; line-height: 1.5; font-weight: 500; }
.nf-comparison-panel .nf-comparison-product__no-image { display: grid; place-items: center; width: 112px; min-height: 112px; padding: .5rem; background: #f3f6fa; color: #586575; font-size: .8125rem; line-height: 1.45; }
.nf-comparison-panel .nf-comparison-table__price { color: #111923; font-weight: 650; }
.nf-comparison-panel .nf-comparison-table__unknown { color: #657181; }
.nf-comparison-panel .nf-comparison-product__details { display: inline-flex; align-items: center; min-height: 48px; padding-block: .55rem; font-weight: 600; line-height: 1.4; text-underline-offset: .2em; }
.nf-comparison-panel a:focus-visible { outline: 3px solid #88a8ff; outline-offset: 4px; border-radius: .2rem; }
html[dir="rtl"] .nf-comparison-panel { line-height: 1.75; }
@media (max-width: 600px) {
  .nf-comparison-panel .nf-comparison-table { min-width: calc(7rem + var(--nf-comparison-columns, 2) * 12rem); }
  .nf-comparison-panel .nf-comparison-table tr > :first-child { width: 7rem; }
  .nf-comparison-panel .nf-comparison-table :is(th, td) { padding: .85rem .75rem; }
  .nf-comparison-panel .nf-comparison-product__image { width: 96px; height: 96px; }
  .nf-comparison-panel .nf-comparison-product__name { font-size: .9375rem; }
}

/* Progressive forms: no-JS WooCommerce layout and all server notices stay untouched. */
.nf-account-content #customer_login[data-nf-account-tabs="1"] {
	display: block;
	max-width: 34rem;
	margin-inline: auto;
}
.nf-account-content #customer_login[data-nf-account-tabs="1"] > [role="tabpanel"][hidden] {
	display: none !important;
}
.nf-account-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .25rem;
	margin-block-end: 1rem;
	padding: .25rem;
	border: 1px solid #d6dce5;
	border-radius: .75rem;
	background: #f1f4f8;
}
.nf-account-content .nf-account-tabs__tab {
	min-width: 0;
	min-height: 3rem;
	padding: .625rem .75rem;
	border: 1px solid transparent;
	border-radius: .5rem;
	background: transparent;
	color: #445061;
	font: inherit;
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	white-space: normal;
	cursor: pointer;
}
.nf-account-content .nf-account-tabs__tab[aria-selected="true"] {
	border-color: #d6dce5;
	background: #fff;
	color: var(--nf-cobalt, #063dff);
	box-shadow: 0 1px 3px rgb(13 19 28 / 6%);
}
.nf-account-content .nf-account-tabs__tab:hover { color: #0d131c; }
.nf-account-content #customer_login[data-nf-account-tabs="1"] > [role="tabpanel"] > h2 {
	margin-block: 0 1rem;
	font-size: 1.375rem;
	line-height: 1.4;
}
.nf-account-back { margin-block: 1.25rem 0; }
.nf-account-back a {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	padding-block: .5rem;
	color: var(--nf-cobalt, #063dff);
	font-size: 1rem;
	line-height: 1.5;
	text-decoration: underline;
	text-underline-offset: .2em;
}

/* Only a confirmed native Woo success creates this fixed bar; card actions do not move. */
.nf-cart-feedback {
	position: fixed;
	z-index: 1100;
	inset-inline: 1rem;
	inset-block-end: max(1rem, env(safe-area-inset-bottom, 0px));
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: .5rem .75rem;
	box-sizing: border-box;
	width: fit-content;
	max-width: min(36rem, calc(100% - 2rem));
	max-height: 40vh;
	margin-inline: auto;
	padding: .75rem 1rem;
	overflow: auto;
	border: 1px solid #d6dce5;
	border-radius: .75rem;
	background: #fff;
	color: #0d131c;
	box-shadow: 0 8px 32px rgb(13 19 28 / 18%);
	font-size: 1rem;
	line-height: 1.5;
}
.nf-cart-feedback[hidden] { display: none !important; }
.nf-cart-feedback__message { margin: 0; overflow-wrap: anywhere; }
.nf-cart-feedback .nf-cart-feedback__link,
.nf-cart-feedback .nf-cart-feedback__close {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: .5rem .625rem;
	border: 1px solid transparent;
	border-radius: .375rem;
	background: transparent;
	font: inherit;
	font-weight: 650;
	line-height: 1.5;
	text-transform: none;
	white-space: normal;
	cursor: pointer;
}
.nf-cart-feedback .nf-cart-feedback__link {
	color: var(--nf-cobalt, #063dff);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.nf-cart-feedback .nf-cart-feedback__close { color: #445061; font-size: .875rem; }
.nf-cart-feedback .nf-cart-feedback__close:hover { background: #f1f4f8; }
.nf-account-tabs__tab:focus-visible,
.nf-account-back a:focus-visible,
.nf-cart-feedback a:focus-visible,
.nf-cart-feedback button:focus-visible { outline: 3px solid #063dff; outline-offset: 3px; }
@media (max-width: 480px) {
	.nf-cart-feedback { grid-template-columns: minmax(0, 1fr) auto; width: calc(100% - 2rem); padding: .625rem .75rem; }
	.nf-cart-feedback__message { grid-column: 1 / -1; }
	.nf-cart-feedback .nf-cart-feedback__link { justify-self: start; }
	.nf-cart-feedback .nf-cart-feedback__close { justify-self: end; }
}
@media (forced-colors: active) {
	.nf-account-content .nf-account-tabs__tab[aria-selected="true"] { border-color: Highlight; }
	.nf-cart-feedback { border-color: CanvasText; }
}
@media print {
	.nf-cart-feedback { display: none !important; }
}

/* Screenshot-reviewed refinements — 2026-09-10. Scoped to the named surfaces. */

/* A bounded two-column purchase area keeps square media and useful detail together. */
@media (min-width: 821px) {
	body:not(.nf-catalogue-mode).single-product .nf-commerce > .nf-shell > div.product.type-product {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(32px, 4vw, 64px);
		row-gap: 32px;
		width: 100%;
		max-width: 1344px;
		margin-inline: auto;
	}
	body.nf-product-upgrade.single-product .nf-commerce > .nf-shell > div.product > :is(.images, .summary) { margin-bottom: 0; }
	body.nf-product-upgrade.single-product .nf-commerce > .nf-shell > div.product > .nf-product-information { margin-block: 16px 0; }
	body.nf-product-upgrade.single-product .nf-commerce > .nf-shell > div.product > :is(.nf-product-help, .nf-related-comparison, .related) { margin-block: 0; }
	body.single-product.woocommerce div.product div.images .flex-control-thumbs {
		grid-template-columns: repeat(var(--nf-gallery-count, 5), minmax(44px, 80px));
		justify-content: center;
		gap: 10px;
	}
}
body.single-product.woocommerce div.product div.images .flex-control-thumbs img {
	opacity: .9;
	object-fit: contain;
	object-position: center;
}
body.single-product.woocommerce div.product div.images .flex-control-thumbs img:is(.flex-active, [aria-pressed="true"], :hover, :focus-visible) { opacity: 1; }
body.single-product.woocommerce div.product div.images .flex-control-thumbs img:focus-visible { outline: 3px solid #638eff; outline-offset: 2px; }
.nf-single-gallery__controls > span { font-size: 14px; line-height: 1.4; }

/* Product identity and genuine facts do not need another nested disclosure. */
.nf-product-metadata { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-block: 0 20px; color: #566476; font-size: 14px; line-height: 1.6; }
.nf-product-metadata > * { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.nf-product-metadata > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.nf-product-metadata dt { color: #566476; font-weight: 500; }
.nf-product-metadata dd { min-width: 0; margin: 0; color: #344154; }
.nf-product-metadata a { color: #344154; text-underline-offset: 3px; }
.nf-product-information .nf-product-facts-table { width: 100%; margin: 0 0 24px; border: 1px solid #dce2ea; border-collapse: collapse; font-size: 16px; line-height: 1.65; }
.nf-product-information .nf-product-facts-table :is(th, td) { padding: 12px 16px; border: 0; border-bottom: 1px solid #dce2ea; text-align: start; vertical-align: top; overflow-wrap: anywhere; }
.nf-product-information .nf-product-facts-table th { width: 32%; background: #f5f7fa; color: #344154; font-size: 14px; font-weight: 600; }
.nf-product-information .nf-product-facts-table td { color: #39485b; }
.nf-product-policy + .nf-product-policy { margin-top: 24px; }
.nf-product-policy h3 { margin: 0 0 8px; color: #17202d; font-size: 17px; font-weight: 650; line-height: 1.5; }
.nf-product-policy p { margin-block: 0 8px; }
.nf-product-policy > a { display: inline-flex; align-items: center; min-height: 44px; }
.nf-comparison-panel .nf-comparison-hint[hidden] { display: none; }
.nf-comparison-panel .nf-comparison-table { min-width: calc(10.5rem + var(--nf-comparison-columns, 2) * 14rem); }
.nf-comparison-panel .nf-comparison-table tr > :first-child { width: 10.5rem; }
.nf-comparison-panel .nf-comparison-product__image { width: 128px; height: 128px; }
.nf-comparison-panel :is(.nf-comparison-note, .nf-comparison-shared) { max-width: 76ch; margin-block: 0 16px; color: #465568; font-size: 15px; line-height: 1.65; }

/* The real category result count determines sparse grids; no product is hidden. */
body.tax-product_cat.nf-catalogue-count-1 #primary ul.products { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; }
@media (min-width: 601px) {
	body.tax-product_cat.nf-catalogue-count-2 #primary ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 800px; margin-inline: auto; }
	body.single-product .nf-commerce > .nf-shell > div.product > .related ul.products:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 800px; margin-inline: auto; }
}
@media (min-width: 961px) {
	body.tax-product_cat.nf-catalogue-count-3 #primary ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1200px; margin-inline: auto; }
}

/* One catalogue search and category rail; the remaining sort panel is compact. */
.nf-catalogue-page .nf-shop-search { margin-block: 8px 16px; }
.nf-catalogue-page .nf-category-rail { margin-block: 0 16px; overflow-x: auto; scrollbar-color: #9aa8bb #edf1f6; scrollbar-width: thin; }
.nf-catalogue-page .nf-category-rail .nf-category-rail__track { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.nf-catalogue-page .nf-catalogue-sort { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 12px; margin: 0 0 16px; padding-block: 0 12px; border-bottom: 1px solid #e1e6ed; }
.nf-catalogue-page .nf-catalogue-sort > label { margin: 0; color: #465568; font-size: 14px; font-weight: 600; line-height: 1.5; }
.nf-catalogue-page .nf-catalogue-sort select { flex: 0 1 280px; width: min(100%, 280px); min-width: 0; min-height: 48px; padding: 10px 12px; padding-inline-end: 36px; border: 1px solid #c9d0db; border-radius: 9px; background: #fff; color: #17202d; font: inherit; font-size: 16px; line-height: 1.5; }
.nf-catalogue-page .nf-catalogue-sort button { min-height: 48px; padding: 10px 16px; border: 1px solid var(--nf-cobalt); border-radius: 9px; background: var(--nf-cobalt); color: #fff; font: inherit; font-size: 15px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.nf-catalogue-page .nf-catalogue-sort :is(select, button):focus-visible { outline: 3px solid #638eff; outline-offset: 3px; }
.nf-catalogue-page .woocommerce-result-count { float: none; margin-block: 0 16px; text-align: start; }
.nf-catalogue-head--category .nf-catalogue-head__inner > p { color: #b8c3d2; }
@media (max-width: 1080px) {
	.nf-catalogue-page .nf-category-rail .nf-category-rail__track { grid-template-columns: repeat(6, minmax(176px, 1fr)); }
}

/* Account-only fields: keep labels, inputs, validation and actions in one column. */
.nf-account-content .woocommerce form.woocommerce-form { margin: 0; padding: 0; border: 0; border-radius: 0; text-align: start; }
.nf-account-content .woocommerce form.woocommerce-form .form-row { padding: 0; margin-block: 0 16px; }
.nf-account-content .woocommerce form.woocommerce-form .form-row > label { margin-bottom: 6px; text-align: start; font-size: 15px; line-height: 1.6; }
.nf-account-content .woocommerce form.woocommerce-form input:not([type="checkbox"]):not([type="hidden"]),
.nf-account-content .woocommerce form.lost_reset_password input:not([type="hidden"]) { min-width: 0; max-width: 100%; min-height: 48px; font-size: 16px; }
.nf-account-content .woocommerce form.woocommerce-form input[type="email"] { direction: ltr; text-align: left; }
.nf-account-content .woocommerce .password-input { position: relative; display: block; width: 100%; }
.nf-account-content .woocommerce .password-input input { direction: ltr; padding-inline: 12px 48px; text-align: left; }
.nf-account-content .woocommerce .password-input .show-password-input { position: absolute; top: 0; right: auto; left: auto; inset-inline-end: 0; display: grid; width: 44px; min-width: 44px; min-height: 44px; height: 100%; margin: 0; padding: 0; place-items: center; }
.nf-account-content .woocommerce .password-input .show-password-input::after { margin: 0; }
html[dir="rtl"] .nf-account-content .woocommerce .password-input input { padding-inline: 48px 12px; }
.nf-account-content .woocommerce form.woocommerce-form label:has(> input[type="checkbox"]) { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; font-size: 15px; font-weight: 500; line-height: 1.65; }
.nf-account-content .woocommerce form.woocommerce-form label > input[type="checkbox"] { flex: 0 0 19px; width: 19px; height: 19px; margin: 3px 0 0; }
.nf-account-content .woocommerce .woocommerce-privacy-policy-text { color: #465568; font-size: 14px; line-height: 1.65; }
.nf-account-content .woocommerce form.lost_reset_password { display: grid; gap: 16px; width: 100%; max-width: 34rem; margin: 0 auto; padding: 24px; border: 1px solid #dce2ea; border-radius: 14px; background: #fff; text-align: start; }
.nf-account-content .woocommerce form.lost_reset_password > p { margin: 0; }
.nf-account-content .woocommerce form.lost_reset_password .form-row { float: none; clear: both; width: 100%; margin: 0; padding: 0; }
.nf-account-content .woocommerce form.lost_reset_password .form-row > label { display: block; margin-bottom: 6px; text-align: start; line-height: 1.6; }
.nf-account-content .woocommerce form.lost_reset_password .button { float: none; width: 100%; min-height: 48px; white-space: normal; }
.nf-account-content .woocommerce form.lost_reset_password + .nf-account-back { width: 100%; max-width: 34rem; margin: 12px auto 0; padding-inline: 24px; text-align: start; }
.nf-account-content .woocommerce form.lost_reset_password + .nf-account-back a { padding-block: 4px; }

/* Full policies remain visible through the existing disclosure, with readable hierarchy. */
.nf-policy-page .nf-policy-reading--public { max-width: 800px; color: #39485b; font-size: 16px; line-height: 1.8; }
.nf-policy-page .nf-policy-reading--public :is(p, ul, ol) { max-width: 78ch; }
.nf-policy-page .nf-policy-reading--public h2 { margin-block: 32px 12px; padding-top: 20px; font-size: clamp(22px, 2vw, 28px); font-weight: 700; letter-spacing: -.015em; line-height: 1.4; }
.nf-policy-page .nf-policy-reading--public > h2:first-child { margin-top: 0; padding-top: 0; }
.nf-policy-page .nf-policy-reading--public h3 { margin-block: 24px 10px; font-size: 19px; font-weight: 650; line-height: 1.5; }
html[dir="rtl"] .nf-policy-page .nf-policy-reading--public :is(h2, h3) { letter-spacing: normal; }
.nf-policy-page .nf-policy-reading--public :is(p, li) { color: #465568; }
.nf-policy-page .nf-policy-reading--public li + li { margin-top: 6px; }
.nf-policy-page .nf-policy-reading--public a { overflow-wrap: anywhere; text-underline-offset: 3px; }
.nf-policy-page .nf-policy-reading--public table { font-size: 15px; line-height: 1.65; }
.nf-policy-page .nf-policy-summary > p:not(.nf-kicker) { color: #566476; font-size: 15px; line-height: 1.75; }
.nf-policy-page .nf-policy-contents { margin-top: 16px; padding-top: 8px; border-top: 1px solid #dce2ea; }
.nf-policy-page .nf-policy-contents > summary { min-height: 44px; padding-block: 10px; color: #17202d; font-size: 15px; font-weight: 600; line-height: 1.6; cursor: pointer; }
.nf-policy-page .nf-policy-contents nav { max-height: 50vh; overflow-y: auto; overscroll-behavior-y: contain; }
.nf-policy-page .nf-policy-contents ol { margin-block: 4px 0; padding-inline-start: 24px; padding-inline-end: 4px; }
.nf-policy-page .nf-policy-contents li { padding-inline-start: 2px; color: #566476; }
.nf-policy-page .nf-policy-contents a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 6px; color: #344154; font-size: 14px; line-height: 1.6; text-decoration: underline; text-underline-offset: 3px; }
.nf-policy-page .nf-policy-contents :is(summary, a):focus-visible { outline: 3px solid #638eff; outline-offset: 2px; }
.nf-policy-page .nf-policy-reading h2[id] { scroll-margin-top: calc(112px + var(--wp-admin--admin-bar--height, 0px)); }
@media (min-width: 901px) {
	.nf-policy-page .nf-policy-public-layout { grid-template-columns: minmax(220px, 280px) minmax(0, 800px); max-width: 1200px; gap: 48px; }
}
@media (max-width: 900px) {
	.nf-policy-page .nf-policy-public-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.nf-policy-page .nf-policy-summary { position: static; }
}

/* Compact support destinations retain labels and every public/legal link. */
.nf-footer { padding-top: 32px; }
.nf-footer__lead { padding-bottom: 20px; gap: 20px; }
.nf-footer__lead > div > p { margin-top: 8px; font-size: 14px; line-height: 1.6; }
.nf-footer__contact-cta { min-height: 44px; font-size: 18px; line-height: 1.5; }
.nf-footer__grid { padding-block: 24px; gap: 24px; }
.nf-footer__grid > div { gap: 2px; }
.nf-footer__grid h2 { margin-bottom: 8px; }
.nf-footer__grid > div > a { min-height: 44px; line-height: 1.5; }
.nf-footer__business .nf-contact-channels { margin-top: 8px; }
.nf-footer .nf-contact-channels--footer { gap: 6px; }
.nf-footer .nf-contact-channels--footer a { min-height: 52px; padding: 8px 10px; }
.nf-footer__bottom { padding-block: 16px; gap: 12px; }
.nf-contact-intro__channels--compact .nf-contact-channels { gap: 8px; margin: 0; }
.nf-contact-intro__channels--compact .nf-contact-channels a { min-height: 56px; padding: 10px 14px; gap: 12px; }
.nf-contact-intro__channels--compact .nf-contact-channels a > span { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.nf-contact-intro__channels--compact .nf-contact-channels small { color: #bac6d7; font-size: 13px; line-height: 1.5; }
.nf-contact-intro__channels--compact .nf-contact-channels bdi { font-size: 14px; line-height: 1.5; }
.nf-policy-contact.nf-policy-contact--compact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 24px; }
.nf-policy-contact--compact > div { flex: 1 1 320px; }
.nf-policy-contact--compact h2 { margin: 0 0 8px; font-size: 24px; font-weight: 650; line-height: 1.4; letter-spacing: normal; }
.nf-policy-contact--compact p { max-width: 68ch; margin: 0; color: #c3cedd; font-size: 15px; line-height: 1.65; }
.nf-policy-contact--compact > a { flex: 0 0 auto; min-height: 48px; color: #c1ceff; text-decoration: underline; text-underline-offset: 3px; }
.nf-policy-contact--compact > a:hover { color: #fff; }
.nf-about-business { color: #465568; font-size: 16px; line-height: 1.75; }
.nf-about-business .nf-about-story__copy { max-width: 70ch; }
.nf-about-business h2 { margin-block: 0 16px; color: #17202d; font-size: clamp(26px, 2.35vw, 32px); line-height: 1.3; }
.nf-about-business p { margin-block: 0 16px; }

@media (max-width: 820px) {
	body:not(.nf-catalogue-mode).single-product .nf-commerce > .nf-shell > div.product.type-product { grid-template-columns: minmax(0, 1fr); }
	body.single-product.woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(var(--nf-gallery-count, 5), minmax(44px, 72px)); justify-content: center; gap: 8px; }
	.nf-account-content .woocommerce form.lost_reset_password { padding: 20px; }
}
@media (max-width: 600px) {
	/* Full category photos become readable navigation thumbnails, not another catalogue. */
	.nf-areas .nf-area-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.nf-areas .nf-area-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; min-height: 112px; }
	.nf-areas .nf-area-card .nf-area-card__image { width: 112px; height: 112px; aspect-ratio: 1; padding: 0; }
	.nf-areas .nf-area-card .nf-area-card__image img { width: 100%; height: 100%; object-fit: contain; object-position: center; transform: none; }
	.nf-areas .nf-area-card .nf-area-card__copy { min-height: 0; padding: 16px; }
	.nf-areas .nf-area-card .nf-area-card__copy h3 { margin: 0; font-size: 16px; line-height: 1.5; }
	.nf-areas .nf-area-card:hover { transform: none; }
	.nf-catalogue-page { padding-top: 16px; }
	.nf-catalogue-page .nf-shop-search { margin-block: 0 12px; }
	.nf-catalogue-page .nf-category-rail { margin-bottom: 12px; }
	.nf-catalogue-page .nf-category-rail .nf-category-rail__item { min-height: 60px; padding: 10px 12px; }
	.nf-catalogue-page .nf-catalogue-sort { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; }
	.nf-catalogue-page .nf-catalogue-sort > label { grid-column: 1 / -1; }
	.nf-catalogue-page .nf-catalogue-sort select { width: 100%; }
	.nf-catalogue-page .nf-catalogue-sort button { padding-inline: 12px; }
	.nf-catalogue-head .nf-catalogue-head__inner { gap: 12px; }
	.nf-catalogue-head .nf-catalogue-head__inner > p { font-size: 15px; line-height: 1.65; }
	.nf-single-gallery__controls { grid-template-columns: 44px minmax(0, 1fr) 44px; min-height: 44px; padding: 0; margin-top: 8px; }
	.nf-single-gallery__controls button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
	.nf-card-gallery__controls,
	.woocommerce div.product .related ul.products li.product .nf-card-gallery__controls { grid-template-columns: 44px minmax(0, 1fr) 44px; min-height: 44px; }
	.nf-card-gallery__controls .nf-card-gallery__button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
	.nf-product-metadata { gap: 4px 16px; margin-bottom: 16px; }
	.nf-product-information .nf-product-facts-table :is(th, td) { padding: 10px 12px; }
	.nf-product-information .nf-product-facts-table th { width: 35%; }
	.nf-comparison-panel .nf-comparison-table { min-width: calc(9rem + var(--nf-comparison-columns, 2) * 12rem); }
	.nf-comparison-panel .nf-comparison-table tr > :first-child { width: 9rem; }
	.nf-comparison-panel .nf-comparison-product__image { width: 96px; height: 96px; }
	.nf-account-content #customer_login[data-nf-account-tabs="1"] > [role="tabpanel"] { padding: 20px; }
	.nf-account-content .woocommerce form.lost_reset_password { padding: 18px; }
	.nf-policy-page .nf-policy-reading--public h2 { margin-top: 28px; padding-top: 18px; font-size: 22px; }
	.nf-policy-page .nf-policy-summary { padding: 20px; }
	.nf-footer__lead { gap: 12px; padding-bottom: 16px; }
	.nf-footer__grid { gap: 24px 16px; }
	.nf-contact-intro .nf-contact-intro__grid { gap: 24px; }
	.nf-policy-contact.nf-policy-contact--compact { padding: 20px; gap: 16px; }
	.nf-policy-contact--compact > a { width: 100%; }
}

/* Post-deploy account alignment: cancel legacy reveal translation, preserve no-JS headings. */
.nf-account-content .woocommerce .password-input .show-password-input { transform: none; }
.nf-account-content .woocommerce form.woocommerce-form :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit) { float: none; width: 100%; min-height: 48px; margin-inline: 0; white-space: normal; }
.nf-account-content #customer_login[data-nf-account-tabs="1"] > [role="tabpanel"] > h2 { display: none; }
.woocommerce div.product .summary .nf-product-assurance a { color: #465568; text-decoration: underline; text-underline-offset: .2em; }
.woocommerce div.product .summary .nf-product-assurance a:hover { color: var(--nf-cobalt, #063dff); }

/* Manufacturer specifications: concise purchase highlights, calm grouped detail. */
.nf-product-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 20px 0 0; padding: 0; }
.nf-product-highlights > div { min-width: 0; margin: 0; padding: 12px 14px; border: 1px solid #dce2ea; border-radius: 10px; background: #f6f8fb; }
.nf-product-highlights dt { margin: 0 0 5px; color: #526176; font-size: 13px; font-weight: 500; line-height: 1.5; }
.nf-product-highlights dd { margin: 0; color: #17202d; font-size: 15px; font-weight: 650; line-height: 1.55; overflow-wrap: break-word; }
.nf-product-spec-link { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; color: #063dff; font-size: 14px; font-weight: 600; line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; }
.nf-product-compatibility-notes { margin: 4px 0 18px; padding-inline-start: 19px; color: #465568; font-size: 14px; line-height: 1.65; }
.nf-product-compatibility-notes li + li { margin-top: 6px; }
#nf-product-information-title { scroll-margin-top: calc(108px + var(--wp-admin--admin-bar--height, 0px)); }
.nf-product-specifications > h2 { margin-bottom: 12px; font-size: clamp(24px, 2.2vw, 30px); font-weight: 700; line-height: 1.3; }
.nf-product-specifications .nf-product-spec-group { margin: 0; border: 0; border-top: 1px solid #dce2ea; border-radius: 0; }
.nf-product-specifications .nf-product-spec-group > summary { display: flex; min-height: 56px; padding: 16px 4px; color: #17202d; font-size: 16px; line-height: 1.5; cursor: pointer; }
.nf-product-specifications .nf-product-spec-group > .nf-product-info-row__body { padding: 0 0 20px; }
.nf-product-specifications .nf-product-facts-table { table-layout: fixed; margin: 0; border: 0; }
.nf-product-specifications .nf-product-facts-table :is(th, td) { padding: 12px 16px; overflow-wrap: break-word; }
.nf-product-specifications .nf-product-facts-table :is(th, col.nf-product-spec-label) { width: 34%; }
.nf-spec-token { unicode-bidi: isolate; white-space: normal; overflow-wrap: anywhere; }
.nf-product-spec-link:focus-visible, .nf-product-spec-group > summary:focus-visible { outline: 3px solid #638eff; outline-offset: 3px; }

/* Equal contact destinations; the official WhatsApp glyph is transparent white artwork. */
.nf-contact-intro__channels--compact .nf-contact-channels { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; gap: 10px; }
.nf-contact-intro__channels--compact .nf-contact-channels li { min-width: 0; }
.nf-contact-intro__channels--compact .nf-contact-channels a { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; width: 100%; height: 100%; min-height: 72px; padding: 12px 16px; gap: 14px; border: 1px solid #435065; border-radius: 12px; background: #1c2735; color: #fff; }
.nf-contact-intro__channels--compact .nf-contact-channels a > span { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; min-width: 0; }
.nf-contact-intro__channels--compact .nf-contact-channels small { font-size: 13px; font-weight: 500; color: #c2cedd; }
.nf-contact-intro__channels--compact .nf-contact-channels bdi { font-size: 15px; font-weight: 600; color: #fff; white-space: normal; overflow-wrap: anywhere; }
.nf-contact-intro__channels--compact .nf-contact-channels a:is(:hover, :focus-visible) { background: #26374b; border-color: #819abd; color: #fff; }
.nf-contact-intro__channels--compact .nf-contact-channels svg { width: 24px; height: 24px; color: #fff; }
.nf-contact-channels svg.nf-whatsapp-icon--official, .nf-contact-channels svg.nf-whatsapp-icon--official :is(g, path) { fill: #fff; stroke: none; }
@media (max-width: 600px) {
 .nf-product-highlights { gap: 8px; margin-top: 16px; }
 .nf-product-highlights > div { padding: 10px 12px; }
 .nf-product-specifications .nf-product-facts-table :is(th, td) { padding: 10px; font-size: 14px; line-height: 1.65; }
 .nf-product-specifications .nf-product-facts-table :is(th, col.nf-product-spec-label) { width: 40%; }
 .nf-product-specifications .nf-product-facts-table th { font-size: 13px; }
}
@media (max-width: 359px) {
 .nf-product-highlights { grid-template-columns: minmax(0, 1fr); }
 .nf-product-specifications .nf-product-facts-table :is(th, col.nf-product-spec-label) { width: 42%; }
 .nf-comparison-panel .nf-comparison-table { min-width: calc(6rem + var(--nf-comparison-columns, 2) * 10.5rem); }
 .nf-comparison-panel .nf-comparison-table tr > :first-child { width: 6rem; min-width: 6rem; }
 .nf-comparison-panel .nf-comparison-table :is(th, td) { padding: 10px; }
}
@media print { .nf-product-specifications details > .nf-product-info-row__body { display: block; } }

/* Premium interaction polish — 2026-09-11.
 * Surface feedback only: media framing, content and commerce behaviour stay intact.
 */
.woocommerce ul.products li.product.nf-product-card,
.nf-areas .nf-area-card {
	box-shadow: 0 4px 20px rgb(13 19 28 / 6%);
}
:is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)):not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"], .nf-button--ghost, .nf-button--light, .nf-button--outline) {
	box-shadow: 0 3px 10px rgb(1 62 253 / 12%);
}
.woocommerce ul.products li.product.nf-product-card:focus-within,
.nf-areas .nf-area-card:focus-visible {
	box-shadow: 0 10px 28px rgb(13 19 28 / 10%);
	border-color: #a6b4cd !important;
}
.nf-areas .nf-area-card:focus-visible {
	outline: 3px solid #315fd6;
	outline-offset: 3px;
}

/* Depth belongs to the gallery frame, never a synthetic product silhouette. */
.nf-hero-product__stage,
.woocommerce div.product div.images .flex-viewport {
	box-shadow: 0 6px 24px rgb(13 19 28 / 8%);
}
.woocommerce div.product div.images .flex-viewport { border-radius: var(--nf-radius-card, 14px); }

/* Breathing room is scoped to the homepage's direct major sections. */
@media (min-width: 821px) {
	.home .nf-main > .nf-section,
	.home .nf-main > .nf-hero { padding-block: clamp(64px, 7.25vw, 104px); }
	.home .nf-footer { padding-top: 64px; }
}
@media (max-width: 820px) {
	.home .nf-main > .nf-hero { padding-block: clamp(40px, 6vw, 48px); }
	.home .nf-footer { padding-top: 40px; }
}

/* Supplement existing visible focus rings on the commerce button variants. */
.woocommerce :is(button.button, a.button, input.button):focus-visible,
.wc-block-components-button:not(.is-link):focus-visible {
	outline: 3px solid #315fd6;
	outline-offset: 3px;
}

/* Motion is opt-in to the visitor's normal-motion preference, never transition: all. */
@media (prefers-reduced-motion: no-preference) {
	.nf-nav a, .nf-footer a, .nf-product-spec-link, .nf-product-assurance a {
		transition: color 240ms cubic-bezier(.4, 0, .2, 1), background-color 240ms cubic-bezier(.4, 0, .2, 1);
	}
	.woocommerce ul.products li.product.nf-product-card,
	.nf-areas .nf-area-card {
		transition: transform 240ms cubic-bezier(.4, 0, .2, 1), box-shadow 240ms cubic-bezier(.4, 0, .2, 1), border-color 240ms cubic-bezier(.4, 0, .2, 1);
	}
	:is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)) {
		transition: transform 240ms cubic-bezier(.4, 0, .2, 1), box-shadow 240ms cubic-bezier(.4, 0, .2, 1), background-color 240ms cubic-bezier(.4, 0, .2, 1), border-color 240ms cubic-bezier(.4, 0, .2, 1), color 240ms cubic-bezier(.4, 0, .2, 1);
	}
	.nf-card-gallery__controls .nf-card-gallery__button,
	.nf-single-gallery__controls button,
	.nf-category-rail .nf-category-rail__item,
	.nf-contact-intro__channels--compact .nf-contact-channels a,
	.nf-product-card__details {
		transition: background-color 240ms cubic-bezier(.4, 0, .2, 1), border-color 240ms cubic-bezier(.4, 0, .2, 1), color 240ms cubic-bezier(.4, 0, .2, 1);
	}
}

/* Hover elevation is for a real mouse/trackpad; keyboard focus stays stationary. */
@media (hover: hover) and (pointer: fine) {
	.woocommerce ul.products li.product.nf-product-card:hover,
	.nf-areas .nf-area-card:hover {
		box-shadow: 0 10px 28px rgb(13 19 28 / 10%);
		border-color: #a6b4cd !important;
	}
	:is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)):not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"], .nf-button--ghost, .nf-button--light, .nf-button--outline):hover {
		background-color: var(--nf-cobalt-dark, #0033ce);
		border-color: var(--nf-cobalt-dark, #0033ce);
		color: #fff;
		box-shadow: 0 5px 14px rgb(1 62 253 / 16%);
	}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.woocommerce ul.products li.product.nf-product-card:hover,
	.nf-areas .nf-area-card:hover { transform: translateY(-2px); }
	:is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)):not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"], .nf-button--ghost, .nf-button--light, .nf-button--outline):hover { transform: translateY(-1px); }
}

/* Waiting/disabled actions retain their original status, never an elevated promise. */
:is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)):is(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"]) {
	transform: none !important;
	box-shadow: none !important;
}

/* Touch hover emulation must not move a card, its image or a purchase target. */
@media (hover: none), (pointer: coarse) {
	.woocommerce ul.products li.product.nf-product-card:is(:hover, :focus-within, :active),
	.nf-areas .nf-area-card:is(:hover, :focus-within, :active),
	.nf-areas .nf-area-card:is(:hover, :focus-within, :active) .nf-area-card__image img,
	.nf-hero-product:hover .nf-hero-product__stage img,
	:is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)):is(:hover, :focus-visible, :active) {
		transform: none;
	}
	.woocommerce ul.products li.product.nf-product-card:hover,
	.nf-areas .nf-area-card:hover { box-shadow: 0 4px 20px rgb(13 19 28 / 6%); }
}

/* Preserve a visible static loading cue, including PhotoSwipe's GIF fallback. */
@media (prefers-reduced-motion: reduce) {
	.pswp .pswp__preloader__icn,
	.pswp .pswp__preloader__donut,
	.pswp.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn,
	.pswp.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
		-webkit-animation: none !important;
		animation: none !important;
		transform: none !important;
	}
	.pswp .pswp__preloader--active .pswp__preloader__icn,
	.pswp.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
		box-sizing: border-box;
		border: 2px solid rgb(255 255 255 / 35%);
		border-top-color: #fff;
		border-radius: 50%;
		background: none !important;
	}
	.pswp .pswp__preloader__donut,
	.pswp.pswp--css_animation .pswp__preloader__donut { border: 0; }
}

/* Corrected interactions, depth and navigation — 2026-09-11. */

/* Distinct hero actions: the secondary remains outlined until intentionally engaged. */
.home .nf-hero .nf-button-row > .nf-button:not(.nf-button--ghost, .nf-button--light, .nf-button--outline) {
	background-color: #013efd;
	border-color: #013efd;
	color: #fff;
}
.home .nf-hero .nf-button-row > .nf-button.nf-button--ghost {
	background-color: transparent;
	border-color: #8491a5;
	color: #fff;
	box-shadow: none;
}
.home .nf-hero .nf-button-row > .nf-button:not(.nf-button--ghost, .nf-button--light, .nf-button--outline):not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"]):is(:focus-visible, :active) {
	background-color: #002aaf;
	border-color: #7392ff;
	color: #fff;
}
.home .nf-hero .nf-button-row > .nf-button.nf-button--ghost:not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"]):is(:focus-visible, :active) {
	background-color: #eaf0ff;
	border-color: #eaf0ff;
	color: #17202d;
}
@media (hover: hover) and (pointer: fine) {
	.home .nf-hero .nf-button-row > .nf-button:not(.nf-button--ghost, .nf-button--light, .nf-button--outline):not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"]):hover {
		background-color: #002aaf;
		border-color: #7392ff;
		color: #fff;
	}
	.home .nf-hero .nf-button-row > .nf-button.nf-button--ghost:not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"]):hover {
		background-color: #eaf0ff;
		border-color: #eaf0ff;
		color: #17202d;
	}
}
.home .nf-hero .nf-button-row > .nf-button:focus-visible { outline-color: #b6c7ff; }

/* Frame elevation plus the existing verified transparent hero asset's real contour.
 * Neither the alpha channel nor the shared gray photographic stage is changed.
 */
.home .nf-hero .nf-hero-product__stage {
	box-shadow: 0 0 0 1px rgb(255 255 255 / 22%), 0 18px 40px rgb(0 0 0 / 28%);
}
.home .nf-hero .nf-hero-product__stage img[data-nf-presentation="cutout-v1"] {
	filter: var(--nf-studio-hero-shadow);
}

/* The primary product gallery shares the same real transparent contour treatment.
 * Its slide selector excludes the thumbnail strip and fullscreen viewer; zoomImg
 * is a separate magnified copy and must not receive a second contour treatment.
 * Descendant img matching also supports the existing display:contents picture.
 */
.single-product.woocommerce div.product div.images .woocommerce-product-gallery__image img[data-nf-presentation="cutout-v1"]:not(.zoomImg) {
	filter: var(--nf-studio-hero-shadow);
}
.single-product.woocommerce div.product div.images .flex-viewport,
.single-product.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper {
	box-shadow: 0 0 0 1px rgb(13 19 28 / 8%), 0 10px 30px rgb(13 19 28 / 10%);
}

/* Normal motion stays smooth. The existing fine-pointer rules own image zoom/lift. */
@media (prefers-reduced-motion: no-preference) {
	.nf-main :is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)) {
		transition: transform 240ms cubic-bezier(.4, 0, .2, 1), box-shadow 240ms cubic-bezier(.4, 0, .2, 1), background-color 240ms cubic-bezier(.4, 0, .2, 1), border-color 240ms cubic-bezier(.4, 0, .2, 1), color 240ms cubic-bezier(.4, 0, .2, 1);
	}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.home .nf-hero .nf-button-row > .nf-button:not(:disabled, [disabled], .disabled, .loading, [aria-disabled="true"], [aria-busy="true"]):hover { transform: translateY(-1px); }
}

/* One custom chevron, a reserved text gutter, and a mirrored RTL position. */
.nf-catalogue-page .nf-catalogue-sort select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-inline-start: 12px;
	padding-inline-end: 44px;
	text-align: start;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%23465568' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 16px 16px;
	background-position: right 14px center;
}
html[dir="rtl"] .nf-catalogue-page .nf-catalogue-sort select { background-position: left 14px center; }
@media (forced-colors: active) {
	.nf-catalogue-page .nf-catalogue-sort select {
		-webkit-appearance: auto;
		-moz-appearance: auto;
		appearance: auto;
		background-image: none;
	}
}

/* One sentence-case breadcrumb system for the new shared navigation and WC trail. */
.nf-breadcrumbs,
.woocommerce .woocommerce-breadcrumb {
	--nf-breadcrumb-link: #526176;
	--nf-breadcrumb-current: #17202d;
	--nf-breadcrumb-separator: #718095;
	max-width: 100%;
	margin: 0 0 16px;
	padding: 0;
	color: var(--nf-breadcrumb-link);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
	overflow-wrap: anywhere;
}
.nf-breadcrumbs > ol {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nf-breadcrumbs > ol > li { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; max-width: 100%; }
.nf-breadcrumbs > ol > li + li::before { content: "/"; content: "/" / ""; color: var(--nf-breadcrumb-separator); flex: 0 0 auto; }
.nf-breadcrumbs bdi { unicode-bidi: isolate; white-space: normal; overflow-wrap: anywhere; }
.nf-breadcrumbs a,
.woocommerce .woocommerce-breadcrumb a { color: var(--nf-breadcrumb-link); font: inherit; text-decoration: none; }
.nf-breadcrumbs [aria-current="page"] { color: var(--nf-breadcrumb-current); font-weight: 600; }
.nf-breadcrumbs a:is(:hover, :focus-visible),
.woocommerce .woocommerce-breadcrumb a:is(:hover, :focus-visible) { color: var(--nf-breadcrumb-current); text-decoration: underline; text-underline-offset: 3px; }
.nf-breadcrumbs a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 2px; }
:is(.nf-page-hero, .nf-shop-hero, .nf-catalogue-head, .nf-error-page, .nf-account-hero, .nf-faq-hero, .nf-commerce-hero, .nf-contact-intro, .nf-policy-centre-hero, .nf-policy-review-hero) .nf-breadcrumbs {
	--nf-breadcrumb-link: #c0ccdc;
	--nf-breadcrumb-current: #fff;
	--nf-breadcrumb-separator: #8999af;
}

/* An immediate current-image status, independent of PhotoSwipe's top-bar state. */
.pswp.nf-lightbox-feedback .pswp__preloader { display: none !important; }
.pswp .nf-lightbox-status {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1560;
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: calc(100% - 48px);
	padding: 12px 16px;
	border: 1px solid rgb(255 255 255 / 25%);
	border-radius: 12px;
	background: rgb(13 19 28 / 92%);
	color: #fff;
	font: 600 14px/1.5 system-ui, sans-serif;
	text-align: center;
	pointer-events: none;
}
.pswp .nf-lightbox-status[hidden] { display: none !important; }
.pswp .nf-lightbox-status__spinner {
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	border: 2px solid rgb(255 255 255 / 35%);
	border-top-color: #fff;
	border-radius: 50%;
	animation: nf-lightbox-loading 800ms linear infinite;
}
@keyframes nf-lightbox-loading { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.pswp .nf-lightbox-status,
	.pswp .nf-lightbox-status__spinner { animation: none !important; transition: none !important; }
}

/* Single NF reduced-motion policy. Integrate only with the obsolete blocks removed
 * as listed in INTEGRATION.md. Normal 240ms rules and fine-pointer gates stay intact.
 * Only painted targets animate; picture/frame wrappers explicitly stay inert.
 */
.nf-areas .nf-area-card .nf-area-card__image,
.nf-areas .nf-area-card .nf-area-card__image picture {
	transition-property: none;
	transition-duration: 0s;
}

/* The existing image link now opens a dialog rather than hovering a zoom clone. */
.single-product .woocommerce-product-gallery__image a[aria-haspopup="dialog"] { cursor: zoom-in; }
.single-product .woocommerce-product-gallery__image a[aria-haspopup="dialog"]:focus-visible {
	outline: 3px solid #315fd6;
	outline-offset: -4px;
}

@media (prefers-reduced-motion: reduce) {
	:root { --nf-reduced-feedback-time: 140ms; --nf-reduced-feedback-ease: cubic-bezier(.4, 0, .2, 1); }

	/* Surfaces may change colour/elevation smoothly without changing position. */
	.woocommerce ul.products li.product.nf-product-card,
	.woocommerce ul.products li.product.nf-product-card:is(:hover, :focus-within, :active),
	.nf-areas .nf-area-card,
	.nf-areas .nf-area-card:is(:hover, :focus-within, :active),
	.nf-main :is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)),
	.nf-main :is(.nf-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .wc-block-components-button:not(.is-link)):is(:hover, :focus-visible, :active),
	a.nf-policy-card,
	a.nf-policy-card:hover {
		transform: none;
		transition-property: background-color, border-color, color, box-shadow;
		transition-duration: var(--nf-reduced-feedback-time);
		transition-timing-function: var(--nf-reduced-feedback-ease);
		transition-delay: 0s;
	}
	/* Link/control feedback stays clear without moving hit targets or icons. */
	.nf-header,
	.nf-header .nf-icon-link,
	.nf-nav a,
	.nf-footer a,
	.nf-product-spec-link,
	.nf-product-assurance a,
	.nf-card-gallery__controls .nf-card-gallery__button,
	.nf-single-gallery__controls button,
	.nf-category-rail .nf-category-rail__item,
	.nf-contact-intro__channels--compact .nf-contact-channels a,
	.nf-product-card__details,
	.nf-faq__button,
	.nf-main .nf-faq-topics a {
		transition-property: background-color, border-color, color, box-shadow;
		transition-duration: var(--nf-reduced-feedback-time);
		transition-timing-function: var(--nf-reduced-feedback-ease);
		transition-delay: 0s;
	}
	.nf-areas .nf-area-card i { transition: opacity var(--nf-reduced-feedback-time) var(--nf-reduced-feedback-ease); }

	.nf-hero-product:hover .nf-hero-product__stage img,
	.nf-about-category:hover .nf-about-category__image img {
		transform: none;
		transition-property: none;
	}

	/* Preserve final control geometry: chevrons, +/- signs and the menu X remain. */
	.nf-menu-toggle > span,
	.nf-nav__list a::after,
	.nf-shop-tools > summary > i,
	.nf-product-info-row > summary::after,
	.nf-faq__toggle::before,
	.nf-faq__toggle::after,
	.nf-faq__item h2 button i::after,
	.nf-main .nf-faq-group .nf-faq__item h3 button i::after { transition: none; }
	.nf-text-link span,
	.nf-text-link:hover span { transform: none; transition: none; }
	html[dir="rtl"] .nf-text-link span,
	html[dir="rtl"] .nf-text-link:hover span { transform: rotate(180deg); }
	.nf-nav { transition: opacity 140ms ease, visibility 0s linear 140ms; }
	.nf-nav.is-open { transition-delay: 0s; }
	.nf-header-search__panel { transition: none; }

	/* Do not let the old decorative orbital artwork or WC loading icons spin. */
	.nf-hero__visual::before,
	.woocommerce .blockUI.blockOverlay::before,
	.woocommerce .loader::before,
	.woocommerce .button.loading::after { animation: none !important; }

	/* Vendor tracks retain their JS-calculated transform, sizing and hit targets.
 * The integration also requires zero automatic animation durations in JS options
 * for PhotoSwipe/FlexSlider: CSS alone cannot stop requestAnimationFrame tweening.
 */
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
	.woocommerce div.product div.images .flex-viewport,
	.pswp.pswp--animate_opacity,
	.pswp .pswp__bg,
	.pswp .pswp__zoom-wrap,
	.pswp .pswp__button,
	.pswp .pswp__share-modal,
	.pswp .pswp__share-tooltip,
	.pswp .pswp__preloader,
	.pswp .pswp__caption,
	.pswp .pswp__top-bar {
		-webkit-transition: none !important;
		transition: none !important;
	}
}

/* One painted-image policy for category and commerce cards, EN and AR.
 * Wrappers, control hit targets and gallery tracks never scale. No pixel edits.
 */
.nf-areas .nf-area-card .nf-area-card__image img,
:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card img.nf-product-card__image {
	--nf-card-photo-shadow: drop-shadow(0 0 0 transparent);
	--nf-card-photo-brightness: 1;
	transform: none;
	transform-origin: 50% 50%;
	filter: var(--nf-card-photo-shadow) brightness(var(--nf-card-photo-brightness));
}
.nf-areas .nf-area-card .nf-area-card__image img[data-nf-presentation="cutout-v1"],
:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card img.nf-product-card__image[data-nf-presentation="cutout-v1"] {
	--nf-card-photo-shadow: var(--nf-studio-contact-shadow);
}
@media (prefers-reduced-motion: no-preference) {
	.nf-areas .nf-area-card .nf-area-card__image img,
	:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card img.nf-product-card__image {
		transition: transform 240ms cubic-bezier(.4, 0, .2, 1), filter 240ms cubic-bezier(.4, 0, .2, 1);
	}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.nf-areas .nf-area-card:hover .nf-area-card__image img,
	:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card:hover img.nf-product-card__image {
		transform: scale(1.03);
		--nf-card-photo-brightness: 1.025;
	}
	/* The original wired-mouse photo has a cable at the frame edge: do not crop it. */
	:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card:hover img.nf-product-card__image[data-nf-presentation="wired-originals-v1"] {
		transform: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.nf-areas .nf-area-card .nf-area-card__image img,
	:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card img.nf-product-card__image {
		transform: none;
		transition: filter 140ms cubic-bezier(.4, 0, .2, 1);
	}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
	.nf-areas .nf-area-card:is(:hover, :focus-visible) .nf-area-card__image img,
	:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card:is(:hover, :focus-within) img.nf-product-card__image {
		--nf-card-photo-brightness: 1.055;
	}
}
/* Focus is visible without moving an image; touch never receives sticky zoom. */
@media (hover: none), (pointer: coarse) {
	.nf-areas .nf-area-card:is(:hover, :focus-within, :active) .nf-area-card__image img,
	:is(.woocommerce, .woocommerce-page) ul.products li.product.nf-product-card:is(:hover, :focus-within, :active) img.nf-product-card__image {
		transform: none;
		--nf-card-photo-brightness: 1;
	}
}
