/* =====================================================================
   Creative3Decor — Components
   Header, footer, navigation, off-canvas, search, mini-cart, modals,
   article cards, comments, post meta, breadcrumbs, pagination.
   ===================================================================== */

/* ---------------------------------------------------------------------
   Announcement bar
   --------------------------------------------------------------------- */

.announcement-bar {
	background: var(--c-ink);
	color: var(--c-bg-cream);
	overflow: hidden;
	position: relative;
	height: var(--announcement-h);
	display: flex;
	align-items: center;
}

.announcement-bar__track {
	display: inline-flex;
	gap: var(--s-8);
	white-space: nowrap;
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.85;
	animation: marquee 32s linear infinite;
	padding-left: 100%;
}

.announcement-bar__item {
	display: inline-flex;
	align-items: center;
	gap: var(--s-8);
}

.announcement-bar__sep {
	flex-shrink: 0;
}

@keyframes marquee {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-33.333%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.announcement-bar__track {
		animation: none;
		padding-left: 0;
		justify-content: center;
		width: 100%;
	}
}

/* ---------------------------------------------------------------------
   Site header
   --------------------------------------------------------------------- */

.site-header {
	position: relative;
	z-index: var(--z-header);
	border-bottom: 1px solid var(--c-line);
	background: var(--c-bg);
	transition: transform var(--dur-base) var(--ease-out),
		background var(--dur-base) var(--ease-out),
		box-shadow var(--dur-base) var(--ease-out);
}

.has-sticky-header .site-header {
	position: sticky;
	top: 0;
}

.site-header.is-scrolled {
	box-shadow: 0 1px 0 var(--c-line);
	background: rgba(245, 239, 230, 0.96);
	backdrop-filter: saturate(180%) blur(10px);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-5);
	padding: 18px var(--container-pad);
	position: relative;
	min-height: var(--header-h);
}

.header-nav {
	display: flex;
	align-items: center;
	gap: var(--s-6);
}

.header-nav .menu,
.header-nav .nav-menu {
	display: flex;
	align-items: center;
	gap: var(--s-6);
	list-style: none;
	padding: 0;
	margin: 0;
}

.header-nav a {
	font-size: 13px;
	letter-spacing: 0.02em;
	color: var(--c-ink);
	padding: 8px 0;
	position: relative;
}

.header-nav a:hover,
.header-nav .current-menu-item > a {
	color: var(--c-terracotta);
}

.header-nav .current-menu-item > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 1px;
	background: currentColor;
}

/* Centered logo — larger, prominent */
.site-branding {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	pointer-events: auto;
}

.site-branding__link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--c-ink);
}

.site-branding__mark {
	width: 38px;
	height: 38px;
	flex-shrink: 0;
}

.site-branding__text {
	display: flex;
	flex-direction: column;
	line-height: 1;
	gap: 4px;
}

.site-branding__name {
	font-family: var(--f-serif);
	font-size: 30px;
	font-style: italic;
	letter-spacing: -0.015em;
	line-height: 1;
}

