/* ==========================================================================
   Nitushi — gallery layer
   Artist pages, artists directory, editorial work cards, collection
   browser refinements, artwork exhibit page. Artwork is the hero;
   chrome stays quiet.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Work card (shared)
   -------------------------------------------------------------------------- */

.nitushi-work__link {
	display: block;
	text-decoration: none;
	color: var(--nt-text);
}

.nitushi-work__media {
	display: block;
	overflow: hidden;
	background: var(--nt-paper-2);
	margin-bottom: 16px;
}

.nitushi-work__image {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease;
}

.nitushi-work__link:hover .nitushi-work__image,
.nitushi-work__link:focus-visible .nitushi-work__image {
	transform: scale(1.02);
	opacity: 0.93;
}

.nitushi-work__title {
	display: block;
	font-family: var(--nitushi-font-display);
	font-size: 17px;
	line-height: 1.35;
	margin-bottom: 4px;
}

.nitushi-work__artist {
	display: block;
	font-family: var(--nitushi-font-ui);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nt-text-soft);
	margin-bottom: 4px;
}

.nitushi-work__price {
	display: block;
	font-family: var(--nitushi-font-ui);
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--nt-text-soft);
}

/* --------------------------------------------------------------------------
   Editorial gallery grid (artist pages, homepage selected works)
   -------------------------------------------------------------------------- */

.nitushi-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(36px, 5vw, 64px) clamp(20px, 3vw, 40px);
	align-items: start;
}

/* Every card identical: the artwork sits in a uniform 4:5 frame so the
   wall reads calmly. */
.nitushi-gallery-grid .nitushi-work__media {
	aspect-ratio: 4 / 5;
}

.nitushi-gallery-grid .nitushi-work__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 900px) {
	.nitushi-gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 16px;
	}
}

/* --------------------------------------------------------------------------
   Artist page
   -------------------------------------------------------------------------- */

.nitushi-artist {
	max-width: var(--nt-container);
	margin: 0 auto;
	padding: 0 var(--nitushi-gutter);
}

/* Monograph opening: the name is a monumental typographic object on
   its own line; portrait and identity meta compose beneath it. */

.nitushi-artist-hero {
	padding: clamp(32px, 5vw, 72px) 0 clamp(48px, 7vw, 104px);
}

.nitushi-artist-hero__name {
	margin: 0 0 clamp(28px, 4vw, 56px);
	font-size: clamp(52px, 9vw, 132px);
	line-height: 0.98;
	letter-spacing: 0.005em;
}

.nitushi-artist-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 88px);
	align-items: end;
}

.nitushi-artist-hero__media {
	margin: 0;
}

.nitushi-artist-hero__portrait {
	width: 100%;
	height: auto;
	display: block;
}

.nitushi-artist-hero__body {
	padding-bottom: clamp(8px, 2vw, 32px);
}

.nitushi-artist-hero__tagline {
	margin: 0 0 26px;
	font-family: var(--nitushi-font-display);
	font-style: italic;
	font-size: clamp(19px, 2.2vw, 26px);
	line-height: 1.5;
	color: var(--nt-text-soft);
	max-width: 30ch;
}

.nitushi-artist-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin: 0 0 clamp(28px, 4vw, 48px);
	font-family: var(--nitushi-font-ui);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--nt-text-soft);
}

.nitushi-artist-hero__signature {
	width: min(210px, 44%);
	height: auto;
	opacity: 0.92;
}

@media (max-width: 800px) {
	.nitushi-artist-hero__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.nitushi-artist-hero__media {
		max-width: 520px;
	}
}

/* Story — asymmetric curatorial column */

.nitushi-artist-story {
	border-top: 1px solid var(--nt-hairline);
	padding: clamp(48px, 7vw, 104px) 0;
}

.nitushi-artist-story__inner {
	margin-left: auto;
	max-width: 46em;
	padding-right: clamp(0px, 8vw, 120px);
}

.nitushi-artist-story__text {
	font-family: var(--nitushi-font-display);
	font-size: clamp(17px, 1.9vw, 21px);
	line-height: 1.85;
	color: var(--nt-text);
}

.nitushi-artist-story__text p {
	margin: 0 0 1.4em;
}

/* The opening line reads as a typographic statement, pulled out of the
   body measure so the essay has alternating rhythm rather than one
   uniform column. */
