/* ==========================================================================
   Atelier — off-white, navy and earth
   ========================================================================== */

:root {
	--bg: #F7F4EE;
	--surface: #EDE5D8;
	--mat: #E9E2D6;
	--ink: #1C2B3F;
	--ink-2: #34445A;
	--muted: #4F5B6B;
	--line: #DDD6CA;
	--line-strong: #B9B2A6;
	--accent-text: #9E4F2F;
	--terracotta: #B5603D;
	--ochre: #C69234;
	--sage: #7E8C6A;
	--clay: #C9A587;
	--umber: #6B4A34;
	--atelier-dot: #B5603D;

	--font: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
	--gutter: 40px;
	--max: 1360px;
}

@media (max-width: 720px) {
	:root { --gutter: 20px; }
}

/* Base
   ----------------------------------------------------------------------- */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video { max-width: 100%; height: auto; }

a { color: var(--ink); text-underline-offset: 3px; }
a:hover { color: var(--accent-text); }

:focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 3px;
}

/* Notices are focused by script so screen readers announce them. */
[tabindex="-1"]:focus { outline: none; }

h1, h2, h3, h4 {
	margin: 0 0 0.5em;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.015em;
}

p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 1000;
	width: auto;
	height: auto;
	padding: 12px 18px;
	margin: 0;
	clip: auto;
	background: var(--ink);
	color: var(--bg);
	text-decoration: none;
}

.container {
	width: 100%;
	max-width: calc(var(--max) + 2 * var(--gutter));
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.container--narrow { max-width: calc(760px + 2 * var(--gutter)); }

.site-main { padding-bottom: 96px; }

.eyebrow {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--accent-text);
}
.eyebrow a { color: inherit; text-decoration: none; }
.eyebrow a:hover { text-decoration: underline; }

.text-link { font-size: 15px; font-weight: 500; }

/* Buttons
   ----------------------------------------------------------------------- */

.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.wp-element-button,
.wp-block-button__link,
input[type="submit"],
button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 28px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--ink);
	color: var(--bg);
	font-family: var(--font);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,
.wp-element-button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
	background: var(--ink-2);
	border-color: var(--ink-2);
	color: var(--bg);
}

.button--outline,
.woocommerce a.button.button--outline {
	background: transparent;
	color: var(--ink);
}
.button--outline:hover,
.woocommerce a.button.button--outline:hover {
	background: var(--ink);
	color: var(--bg);
}

.button--block { display: flex; width: 100%; }

.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button.alt.disabled {
	background: var(--ink);
	color: var(--bg);
	opacity: 0.5;
}

.button-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* Forms
   ----------------------------------------------------------------------- */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="search"],
input[type="password"],
input[type="number"],
textarea,
select,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid var(--line-strong);
	border-radius: 0;
	background: #FFFFFF;
	color: var(--ink);
	font-family: var(--font);
	font-size: 15px;
}

textarea { min-height: 140px; }

label { font-size: 14px; }

/* Header
   ----------------------------------------------------------------------- */

.site-header { border-bottom: 1px solid var(--line); }

.site-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding-top: 24px;
	padding-bottom: 24px;
}

.site-brand__name {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none;
}

.custom-logo-link { display: block; }
.custom-logo { display: block; max-height: 56px; width: auto; }

.site-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 32px;
	font-size: 15px;
}

.site-nav__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-nav__menu li { position: relative; }

.site-nav__menu a,
.cart-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	text-decoration: none;
}

.site-nav__menu .current-menu-item > a,
.site-nav__menu .current_page_item > a,
.site-nav__menu .current-menu-ancestor > a {
	text-decoration: underline;
	text-decoration-color: var(--terracotta);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

.site-nav__menu .sub-menu {
	position: absolute;
	top: 100%;
	left: -16px;
	z-index: 20;
	display: none;
	min-width: 200px;
	margin: 0;
	padding: 8px 16px;
	list-style: none;
	background: var(--bg);
	border: 1px solid var(--line);
}
.site-nav__menu li:hover > .sub-menu,
.site-nav__menu li:focus-within > .sub-menu { display: block; }

.nav-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--line-strong);
	background: transparent;
	color: var(--ink);
	font: inherit;
	font-size: 15px;
	cursor: pointer;
}