.site-branding__tagline {
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.custom-logo-link {
	display: inline-block;
}

.custom-logo {
	max-height: 64px;
	width: auto;
}

/* Make sure header has enough height for the bigger logo */
.site-header__inner {
	min-height: 96px;
}

@media (max-width: 768px) {
	.site-branding__mark { width: 28px; height: 28px; }
	.site-branding__name { font-size: 22px; }
	.site-branding__tagline { font-size: 9px; }
	.site-header__inner { min-height: 72px; }
	.custom-logo { max-height: 48px; }
}

/* Header utilities */
.header-utilities {
	display: flex;
	gap: var(--s-3);
	align-items: center;
}

.header-utility {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: transparent;
	color: var(--c-ink);
	position: relative;
	cursor: pointer;
	transition: background var(--dur-fast) var(--ease-out);
}

.header-utility:hover {
	background: var(--c-bg-soft);
}

.header-utility--menu {
	display: none;
}

.cart-count {
	position: absolute;
	top: 4px;
	right: 4px;
	min-width: 18px;
	height: 18px;
	border-radius: 999px;
	background: var(--c-terracotta);
	color: var(--c-bg-cream);
	font-family: var(--f-mono);
	font-size: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 5px;
	transform: scale(0);
	transition: transform var(--dur-fast) var(--ease-out);
}

.cart-count.is-active {
	transform: scale(1);
}

@media (max-width: 1024px) {
	.header-nav {
		display: none;
	}
	.header-utility--menu {
		display: inline-flex;
	}
}

@media (max-width: 768px) {
	/* Stop centering the logo absolutely — let it sit naturally in the flex row */
	.site-header__inner {
		justify-content: space-between;
		padding: 14px var(--container-pad);
	}
	.site-branding {
		position: static;
		transform: none;
		flex: 0 1 auto;
	}
	.site-branding__link {
		gap: 10px;
	}
	.site-branding__mark {
		width: 26px;
		height: 26px;
	}
	.site-branding__name {
		font-size: 20px;
	}
	.site-branding__tagline {
		font-size: 9px;
	}
	/* Compact utility group, hide secondary buttons on phone */
	.header-utilities {
		gap: 4px;
	}
	.header-utility {
		width: 38px;
		height: 38px;
	}
	.header-utility--account,
	.header-utility.js-search-toggle {
		display: none;
	}
}

/* ---------------------------------------------------------------------
   Off-canvas menu
   --------------------------------------------------------------------- */

.off-canvas {
	position: fixed;
	inset: 0 auto 0 0;
	width: min(420px, 90vw);
	background: var(--c-bg);
	z-index: var(--z-overlay);
	transform: translateX(-100%);
	transition: transform var(--dur-base) var(--ease-out);
	display: flex;
	flex-direction: column;
	box-shadow: 1px 0 60px rgba(31, 26, 20, 0.16);
	overflow-y: auto;
}

.off-canvas.is-open {
	transform: translateX(0);
}

.off-canvas--right {
	left: auto;
	right: 0;
	transform: translateX(100%);
}

.off-canvas--right.is-open {
	transform: translateX(0);
}

.off-canvas__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--s-5) var(--s-6);
	border-bottom: 1px solid var(--c-line);
}

.off-canvas__close {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--c-ink);
	padding: var(--s-2);
}

.off-canvas__nav {
	padding: var(--s-6);
}

.off-canvas__nav .menu,
.off-canvas__nav .nav-menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}

.off-canvas__nav a {
	display: block;
	padding: var(--s-4) 0;
	border-bottom: 1px solid var(--c-line);
	font-family: var(--f-serif);
	font-size: 24px;
	color: var(--c-ink);
}

.off-canvas__nav a:hover {
	color: var(--c-terracotta);
}

.off-canvas__footer {
	margin-top: auto;
	padding: var(--s-6);
	border-top: 1px solid var(--c-line);
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
}

.off-canvas__social {
	display: flex;
	gap: var(--s-3);
}

.off-canvas__social a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--c-line);
}

/* Backdrop */
.overlay-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(31, 26, 20, 0.45);
	opacity: 0;
	visibility: hidden;
	z-index: 70;
	transition: opacity var(--dur-base) var(--ease-out),
		visibility var(--dur-base) var(--ease-out);
}

.overlay-backdrop.is-active {
	opacity: 1;
	visibility: visible;
}

/* ---------------------------------------------------------------------
   Search overlay
   --------------------------------------------------------------------- */

.search-overlay {
	position: fixed;
	inset: 0;
	background: var(--c-bg-cream);
	z-index: var(--z-overlay);
	transform: translateY(-100%);
	transition: transform var(--dur-base) var(--ease-out);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}

.search-overlay.is-open {
	transform: translateY(0);
}

.search-overlay__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--s-5) var(--s-7);
	border-bottom: 1px solid var(--c-line);
}

.search-overlay__form {
	flex: 1;
	display: flex;
	align-items: center;
	gap: var(--s-3);
	margin: 0 var(--s-5);
}

