/*
 * Erika Vink — Theme CSS
 *
 * Only styles that can't be expressed via theme.json live here.
 * Design tokens (colors, spacing, font sizes) come from theme.json
 * and are available as --wp--preset--* custom properties.
 */

/* -----------------------------------------------
   Layout: left-rail desktop, stacked mobile
   ----------------------------------------------- */

.site-layout {
	display: flex;
	min-height: 100vh;
}

/* Left-rail navigation — desktop */
.site-nav {
	position: sticky;
	top: 0;
	left: 0;
	width: 200px;
	min-width: 200px;
	height: 100vh;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: var(--wp--preset--color--background);
	z-index: 100;
}

.site-nav__logo {
	display: block;
	width: 48px;
	height: auto;
	margin-bottom: var(--wp--preset--spacing--60);
}

.site-nav__logo img,
.site-nav__logo svg {
	width: 100%;
	height: auto;
}

.site-nav__menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.site-nav__menu a {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	transition: color 200ms ease;
}

.site-nav__menu a:hover {
	color: var(--wp--preset--color--accent);
}

.site-nav__menu a[aria-current="page"] {
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.site-nav__bottom {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	margin-top: auto;
}

.site-nav__lang {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--xs);
	display: flex;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-nav__lang li {
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-nav__lang a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
}

.site-nav__lang a:hover,
.site-nav__lang a[aria-current="true"] {
	color: var(--wp--preset--color--text);
}

.site-nav__social a {
	display: inline-flex;
	color: var(--wp--preset--color--text-muted);
	transition: color 200ms ease;
}

.site-nav__social a:hover {
	color: var(--wp--preset--color--text);
}

.site-nav__social svg {
	width: 20px;
	height: 20px;
}

/* Desktop top bar — vinkje logo centered, fixed */
.site-topbar {
	display: flex;
	justify-content: center;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	position: fixed;
	top: 0;
	right: 0;
	left: 200px;
	background: var(--wp--preset--color--background);
	z-index: 50;
}

/* Push content below fixed topbar */
.site-main > .wp-block-template-part:first-child {
	padding-top: 60px;
}

.site-topbar__logo {
	display: block;
	width: 36px;
	height: auto;
}

.site-topbar__logo img {
	width: 100%;
	height: auto;
	display: block;
}

/* Tame WP block gap on home page sections */
.site-main > .wp-block-template-part + .home-hero,
.home-hero + .wp-block-group,
.home-intro + .featured-collection,
.wp-block-group.home-intro > * {
	margin-block-start: 0;
}

/* Main content area */
.site-main {
	flex: 1;
	min-width: 0;
}

/* Mobile hamburger — hidden on desktop */
.site-nav-mobile-bar {
	display: none;
}

.site-nav-mobile-bar__toggle {
	background: none;
	border: none;
	padding: var(--wp--preset--spacing--20);
	cursor: pointer;
	color: var(--wp--preset--color--text);
}

.site-nav-mobile-bar__toggle svg {
	width: 24px;
	height: 24px;
}

/* Mobile overlay */
.site-nav-overlay {
	display: none;
}

/* -----------------------------------------------
   Mobile: ≤ 1023px
   ----------------------------------------------- */

@media (max-width: 1023px) {
	.site-layout {
		flex-direction: column;
	}

	.site-nav {
		display: none;
	}

	.site-topbar {
		display: none;
	}

	.site-main > .wp-block-template-part:first-child {
		padding-top: 0;
	}

	.site-nav-mobile-bar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
		border-bottom: 1px solid var(--wp--preset--color--border);
		background: var(--wp--preset--color--background);
		position: sticky;
		top: 0;
		z-index: 200;
	}

	.site-nav-mobile-bar__logo {
		width: 36px;
		height: auto;
	}

	.site-nav-mobile-bar__logo img,
	.site-nav-mobile-bar__logo svg {
		width: 100%;
		height: auto;
	}

	.site-nav-overlay {
		position: fixed;
		inset: 0;
		background: var(--wp--preset--color--background);
		z-index: 300;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: var(--wp--preset--spacing--40);
		opacity: 0;
		visibility: hidden;
		transition: opacity 200ms ease, visibility 200ms ease;
	}

	.site-nav-overlay[data-open="true"] {
		opacity: 1;
		visibility: visible;
	}

	.site-nav-overlay__close {
		position: absolute;
		top: var(--wp--preset--spacing--30);
		right: var(--wp--preset--spacing--40);
		background: none;
		border: none;
		padding: var(--wp--preset--spacing--20);
		cursor: pointer;
		color: var(--wp--preset--color--text);
	}

	.site-nav-overlay__close svg {
		width: 24px;
		height: 24px;
	}

	.site-nav-overlay__menu {
		list-style: none;
		padding: 0;
		margin: 0;
		text-align: center;
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--40);
	}

	.site-nav-overlay__menu a {
		font-family: var(--wp--preset--font-family--primary);
		font-size: var(--wp--preset--font-size--lg);
		font-weight: 500;
		color: var(--wp--preset--color--text);
		text-decoration: none;
	}

	.site-nav-overlay__menu a:hover {
		color: var(--wp--preset--color--accent);
	}

	.site-nav-overlay__menu a[aria-current="page"] {
		text-decoration: underline;
		text-underline-offset: 4px;
	}

	.site-nav-overlay__bottom {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: var(--wp--preset--spacing--30);
		margin-top: var(--wp--preset--spacing--50);
	}
}