@media (max-width: 860px) {
	.js .nav-toggle { display: inline-flex; }
	.js .site-nav { display: none; width: 100%; }
	.js .site-nav.is-open { display: flex; }
	.site-nav,
	.site-nav__menu { flex-direction: column; align-items: flex-start; gap: 0; }
	.site-nav { padding-bottom: 8px; }
	.site-nav__menu { width: 100%; }
	.site-nav__menu li { width: 100%; border-bottom: 1px solid var(--line); }
	.site-nav__menu .sub-menu { position: static; display: block; border: 0; padding: 0 0 8px 16px; }
	.site-nav__menu .sub-menu li { border: 0; }
}

/* Breadcrumbs
   ----------------------------------------------------------------------- */

.breadcrumbs,
.woocommerce .woocommerce-breadcrumb {
	margin: 32px 0 24px;
	padding: 0;
	font-size: 14px;
	color: var(--muted);
}
.breadcrumbs a { color: var(--muted); }

/* Placeholder blocks
   ----------------------------------------------------------------------- */

.art-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 240px;
	background: var(--surface);
}
.art-placeholder__label {
	padding: 6px 10px;
	background: var(--bg);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Home: hero
   ----------------------------------------------------------------------- */

.hero {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 56px;
	padding-top: 64px;
	padding-bottom: 96px;
}

.hero__figure { flex: 999 1 560px; min-width: 0; margin: 0; }

.hero__image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	background: var(--mat);
	overflow: hidden;
}
.hero__image img { width: 100%; height: 100%; object-fit: contain; }

.hero__caption { margin-top: 14px; font-size: 14px; color: var(--muted); }

.hero__text {
	display: flex;
	flex: 1 1 340px;
	flex-direction: column;
	gap: 24px;
	padding-bottom: 40px;
}
.hero__text .eyebrow { margin: 0; }

.hero__title {
	margin: 0;
	font-size: clamp(40px, 5vw, 56px);
	line-height: 1.02;
	letter-spacing: -0.02em;
}

.hero__intro { max-width: 420px; margin: 0; font-size: 18px; color: var(--ink-2); }

/* Sections
   ----------------------------------------------------------------------- */

.section { padding-bottom: 112px; }

.section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 40px;
	padding-top: 20px;
	border-top: 1px solid var(--ink);
}
.section-head__title { margin: 0; font-size: 28px; letter-spacing: -0.01em; }
.section-head__link { font-size: 15px; }

/* Artwork grid and cards
   ----------------------------------------------------------------------- */

.woocommerce ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 56px 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after { display: none; }

ul.products.artwork-grid--small {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 40px 32px;
}

.woocommerce ul.products li.product,
ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0;
	text-align: left;
}

.artwork-card__link {
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-decoration: none;
	color: var(--ink);
}
.artwork-card__link:hover { color: var(--ink); }
.artwork-card__link:hover .artwork-card__title { text-decoration: underline; }

.artwork-card__image {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	padding: 8%;
	background: var(--mat);
	overflow: hidden;
}

.woocommerce ul.products li.product a img.artwork-card__img,
.artwork-card__img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	object-fit: contain;
	box-shadow: 0 6px 18px rgba(28, 43, 63, 0.12);
	transition: transform 0.3s ease;
}
.artwork-card__link:hover .artwork-card__img { transform: scale(1.015); }

.artwork-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 5px 8px;
	background: var(--bg);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.artwork-card__meta {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.artwork-card__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.woocommerce ul.products li.product .woocommerce-loop-product__title.artwork-card__title,
.artwork-card__title {
	margin: 0;
	padding: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
}

.artwork-card__details { font-size: 14px; color: var(--muted); }

.woocommerce ul.products li.product .price,
.artwork-card__price {
	display: inline;
	margin: 0;
	color: var(--ink);
	font-size: 15px;
	font-weight: 500;
	white-space: nowrap;
}

.price del { color: var(--muted); opacity: 1; }
.price ins { text-decoration: none; }

/* Sold label */
.sold-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	white-space: nowrap;
}
.sold-dot {
	width: 10px;
	height: 10px;
	flex: none;
	border-radius: 50%;
	background: var(--atelier-dot);
}

/* Default WooCommerce loop items (blocks/shortcodes) pick up the same look */
.woocommerce ul.products li.product:not(.artwork-card) a img { background: var(--mat); }
.woocommerce ul.products li.product:not(.artwork-card) .woocommerce-loop-product__title { font-size: 16px; }