.search-overlay__input {
	flex: 1;
	font-family: var(--f-serif);
	font-size: clamp(20px, 4vw, 36px);
	font-style: italic;
	background: transparent;
	border: none;
	padding: 0;
	color: var(--c-ink);
	min-width: 0;
}

@media (max-width: 600px) {
	.search-overlay__header {
		padding: var(--s-4) var(--s-4);
		flex-wrap: wrap;
	}
	.search-overlay__form {
		margin: var(--s-3) 0 0;
		width: 100%;
		order: 3;
	}
	.search-overlay__results {
		padding: var(--s-5) var(--s-4);
	}
	.search-result-item {
		grid-template-columns: 60px 1fr;
		gap: var(--s-3);
	}
	.search-result-item__thumb {
		width: 60px;
		height: 60px;
	}
	.search-result-item__arrow {
		display: none;
	}
}

.search-overlay__input:focus {
	border: none;
	outline: none;
}

.search-overlay__close {
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--s-2);
	color: var(--c-ink);
}

.search-overlay__results {
	padding: var(--s-7);
	max-width: 1000px;
	margin: 0 auto;
	width: 100%;
}

.search-overlay__hint {
	color: var(--c-muted);
	font-size: 14px;
	font-family: var(--f-mono);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.search-result-item {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: var(--s-5);
	padding: var(--s-4) 0;
	border-bottom: 1px solid var(--c-line);
	align-items: center;
	color: var(--c-ink);
}

.search-result-item__thumb {
	width: 80px;
	height: 80px;
	overflow: hidden;
	background: var(--c-bg-soft);
}

.search-result-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.search-result-item__title {
	font-family: var(--f-serif);
	font-size: 24px;
}

.search-result-item__meta {
	font-family: var(--f-mono);
	font-size: 12px;
	color: var(--c-muted);
}

/* ---------------------------------------------------------------------
   Mini cart drawer
   --------------------------------------------------------------------- */

.cart-drawer {
	width: min(440px, 90vw);
}

.mini-cart {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.mini-cart__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--s-5) var(--s-6);
	border-bottom: 1px solid var(--c-line);
}

.mini-cart__close {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--c-ink);
	padding: var(--s-2);
}

.mini-cart__empty {
	padding: var(--s-8) var(--s-6);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--s-5);
}

.mini-cart__list {
	list-style: none;
	padding: 0;
	margin: 0;
	flex: 1;
	overflow-y: auto;
}

.mini-cart__item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: var(--s-4);
	padding: var(--s-4) var(--s-6);
	border-bottom: 1px solid var(--c-line);
	align-items: flex-start;
}

.mini-cart__thumb img {
	width: 80px;
	height: 100px;
	object-fit: cover;
}

.mini-cart__info {
	display: flex;
	flex-direction: column;
	gap: var(--s-2);
}

.mini-cart__name {
	font-size: 18px;
	color: var(--c-ink);
}

.mini-cart__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--f-mono);
	font-size: 12px;
	color: var(--c-muted);
}

.mini-cart__remove {
	color: var(--c-muted);
	font-size: 18px;
	line-height: 1;
}

.mini-cart__remove:hover {
	color: var(--c-terracotta);
}

.mini-cart__footer {
	border-top: 1px solid var(--c-line);
	padding: var(--s-5) var(--s-6);
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
}

.mini-cart__subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
}

.mini-cart__subtotal .h-serif {
	font-size: 28px;
}

.mini-cart__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--s-3);
}

/* ---------------------------------------------------------------------
   Quick view modal
   --------------------------------------------------------------------- */

.modal {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--s-5);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--dur-base) var(--ease-out),
		visibility var(--dur-base) var(--ease-out);
	background: rgba(31, 26, 20, 0.6);
}

.modal.is-open {
	opacity: 1;
	visibility: visible;
}

.quickview {
	background: var(--c-bg-cream);
	max-width: 1100px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	position: relative;
	transform: scale(0.96);
	transition: transform var(--dur-base) var(--ease-out);
}

.modal.is-open .quickview {
	transform: scale(1);
}

.quickview__close {
	position: absolute;
	top: var(--s-4);
	right: var(--s-4);
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--s-2);
	color: var(--c-ink);
	z-index: 5;
}