/* -----------------------------------------------
   Artwork grid (archive)
   ----------------------------------------------- */

.artwork-grid {
	/* columns and column-gap set via Customizer */
}

.artwork-grid__item {
	position: relative;
	break-inside: avoid;
	/* margin-bottom set via Customizer */
}

.artwork-grid__link {
	display: block;
	text-decoration: none;
	color: inherit;
	border: none;
	padding: 0;
	background: none;
	cursor: pointer;
	width: 100%;
}

.artwork-grid__thumb {
	overflow: hidden;
	background: var(--wp--preset--color--border);
}

.artwork-grid__thumb img {
	width: 100%;
	height: auto;
	display: block;
	transition: opacity 200ms ease;
}

.artwork-grid__link:hover .artwork-grid__thumb img {
	opacity: 0.85;
}

.artwork-grid__sold-dot {
	position: absolute;
	bottom: 12px;
	right: 12px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--wp--preset--color--sold);
}

/* -----------------------------------------------
   Artwork modal (detail overlay)
   ----------------------------------------------- */

.artwork-modal {
	border: none;
	padding: 0;
	background: var(--wp--preset--color--surface);
	/* max-width set via Customizer */
	width: calc(100% - var(--wp--preset--spacing--60));
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15);
}

.artwork-modal::backdrop {
	background: rgba(250, 247, 242, 0.85);
}

.artwork-modal__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 0;
}

.artwork-modal__close {
	position: absolute;
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	z-index: 10;
	background: none;
	border: none;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	color: var(--wp--preset--color--text-muted);
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 200ms ease;
}

.artwork-modal__close:hover {
	color: var(--wp--preset--color--text);
}

.artwork-modal__image {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--surface);
}

.artwork-modal__image img {
	max-width: 100%;
	max-height: 80vh;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.artwork-modal__meta {
	padding: var(--wp--preset--spacing--60);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.artwork-modal__title {
	font-family: var(--wp--preset--font-family--primary);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 500;
	line-height: 1.3;
	margin: 0 0 var(--wp--preset--spacing--30);
}

.artwork-modal__details {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--text-muted);
	line-height: 1.8;
	margin-bottom: var(--wp--preset--spacing--40);
}

.artwork-modal__status {
	font-style: italic;
	color: var(--wp--preset--color--text-muted);
	margin: 0 0 var(--wp--preset--spacing--40);
}

.artwork-modal__status--sold {
	color: var(--wp--preset--color--sold);
}

.artwork-modal__enquire {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	color: var(--wp--preset--color--background);
	background: var(--wp--preset--color--text);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	text-decoration: none;
	display: inline-block;
	transition: background-color 200ms ease;
}

.artwork-modal__enquire:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--background);
}

@media (max-width: 700px) {
	.artwork-modal__inner {
		grid-template-columns: 1fr;
	}

	.artwork-modal__image img {
		max-height: 50vh;
	}

	.artwork-modal__meta {
		padding: var(--wp--preset--spacing--40);
	}
}

/* -----------------------------------------------
   Sort controls
   ----------------------------------------------- */

.artwork-sort {
	display: flex;
	justify-content: flex-end;
	margin-bottom: var(--wp--preset--spacing--50);
}

.artwork-sort__select {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--text);
	background: var(--wp--preset--color--background);
	border: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	cursor: pointer;
	appearance: auto;
}

/* -----------------------------------------------
   Artwork detail (single)
   ----------------------------------------------- */