/* Home: about
   ----------------------------------------------------------------------- */

.about { background: var(--surface); }

.about__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 64px;
	padding-top: 96px;
	padding-bottom: 96px;
}

.about__image {
	flex: 1 1 320px;
	max-width: 460px;
	aspect-ratio: 4 / 5;
	background: var(--clay);
	overflow: hidden;
}
.about__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.about__image .art-placeholder { background: var(--clay); }

.about__text {
	display: flex;
	flex: 999 1 420px;
	flex-direction: column;
	gap: 20px;
	max-width: 640px;
}
.about__text .eyebrow { margin: 0; }
.about__title { margin: 0; font-size: clamp(30px, 3.4vw, 40px); }
.about__body { margin: 0; font-size: 17px; line-height: 1.7; color: var(--ink-2); }

/* Home: originals / prints / commissions
   ----------------------------------------------------------------------- */

.offer {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 40px;
	padding-top: 96px;
}

.offer__card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 20px;
	border-top: 3px solid var(--terracotta);
}
.offer__card--ochre { border-top-color: var(--ochre); }
.offer__card--sage { border-top-color: var(--sage); }
.offer__title { margin: 0; font-size: 20px; }
.offer__text { margin: 0; font-size: 15px; color: var(--ink-2); }

/* Shop archive
   ----------------------------------------------------------------------- */

.shop-intro { padding: 8px 0 32px; }
.shop-intro__title {
	margin: 0 0 12px;
	font-size: clamp(40px, 5vw, 56px);
	line-height: 1.02;
	letter-spacing: -0.02em;
}
.shop-intro__text { max-width: 560px; font-size: 17px; color: var(--ink-2); }
.shop-intro__text p:last-child { margin-bottom: 0; }

.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0;
	border-top: 1px solid var(--ink);
	border-bottom: 1px solid var(--line);
}

.shop-filters__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.shop-filter {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--line-strong);
	color: var(--ink);
	font-size: 14px;
	text-decoration: none;
}
.shop-filter:hover { border-color: var(--ink); color: var(--ink); }
.shop-filter.is-active { border-color: var(--ink); background: var(--ink); color: var(--bg); }

.woocommerce .woocommerce-ordering,
.shop-toolbar__sort .woocommerce-ordering { margin: 0; float: none; }
.woocommerce-ordering select { min-width: 200px; }

.shop-count { margin: 16px 0 40px; font-size: 14px; color: var(--muted); }

.shop-empty { padding: 48px 0; }

.woocommerce nav.woocommerce-pagination { margin-top: 72px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	border: 0;
	margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; float: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--line-strong);
	color: var(--ink);
	font-size: 15px;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--bg);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus { background: var(--surface); color: var(--ink); }

/* Single artwork
   ----------------------------------------------------------------------- */

.artwork__layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 64px;
}

.artwork__media { flex: 999 1 560px; min-width: 0; }

.artwork__summary {
	display: flex;
	flex: 1 1 380px;
	flex-direction: column;
	gap: 28px;
}
.artwork__summary > * { margin-top: 0; margin-bottom: 0; }
.artwork__summary .eyebrow { margin-bottom: -18px; }

.artwork__title {
	font-size: clamp(34px, 4vw, 44px);
	line-height: 1.05;
	letter-spacing: -0.02em;
}
.artwork__year { font-weight: 500; }

/* Gallery */
.artwork__media .woocommerce-product-gallery {
	position: relative;
	width: 100% !important;
	float: none !important;
	margin: 0;
}
.artwork__media .woocommerce-product-gallery__wrapper { margin: 0; }
.artwork__media .woocommerce-product-gallery__image {
	background: var(--mat);
}
.artwork__media .woocommerce-product-gallery__image a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6%;
}
.artwork__media .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	box-shadow: 0 10px 28px rgba(28, 43, 63, 0.14);
}
.artwork__media .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}
.artwork__media .flex-control-thumbs li { margin: 0; cursor: pointer; }
.artwork__media .flex-control-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border: 1px solid var(--line);
	opacity: 0.7;
}
.artwork__media .flex-control-thumbs img.flex-active,
.artwork__media .flex-control-thumbs img:hover { border: 2px solid var(--ink); opacity: 1; }
.artwork__media .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 9;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--bg);
	border-radius: 50%;
	text-indent: -9999px;
	overflow: hidden;
}
.artwork__media .woocommerce-product-gallery__trigger::before {
	content: "";
	position: absolute;
	top: 13px;
	left: 13px;
	width: 12px;
	height: 12px;
	border: 2px solid var(--ink);
	border-radius: 50%;
}
.artwork__media .woocommerce-product-gallery__trigger::after {
	content: "";
	position: absolute;
	top: 27px;
	left: 26px;
	width: 2px;
	height: 8px;
	background: var(--ink);
	transform: rotate(-45deg);
}