.quickview__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.quickview__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.quickview__body {
	padding: var(--s-7);
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
}

.quickview__title {
	font-size: 56px;
	margin: 0;
}

.quickview__price {
	font-size: 32px;
}

.quickview__more {
	margin-top: var(--s-3);
}

@media (max-width: 768px) {
	.quickview__inner {
		grid-template-columns: 1fr;
	}
	.quickview__title {
		font-size: 40px;
	}
}

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

.site-footer {
	background: var(--c-ink);
	color: var(--c-bg-cream);
	padding: var(--s-10) 0 var(--s-6);
}

.has-dark-footer .site-footer {
	background: var(--c-ink);
	color: var(--c-bg-cream);
}

body:not(.has-dark-footer) .site-footer {
	background: var(--c-bg-soft);
	color: var(--c-ink);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: var(--s-8);
	margin-bottom: var(--s-8);
}

.site-footer__brand .site-footer__headline {
	font-family: var(--f-serif);
	font-style: italic;
	font-size: 40px;
	letter-spacing: -0.02em;
	line-height: 1.05;
	margin: 0 0 var(--s-5);
	color: inherit;
	white-space: pre-line;
}

.site-footer__brand p {
	font-size: 14px;
	opacity: 0.7;
	max-width: 380px;
	line-height: 1.6;
	margin: 0;
}

.site-footer .widget-title,
.site-footer .eyebrow {
	color: rgba(245, 239, 230, 0.5);
	margin-bottom: var(--s-4);
}

body:not(.has-dark-footer) .site-footer .widget-title,
body:not(.has-dark-footer) .site-footer .eyebrow {
	color: var(--c-muted);
}

.site-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
}

.site-footer a {
	color: inherit;
	opacity: 0.85;
}

.site-footer a:hover {
	color: var(--c-bg-cream);
	opacity: 1;
}

.site-footer__bottom {
	padding-top: var(--s-6);
	border-top: 1px solid rgba(245, 239, 230, 0.15);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--s-4);
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(245, 239, 230, 0.55);
}

body:not(.has-dark-footer) .site-footer__bottom {
	border-top-color: var(--c-line);
	color: var(--c-muted);
}

.site-footer__social {
	display: flex;
	gap: var(--s-3);
}

.site-footer__social a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(245, 239, 230, 0.2);
}

@media (max-width: 1024px) {
	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.site-footer__grid {
		grid-template-columns: 1fr;
	}
	.site-footer__bottom {
		flex-direction: column;
	}
}

/* ---------------------------------------------------------------------
   Breadcrumbs & Pagination
   --------------------------------------------------------------------- */

.breadcrumbs {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	padding: var(--s-5) 0;
	flex-wrap: wrap;
}

.breadcrumbs__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--s-2);
	flex-wrap: wrap;
	align-items: center;
}

.breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
}

.breadcrumbs__sep {
	color: var(--c-line);
}

.creative3decor-pagination,
.woocommerce-pagination {
	padding: var(--s-8) 0;
	text-align: center;
}

.creative3decor-pagination .nav-links,
.woocommerce-pagination .page-numbers {
	display: inline-flex;
	gap: var(--s-2);
	list-style: none;
	padding: 0;
	margin: 0;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 var(--s-3);
	border: 1px solid var(--c-line);
	border-radius: var(--r-sm);
	font-family: var(--f-mono);
	font-size: 12px;
	color: var(--c-ink);
}

.page-numbers.current {
	background: var(--c-ink);
	color: var(--c-bg-cream);
	border-color: var(--c-ink);
}

.page-numbers:hover {
	color: var(--c-terracotta);
	border-color: var(--c-ink);
}

/* ---------------------------------------------------------------------
   Post / archive cards
   --------------------------------------------------------------------- */

.post-card {
	display: block;
}

.post-card__thumb {
	display: block;
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	margin-bottom: var(--s-4);
	background: var(--c-bg-soft);
}

.post-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slow) var(--ease-out);
}

.post-card:hover .post-card__thumb img {
	transform: scale(1.04);
}