.artwork-single__hero {
	margin-bottom: var(--wp--preset--spacing--60);
	display: flex;
	justify-content: center;
}

.artwork-single__hero img {
	max-width: 100%;
	max-height: 70vh;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.artwork-single__meta {
	max-width: none;
}

.artwork-single__title {
	margin-bottom: var(--wp--preset--spacing--20);
}

.artwork-single__details {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--text-muted);
	margin-bottom: var(--wp--preset--spacing--40);
	line-height: 1.8;
}

.artwork-single__status {
	font-style: italic;
	color: var(--wp--preset--color--text-muted);
}

.artwork-single__status--sold {
	color: var(--wp--preset--color--sold);
}

.artwork-single__enquire {
	margin-top: var(--wp--preset--spacing--40);
}

.artwork-single__inquiry-form {
	margin-top: var(--wp--preset--spacing--60);
	max-width: none;
}

.artwork-single__enquire-toggle {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	color: var(--wp--preset--color--background);
	background: var(--wp--preset--color--text);
	border: none;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: background-color 200ms ease;
}

.artwork-single__enquire-toggle:hover {
	background: var(--wp--preset--color--accent);
}

.artwork-single__description {
	margin-top: var(--wp--preset--spacing--60);
	max-width: none;
}

.artwork-single__gallery {
	margin-top: var(--wp--preset--spacing--60);
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--50);
}

.artwork-single__gallery img {
	width: 100%;
	height: auto;
	display: block;
}

/* -----------------------------------------------
   Breadcrumb
   ----------------------------------------------- */

.breadcrumb {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--xs);
	margin-bottom: var(--wp--preset--spacing--50);
}

.breadcrumb a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
}

.breadcrumb a:hover {
	color: var(--wp--preset--color--text);
}

/* -----------------------------------------------
   Home hero
   ----------------------------------------------- */

.home-hero {
	position: relative;
	overflow: hidden;
}

.home-hero video,
.home-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* -----------------------------------------------
   Home intro
   ----------------------------------------------- */

.home-intro {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--70);
	align-items: center;
}

.home-intro__text .home-intro__name {
	font-size: var(--wp--preset--font-size--xxl);
	font-weight: 500;
	line-height: 1.1;
	margin-bottom: var(--wp--preset--spacing--20);
}

.home-intro__text .home-intro__subtitle {
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 400;
	font-style: italic;
	color: var(--wp--preset--color--text-muted);
	margin-bottom: var(--wp--preset--spacing--40);
}

.home-intro__portrait img {
	width: 100%;
	height: auto;
	display: block;
}

@media (max-width: 1023px) {
	.home-intro {
		grid-template-columns: 1fr;
		padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
	}

	/* Hide empty portrait placeholder on mobile */
	.home-intro__portrait-img img[src^="data:"] {
		display: none;
	}
}

/* -----------------------------------------------
   Featured collection
   ----------------------------------------------- */

.featured-collection {
}

.featured-collection__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--50);
}

@media (max-width: 1023px) {
	.featured-collection__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.featured-collection__grid {
		grid-template-columns: 1fr;
	}
}

/* -----------------------------------------------
   Pagination
   ----------------------------------------------- */

.pagination {
	display: flex;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--70);
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--sm);
}

.pagination a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
}

.pagination a:hover {
	color: var(--wp--preset--color--text);
}

/* -----------------------------------------------
   Footer
   ----------------------------------------------- */

.site-footer {
	border-top: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--40) 0;
	margin-top: var(--wp--preset--spacing--80);
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
	flex-wrap: wrap;
}

.site-footer a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--wp--preset--color--text);
}

.site-footer svg {
	width: 18px;
	height: 18px;
}

/* -----------------------------------------------
   CV lists (About page)
   ----------------------------------------------- */

.cv-section {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--70);
	margin-top: var(--wp--preset--spacing--70);
}

@media (max-width: 1023px) {
	.cv-section {
		grid-template-columns: 1fr;
	}
}

.cv-list {
	margin: 0;
	padding: 0;
}

.cv-list dt {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--text-muted);
	margin-top: var(--wp--preset--spacing--30);
}

.cv-list dd {
	margin: 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--md);
}

/* -----------------------------------------------
   Collect page — mailing list signup
   ----------------------------------------------- */

.mailing-signup {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--60);
	margin: var(--wp--preset--spacing--70) 0;
}

/* -----------------------------------------------
   Utilities
   ----------------------------------------------- */

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.home-hero video {
		/* Show poster frame but don't autoplay — JS handles pause. */
	}
}
