/*
Theme Name: no reply
Theme URI: https://wearnoreply.com
Description: Child of Twenty Twenty-Five for no reply. UX-UI 16.10 v2: black-and-white palette, Manrope (OFL, self-hosted), home with the client shoot (photos AVIF/WebP + muted hero video), catalog (archive-product), product card (gallery, size pills, Size guide and Delivery modals, accordions). One tiny inline script (hero video).
Author: OCHI studio
Template: twentytwentyfive
Version: 0.3.1
Requires at least: 7.1
Requires PHP: 8.1
Text Domain: noreply
License: GNU General Public License v2 or later
*/

/* ---------- base ---------- */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: clip; }
:where(a, button, [role="button"], input, select, summary):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}
.nr-caps-title {
	margin: 0;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 500;
	line-height: 1.3;
}
.nr-caps-link { margin: 0; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500; }
.nr-caps-link a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.nr-caps-link a:hover { text-decoration: none; }
.nr-placeholder-note { color: var(--wp--preset--color--accent-4); }

/* ---------- header (refs: TTSWTRS caps menu, 16Arlington logo between menus) ---------- */
.nr-topbar p { margin: 0; }
.nr-header { position: relative; z-index: 20; background: var(--wp--preset--color--base); }
.nr-header__row.wp-block-group {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 8px;
}
.nr-header__left, .nr-header__center, .nr-header__right { min-width: 0; }
.nr-logo { display: inline-flex; align-items: center; min-height: 44px; }
.nr-logo img { display: block; height: 30px; width: auto; }
@media (min-width: 782px) {
	.nr-logo img { height: 36px; }
}
.nr-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}
.nr-nav .wp-block-navigation-item__content:hover,
.nr-nav .wp-block-navigation-item__content:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 599px) {
	.nr-nav .wp-block-navigation__responsive-container-open,
	.nr-nav .wp-block-navigation__responsive-container-close {
		width: 44px;
		height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}
.nr-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 16px;
}
.nr-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 56px;
}
.nr-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0;
	width: 100%;
}
.nr-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}
.nr-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 15px;
	padding: 8px 0;
}
.nr-lang {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.nr-lang a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	min-height: 44px;
	text-decoration: none;
	color: var(--wp--preset--color--accent-4);
}
.nr-lang a[aria-current="true"] { color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 4px; }
.nr-lang a:hover { color: var(--wp--preset--color--contrast); }
.nr-lang span { color: var(--wp--preset--color--accent-4); }
.nr-header .wc-block-mini-cart__button {
	min-width: 44px;
	min-height: 44px;
	padding: 0 4px;
	justify-content: center;
	color: var(--wp--preset--color--contrast);
}
.nr-header .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--contrast);
}

/* mobile: burger | logo | lang + cart */
@media (max-width: 599px) {
	.nr-header__row.wp-block-group { grid-template-columns: 44px 1fr auto; }
	.nr-header__center { justify-content: center; }
	.nr-lang { letter-spacing: 0.04em; }
	.nr-lang a { min-width: 44px; }
	.nr-lang span { display: none; }
}