.nitushi-artist-story__text p:first-child {
	font-size: clamp(22px, 2.7vw, 32px);
	line-height: 1.55;
	margin-left: clamp(-220px, -11vw, 0px);
	margin-bottom: 1.2em;
	max-width: 30em;
}

.nitushi-artist-story__text p:last-child {
	margin-bottom: 0;
}

/* Detail band — an oversized crop of the artist's own leading work,
   standing in for studio imagery where none exists. */

.nt-detail-band {
	margin: 0 calc(50% - 50vw) 0;
	width: 100vw;
	height: clamp(300px, 52vh, 560px);
	overflow: hidden;
}

.nt-detail-band img {
	width: 100%;
	height: 220%;
	object-fit: cover;
	object-position: 50% 30%;
	display: block;
}

/* Context band — full-bleed, uneven hang: three images at different
   scales and baselines, like works leaning in a studio. */

.nitushi-artist-context {
	margin: 0 calc(50% - 50vw);
	width: 100vw;
	display: grid;
	grid-template-columns: 5fr 4fr 3fr;
	gap: clamp(14px, 2vw, 28px);
	align-items: start;
	padding: 0 clamp(14px, 2vw, 28px) clamp(48px, 7vw, 104px);
}

.nitushi-artist-context__item {
	margin: 0;
	overflow: hidden;
}

.nitushi-artist-context__item:nth-child(2) {
	margin-top: clamp(28px, 4vw, 72px);
}

.nitushi-artist-context__item:nth-child(3) {
	margin-top: clamp(56px, 8vw, 144px);
}

.nitushi-artist-context__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	aspect-ratio: 4 / 3;
}

.nitushi-artist-context__item:first-child img {
	aspect-ratio: 3 / 2;
}

@media (max-width: 700px) {
	.nitushi-artist-context {
		grid-template-columns: 1fr;
	}

	.nitushi-artist-context__item:nth-child(2),
	.nitushi-artist-context__item:nth-child(3) {
		margin-top: 0;
	}

	.nitushi-artist-context__item:nth-child(2) {
		width: 78%;
		justify-self: end;
	}

	.nitushi-artist-context__item:nth-child(3) {
		width: 62%;
	}
}

/* Works */

.nitushi-artist-works {
	border-top: 1px solid var(--nt-hairline);
	padding: clamp(48px, 7vw, 104px) 0;
}

.nitushi-artist-works__head {
	margin-bottom: clamp(36px, 5vw, 64px);
}

.nitushi-artist-works__heading {
	margin: 0;
	font-size: clamp(26px, 3vw, 40px);
}

.nitushi-artist-back {
	padding: 0 0 clamp(56px, 8vw, 112px);
}

/* --------------------------------------------------------------------------
   Artists directory
   -------------------------------------------------------------------------- */

.nitushi-artists-dir {
	max-width: var(--nt-container);
	margin: 0 auto;
	padding: 0 var(--nitushi-gutter) clamp(56px, 8vw, 112px);
}

.nitushi-artists-dir__head {
	padding: clamp(40px, 6vw, 96px) 0 clamp(48px, 7vw, 96px);
	max-width: 640px;
}

.nitushi-artists-dir__title {
	margin: 0 0 16px;
	font-size: clamp(38px, 5vw, 64px);
	line-height: 1.05;
}

.nitushi-artists-dir__intro {
	margin: 0;
	font-family: var(--nitushi-font-display);
	font-size: clamp(16px, 1.8vw, 20px);
	line-height: 1.7;
	color: var(--nt-text-soft);
}

.nitushi-artists-dir__rows {
	display: flex;
	flex-direction: column;
	gap: clamp(64px, 9vw, 128px);
}

.nitushi-artist-row {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
}

.nitushi-artist-row.is-flipped .nitushi-artist-row__media {
	order: 2;
}

.nitushi-artist-row__media {
	display: block;
	overflow: hidden;
}