/* Edition picker */
.edition-picker { display: flex; flex-direction: column; gap: 10px; }
.edition-picker__label { margin: 0 0 4px; font-size: 14px; color: var(--muted); }

.edition-option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 72px;
	padding: 15px 19px;
	border: 1px solid var(--line-strong);
	color: var(--ink);
	text-decoration: none;
}
a.edition-option:hover { border-color: var(--ink); color: var(--ink); }
.edition-option.is-current {
	padding: 14px 18px;
	border: 2px solid var(--ink);
	background: #FFFFFF;
}
.edition-option__text { display: flex; flex-direction: column; gap: 4px; }
.edition-option__name { font-size: 16px; font-weight: 600; }
.edition-option__sub { font-size: 14px; color: var(--muted); }
.edition-option__price { font-size: 16px; font-weight: 500; white-space: nowrap; }
.woocommerce .edition-option__price.price { color: var(--ink); }

/* Add to cart */
.artwork__buy { display: flex; flex-direction: column; gap: 12px; }
.artwork__buy form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 0;
}
.artwork__buy form.cart .quantity { margin: 0; }
.artwork__buy form.cart .quantity:has(input[type="hidden"]) { display: none; }
.artwork__buy form.cart .quantity .qty {
	width: 72px;
	min-height: 52px;
	text-align: center;
}
.artwork__buy form.cart .single_add_to_cart_button {
	flex: 1 1 200px;
	min-height: 52px;
}
.artwork__buy .stock { display: none; }
.artwork__buy .variations { width: 100%; margin: 0 0 8px; border-collapse: collapse; }
.artwork__buy .variations th,
.artwork__buy .variations td { padding: 6px 0; text-align: left; vertical-align: middle; }
.artwork__buy .variations select { width: 100%; }
.artwork__buy .single_variation_wrap { width: 100%; }
.artwork__buy .woocommerce-variation-add-to-cart { display: flex; gap: 12px; }
.artwork__note { margin: 0; font-size: 14px; color: var(--muted); }

.artwork__sold { display: flex; flex-direction: column; gap: 12px; }
.artwork__sold p { margin: 0; font-size: 15px; color: var(--ink-2); }

/* Details table */
.artwork-details { margin: 0; border-top: 1px solid var(--ink); }
.artwork-details__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}
.artwork-details dt { font-size: 14px; color: var(--muted); }
.artwork-details dd { margin: 0; font-size: 15px; }

/* Accordions */
.accordion { padding: 16px 0; border-bottom: 1px solid var(--line); }
.accordion__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 28px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.accordion__summary::-webkit-details-marker { display: none; }
.accordion__summary::after { content: "+"; font-size: 22px; font-weight: 400; line-height: 1; }
.accordion[open] .accordion__summary::after { content: "–"; }
.accordion__body { margin-top: 12px; font-size: 15px; line-height: 1.7; color: var(--ink-2); }
.accordion__body p:last-child { margin-bottom: 0; }

.more-works { margin-top: 112px; }

/* Notices
   ----------------------------------------------------------------------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	margin: 24px 0;
	padding: 16px 20px 16px 52px;
	border-top: 3px solid var(--sage);
	background: var(--surface);
	color: var(--ink);
	font-size: 15px;
}
.woocommerce-info { border-top-color: var(--ochre); }
.woocommerce-error { border-top-color: var(--terracotta); }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--sage); }
.woocommerce-error::before { color: var(--terracotta); }
.woocommerce-message .button,
.woocommerce-info .button { min-height: 40px; padding: 0 18px; }
.woocommerce-store-notice,
p.demo_store { background: var(--ink); }

/* Cart, checkout and account pages
   ----------------------------------------------------------------------- */