/* ---------- hero (ref: 16Arlington; v2 — client's shoot: video on phones, triptych on desktop) ---------- */
.nr-hero { position: relative; overflow: hidden; background: #d9d9d9; /* = studio grey of the shoot, no flash before the poster */ }
.nr-hero__media { display: grid; grid-template-columns: 1fr; height: max(560px, calc(100svh - 110px)); }
.nr-hero__side { display: none; }
.nr-hero__center { position: relative; min-width: 0; height: 100%; }
.nr-hero__video,
.nr-hero__side img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.nr-hero__media::after { /* soft light fade under the caption: black text stays ≥ 12:1 on the studio grey */
	content: ""; position: absolute; inset: auto 0 0 0; height: 26%;
	background: linear-gradient(to top, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0));
	pointer-events: none;
}
@media (min-width: 782px) {
	.nr-hero__media { grid-template-columns: repeat(3, minmax(0, 1fr)); height: min(88vh, 960px); min-height: 600px; }
	.nr-hero__side { display: block; min-width: 0; height: 100%; }
}
.nr-hero__caption.wp-block-group {
	position: absolute; left: 16px; right: 16px; bottom: clamp(24px, 5vh, 48px); z-index: 2;
	align-items: center; margin: 0;
}
.nr-hero .nr-hero__title { margin: 0; color: var(--wp--preset--color--contrast); }
.nr-btn-dark .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--contrast);
	min-height: 48px;
	display: inline-flex;
	align-items: center;
}
.nr-btn-dark .wp-block-button__link:hover,
.nr-btn-dark .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.nr-hero__toggle {
	position: absolute; right: 8px; bottom: 8px; z-index: 3;
	width: 44px; height: 44px; padding: 0; border: 0; border-radius: 999px; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, 0.85); color: var(--wp--preset--color--contrast);
}
.nr-hero__toggle[hidden] { display: none; }
.nr-hero__toggle-icon { width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.nr-hero__toggle.is-paused .nr-hero__toggle-icon {
	width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent currentColor; margin-left: 3px;
}
@media (max-width: 781px) {
	.nr-hero__toggle { top: 8px; bottom: auto; }
}
.nr-placeholder-label { margin: 0; }

/* ---------- products (ref: TTSWTRS row; arohanuve 8/4 px gaps) ---------- */

.nr-product-grid .wc-block-product-template {
	gap: 8px !important;
	row-gap: 40px !important;
}
.nr-product-grid .wc-block-components-product-image img { background: var(--wp--preset--color--accent-5); }
.nr-card-title a { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.nr-card-title a:hover { text-decoration: underline; text-underline-offset: 4px; }
.nr-product-grid .wc-block-components-product-price del { color: var(--wp--preset--color--accent-4); text-decoration: line-through; }
.nr-product-grid .wc-block-components-product-price ins { text-decoration: none; }
@media (max-width: 599px) {
	.nr-product-grid .wc-block-product-template {
		gap: 4px !important;
		row-gap: 32px !important;
	}
	.nr-product-grid .wc-block-product-template.is-flex-container > li {
		width: calc(50% - 2px) !important;
	}
}

/* ---------- on body grid (ref: 16Arlington 3-up) ---------- */
.nr-onbody__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.nr-onbody__cell { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--wp--preset--color--accent-5); }
.nr-onbody__cell img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 599px) {
	.nr-onbody__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
	.nr-onbody__grid > .nr-onbody__cell:first-child { grid-column: 1 / -1; }
}

/* ---------- about ---------- */
.nr-about > * + * { margin-top: var(--wp--preset--spacing--40); }