.nitushi-artist-row__portrait {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.nitushi-artist-row__media:hover .nitushi-artist-row__portrait {
	transform: scale(1.02);
}

.nitushi-artist-row__body {
	position: relative;
}

.nitushi-artist-row__index {
	display: block;
	margin-bottom: 14px;
	font-family: var(--nitushi-font-ui);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.3em;
	color: var(--nt-text-soft);
}

/* The artist's signature as a quiet ghost layer behind the name. */
.nitushi-artist-row__ghost {
	position: absolute;
	top: -8%;
	left: -4%;
	width: min(420px, 90%);
	height: auto;
	opacity: 0.1;
	pointer-events: none;
	z-index: 0;
}

.nitushi-artist-row__name {
	position: relative;
	z-index: 1;
	margin: 0 0 12px;
	font-size: clamp(34px, 4.6vw, 72px);
	line-height: 1.04;
}

.nitushi-artist-row__name a {
	color: var(--nt-text);
	text-decoration: none;
}

.nitushi-artist-row__name a:hover {
	color: var(--nt-text-soft);
}

.nitushi-artist-row__tagline {
	margin: 0 0 10px;
	font-family: var(--nitushi-font-display);
	font-style: italic;
	font-size: clamp(15.5px, 1.7vw, 19px);
	line-height: 1.55;
	color: var(--nt-text-soft);
	max-width: 40ch;
}

.nitushi-artist-row__meta {
	margin: 0 0 26px;
	font-family: var(--nitushi-font-ui);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nt-text-soft);
}

.nitushi-artist-row__works {
	display: flex;
	gap: 14px;
	margin-bottom: 30px;
}

.nitushi-artist-row__work {
	display: block;
	width: 92px;
	overflow: hidden;
}

.nitushi-artist-row__work img {
	width: 100%;
	height: 115px;
	object-fit: cover;
	display: block;
	transition: opacity 0.3s ease;
}

.nitushi-artist-row__work:hover img {
	opacity: 0.85;
}

.nitushi-artist-row__cta {
	font-family: var(--nitushi-font-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--nt-text);
	border-bottom: 1px solid var(--nt-hairline-strong);
	padding-bottom: 6px;
	transition: border-color 0.25s ease;
}

.nitushi-artist-row__cta span {
	display: inline-block;
	transition: transform 0.25s ease;
}

.nitushi-artist-row__cta:hover {
	border-color: var(--nt-text);
}

.nitushi-artist-row__cta:hover span {
	transform: translateX(4px);
}

@media (max-width: 800px) {
	.nitushi-artist-row,
	.nitushi-artist-row.is-flipped {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.nitushi-artist-row.is-flipped .nitushi-artist-row__media {
		order: 0;
	}
}

/* --------------------------------------------------------------------------
   Collection browser (shop) refinements
   -------------------------------------------------------------------------- */

.nitushi-artist-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 14px 30px;
	width: 100%;
	padding: 4px 0 18px;
	margin-bottom: clamp(28px, 4vw, 48px);
	border-bottom: 1px solid var(--nt-hairline);
}

.nitushi-artist-strip__label {
	font-family: var(--nitushi-font-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--nt-text);
}

.nitushi-artist-strip__link {
	font-family: var(--nitushi-font-ui);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--nt-text-soft);
	transition: color 0.2s ease;
}

.nitushi-artist-strip__link:hover,
.nitushi-artist-strip__link:focus-visible,
.nitushi-artist-strip__link.is-current {
	color: var(--nt-text);
}

/* --------------------------------------------------------------------------
   The Collection — curated wall
   --------------------------------------------------------------------------
   Orientation-aware composition on a 6-column wall. Cards carry
   `orient-*` classes (see inc/artists.php) and their thumbnails keep
   the artwork's true aspect ratio, so landscape works breathe wide and
   portrait works stand tall. Periodic feature moments come from
   position, not manual curation.
   -------------------------------------------------------------------------- */

/* Quiet, left-aligned archive title instead of the banded page title. */

.nitushi-page.post-type-archive-product .hero-section,
.nitushi-page.tax-product_cat .hero-section,
.nitushi-page.post-type-archive-product .hero-section .entry-header,
.nitushi-page.tax-product_cat .hero-section .entry-header {
	background: transparent;
	text-align: left !important;
}

.nitushi-page.post-type-archive-product .hero-section .page-title,
.nitushi-page.tax-product_cat .hero-section .page-title {
	font-size: clamp(36px, 7vw, 104px);
	line-height: 0.98;
	text-align: left !important;
}

.nitushi-page.post-type-archive-product ul.products,
.nitushi-page.tax-product_cat ul.products,
.nitushi-page.tax-nitushi_artist ul.products,
.nitushi-page.search ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(40px, 5vw, 72px) clamp(20px, 3vw, 40px);
	align-items: start;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
}

.nitushi-page.post-type-archive-product ul.products li.product,
.nitushi-page.tax-product_cat ul.products li.product,
.nitushi-page.tax-nitushi_artist ul.products li.product,
.nitushi-page.search ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