.woocommerce table.shop_table { border-color: var(--line); border-radius: 0; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-color: var(--line); }
.wc-block-components-button:not(.is-link) {
	background: var(--ink);
	color: var(--bg);
	border-radius: 0;
}
.wc-block-components-button:not(.is-link):hover { background: var(--ink-2); color: var(--bg); }
.wc-block-components-totals-wrapper,
.wc-block-components-panel { border-color: var(--line); }

/* Pages and posts
   ----------------------------------------------------------------------- */

.page-header { padding: 56px 0 24px; }
.page-title {
	margin: 0;
	font-size: clamp(36px, 4.5vw, 52px);
	line-height: 1.05;
	letter-spacing: -0.02em;
}
.page-intro { margin-top: 12px; color: var(--ink-2); }
.entry-meta { margin: 12px 0 0; font-size: 14px; color: var(--muted); }
.entry-image { margin: 0 0 32px; }
.entry-image img { display: block; width: 100%; }

.entry-content { font-size: 17px; line-height: 1.75; }
.entry-content > * { max-width: 100%; }
.entry-content h2 { margin-top: 1.6em; font-size: 28px; }
.entry-content h3 { margin-top: 1.4em; font-size: 22px; }
.entry-content blockquote {
	margin: 1.5em 0;
	padding-left: 20px;
	border-left: 3px solid var(--clay);
	color: var(--ink-2);
}
.entry-content figure { margin: 1.5em 0; }
.entry-content figcaption { font-size: 14px; color: var(--muted); }
.entry-content .alignwide { max-width: 1200px; }

.post-card { padding: 32px 0; border-bottom: 1px solid var(--line); }
.post-card__title { margin: 0; font-size: 26px; }
.post-card__title a { text-decoration: none; }
.post-card__title a:hover { text-decoration: underline; }
.post-card__excerpt { margin-top: 12px; color: var(--ink-2); }

.navigation.pagination { margin-top: 48px; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--line-strong);
	text-decoration: none;
}
.navigation.pagination .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--bg); }

.comments { margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--line); }
.comments__list { padding-left: 0; list-style: none; }
.comments__list .comment-body { padding: 16px 0; border-bottom: 1px solid var(--line); }

.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1 1 auto; }
.search-form .search-field { width: 100%; }

/* Footer
   ----------------------------------------------------------------------- */

.site-footer { background: var(--ink); color: var(--bg); }
.site-footer a { color: var(--bg); }
.site-footer a:hover { color: var(--clay); }

.site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 32px;
	padding-top: 48px;
	padding-bottom: 32px;
}

.site-footer__brand { display: flex; flex-direction: column; gap: 8px; }
.site-footer__name {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.site-footer__location { font-size: 14px; color: #C9CFD8; }

.newsletter { display: flex; flex: 1 1 280px; flex-direction: column; gap: 8px; min-width: 0; max-width: 420px; }
.newsletter__label { font-size: 14px; color: #E2E6EC; }
.newsletter__row { display: flex; gap: 8px; }
.newsletter__input { flex: 1 1 auto; min-width: 0; border: 0; background: var(--bg); }
.newsletter__button,
.site-footer button[type="submit"].newsletter__button {
	min-height: 44px;
	padding: 0 20px;
	border: 0;
	background: var(--clay);
	color: var(--ink);
	font-weight: 600;
}
.site-footer button[type="submit"].newsletter__button:hover { background: #D8BB9F; color: var(--ink); }

.footer-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-self: flex-end;
	gap: 8px 24px;
	font-size: 14px;
}
.footer-nav__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.footer-nav a { display: inline-flex; align-items: center; min-height: 44px; }

.site-footer__base { padding-top: 16px; padding-bottom: 32px; border-top: 1px solid #34445A; }
.site-footer__base p { margin: 0; font-size: 13px; color: #C9CFD8; }

/* Small screens
   ----------------------------------------------------------------------- */

@media (max-width: 720px) {
	.hero { gap: 32px; padding-top: 32px; padding-bottom: 64px; }
	.hero__text { padding-bottom: 0; }
	.section { padding-bottom: 72px; }
	.about__inner { gap: 40px; padding-top: 64px; padding-bottom: 64px; }
	.offer { padding-top: 64px; }
	.artwork__layout { gap: 40px; }
	.more-works { margin-top: 72px; }
	ul.products,
	.woocommerce ul.products { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 40px 20px; }
	.artwork-card__meta { flex-direction: column; gap: 6px; }
	.woocommerce-ordering select { min-width: 0; width: 100%; }
	.shop-toolbar__sort { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}