.post-card__title {
	font-family: var(--f-serif);
	font-size: 28px;
	margin: 0 0 var(--s-2);
	letter-spacing: -0.015em;
}

.post-card__title a:hover {
	color: var(--c-terracotta);
}

.post-card__excerpt {
	font-size: 14px;
	color: var(--c-ink-soft);
	margin-bottom: var(--s-2);
}

.post-meta {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	flex-wrap: wrap;
}

.post-meta__sep {
	opacity: 0.5;
}

/* ---------------------------------------------------------------------
   Page header (archive, search, single page)
   ---------------------------------------------------------------------- */

.page-header {
	margin-bottom: var(--s-7);
}

.page-header .eyebrow {
	margin-bottom: var(--s-4);
}

.page-header .page-title,
.page-header h1 {
	font-family: var(--f-serif);
	font-style: italic;
	font-size: clamp(48px, 8vw, 96px);
	margin: 0;
	letter-spacing: -0.02em;
	line-height: 0.95;
}

.page-header .archive-description {
	max-width: 600px;
	margin-top: var(--s-4);
	font-size: 18px;
	color: var(--c-ink-soft);
}

/* Single post / page header */
.entry-header {
	margin-bottom: var(--s-7);
}

.entry-content > p:first-of-type {
	font-size: 20px;
	color: var(--c-ink-soft);
	line-height: 1.55;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
	font-family: var(--f-serif);
	letter-spacing: -0.015em;
}

.entry-content h2 {
	font-size: 40px;
}

.entry-content h3 {
	font-size: 30px;
}

.entry-content blockquote {
	border-left: 2px solid var(--c-terracotta);
	padding-left: var(--s-5);
	margin: var(--s-6) 0;
	font-family: var(--f-serif);
	font-style: italic;
	font-size: 24px;
	line-height: 1.4;
}

.entry-footer {
	margin-top: var(--s-7);
	padding-top: var(--s-5);
	border-top: 1px solid var(--c-line);
	display: flex;
	gap: var(--s-3);
	flex-wrap: wrap;
	align-items: center;
}

.post-thumbnail {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	margin-bottom: var(--s-7);
}

.post-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-navigation {
	margin-top: var(--s-8);
	padding-top: var(--s-6);
	border-top: 1px solid var(--c-line);
}

.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--s-6);
}

.post-navigation a {
	display: flex;
	flex-direction: column;
	gap: var(--s-2);
}

.post-navigation .nav-next {
	text-align: right;
	align-items: flex-end;
}

/* ---------------------------------------------------------------------
   Comments
   --------------------------------------------------------------------- */

.comments-area {
	margin-top: var(--s-9);
	padding-top: var(--s-7);
	border-top: 1px solid var(--c-line);
}

.comments-title {
	font-family: var(--f-serif);
	font-size: 40px;
	margin: 0 0 var(--s-6);
}

.comment-list {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--s-7);
}

.comment-body {
	padding: var(--s-5) 0;
	border-bottom: 1px solid var(--c-line);
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: var(--s-4);
}

.comment-author .avatar {
	border-radius: 50%;
}

.comment-meta {
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: var(--s-2);
}

.comment-content {
	font-size: 16px;
	line-height: 1.6;
}

.comment-respond {
	margin-top: var(--s-7);
}

.comment-form {
	display: grid;
	gap: var(--s-4);
}

.comment-form-author,
.comment-form-email,
.comment-form-url {
	display: flex;
	flex-direction: column;
}

.comment-form-comment textarea {
	min-height: 140px;
}

/* ---------------------------------------------------------------------
   Sidebar / widgets
   --------------------------------------------------------------------- */

.site-sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--s-6);
}

.widget {
	padding-bottom: var(--s-5);
	border-bottom: 1px solid var(--c-line);
}

.widget:last-child {
	border-bottom: 0;
}

.widget-title {
	margin-bottom: var(--s-4);
}

.widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--s-2);
}

.widget li {
	font-size: 14px;
}

.widget li a:hover {
	color: var(--c-terracotta);
}