@media (max-width: 900px) {
	.nitushi-page.post-type-archive-product ul.products,
	.nitushi-page.tax-product_cat ul.products,
	.nitushi-page.tax-nitushi_artist ul.products,
	.nitushi-page.search ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 16px;
	}
}

/* Artist line on Woo archive cards; category meta + card buttons hidden
   so the artwork itself is the interaction. */

.nitushi-card-artist {
	display: block;
	font-family: var(--nitushi-font-ui);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nt-text-soft);
	margin-top: 2px;
}

.nitushi-page ul.products li.product .entry-meta,
.nitushi-page ul.products li.product .woocommerce-result-count,
.nitushi-page ul.products li.product .button,
.nitushi-page ul.products li.product .added_to_cart {
	display: none;
}

/* The collection browser is curated: no result counts, no sorting UI —
   menu order is the curatorial order. */
.nitushi-page.post-type-archive-product .woocommerce-result-count,
.nitushi-page.tax-product_cat .woocommerce-result-count,
.nitushi-page.tax-nitushi_artist .woocommerce-result-count,
.nitushi-page.search .woocommerce-result-count,
.nitushi-page.post-type-archive-product .woocommerce-ordering,
.nitushi-page.tax-product_cat .woocommerce-ordering,
.nitushi-page.tax-nitushi_artist .woocommerce-ordering,
.nitushi-page.search .woocommerce-ordering {
	display: none;
}

/* --------------------------------------------------------------------------
   Artwork exhibit page — the viewing room
   --------------------------------------------------------------------------
   The artwork holds most of the viewport and stays pinned on desktop
   while the visitor reads title, price and acquisition details beside
   it. Below the desktop breakpoint the page is a simple stack.
   -------------------------------------------------------------------------- */

.nitushi-page.single-product .product-entry-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

/* WooCommerce core floats gallery/summary at ~48% width; inside the
   grid those widths still apply to the tracks' children, so unlock
   them explicitly. */
.nitushi-page.single-product .product-entry-wrapper .woocommerce-product-gallery,
.nitushi-page.single-product .product-entry-wrapper .summary.entry-summary {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}

@media (min-width: 1024px) {
	.nitushi-page.single-product .product-entry-wrapper {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr) !important;
		gap: clamp(48px, 6vw, 96px);
	}

	.nitushi-page.single-product .woocommerce-product-gallery {
		position: sticky;
		top: 96px;
	}

	.nitushi-page.single-product .summary.entry-summary {
		padding-top: clamp(8px, 2vw, 40px);
	}
}

/* Related works: a quiet uniform row, not the archive wall. */

.nitushi-page.single-product .related ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(32px, 4vw, 56px) clamp(20px, 3vw, 36px);
	align-items: start;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
}

.nitushi-page.single-product .related ul.products li.product {
	grid-column: auto !important;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

@media (max-width: 760px) {
	.nitushi-page.single-product .related ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.nitushi-page.single-product div.product .product_title {
	font-size: clamp(32px, 4vw, 58px);
	line-height: 1.05;
}

.nitushi-page.single-product div.product p.price {
	font-size: 15px;
	letter-spacing: 0.06em;
	color: var(--nt-text-soft);
}

.nitushi-exhibit__artist {
	margin: 0 0 10px;
	font-family: var(--nitushi-font-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--nt-text-soft);
}

.nitushi-exhibit__artist a {
	color: var(--nt-text-soft);
	text-decoration: none;
	transition: color 0.2s ease;
}

.nitushi-exhibit__artist a:hover {
	color: var(--nt-text);
}

/* Quiet the commerce module */

.nitushi-page.single-product div.product .product_meta {
	display: none;
}

.nitushi-page.single-product div.product form.cart {
	margin-top: 28px;
}

.nitushi-page.single-product div.product .price {
	margin-bottom: 6px;
}

/* Variation table quieting */

.nitushi-page.single-product div.product table.variations th,
.nitushi-page.single-product div.product table.variations td {
	border: 0;
	padding: 6px 0;
	font-family: var(--nitushi-font-ui);
}

.nitushi-page.single-product div.product table.variations label {
	font-size: 11px;
	letter-spacing: 0.16em;
}

@media (prefers-reduced-motion: reduce) {
	.nitushi-work__image,
	.nitushi-artist-row__portrait,
	.nitushi-artist-row__work img,
	.nitushi-artist-row__cta span {
		transition: none;
	}
}