/* ---------- footer (refs: Adam Lippes, arohanuve) ---------- */
.nr-footer { font-size: 14px; }
.nr-footer__cols.wp-block-group { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nr-footer__title { margin: 0 0 8px; color: var(--wp--preset--color--accent-4); }
.nr-footer p { margin: 0; }
.nr-footer__list { list-style: none; margin: 0; padding: 0; }
.nr-footer__list a,
.nr-footer .nr-lang--footer a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	text-decoration: none;
}
.nr-footer__list a:hover { text-decoration: underline; text-underline-offset: 4px; }
.nr-footer .nr-lang--footer { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 14px; gap: 8px; }
.nr-footer .nr-lang--footer a { color: var(--wp--preset--color--contrast); min-width: 0; }
.nr-footer .nr-lang--footer a:not([aria-current]) { text-decoration: underline; text-underline-offset: 4px; }
.nr-footer .nr-lang--footer a[aria-current="true"] { text-decoration: none; font-weight: 600; }
.nr-footer__col--brand { text-align: right; align-self: end; }
@media (max-width: 781px) {
	.nr-footer__cols.wp-block-group { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
	.nr-footer__list a, .nr-footer .nr-lang--footer a { min-height: 44px; }
}
@media (max-width: 599px) {
	.nr-footer__cols.wp-block-group { grid-template-columns: 1fr; }
	.nr-footer__col--brand { text-align: left; }
}

/* ---------- catalog (ref: Adam Lippes — thin title, counter, big cards with air; TTSWTRS caption) ---------- */
.nr-catalog__head.wp-block-group { align-items: baseline; gap: 16px; }
.nr-catalog__title { margin: 0; font-weight: 300; letter-spacing: -0.02em; }
.nr-catalog__count, .nr-catalog__count p {
	margin: 0; font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase;
	letter-spacing: 0.1em; font-weight: 500; color: var(--wp--preset--color--accent-3);
}
.nr-catalog__grid .wc-block-product-template { row-gap: 48px !important; }
/* 1–2 products: 2 big columns centred (a 3-column row would leave an empty third) */
@media (min-width: 600px) {
	.nr-catalog__grid .wc-block-product-template.is-flex-container:not(:has(> li:nth-child(3))) {
		max-width: 1120px; margin-inline: auto; justify-content: center;
	}
	.nr-catalog__grid .wc-block-product-template.is-flex-container:not(:has(> li:nth-child(3))) > li {
		width: calc(50% - 4px) !important;
	}
	.nr-catalog__body:has(.wc-block-product-template > li:first-child:nth-last-child(-n+2)) > .nr-catalog__head { max-width: 1120px; margin-inline: auto !important; width: 100%; }
}
.nr-catalog .wp-block-query-pagination { margin-top: 40px; }

/* ---------- product (refs: Colorful Standard card, Sézane size states) ---------- */
.nr-breadcrumbs { margin: 0 0 16px; color: var(--wp--preset--color--accent-3); letter-spacing: 0.04em; }
.nr-breadcrumbs a { color: var(--wp--preset--color--accent-3); text-decoration: none; }
.nr-breadcrumbs a:hover { text-decoration: underline; }
.nr-product__grid.wp-block-group { display: grid; grid-template-columns: 1fr; gap: 24px; }
.nr-product__grid > * { margin: 0 !important; min-width: 0; }
@media (min-width: 900px) {
	.nr-product__grid.wp-block-group { grid-template-columns: minmax(0, 7fr) minmax(320px, 4fr); gap: clamp(32px, 4vw, 72px); align-items: start; }
	.nr-product__summary { position: sticky; top: 24px; }
}
.nr-product__summary > * { margin-block: 0; }
.nr-product__title { margin: 0 0 8px; }
.nr-product__price { margin: 0 0 16px !important; }
.nr-product__lead { color: var(--wp--preset--color--accent-3); margin: 0 0 8px; }
.nr-product__lead p { margin: 0; }

/* gallery: big image + thumbnails row below (Colorful Standard) */
.nr-gallery.wp-block-woocommerce-product-gallery { flex-direction: column !important; gap: 8px !important; }
.nr-gallery .wc-block-product-gallery-large-image { width: 100%; background: var(--wp--preset--color--accent-5); }
.nr-gallery .wc-block-product-gallery-thumbnails { width: 100% !important; height: auto !important; aspect-ratio: auto !important; }
.nr-gallery .wc-block-product-gallery-thumbnails__scrollable { flex-direction: row !important; gap: 8px !important; overflow-x: auto; height: auto !important; }
.nr-gallery .wc-block-product-gallery-thumbnails__thumbnail { flex: 0 0 calc((100% - 40px) / 6) !important; width: auto !important; height: auto !important; }
.nr-gallery .wc-block-product-gallery-thumbnails__thumbnail { aspect-ratio: 3 / 4; overflow: hidden; height: auto !important; }
.nr-gallery .wc-block-product-gallery-thumbnails__thumbnail__image { border-radius: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.nr-gallery .wc-block-next-previous-buttons button {
	width: 44px; height: 44px; border-radius: 999px; border: 0;
	background: rgba(255, 255, 255, 0.9); color: var(--wp--preset--color--contrast);
}
@media (max-width: 599px) {
	.nr-product { padding-left: 0 !important; padding-right: 0 !important; }
	.nr-product .nr-breadcrumbs, .nr-product .nr-product__summary { padding-inline: 16px; }
	.nr-gallery .wc-block-product-gallery-thumbnails { padding-inline: 16px; box-sizing: border-box; }
	.nr-gallery .wc-block-product-gallery-thumbnails__thumbnail { flex-basis: calc((100% - 32px) / 5) !important; }
}

/* size pills: black outline, selected = black, sold out = grey, struck through (Sézane) */
.nr-size { gap: 8px; }
.nr-size__label, .nr-size .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name {
	margin: 0; font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500;
}
.nr-size__pills.wp-block-woocommerce-product-filter-chips { font-size: var(--wp--preset--font-size--small); }
.nr-size__pills .wc-block-product-filter-chips__items { gap: 8px; }
.nr-size__pills .wc-block-product-filter-chips__item {
	min-width: 88px; min-height: 44px; padding: 0 20px; border-radius: 999px;
	border: 1px solid var(--wp--preset--color--contrast); color: var(--wp--preset--color--contrast);
	text-transform: uppercase; letter-spacing: 0.08em; font-weight: 500; font-size: 13px;
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.nr-size__pills .wc-block-product-filter-chips__item:hover:not(:disabled):not([aria-checked="true"]) { background: var(--wp--preset--color--accent-5); }
.nr-size__pills .wc-block-product-filter-chips__item[aria-checked="true"] {
	background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--contrast);
}
.nr-size__pills .wc-block-product-filter-chips__item:focus-visible { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 3px; }
.nr-size__pills .wc-block-product-filter-chips__item:disabled {
	opacity: 1; background: var(--wp--preset--color--accent-5); color: var(--wp--preset--color--accent-4);
	border-color: var(--wp--preset--color--accent-6); cursor: not-allowed;
}
.nr-size__pills .wc-block-product-filter-chips__item:disabled .wc-block-product-filter-chips__text { text-decoration: line-through; }
/* "Sold out" next to the struck size (text from mu-plugin noreply-size-pills: --nr-soldout, translatable) */
.nr-size__pills .wc-block-product-filter-chips__item:disabled::after {
	content: var(--nr-soldout, "Sold out"); font-size: 12px; letter-spacing: 0.06em; font-weight: 500;
}
/* catalog / home grid: product with nothing in stock */
.nr-soldout-badge {
	margin: 4px 0 0; text-align: center; font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500; color: var(--wp--preset--color--accent-3);
}

/* Size guide · Delivery & Returns links + hint */
.nr-help { display: flex; flex-wrap: wrap; gap: 0 24px; margin-top: 8px; }
.nr-help__link {
	appearance: none; background: none; border: 0; padding: 0; cursor: pointer; color: inherit; font: inherit;
	font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500;
	min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 4px;
}
.nr-help__link:hover { text-decoration: none; }
.nr-help__hint { margin: 0; font-size: 13px; color: var(--wp--preset--color--accent-3); }
.nr-stock { margin-top: 16px !important; }
.nr-stock:empty { display: none; }
.nr-atc__button { margin-top: 16px; }
.nr-atc__button .wp-block-button__link { width: 100%; min-height: 52px; justify-content: center; }
.nr-atc__button .wp-block-button__link.disabled { opacity: 1; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.nr-atc .wc-block-add-to-cart-with-options__error, .nr-atc .wc-block-components-notice-banner { font-size: 13px; }

/* modal windows (native popover) */
.nr-modal[popover] {
	width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto;
	margin: auto; padding: 24px; border: 0; border-radius: 0; box-sizing: border-box;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	font-size: 15px; line-height: 1.6;
}
.nr-modal[popover]::backdrop { background: rgba(0, 0, 0, 0.45); }
.nr-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.nr-modal__title { margin: 0; font-size: 13px; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 500; }
.nr-modal__close {
	appearance: none; width: 44px; height: 44px; margin-right: -12px; border: 0; background: none; cursor: pointer;
	font-size: 28px; line-height: 1; color: inherit;
}
.nr-modal__lead, .nr-modal__note { margin: 0 0 16px; color: var(--wp--preset--color--accent-3); font-size: 14px; }
.nr-modal__note { margin: 16px 0 0; }
.nr-modal .wp-block-table { margin: 0; overflow-x: auto; }
.nr-modal table { width: 100%; border-collapse: collapse; font-size: 14px; }
.nr-modal th, .nr-modal td { border: 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: 12px 8px; text-align: left; white-space: nowrap; }
.nr-modal thead th { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 500; border-bottom-color: var(--wp--preset--color--contrast); }
.nr-modal figcaption { margin-top: 8px; font-size: 13px; color: var(--wp--preset--color--accent-4); }
.nr-modal__list { margin: 0; padding-left: 0; list-style: none; }
.nr-modal__list li { padding-left: 16px; position: relative; margin-bottom: 8px; }
.nr-modal__list li::before { content: "—"; position: absolute; left: 0; }
.nr-modal__links { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 16px 0 0; }
.nr-modal__links a { min-height: 44px; display: inline-flex; align-items: center; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500; text-underline-offset: 4px; }

/* accordions: Description · Composition & care · Delivery */
.nr-acc-group { border-top: 1px solid var(--wp--preset--color--accent-6); }
.nr-acc.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--accent-6); margin: 0; }
.nr-acc > summary {
	list-style: none; cursor: pointer; min-height: 52px; display: flex; align-items: center; justify-content: space-between;
	font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500;
}
.nr-acc > summary::-webkit-details-marker { display: none; }
.nr-acc > summary::after { content: "+"; font-size: 18px; font-weight: 300; }
.nr-acc[open] > summary::after { content: "−"; }
.nr-acc > :not(summary) { margin-top: 0; margin-bottom: 16px; font-size: 15px; }
.nr-acc ul, .nr-dash-list { list-style: none; padding-left: 0; margin: 0 0 8px; }
.nr-acc li { position: relative; padding-left: 16px; margin-bottom: 4px; }
.nr-acc li::before { content: "—"; position: absolute; left: 0; }
.nr-specs table, .nr-acc table { width: 100%; border-collapse: collapse; font-size: 14px; }
.nr-acc th, .nr-acc td { text-align: left; padding: 8px 0; border: 0; border-bottom: 1px solid var(--wp--preset--color--accent-5); vertical-align: top; font-weight: 400; }
.nr-acc th { width: 40%; color: var(--wp--preset--color--accent-3); }

/* a11y fixes after ux-screen-review (v2) */
.nr-product a:focus-visible, .nr-product button:focus-visible, .nr-product summary:focus-visible, .nr-product [tabindex]:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast) !important; outline-offset: 3px;
}
.nr-product__lead, .nr-help__hint { font-size: 14px; }
@media (max-width: 781px) {
	.nr-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
	.nr-breadcrumbs { margin-bottom: 4px; }
}
.nr-product__lead p { font-size: 14px; }
.nr-logo:focus-visible { outline: 2px solid var(--wp--preset--color--contrast) !important; outline-offset: 3px; }
@media (max-width: 781px) { .nr-breadcrumbs a { min-width: 44px; justify-content: center; } }