/* Newsletter widget */
.newsletter-widget__form {
	display: flex;
	gap: var(--s-2);
	flex-wrap: wrap;
}

.newsletter-widget__input {
	flex: 1;
	min-width: 0;
}

.newsletter-widget__submit {
	border: none;
	background: var(--c-ink);
	color: var(--c-bg-cream);
	padding: 14px 20px;
	border-radius: var(--r-pill);
	font-family: var(--f-sans);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.has-dark-footer .newsletter-widget__input {
	border-color: rgba(245, 239, 230, 0.25);
	color: var(--c-bg-cream);
}

.has-dark-footer .newsletter-widget__submit {
	background: var(--c-bg-cream);
	color: var(--c-ink);
}

/* Featured products widget */
.featured-products-widget__list {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
}

.featured-products-widget__link {
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: var(--s-3);
	color: var(--c-ink);
}

.featured-products-widget__thumb img {
	width: 60px;
	height: 75px;
	object-fit: cover;
}

.featured-products-widget__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 14px;
}

.featured-products-widget__price {
	font-family: var(--f-mono);
	font-size: 12px;
	color: var(--c-muted);
}

/* ---------------------------------------------------------------------
   Marquee / hero / sections (used by template parts and Elementor)
   --------------------------------------------------------------------- */

.hero {
	position: relative;
	min-height: 720px;
	overflow: hidden;
	color: var(--c-bg-cream);
}

.hero__media {
	position: absolute;
	inset: 0;
}

.hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, rgba(31, 26, 20, 0.78) 0%, rgba(31, 26, 20, 0.45) 32%, rgba(31, 26, 20, 0) 60%);
}

.hero__inner {
	position: relative;
	z-index: 2;
	padding: var(--s-7) var(--container-pad);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: inherit;
}

.hero__headline {
	font-family: var(--f-serif);
	font-style: italic;
	font-size: clamp(56px, 10vw, 132px);
	line-height: 0.92;
	color: var(--c-bg-cream);
	margin: 0;
}

/* Editorial split section */
.split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 720px;
}

.split__copy {
	padding: var(--s-10) var(--s-9);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.split__media {
	overflow: hidden;
}

.split__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 768px) {
	.split {
		grid-template-columns: 1fr;
	}
	.split__copy {
		padding: var(--s-7);
	}
}

/* ---------------------------------------------------------------------
   404
   --------------------------------------------------------------------- */

.error-404 {
	text-align: center;
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--s-5);
	padding: var(--s-10) var(--container-pad);
}

.error-404__title {
	font-family: var(--f-serif);
	font-style: italic;
	font-size: clamp(80px, 18vw, 160px);
	line-height: 0.92;
	margin: 0;
}

.error-404__copy {
	max-width: 480px;
	margin: 0;
	color: var(--c-ink-soft);
}

/* ---------------------------------------------------------------------
   Block editor alignments / colors
   --------------------------------------------------------------------- */

.has-bg-color { background: var(--c-bg) !important; }
.has-bg-soft-color { background: var(--c-bg-soft) !important; }
.has-cream-color { background: var(--c-bg-cream) !important; }
.has-paper-color { background: var(--c-paper) !important; }
.has-ink-color { color: var(--c-ink) !important; }
.has-terracotta-color { color: var(--c-terracotta) !important; }
.has-olive-color { color: var(--c-olive) !important; }
.has-ochre-color { color: var(--c-ochre) !important; }

.has-ink-background-color { background: var(--c-ink); }
.has-terracotta-background-color { background: var(--c-terracotta); color: var(--c-bg-cream); }
.has-olive-background-color { background: var(--c-olive); color: var(--c-bg-cream); }
.has-ochre-background-color { background: var(--c-ochre); }
.has-cream-background-color { background: var(--c-bg-cream); }

/* Editorial quote style */
.is-style-editorial {
	border: none;
	padding: 0;
	font-family: var(--f-serif);
	font-style: italic;
	font-size: 32px;
	line-height: 1.3;
	max-width: 800px;
	margin: var(--s-7) auto;
	text-align: center;
}
