/*
Theme Name: The Outfit Loft
Theme URI: https://theoutfitloft.com/
Author: The Outfit Loft
Author URI: https://theoutfitloft.com/
Description: A clean, modern fashion, apparel and lifestyle blog theme. Independent digital publication layout with editorial hero, four category sections, brand marquee, sticky article sidebar and newsletter capture. Vanilla CSS, no frameworks, no build tools.
Version: 1.1.18
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: theoutfitloft
Domain Path: /languages
Tags: blog, fashion, lifestyle, one-column, two-columns, right-sidebar, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   GOOGLE FONTS
   The React source loads these in index.html, so they are reproduced here
   character-for-character (same families, same weights, same italic axis).
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');

/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */
:root {
	/* Brand palette (src/index.css @theme) */
	--brand-terracotta: #C26750;
	--brand-terracotta-dark: #A8533D;
	--brand-espresso: #1E1B18;
	--brand-linen: #FAF7F2;
	--brand-sand: #F4EFEA;
	--brand-blush: #F9F0ED;

	/* Derived surfaces / borders used throughout the markup */
	--brand-border: #E8E1D8;
	--brand-border-soft: #F4EFEA;

	/* Footer palette */
	--footer-bg: #1E1B18;
	--footer-border-top: #2D2825;
	--footer-divider: #352F2B;
	--footer-surface: #282320;
	--footer-surface-border: #3A332E;

	/* Newsletter panel */
	--newsletter-from: #1E1B18;
	--newsletter-to: #2B2420;
	--newsletter-border: #3A322D;

	/* Accents */
	--trustpilot-green: #00B67A;
	--success-green: #059669;
	--error-red: #DC2626;
	--error-red-soft: #FEF2F2;

	/* Espresso alpha ramp (Tailwind text-[#1E1B18]/xx) */
	--espresso-85: rgba(30, 27, 24, 0.85);
	--espresso-80: rgba(30, 27, 24, 0.80);
	--espresso-75: rgba(30, 27, 24, 0.75);
	--espresso-70: rgba(30, 27, 24, 0.70);
	--espresso-60: rgba(30, 27, 24, 0.60);
	--espresso-50: rgba(30, 27, 24, 0.50);
	--espresso-40: rgba(30, 27, 24, 0.40);
	--espresso-30: rgba(30, 27, 24, 0.30);

	/* Linen alpha ramp (footer text-[#FAF7F2]/xx) */
	--linen-80: rgba(250, 247, 242, 0.80);
	--linen-75: rgba(250, 247, 242, 0.75);
	--linen-70: rgba(250, 247, 242, 0.70);
	--linen-60: rgba(250, 247, 242, 0.60);
	--linen-50: rgba(250, 247, 242, 0.50);

	/* Terracotta alpha ramp */
	--terracotta-30: rgba(194, 103, 80, 0.30);
	--terracotta-20: rgba(194, 103, 80, 0.20);
	--terracotta-15: rgba(194, 103, 80, 0.15);
	--terracotta-10: rgba(194, 103, 80, 0.10);

	/* Typography */
	--font-serif: "Cormorant Garamond", Georgia, serif;
	--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
	--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

	--fw-light: 300;
	--fw-normal: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;

	/* Type scale */
	--fs-9: 0.5625rem;
	--fs-10: 0.625rem;
	--fs-11: 0.6875rem;
	--fs-xs: 0.75rem;
	--fs-sm: 0.875rem;
	--fs-base: 1rem;
	--fs-lg: 1.125rem;
	--fs-xl: 1.25rem;
	--fs-2xl: 1.5rem;
	--fs-3xl: 1.875rem;
	--fs-4xl: 2.25rem;
	--fs-5xl: 3rem;

	/* Radii */
	--radius-xs: 0.125rem;
	--radius-sm: 0.25rem;
	--radius-md: 0.375rem;
	--radius-lg: 0.5rem;
	--radius-xl: 0.75rem;
	--radius-2xl: 1rem;
	--radius-3xl: 1.5rem;
	--radius-full: 9999px;

	/* Shadows */
	--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
	--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);

	/* Layout */
	--container-7xl: 80rem;
	--container-6xl: 72rem;
	--container-5xl: 64rem;
	--container-4xl: 56rem;
	--container-3xl: 48rem;
	--container-2xl: 42rem;
	--container-lg: 32rem;
	--container-md: 28rem;
	--container-sm: 24rem;

	--gutter: 1rem;
	--header-height: 5rem;

	/* Motion */
	--ease-out: cubic-bezier(0, 0, 0.2, 1);
	--transition-fast: 150ms;
	--transition-base: 200ms;
	--transition-slow: 300ms;
}

/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

* {
	margin: 0;
	padding: 0;
	border: 0 solid var(--brand-border);
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	tab-size: 4;
}

body {
	overflow-x: hidden;
	overflow-x: clip;
	background-color: var(--brand-linen);
	color: var(--brand-espresso);
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	font-weight: var(--fw-normal);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.site-wrapper {
	overflow-x: hidden;
	overflow-x: clip;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

#page-content {
	overflow-x: hidden;
	overflow-x: clip;
	flex-grow: 1;
}

::selection {
	background-color: var(--terracotta-20);
	color: var(--brand-terracotta);
}

body.iv-no-scroll {
	overflow: hidden;
}

img,
svg,
video,
canvas,
iframe {
	display: block;
	max-width: 100%;
	height: auto;
}

svg {
	flex-shrink: 0;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
	background: transparent;
}

button {
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

ul,
ol {
	list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: inherit;
	font-weight: inherit;
}

blockquote,
figure {
	margin: 0;
}

strong,
b {
	font-weight: var(--fw-bold);
}

hr {
	border-top: 1px solid var(--brand-border);
}

table {
	border-collapse: collapse;
	width: 100%;
}

/* ==========================================================================
   3. SHARED UTILITIES
   ========================================================================== */
.iv-container {
	width: 100%;
	max-width: var(--container-7xl);
	margin-inline: auto;
	padding-inline: 1rem;
}

.iv-container--6xl { max-width: var(--container-6xl); }
.iv-container--5xl { max-width: var(--container-5xl); }
.iv-container--4xl { max-width: var(--container-4xl); }

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

.skip-link {
	position: absolute;
	top: -100px;
	left: 1rem;
	z-index: 100;
	padding: 0.75rem 1.25rem;
	border-radius: var(--radius-lg);
	background-color: var(--brand-espresso);
	color: var(--brand-linen);
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	transition: top var(--transition-base) var(--ease-out);
}

.skip-link:focus {
	top: 1rem;
}

/* Focus visibility that does not alter the source's resting appearance */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--brand-terracotta);
	outline-offset: 2px;
}

/* Line clamping (Tailwind line-clamp-N) */
.iv-clamp-2,
.iv-clamp-3 {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.iv-clamp-2 { -webkit-line-clamp: 2; line-clamp: 2; }
.iv-clamp-3 { -webkit-line-clamp: 3; line-clamp: 3; }

/* Eyebrow pill badge — must never stretch to container width */
.page-eyebrow {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	background-color: var(--terracotta-15);
	color: var(--brand-terracotta);
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1rem;
}

.page-eyebrow .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
}

/* Icon sizing helpers */
.iv-icon {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	vertical-align: middle;
}

.iv-icon--xs { width: 0.625rem; height: 0.625rem; }
.iv-icon--sm { width: 0.75rem; height: 0.75rem; }
.iv-icon--14 { width: 0.875rem; height: 0.875rem; }
.iv-icon--md { width: 1rem; height: 1rem; }
.iv-icon--lg { width: 1.25rem; height: 1.25rem; }
.iv-icon--xl { width: 1.5rem; height: 1.5rem; }
.iv-icon--fill { fill: currentColor; stroke: none; }

/* ==========================================================================
   4. SITE HEADER
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background-color: rgba(250, 247, 242, 0.95);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--brand-border);
}

.site-header__bar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	column-gap: 0.75rem;
	height: var(--header-height);
}

.site-header__left {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	justify-self: start;
	min-width: 0;
}

.mobile-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem;
	border-radius: var(--radius-lg);
	color: var(--brand-espresso);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.mobile-menu-toggle:hover {
	background-color: var(--brand-sand);
}

.mobile-menu-toggle .iv-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.mobile-menu-toggle__close { display: none; }
.mobile-menu-toggle.is-open .mobile-menu-toggle__open { display: none; }
.mobile-menu-toggle.is-open .mobile-menu-toggle__close { display: block; }

.primary-nav {
	display: none;
	align-items: center;
	gap: 1.5rem;
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
	letter-spacing: 0.025em;
	line-height: 1.25rem;
}

.primary-nav a {
	display: inline-block;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
	color: var(--espresso-80);
	border-bottom: 2px solid transparent;
	transition: color var(--transition-fast) var(--ease-out);
}

.primary-nav a:hover {
	color: var(--brand-terracotta);
}

.primary-nav a.is-active {
	color: var(--brand-terracotta);
	font-weight: var(--fw-semibold);
	border-bottom-color: var(--brand-terracotta);
}

/* Brand lockup — centre column so the logo stays centred as actions grow */
.site-header__brand {
	display: flex;
	justify-content: center;
	justify-self: center;
}

.site-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}

.site-brand__name {
	display: block;
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	letter-spacing: -0.025em;
	line-height: 1.5rem;
	color: var(--brand-espresso);
	transition: color var(--transition-fast) var(--ease-out);
}

.site-brand:hover .site-brand__name {
	color: var(--brand-terracotta);
}

.site-brand__tagline {
	display: block;
	font-family: var(--font-sans);
	font-size: 0.5625rem;
	font-weight: var(--fw-medium);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--espresso-60);
	line-height: 1.3;
	white-space: nowrap;
}

.site-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	justify-self: end;
	gap: 0.75rem;
	min-width: 0;
}

.search-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0.5rem;
	border-radius: var(--radius-full);
	color: var(--brand-espresso);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.search-toggle:hover {
	background-color: var(--brand-sand);
}

.search-toggle .iv-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--brand-espresso);
	transition: color var(--transition-fast) var(--ease-out);
}

.search-toggle:hover .iv-icon {
	color: var(--brand-terracotta);
}

.btn-subscribe-header {
	display: none;
	align-items: center;
	gap: 0.375rem;
	padding: 0.625rem 1rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	line-height: 1rem;
	box-shadow: var(--shadow-sm);
	transition: background-color var(--transition-base) var(--ease-out),
		box-shadow var(--transition-base) var(--ease-out),
		transform var(--transition-base) var(--ease-out);
}

.btn-subscribe-header:hover {
	background-color: var(--brand-terracotta-dark);
	box-shadow: var(--shadow-base);
}

.btn-subscribe-header:active {
	transform: scale(0.98);
}

.btn-subscribe-header .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
}

/* Language switcher — header on all sizes (right of the logo on mobile) */
.site-header__actions .iv-lang-switcher {
	display: inline-flex;
}

.iv-lang-switcher {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.iv-lang-switcher__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.25rem 0.5rem;
	border: 0;
	border-radius: var(--radius-full);
	background: transparent;
	color: var(--espresso-80);
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
	letter-spacing: 0.025em;
	line-height: 1.25rem;
	cursor: pointer;
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out);
}

.iv-lang-switcher__toggle:hover,
.iv-lang-switcher.is-open .iv-lang-switcher__toggle {
	color: var(--brand-terracotta);
	background-color: var(--brand-sand);
}

.iv-lang-switcher__flag {
	display: inline-flex;
	width: 1.125rem;
	height: 0.75rem;
	border-radius: 2px;
	overflow: hidden;
	flex-shrink: 0;
	box-shadow: 0 0 0 1px rgba(30, 27, 24, 0.1);
}

.iv-lang-switcher__flag svg {
	display: block;
	width: 100%;
	height: 100%;
}

.iv-lang-switcher__chevron {
	width: 0.75rem;
	height: 0.75rem;
	transition: transform var(--transition-fast) var(--ease-out);
}

.iv-lang-switcher.is-open .iv-lang-switcher__chevron {
	transform: rotate(180deg);
}

.iv-lang-switcher__current {
	max-width: 7.5rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.iv-lang-switcher__menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	z-index: 50;
	min-width: 11.5rem;
	padding: 0.375rem;
	border-radius: var(--radius-xl);
	border: 1px solid var(--brand-border);
	background-color: #fff;
	box-shadow: var(--shadow-lg);
}

.iv-lang-switcher__menu[hidden] {
	display: none;
}

.iv-lang-switcher__item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.5rem 0.75rem;
	border-radius: var(--radius-lg);
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
	line-height: 1.25rem;
	color: var(--espresso-80);
	text-align: left;
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out);
}

.iv-lang-switcher__item:hover {
	color: var(--brand-terracotta);
	background-color: var(--brand-sand);
}

.iv-lang-switcher__item.is-current {
	color: var(--brand-terracotta);
	font-weight: var(--fw-semibold);
	background-color: var(--terracotta-10);
}

@media (max-width: 767px) {
	.site-header__actions .iv-lang-switcher__toggle {
		padding: 0.375rem;
		gap: 0.25rem;
	}

	.site-header__actions .iv-lang-switcher__current {
		display: none;
	}
}

/* Mobile drawer */
.mobile-drawer {
	display: none;
	border-top: 1px solid var(--brand-border);
	background-color: var(--brand-linen);
	padding: 0.75rem 1rem 1.5rem;
}

.mobile-drawer.is-open {
	display: block;
}

.mobile-drawer > * + * {
	margin-top: 0.75rem;
}

.mobile-search-trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.625rem 0.75rem;
	border-radius: var(--radius-xl);
	background-color: #fff;
	border: 1px solid var(--brand-border);
	font-size: var(--fs-sm);
	line-height: 1.25rem;
	color: var(--espresso-70);
	box-shadow: var(--shadow-xs);
	transition: color var(--transition-fast) var(--ease-out);
}

.mobile-search-trigger:hover {
	color: var(--brand-espresso);
}

.mobile-search-trigger__label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.mobile-search-trigger__label .iv-icon {
	width: 1rem;
	height: 1rem;
	color: var(--brand-terracotta);
}

.mobile-search-trigger__hint {
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	color: var(--brand-terracotta);
}

.mobile-drawer__group > * + * {
	margin-top: 0.25rem;
}

.mobile-drawer__heading {
	padding: 0.5rem 0.75rem 0.25rem;
	font-size: var(--fs-11);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--espresso-50);
}

.mobile-drawer__home {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0.625rem 0.75rem;
	border-radius: var(--radius-lg);
	color: var(--brand-espresso);
	font-weight: var(--fw-medium);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.mobile-drawer__home:hover {
	background-color: var(--brand-sand);
}

.mobile-drawer__cats a {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	text-align: left;
	padding: 0.5rem 0.75rem;
	border-radius: var(--radius-lg);
	font-size: var(--fs-sm);
	line-height: 1.25rem;
	color: var(--brand-espresso);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.mobile-drawer__cats a:hover {
	background-color: var(--brand-sand);
}

.mobile-drawer__cats a .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
	color: var(--brand-terracotta);
}

.mobile-drawer__pages a {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0.5rem 0.75rem;
	border-radius: var(--radius-lg);
	font-size: var(--fs-sm);
	line-height: 1.25rem;
	color: var(--brand-espresso);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.mobile-drawer__pages a:hover {
	background-color: var(--brand-sand);
}

.mobile-drawer__pages a.is-muted {
	color: var(--espresso-70);
}

.mobile-drawer__footer {
	padding-top: 0.75rem;
	border-top: 1px solid var(--brand-border);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.mobile-drawer__subscribe {
	width: 100%;
	padding-block: 0.625rem;
	border-radius: var(--radius-lg);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-weight: var(--fw-medium);
	text-align: center;
	font-size: var(--fs-sm);
	line-height: 1.25rem;
}

/* ==========================================================================
   5. SITE FOOTER
   ========================================================================== */
.site-footer {
	background-color: var(--footer-bg);
	color: var(--brand-linen);
	border-top: 1px solid var(--footer-border-top);
	padding-top: 4rem;
	padding-bottom: 3rem;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding-bottom: 3.5rem;
	border-bottom: 1px solid var(--footer-divider);
}

.footer-col--brand > * + * { margin-top: 1.25rem; }
.footer-col--links > * + * { margin-top: 1rem; }
.footer-col--trust > * + * { margin-top: 1.25rem; }

.footer-brand {
	display: inline-block;
	text-align: left;
	cursor: pointer;
}

.footer-brand__name {
	display: block;
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	letter-spacing: -0.025em;
	line-height: 2.25rem;
	color: #fff;
	transition: color var(--transition-fast) var(--ease-out);
}

.footer-brand:hover .footer-brand__name {
	color: var(--brand-terracotta);
}

.footer-brand__tagline {
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--linen-60);
	margin-top: 0.125rem;
	transition: color var(--transition-fast) var(--ease-out);
}

.footer-brand:hover .footer-brand__tagline {
	color: var(--linen-80);
}

.footer-description {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	line-height: 1.625;
	color: var(--linen-75);
	max-width: var(--container-sm);
}

.footer-label {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--linen-50);
	line-height: 1rem;
}

.footer-social {
	padding-top: 0.25rem;
}

.footer-social .footer-label {
	margin-bottom: 0.75rem;
}

.footer-social__row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.footer-social__link {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--radius-full);
	background-color: var(--footer-surface);
	border: 1px solid var(--footer-surface-border);
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: auto;
	color: var(--linen-80);
	transition: color var(--transition-slow) var(--ease-out),
		background-color var(--transition-slow) var(--ease-out),
		border-color var(--transition-slow) var(--ease-out),
		transform var(--transition-slow) var(--ease-out);
}

a.footer-social__link {
	cursor: pointer;
}

.footer-social__link[href]:hover {
	color: #fff;
	background-color: var(--brand-terracotta);
	border-color: var(--brand-terracotta);
	transform: translateY(-0.125rem);
}

.footer-social__link svg {
	width: 1rem;
	height: 1rem;
	fill: currentColor;
}

.footer-col__title {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--linen-50);
	line-height: 1rem;
}

/* Flat-anchor footer menus (walker emits <a> only) */
.footer-menu {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	font-size: var(--fs-sm);
	line-height: 1.25rem;
}

.footer-menu a {
	color: var(--linen-75);
	transition: color var(--transition-fast) var(--ease-out);
}

.footer-menu a:hover {
	color: var(--brand-terracotta);
}

.footer-menu--sections a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	align-self: flex-start;
}

.footer-menu--sections a::before {
	content: '';
	width: 0.25rem;
	height: 0.25rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	opacity: 0;
	transition: opacity var(--transition-fast) var(--ease-out);
}

.footer-menu--sections a:hover::before {
	opacity: 1;
}

/* Trustpilot widget — always rendered, non-clickable until a URL is set */
.footer-trust > * + * { margin-top: 0.625rem; }

.footer-trustpilot {
	background-color: var(--footer-surface);
	border: 1px solid var(--footer-surface-border);
	border-radius: var(--radius-xl);
	padding: 0.75rem 1rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	transition: border-color var(--transition-base) var(--ease-out);
}

a.footer-trustpilot:hover {
	border-color: var(--brand-terracotta);
}

.footer-trustpilot__brand {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.footer-trustpilot__mark {
	width: 1.25rem;
	height: 1.25rem;
	background-color: var(--trustpilot-green);
	border-radius: var(--radius-xs);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}

.footer-trustpilot__mark svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: #fff;
}

.footer-trustpilot__name {
	color: #fff;
	font-weight: var(--fw-bold);
	font-size: var(--fs-sm);
	letter-spacing: -0.025em;
	line-height: 1.25rem;
}

.footer-trustpilot__stars {
	display: flex;
	align-items: center;
	gap: 0.125rem;
}

.footer-trustpilot__star {
	background-color: var(--trustpilot-green);
	padding: 0.25rem;
	border-radius: var(--radius-xs);
	display: flex;
	align-items: center;
	justify-content: center;
}

.footer-trustpilot__star svg {
	width: 0.625rem;
	height: 0.625rem;
	fill: #fff;
	color: #fff;
}

/* App download badges */
.footer-app {
	padding-top: 0.25rem;
}

.footer-app > * + * { margin-top: 0.625rem; }

.footer-app__text {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	line-height: 1.625;
	color: var(--linen-70);
}

.footer-app__badges {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: max-content;
	max-width: 100%;
	gap: 0.625rem;
	padding-top: 0.25rem;
}

.app-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.5rem 0.875rem;
	border-radius: var(--radius-xl);
	background-color: #000;
	border: 1px solid var(--footer-surface-border);
	color: #fff;
	transition: border-color var(--transition-slow) var(--ease-out);
}

.app-badge:hover {
	border-color: var(--brand-terracotta);
}

.app-badge__icon {
	flex-shrink: 0;
}

.app-badge--apple .app-badge__icon {
	width: 1.5rem;
	height: 1.5rem;
	fill: #fff;
}

.app-badge--google .app-badge__icon {
	width: 1.25rem;
	height: 1.25rem;
}

.app-badge__text {
	text-align: left;
	line-height: 1;
}

.app-badge__small {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-9);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--linen-60);
}

.app-badge__large {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	letter-spacing: -0.025em;
	color: #fff;
	transition: color var(--transition-fast) var(--ease-out);
}

.app-badge:hover .app-badge__large {
	color: var(--brand-terracotta);
}

.site-footer__bottom {
	padding-top: 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: var(--fs-xs);
	line-height: 1rem;
	color: var(--linen-50);
}

.site-footer__bottom .footer-domain {
	color: var(--linen-80);
	font-weight: var(--fw-medium);
}

/* ==========================================================================
   6. HOMEPAGE — CATEGORY FILTER BANNER
   ========================================================================== */
.home-root > * + * {
	margin-top: 4rem;
}

.home-root {
	padding-bottom: 4rem;
}

.category-filter-banner {
	background-color: var(--terracotta-10);
	border-bottom: 1px solid var(--terracotta-30);
	padding: 0.75rem 1rem;
	margin-top: 0 !important;
}

.category-filter-banner__inner {
	max-width: var(--container-7xl);
	margin-inline: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.category-filter-banner__label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--fs-sm);
	line-height: 1.25rem;
	color: var(--brand-espresso);
}

.category-filter-banner__label > span:first-child {
	font-weight: var(--fw-semibold);
}

.category-filter-banner__chip {
	background-color: var(--brand-terracotta);
	color: #fff;
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-full);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	line-height: 1rem;
}

.category-filter-banner__clear {
	font-size: var(--fs-xs);
	color: var(--brand-terracotta);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
}

.category-filter-banner__clear:hover {
	text-decoration: underline;
}

/* ==========================================================================
   7. HOMEPAGE — HERO SPOTLIGHT
   ========================================================================== */
.hero-spotlight {
	padding-top: 2rem;
}

.hero-spotlight__card {
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	transition: box-shadow var(--transition-slow) var(--ease-out);
}

.hero-spotlight__card:hover {
	box-shadow: var(--shadow-md);
}

.hero-spotlight__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: center;
}

.hero-spotlight__body {
	padding: 2rem;
}

.hero-spotlight__body > * + * {
	margin-top: 1.5rem;
}

.hero-spotlight__meta {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.hero-spotlight__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	background-color: var(--terracotta-15);
	color: var(--brand-terracotta);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1rem;
}

.hero-spotlight__badge .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
}

.hero-spotlight__dot {
	font-size: var(--fs-xs);
	color: var(--espresso-50);
	line-height: 1rem;
}

.hero-spotlight__kicker {
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	font-weight: var(--fw-medium);
	line-height: 1rem;
}

.hero-spotlight__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.12;
	transition: color var(--transition-fast) var(--ease-out);
}

.hero-spotlight__title a {
	cursor: pointer;
}

.hero-spotlight__title a:hover {
	color: var(--brand-terracotta);
}

.hero-spotlight__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	color: var(--espresso-75);
	line-height: 1.625;
	max-width: var(--container-2xl);
}

.hero-spotlight__author {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--brand-border-soft);
}

.hero-spotlight__author-inner {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.hero-spotlight__avatar {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--radius-full);
	object-fit: cover;
	box-shadow: 0 0 0 2px var(--terracotta-20);
}

.hero-spotlight__author-name {
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1rem;
}

.hero-spotlight__author-role {
	font-size: var(--fs-11);
	color: var(--espresso-60);
	line-height: 1.25;
}

.btn-hero-read {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-espresso);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	box-shadow: var(--shadow-xs);
	transition: background-color var(--transition-fast) var(--ease-out),
		transform var(--transition-fast) var(--ease-out);
}

.btn-hero-read:hover {
	background-color: var(--brand-terracotta);
}

.btn-hero-read:active {
	transform: scale(0.98);
}

.hero-spotlight__figure {
	position: relative;
	height: 18rem;
	overflow: hidden;
	cursor: pointer;
	display: block;
}

.hero-spotlight__figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}

.hero-spotlight__figure:hover img {
	transform: scale(1.05);
}

.hero-spotlight__figure-scrim {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent 50%, transparent);
	pointer-events: none;
}

.hero-spotlight__note {
	display: none;
	position: absolute;
	bottom: 1rem;
	left: 1rem;
	right: 1rem;
	background-color: rgba(255, 255, 255, 0.9);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: var(--radius-xl);
	padding: 0.75rem;
	font-size: var(--fs-xs);
	line-height: 1rem;
	color: var(--brand-espresso);
}

.hero-spotlight__note strong {
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
}

/* ==========================================================================
   8. BRAND LOGO MARQUEE
   ========================================================================== */
.logo-slider {
	padding-block: 3rem;
	background-color: var(--brand-sand);
	border-top: 1px solid var(--brand-border);
	border-bottom: 1px solid var(--brand-border);
	overflow: hidden;
}

.logo-slider__head {
	margin-bottom: 1.5rem;
}

.logo-slider__head-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.logo-slider__title-wrap {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.logo-slider__dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
}

.logo-slider__title {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--espresso-70);
	line-height: 1rem;
}

@media (max-width: 767px) {
	.logo-slider__head-inner,
	.logo-slider__title-wrap {
		justify-content: center;
	}

	.logo-slider__title {
		text-align: center;
	}
}

.logo-slider__viewport {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.logo-slider__fade {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 4rem;
	z-index: 10;
	pointer-events: none;
}

.logo-slider__fade--left {
	left: 0;
	background-image: linear-gradient(to right, var(--brand-sand), transparent);
}

.logo-slider__fade--right {
	right: 0;
	background-image: linear-gradient(to left, var(--brand-sand), transparent);
}

@keyframes iv-marquee {
	0% { transform: translateX(0%); }
	100% { transform: translateX(-50%); }
}

.logo-slider__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: 3rem;
	padding-block: 0.5rem;
	animation: iv-marquee 30s linear infinite;
}

.logo-slider__track:hover {
	animation-play-state: paused;
}

.logo-slider__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 130px;
	opacity: 0.7;
	cursor: default;
	-webkit-user-select: none;
	user-select: none;
	transition: opacity var(--transition-slow) var(--ease-out);
}

.logo-slider__item:hover {
	opacity: 1;
}

.logo-slider__brand {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	letter-spacing: 0.25em;
	color: var(--brand-espresso);
	line-height: 1.75rem;
	transition: color var(--transition-fast) var(--ease-out);
}

.logo-slider__item:hover .logo-slider__brand {
	color: var(--brand-terracotta);
}

.logo-slider__tagline {
	font-family: var(--font-sans);
	font-size: var(--fs-9);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--espresso-50);
	margin-top: 0.125rem;
}

@media (prefers-reduced-motion: reduce) {
	.logo-slider__track {
		animation: none;
	}
}

/* ==========================================================================
   9. SECTION HEADINGS (shared by the 4 category sections)
   ========================================================================== */
.section-head {
	border-bottom: 2px solid var(--brand-espresso);
	padding-bottom: 1rem;
	margin-bottom: 2rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.75rem;
}

.section-head__eyebrow {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	font-weight: var(--fw-bold);
	color: var(--brand-terracotta);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	line-height: 1.25;
}

.section-head__title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	letter-spacing: -0.025em;
	line-height: 2rem;
	margin-top: 0.125rem;
}

.section-head__link {
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	line-height: 1rem;
	align-self: flex-start;
	transition: color var(--transition-fast) var(--ease-out);
}

.section-head__link:hover {
	color: var(--brand-terracotta-dark);
}

.section-head__link .iv-icon {
	width: 1rem;
	height: 1rem;
	transition: transform var(--transition-base) var(--ease-out);
}

.section-head__link:hover .iv-icon {
	transform: translateX(0.125rem);
}

/* ==========================================================================
   10. CATEGORY SECTION 01 — FASHION (asymmetric lead + 2 companions)
   ========================================================================== */
.split-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: stretch;
}

/* Lead feature card */
.lead-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	transition: box-shadow var(--transition-slow) var(--ease-out);
}

.lead-card:hover {
	box-shadow: var(--shadow-xl);
}

.lead-card__media {
	position: relative;
	height: 18rem;
	overflow: hidden;
	background-color: var(--brand-sand);
}

.lead-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}

.lead-card:hover .lead-card__media img {
	transform: scale(1.05);
}

.lead-card__scrim {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent 50%, transparent);
}

.lead-card__flag {
	position: absolute;
	top: 1rem;
	left: 1rem;
	background-color: rgba(255, 255, 255, 0.95);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	color: var(--brand-terracotta);
	font-size: var(--fs-11);
	font-weight: var(--fw-bold);
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: var(--shadow-xs);
	line-height: 1.25;
}

.lead-card__overlay {
	position: absolute;
	bottom: 1rem;
	left: 1rem;
	right: 1rem;
	color: #fff;
}

.lead-card__kicker {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 0.25rem;
	line-height: 1.25;
}

.lead-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	color: #fff;
	line-height: 1.25;
	filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05));
}

.lead-card__body {
	padding: 1.5rem;
	flex: 1 1 0%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
}

.lead-card__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-75);
	line-height: 1.625;
}

.lead-card__foot {
	padding-top: 1rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.lead-card__byline {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.lead-card__avatar {
	width: 1.75rem;
	height: 1.75rem;
	border-radius: var(--radius-full);
	object-fit: cover;
	border: 1px solid var(--brand-border);
}

.lead-card__author {
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	color: var(--brand-espresso);
	line-height: 1rem;
}

.lead-card__cta {
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	display: flex;
	align-items: center;
	gap: 0.25rem;
	line-height: 1rem;
	transition: transform var(--transition-base) var(--ease-out);
}

.lead-card:hover .lead-card__cta {
	transform: translateX(0.25rem);
}

/* Companion stack */
.companion-stack {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1.5rem;
	height: 100%;
}

.companion-card {
	display: flex;
	flex-direction: column;
	flex: 1 1 0%;
	min-height: 0;
	background-color: #fff;
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	transition: box-shadow var(--transition-slow) var(--ease-out);
}

.companion-card:hover {
	box-shadow: var(--shadow-lg);
}

.companion-card__media {
	position: relative;
	height: 12rem;
	overflow: hidden;
	background-color: var(--brand-linen);
	flex-shrink: 0;
}

.companion-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms var(--ease-out);
}

.companion-card:hover .companion-card__media img {
	transform: scale(1.05);
}

.companion-card__index {
	position: absolute;
	top: 0.625rem;
	left: 0.625rem;
	background-color: rgba(255, 255, 255, 0.9);
	color: var(--brand-terracotta);
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-full);
	text-transform: uppercase;
	line-height: 1.25;
}

.companion-card__body {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.5rem;
}

.companion-card__head > * + * {
	margin-top: 0.375rem;
}

.companion-card__cat {
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	color: var(--brand-terracotta);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.25;
}

.companion-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.companion-card:hover .companion-card__title {
	color: var(--brand-terracotta);
}

.companion-card__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.5;
}

.companion-card__foot {
	padding-top: 0.5rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--fs-xs);
	line-height: 1rem;
}

.companion-card__author {
	color: var(--espresso-60);
	font-size: var(--fs-11);
}

.companion-card__cta {
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
}

/* ==========================================================================
   11. CATEGORY SECTION 02 — LIFESTYLE (tonal trio)
   ========================================================================== */
.section-lifestyle {
	background-color: var(--brand-sand);
	padding-block: 4rem;
	border-top: 1px solid var(--brand-border);
	border-bottom: 1px solid var(--brand-border);
}

.trio-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

.trio-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
	background-color: rgba(255, 255, 255, 0.9);
	box-shadow: var(--shadow-xs);
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	transition: background-color var(--transition-slow) var(--ease-out),
		box-shadow var(--transition-slow) var(--ease-out),
		transform var(--transition-slow) var(--ease-out);
}

.trio-card:hover {
	background-color: #fff;
	box-shadow: var(--shadow-lg);
}

.trio-card.is-highlighted {
	background-color: #fff;
	border-color: var(--terracotta-30);
	box-shadow: var(--shadow-md);
}

.trio-card__media {
	position: relative;
	height: 14rem;
	overflow: hidden;
	background-color: var(--brand-linen);
}

.trio-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms var(--ease-out);
}

.trio-card:hover .trio-card__media img {
	transform: scale(1.05);
}

.trio-card__flags {
	position: absolute;
	top: 0.875rem;
	left: 0.875rem;
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.trio-card__cat {
	background-color: rgba(255, 255, 255, 0.95);
	color: var(--brand-terracotta);
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-full);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: var(--shadow-xs);
	line-height: 1.25;
}

.trio-card__choice {
	background-color: var(--brand-espresso);
	color: #fff;
	font-size: var(--fs-10);
	font-weight: var(--fw-medium);
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-full);
	line-height: 1.25;
}

.trio-card__body {
	padding: 1.5rem;
	flex: 1 1 0%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
}

.trio-card__head > * + * {
	margin-top: 0.5rem;
}

.trio-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.trio-card:hover .trio-card__title {
	color: var(--brand-terracotta);
}

.trio-card__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
}

.trio-card__foot {
	padding-top: 0.75rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--fs-xs);
	line-height: 1rem;
}

.trio-card__byline {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.trio-card__avatar {
	width: 1.25rem;
	height: 1.25rem;
	border-radius: var(--radius-full);
	object-fit: cover;
}

.trio-card__author {
	font-size: var(--fs-11);
	color: var(--espresso-80);
	font-weight: var(--fw-medium);
}

.trio-card__cta {
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	transition: transform var(--transition-base) var(--ease-out);
}

.trio-card:hover .trio-card__cta {
	transform: translateX(0.125rem);
}

/* ==========================================================================
   12. CATEGORY SECTION 03 — TRAVEL (panoramic lead + 2 destinations)
   ========================================================================== */
.travel-lead {
	display: flex;
	flex-direction: column;
	height: 100%;
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	transition: box-shadow var(--transition-slow) var(--ease-out);
}

.travel-lead:hover {
	box-shadow: var(--shadow-xl);
}

.travel-lead__media {
	position: relative;
	height: 18rem;
	overflow: hidden;
	background-color: var(--brand-sand);
}

.travel-lead__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}

.travel-lead:hover .travel-lead__media img {
	transform: scale(1.05);
}

.travel-lead__scrim {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.2) 50%, transparent);
}

.travel-lead__flag {
	position: absolute;
	top: 1rem;
	left: 1rem;
	display: flex;
	align-items: center;
	gap: 0.25rem;
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: var(--shadow-sm);
	line-height: 1.25;
}

.travel-lead__flag .iv-icon {
	width: 0.75rem;
	height: 0.75rem;
}

.travel-lead__overlay {
	position: absolute;
	bottom: 1.25rem;
	left: 1.25rem;
	right: 1.25rem;
	color: #fff;
}

.travel-lead__place {
	display: block;
	font-size: var(--fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 0.25rem;
	line-height: 1rem;
}

.travel-lead__title {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	color: #fff;
	line-height: 1.25;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
}

.travel-lead__body {
	padding: 1.5rem;
}

.travel-lead__body > * + * {
	margin-top: 1rem;
}

.travel-lead__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-75);
	line-height: 1.625;
}

.travel-lead__foot {
	padding-top: 0.75rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--fs-xs);
	line-height: 1rem;
}

.travel-lead__author {
	color: var(--espresso-60);
}

.travel-lead__cta {
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	display: flex;
	align-items: center;
	gap: 0.25rem;
	transition: transform var(--transition-base) var(--ease-out);
}

.travel-lead:hover .travel-lead__cta {
	transform: translateX(0.25rem);
}

.destination-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	flex: 1 1 0%;
	background-color: #fff;
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	transition: box-shadow var(--transition-slow) var(--ease-out);
}

.destination-card:hover {
	box-shadow: var(--shadow-lg);
}

.destination-card__media {
	position: relative;
	height: 11rem;
	overflow: hidden;
	background-color: var(--brand-sand);
}

.destination-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms var(--ease-out);
}

.destination-card:hover .destination-card__media img {
	transform: scale(1.05);
}

.destination-card__scrim {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent 50%, transparent);
}

.destination-card__flag {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	display: flex;
	align-items: center;
	gap: 0.25rem;
	background-color: rgba(255, 255, 255, 0.9);
	color: var(--brand-terracotta);
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-full);
	text-transform: uppercase;
	line-height: 1.25;
}

.destination-card__flag .iv-icon {
	width: 0.625rem;
	height: 0.625rem;
}

.destination-card__body {
	padding: 1.25rem;
}

.destination-card__body > * + * {
	margin-top: 0.5rem;
}

.destination-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.destination-card:hover .destination-card__title {
	color: var(--brand-terracotta);
}

.destination-card__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.5;
}

.destination-card__foot {
	padding-top: 0.5rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--fs-xs);
	line-height: 1rem;
}

.destination-card__author {
	color: var(--espresso-60);
	font-size: var(--fs-11);
}

.destination-card__cta {
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
}

/* ==========================================================================
   13. CATEGORY SECTION 04 — BEAUTY (atelier ritual trio)
   ========================================================================== */
.ritual-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	transition: box-shadow var(--transition-slow) var(--ease-out),
		border-color var(--transition-slow) var(--ease-out);
}

.ritual-card:hover {
	box-shadow: var(--shadow-xl);
	border-color: rgba(194, 103, 80, 0.4);
}

.ritual-card__top {
	padding: 1rem 1rem 0;
}

.ritual-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 0.75rem;
	margin-bottom: 0.75rem;
	border-bottom: 1px solid var(--brand-border-soft);
}

.ritual-card__label {
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	font-weight: var(--fw-bold);
	color: var(--brand-terracotta);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.25;
}

.ritual-card__atelier {
	font-family: var(--font-mono);
	font-size: var(--fs-10);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--espresso-40);
	line-height: 1.25;
}

.ritual-card__media {
	position: relative;
	height: 15rem;
	border-radius: var(--radius-2xl);
	overflow: hidden;
	background-color: var(--brand-linen);
}

.ritual-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}

.ritual-card:hover .ritual-card__media img {
	transform: scale(1.05);
}

.ritual-card__cat {
	position: absolute;
	bottom: 0.75rem;
	left: 0.75rem;
	background-color: rgba(255, 255, 255, 0.95);
	color: var(--brand-espresso);
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	padding: 0.25rem 0.625rem;
	border-radius: var(--radius-full);
	box-shadow: var(--shadow-xs);
	line-height: 1.25;
}

.ritual-card__body {
	padding: 1.25rem;
	flex: 1 1 0%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
}

.ritual-card__head > * + * {
	margin-top: 0.5rem;
}

.ritual-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.ritual-card:hover .ritual-card__title {
	color: var(--brand-terracotta);
}

.ritual-card__excerpt {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
}

.ritual-card__foot {
	padding-top: 0.75rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ritual-card__author {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	line-height: 1rem;
}

.ritual-card__cta {
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	display: flex;
	align-items: center;
	gap: 0.25rem;
	line-height: 1rem;
	transition: transform var(--transition-base) var(--ease-out);
}

.ritual-card:hover .ritual-card__cta {
	transform: translateX(0.25rem);
}

.ritual-card__cta .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
}

/* ==========================================================================
   14. NEWSLETTER SECTION
   ========================================================================== */
.newsletter-section {
	padding-block: 5rem;
	background-color: var(--brand-linen);
}

.newsletter-panel {
	position: relative;
	border-radius: var(--radius-3xl);
	background-image: linear-gradient(to bottom right, var(--newsletter-from), var(--newsletter-to));
	color: #fff;
	padding: 2rem;
	overflow: hidden;
	box-shadow: var(--shadow-xl);
	border: 1px solid var(--newsletter-border);
}

.newsletter-panel__blob {
	position: absolute;
	border-radius: var(--radius-full);
	pointer-events: none;
}

.newsletter-panel__blob--tr {
	top: -6rem;
	right: -6rem;
	width: 18rem;
	height: 18rem;
	background-color: var(--terracotta-20);
	filter: blur(64px);
}

.newsletter-panel__blob--bl {
	bottom: -5rem;
	left: -5rem;
	width: 16rem;
	height: 16rem;
	background-color: var(--terracotta-15);
	filter: blur(40px);
}

.newsletter-panel__inner {
	position: relative;
	z-index: 10;
	max-width: var(--container-2xl);
	margin-inline: auto;
	text-align: center;
}

.newsletter-panel__inner > * + * {
	margin-top: 1.5rem;
}

.newsletter-panel__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.375rem 0.875rem;
	border-radius: var(--radius-full);
	background-color: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: var(--brand-linen);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	line-height: 1rem;
}

.newsletter-panel__badge .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
	color: var(--brand-terracotta);
}

.newsletter-panel__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	letter-spacing: -0.025em;
	color: #fff;
	line-height: 1.15;
}

.newsletter-panel__text {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	font-weight: var(--fw-normal);
	color: var(--linen-80);
	line-height: 1.625;
}

.newsletter-form {
	padding-top: 0.5rem;
	max-width: var(--container-lg);
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.newsletter-form__field {
	position: relative;
	text-align: left;
}

.newsletter-form input[type="text"],
.newsletter-form input[type="email"] {
	width: 100%;
	padding: 0.75rem 1rem;
	border-radius: var(--radius-full);
	background-color: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #fff;
	font-size: var(--fs-sm);
	line-height: 1.25rem;
	transition: border-color var(--transition-base) var(--ease-out),
		box-shadow var(--transition-base) var(--ease-out);
}

.newsletter-form input::placeholder {
	color: var(--linen-50);
}

.newsletter-form input:focus {
	outline: none;
	border-color: var(--brand-terracotta);
	box-shadow: 0 0 0 2px var(--terracotta-30);
}

.newsletter-form input.has-error {
	border-color: var(--error-red);
}

.newsletter-form__error {
	display: block;
	margin-top: 0.375rem;
	padding-left: 1rem;
	font-size: var(--fs-11);
	font-weight: var(--fw-medium);
	color: #FCA5A5;
}

.newsletter-form__submit {
	width: 100%;
	padding: 0.75rem 1.75rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	box-shadow: var(--shadow-md);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	transition: background-color var(--transition-base) var(--ease-out),
		transform var(--transition-base) var(--ease-out);
}

.newsletter-form__submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.newsletter-form__submit:active {
	transform: scale(0.95);
}

.newsletter-form__submit .iv-icon {
	width: 1rem;
	height: 1rem;
}

/* Success card replaces the form and stays visible. */
.newsletter-form[hidden],
.newsletter-notice[hidden] {
	display: none !important;
}

.newsletter-notice {
	background-color: var(--terracotta-20);
	border: 1px solid var(--brand-terracotta);
	border-radius: var(--radius-2xl);
	padding: 1.5rem;
	text-align: center;
	animation: iv-zoom-in var(--transition-base) var(--ease-out);
}

.newsletter-notice > * + * {
	margin-top: 0.5rem;
}

.newsletter-notice__icon {
	display: inline-flex;
	padding: 0.5rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
}

.newsletter-notice__icon .iv-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.newsletter-notice__title {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	color: #fff;
	line-height: 1.75rem;
}

.newsletter-notice__text {
	font-size: var(--fs-xs);
	color: var(--linen-80);
	line-height: 1rem;
}

.newsletter-panel__assurance {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	font-size: var(--fs-xs);
	color: var(--linen-60);
	padding-top: 0.5rem;
	line-height: 1rem;
}

.newsletter-panel__assurance > span {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.newsletter-panel__assurance .iv-icon {
	width: 1rem;
	height: 1rem;
	color: var(--brand-terracotta);
}

.newsletter-panel .wpcf7 {
	width: 100%;
	max-width: var(--container-lg);
	margin-inline: auto;
}

.newsletter-panel .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.newsletter-panel .wpcf7-form .newsletter-form {
	padding-top: 0.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.newsletter-panel .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.newsletter-panel .wpcf7-form input[type="text"],
.newsletter-panel .wpcf7-form input[type="email"] {
	width: 100%;
	padding: 0.75rem 1rem;
	border-radius: var(--radius-full);
	background-color: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #fff;
	font-size: var(--fs-sm);
	line-height: 1.25rem;
}

.newsletter-panel .wpcf7-form input::placeholder {
	color: var(--linen-50);
}

.newsletter-panel .wpcf7-form input:focus {
	outline: none;
	border-color: var(--brand-terracotta);
	box-shadow: 0 0 0 2px var(--terracotta-30);
}

.newsletter-panel .wpcf7-submit,
.newsletter-panel .wpcf7-form input[type="submit"],
.newsletter-panel .wpcf7-form button.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.75rem 1.75rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	border: 0;
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	cursor: pointer;
}

.newsletter-panel .wpcf7-form input[type="submit"] {
	padding-left: 2.5rem;
}

.newsletter-panel .wpcf7-form button.wpcf7-submit .iv-icon {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

.newsletter-panel .wpcf7-submit:hover,
.newsletter-panel .wpcf7-form input[type="submit"]:hover,
.newsletter-panel .wpcf7-form button.wpcf7-submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.newsletter-panel .wpcf7-form .newsletter-panel__assurance {
	margin-top: -0.25rem;
	padding-top: 0.5rem;
}

.newsletter-panel__assurance-dot {
	opacity: 0.7;
	line-height: 1;
}

.newsletter-panel .wpcf7[hidden],
.subscribe-modal .wpcf7[hidden],
.contact-form-card .wpcf7[hidden] {
	display: none !important;
}

.newsletter-panel .wpcf7-spinner,
.subscribe-modal .wpcf7-spinner,
.contact-form-card .wpcf7-spinner,
.newsletter-panel .ajax-loader,
.subscribe-modal .ajax-loader,
.contact-form-card .ajax-loader {
	display: none !important;
	position: static;
	width: 0;
	height: 0;
	margin: 0;
	padding: 0;
	visibility: hidden;
}

.newsletter-panel .wpcf7-form .wpcf7-submit,
.subscribe-modal .wpcf7-form .wpcf7-submit,
.contact-form-card .wpcf7-form .wpcf7-submit {
	position: relative;
}

.newsletter-panel .wpcf7-form.submitting .wpcf7-submit,
.subscribe-modal .wpcf7-form.submitting .wpcf7-submit,
.contact-form-card .wpcf7-form.submitting .wpcf7-submit {
	pointer-events: none;
}

.newsletter-panel .wpcf7-form.submitting .wpcf7-submit > *,
.subscribe-modal .wpcf7-form.submitting .wpcf7-submit > *,
.contact-form-card .wpcf7-form.submitting .wpcf7-submit > * {
	visibility: hidden;
}

.newsletter-panel .wpcf7-form.submitting .wpcf7-submit::after,
.subscribe-modal .wpcf7-form.submitting .wpcf7-submit::after,
.contact-form-card .wpcf7-form.submitting .wpcf7-submit::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.125rem;
	height: 1.125rem;
	margin: -0.5625rem 0 0 -0.5625rem;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: iv-spin 0.6s linear infinite;
}

.newsletter-panel .wpcf7-response-output,
.subscribe-modal .wpcf7-response-output,
.contact-form-card .wpcf7-response-output,
.newsletter-panel .wpcf7-response-output[aria-hidden="true"],
.subscribe-modal .wpcf7-response-output[aria-hidden="true"],
.contact-form-card .wpcf7-response-output[aria-hidden="true"] {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.newsletter-panel .wpcf7-not-valid-tip {
	color: #FCA5A5;
	font-size: var(--fs-11);
	margin-top: 0.375rem;
}

@keyframes iv-spin {
	to { transform: rotate(360deg); }
}

@keyframes iv-zoom-in {
	from { opacity: 0; transform: scale(0.95); }
	to { opacity: 1; transform: scale(1); }
}

@keyframes iv-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* ==========================================================================
   15. SINGLE POST
   ========================================================================== */
.single-post-root {
	max-width: var(--container-7xl);
	margin-inline: auto;
	padding: 2rem 1rem;
}

.single-post-root > * + * {
	margin-top: 3rem;
}

.post-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	border-bottom: 1px solid var(--brand-border);
	padding-bottom: 1rem;
}

.back-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--espresso-70);
	line-height: 1rem;
	transition: color var(--transition-fast) var(--ease-out);
}

.back-link:hover {
	color: var(--brand-terracotta);
}

.back-link .iv-icon {
	width: 1rem;
	height: 1rem;
}

.sidebar-switch {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.sidebar-switch__label {
	display: none;
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	color: var(--espresso-50);
}

.sidebar-switch__group {
	background-color: var(--brand-sand);
	padding: 0.25rem;
	border-radius: var(--radius-lg);
	border: 1px solid var(--brand-border);
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-size: var(--fs-xs);
	line-height: 1rem;
}

.sidebar-switch__btn {
	padding: 0.25rem 0.625rem;
	border-radius: var(--radius-md);
	color: var(--espresso-70);
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out);
}

.sidebar-switch__btn:hover {
	color: var(--brand-espresso);
}

.sidebar-switch__btn.is-active {
	background-color: #fff;
	color: var(--brand-terracotta);
	font-weight: var(--fw-bold);
	box-shadow: var(--shadow-xs);
}

.post-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	align-items: start;
}

.post-article > * + * {
	margin-top: 2rem;
}

.post-header > * + * {
	margin-top: 1rem;
}

.post-header__cat-row {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.post-cat-badge {
	background-color: var(--brand-terracotta);
	color: #fff;
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1rem;
	display: inline-block;
	width: fit-content;
}

.post-title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.14;
}

.post-standfirst {
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	color: var(--espresso-75);
	line-height: 1.625;
}

.post-byline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: 1rem;
	border-top: 1px solid var(--brand-border);
	border-bottom: 1px solid var(--brand-border);
}

.post-byline__author {
	display: flex;
	align-items: center;
	gap: 0.875rem;
}

.post-byline__avatar {
	width: 3rem;
	height: 3rem;
	border-radius: var(--radius-full);
	object-fit: cover;
	box-shadow: 0 0 0 2px var(--terracotta-20);
}

.post-byline__name {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.5rem;
}

.post-byline__role {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--brand-terracotta);
	font-weight: var(--fw-medium);
	line-height: 1rem;
}

.post-byline__actions {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.post-share {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.post-share__list {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	transform: translateX(-0.35rem);
	transition: max-width var(--transition-base) var(--ease-out),
		opacity var(--transition-base) var(--ease-out),
		transform var(--transition-base) var(--ease-out);
}

.post-share:hover .post-share__list,
.post-share:focus-within .post-share__list,
.post-share.is-open .post-share__list {
	max-width: 8rem;
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0);
}

.post-share-btn {
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border-radius: var(--radius-full);
	border: 1px solid var(--brand-border);
	color: var(--espresso-70);
	background-color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background-color var(--transition-fast) var(--ease-out),
		color var(--transition-fast) var(--ease-out),
		border-color var(--transition-fast) var(--ease-out);
}

.post-share-btn:hover,
.post-share.is-open .post-share__trigger {
	background-color: var(--brand-sand);
	color: var(--brand-terracotta);
	border-color: var(--terracotta-30);
}

.post-share-btn .iv-icon {
	width: 1rem;
	height: 1rem;
}

.post-share-btn__copied {
	display: none;
	color: var(--success-green);
}

.post-share-btn.is-copied .post-share-btn__default { display: none; }
.post-share-btn.is-copied .post-share-btn__copied { display: block; }

/* Featured image + caption */
.post-figure > * + * {
	margin-top: 0.5rem;
}

.post-figure__frame {
	border-radius: var(--radius-3xl);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	background-color: var(--brand-sand);
}

.post-figure__frame img {
	width: 100%;
	height: 20rem;
	object-fit: cover;
}

.post-figure figcaption,
.post-figure__caption {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	font-style: italic;
	text-align: center;
	line-height: 1rem;
}

/* Article prose */
.post-prose {
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	color: var(--espresso-85);
	line-height: 1.625;
	max-width: none;
}

.post-prose > * + * {
	margin-top: 1.5rem;
}

.post-prose p {
	line-height: 1.625;
}

.post-prose > p:first-of-type {
	font-size: var(--fs-lg);
	color: var(--brand-espresso);
	font-weight: var(--fw-normal);
	line-height: 1.625;
}

.post-prose > p:first-of-type::first-letter {
	float: left;
	font-family: var(--font-serif);
	font-size: var(--fs-5xl);
	font-weight: var(--fw-bold);
	color: var(--brand-terracotta);
	line-height: 1;
	padding-right: 0.75rem;
}

.post-prose h2,
.post-prose h3,
.post-prose h4 {
	font-family: var(--font-serif);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	padding-top: 1rem;
	line-height: 1.25;
}

.post-prose h2 { font-size: var(--fs-3xl); }
.post-prose h3 { font-size: var(--fs-2xl); }
.post-prose h4 { font-size: var(--fs-xl); }

.post-prose a {
	color: var(--brand-terracotta);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.post-prose a:hover {
	color: var(--brand-terracotta-dark);
}

.post-prose ul,
.post-prose ol {
	padding-left: 1.5rem;
}

.post-prose ul { list-style: disc; }
.post-prose ol { list-style: decimal; }

.post-prose li + li {
	margin-top: 0.5rem;
}

.post-prose img {
	border-radius: var(--radius-2xl);
}

/* Editorial pull quote */
.post-pullquote {
	margin-block: 2rem;
	padding: 1.5rem;
	background-color: var(--brand-sand);
	border-radius: var(--radius-2xl);
	border-left: 4px solid var(--brand-terracotta);
}

.post-pullquote blockquote,
.post-prose blockquote {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	color: var(--brand-espresso);
	font-style: italic;
	line-height: 1.375;
}

.post-pullquote cite {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--brand-terracotta);
	margin-top: 0.75rem;
	font-style: normal;
	line-height: 1rem;
}

/* Secondary image grid */
.post-secondary-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-block: 2rem;
}

.post-secondary-grid__item {
	border-radius: var(--radius-2xl);
	overflow: hidden;
	box-shadow: var(--shadow-xs);
	height: 16rem;
	background-color: var(--brand-linen);
}

.post-secondary-grid__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms var(--ease-out);
}

.post-secondary-grid__item img:hover {
	transform: scale(1.05);
}

/* Author bio box */
.post-author-box {
	padding: 1.5rem;
	background-color: var(--brand-linen);
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}

.post-author-box__avatar {
	width: 4rem;
	height: 4rem;
	border-radius: var(--radius-full);
	object-fit: cover;
	box-shadow: 0 0 0 4px #fff, var(--shadow-xs);
	flex-shrink: 0;
}

.post-author-box__text {
	text-align: center;
}

.post-author-box__text > * + * {
	margin-top: 0.5rem;
}

.post-author-box__head {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.post-author-box__name {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.75rem;
}

.post-author-box__role {
	font-size: var(--fs-xs);
	color: var(--brand-terracotta);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
}

.post-author-box__bio {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
}

/* Post tags */
.post-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--brand-border-soft);
}

.post-tags__label {
	font-size: var(--fs-11);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--espresso-50);
	margin-right: 0.25rem;
}

.post-tags a {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.25rem 0.625rem;
	border-radius: var(--radius-full);
	background-color: var(--terracotta-10);
	color: var(--brand-terracotta);
	font-size: var(--fs-11);
	font-weight: var(--fw-semibold);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.post-tags a:hover {
	background-color: var(--terracotta-20);
}

/* ==========================================================================
   16. POST SIDEBAR
   ========================================================================== */
.post-sidebar {
	width: 100%;
}

.post-sidebar > * + * {
	margin-top: 1.5rem;
}

.sidebar-card {
	background-color: #fff;
	border: 1px solid var(--brand-border);
	border-radius: var(--radius-2xl);
	padding: 1.25rem;
	box-shadow: var(--shadow-xs);
}

.sidebar-card > * + * {
	margin-top: 1rem;
}

.sidebar-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--brand-border-soft);
	padding-bottom: 0.75rem;
}

.sidebar-card__head-left {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.sidebar-card__head-left .iv-icon {
	width: 1rem;
	height: 1rem;
	color: var(--brand-terracotta);
}

.sidebar-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.5rem;
}

.sidebar-card__tag {
	font-size: var(--fs-10);
	text-transform: uppercase;
	font-weight: var(--fw-bold);
	color: var(--brand-terracotta);
	letter-spacing: 0.05em;
}

.sidebar-card__tag--plain {
	font-size: var(--fs-11);
	font-weight: var(--fw-semibold);
	text-transform: none;
	letter-spacing: normal;
}

.sidebar-card__intro {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
}

/* Category accordion */
.cat-accordion > * + * {
	margin-top: 0.625rem;
}

.cat-accordion__group {
	border-radius: var(--radius-xl);
	border: 1px solid var(--brand-border);
	background-color: #fff;
	overflow: hidden;
	transition: border-color var(--transition-base) var(--ease-out);
}

.cat-accordion__group:hover {
	border-color: rgba(194, 103, 80, 0.5);
}

.cat-accordion__group.is-current {
	border-color: var(--brand-terracotta);
	background-color: var(--brand-linen);
}

.cat-accordion__toggle {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.75rem;
	text-align: left;
}

.cat-accordion__toggle-left {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	min-width: 0;
}

.cat-accordion__bullet {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: var(--radius-full);
	background-color: var(--espresso-30);
	flex-shrink: 0;
}

.cat-accordion__group.is-current .cat-accordion__bullet {
	background-color: var(--brand-terracotta);
	box-shadow: 0 0 0 2px var(--terracotta-30);
}

.cat-accordion__labels {
	min-width: 0;
}

.cat-accordion__label-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.cat-accordion__name {
	font-family: var(--font-serif);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.25rem;
}

.cat-accordion__now {
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-9);
	font-weight: var(--fw-bold);
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-full);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.4;
}

.cat-accordion__count {
	display: block;
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	color: var(--espresso-50);
	line-height: 1.4;
}

.cat-accordion__chev {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	flex-shrink: 0;
	margin-left: 0.5rem;
	color: var(--brand-terracotta);
}

.cat-accordion__chev .iv-icon {
	width: 1rem;
	height: 1rem;
}

.cat-accordion__chev-down {
	color: var(--espresso-50);
}

.cat-accordion__group.is-open .cat-accordion__chev-down { display: none; }
.cat-accordion__group:not(.is-open) .cat-accordion__chev-up { display: none; }

.cat-accordion__panel {
	display: none;
	border-top: 1px solid var(--brand-border);
	background-color: #fff;
	padding: 0.75rem;
	animation: iv-fade-in var(--transition-base) var(--ease-out);
}

.cat-accordion__group.is-open .cat-accordion__panel {
	display: block;
}

.cat-accordion__panel > * + * {
	margin-top: 0.625rem;
}

.cat-accordion__panel-label {
	display: block;
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--brand-terracotta);
	padding-inline: 0.25rem;
	line-height: 1.4;
}

.cat-accordion__item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem;
	border-radius: var(--radius-lg);
	border: 1px solid transparent;
	transition: background-color var(--transition-base) var(--ease-out);
}

.cat-accordion__item:hover {
	background-color: var(--brand-linen);
}

.cat-accordion__item.is-current {
	background-color: var(--brand-sand);
	border-color: rgba(194, 103, 80, 0.4);
}

.cat-accordion__thumb {
	width: 3rem;
	height: 3rem;
	border-radius: var(--radius-lg);
	overflow: hidden;
	flex-shrink: 0;
	background-color: var(--brand-sand);
	border: 1px solid var(--brand-border);
}

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

.cat-accordion__item:hover .cat-accordion__thumb img {
	transform: scale(1.05);
}

.cat-accordion__text {
	flex: 1 1 0%;
	min-width: 0;
}

.cat-accordion__item-title {
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.cat-accordion__item:hover .cat-accordion__item-title {
	color: var(--brand-terracotta);
}

.cat-accordion__item.is-current .cat-accordion__item-title {
	color: var(--brand-terracotta);
	font-weight: var(--fw-bold);
}

.cat-accordion__item-meta {
	display: block;
	font-size: var(--fs-10);
	color: var(--espresso-50);
	margin-top: 0.125rem;
	line-height: 1.4;
}

.cat-accordion__item.is-current .cat-accordion__item-meta {
	color: var(--brand-terracotta);
	font-weight: var(--fw-semibold);
}

.cat-accordion__item-arrow {
	width: 0.875rem;
	height: 0.875rem;
	color: var(--espresso-30);
	flex-shrink: 0;
	transition: color var(--transition-base) var(--ease-out),
		transform var(--transition-base) var(--ease-out);
}

.cat-accordion__item:hover .cat-accordion__item-arrow {
	color: var(--brand-terracotta);
	transform: translateX(0.125rem);
}

/* Read-next widget */
.read-next-list > * + * {
	margin-top: 0.875rem;
}

.read-next-item {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.375rem;
	border-radius: var(--radius-xl);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.read-next-item:hover {
	background-color: var(--brand-linen);
}

.read-next-item__thumb {
	width: 4rem;
	height: 4rem;
	border-radius: var(--radius-xl);
	overflow: hidden;
	flex-shrink: 0;
	background-color: var(--brand-sand);
	border: 1px solid var(--brand-border);
}

.read-next-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-slow) var(--ease-out);
}

.read-next-item:hover .read-next-item__thumb img {
	transform: scale(1.05);
}

.read-next-item__text {
	flex: 1 1 0%;
	min-width: 0;
}

.read-next-item__text > * + * {
	margin-top: 0.25rem;
}

.read-next-item__cat {
	display: inline-block;
	font-size: var(--fs-9);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--brand-terracotta);
	background-color: var(--terracotta-10);
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-full);
	line-height: 1.4;
}

.read-next-item__title {
	font-family: var(--font-serif);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.read-next-item:hover .read-next-item__title {
	color: var(--brand-terracotta);
}

/* ==========================================================================
   17. WIDGET AREA (admin-added widgets in the post sidebar)
   ========================================================================== */
.sidebar-widget {
	background-color: #fff;
	border: 1px solid var(--brand-border);
	border-radius: var(--radius-2xl);
	padding: 1.25rem;
	box-shadow: var(--shadow-xs);
}

.sidebar-widget + .sidebar-widget {
	margin-top: 1.5rem;
}

.sidebar-widget-title {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	border-bottom: 1px solid var(--brand-border-soft);
	padding-bottom: 0.75rem;
	margin-bottom: 1rem;
	line-height: 1.5rem;
}

.sidebar-widget ul {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	font-size: var(--fs-sm);
}

.sidebar-widget ul a {
	color: var(--espresso-75);
	transition: color var(--transition-fast) var(--ease-out);
}

.sidebar-widget ul a:hover {
	color: var(--brand-terracotta);
}

/* Newsletter widget (IV_Newsletter_Widget) */
.widget-newsletter__eyebrow {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.625rem;
	border-radius: var(--radius-full);
	background-color: var(--terracotta-15);
	color: var(--brand-terracotta);
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

.widget-newsletter__title {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	margin-top: 0.75rem;
}

.widget-newsletter__desc {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
	margin-top: 0.5rem;
}

.widget-newsletter .wpcf7-form,
.widget-newsletter__form {
	margin-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.widget-newsletter .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.widget-newsletter .wpcf7-form input[type="email"],
.widget-newsletter__form input[type="email"] {
	width: 100%;
	padding: 0.625rem 1rem;
	border-radius: var(--radius-xl);
	background-color: var(--brand-linen);
	border: 1px solid var(--brand-border);
	font-size: var(--fs-sm);
	color: var(--brand-espresso);
	line-height: 1.25rem;
	transition: border-color var(--transition-fast) var(--ease-out),
		box-shadow var(--transition-fast) var(--ease-out);
}

.widget-newsletter .wpcf7-form input[type="email"]::placeholder,
.widget-newsletter__form input[type="email"]::placeholder {
	color: var(--espresso-40);
}

.widget-newsletter .wpcf7-form input[type="email"]:focus,
.widget-newsletter__form input[type="email"]:focus {
	outline: none;
	border-color: var(--brand-terracotta);
	box-shadow: 0 0 0 1px var(--brand-terracotta);
}

.widget-newsletter .wpcf7-submit,
.widget-newsletter .wpcf7-form input[type="submit"] {
	width: 100%;
	padding-block: 0.625rem;
	border: 0;
	border-radius: var(--radius-xl);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	cursor: pointer;
}

.widget-newsletter .wpcf7-submit:hover,
.widget-newsletter .wpcf7-form input[type="submit"]:hover {
	background-color: var(--brand-terracotta-dark);
}

.widget-newsletter .wpcf7-not-valid-tip {
	color: var(--error-red);
	font-size: var(--fs-11);
}

.widget-newsletter .wpcf7-response-output {
	margin-top: 0.5rem;
	padding: 0.75rem 1rem;
	border-radius: var(--radius-xl);
	border: 1px solid var(--terracotta-30);
	background-color: var(--terracotta-10);
	font-size: var(--fs-sm);
}

.widget-newsletter__form input.has-error {
	border-color: var(--error-red);
}

.widget-newsletter__submit {
	width: 100%;
	padding-block: 0.625rem;
	border-radius: var(--radius-xl);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	transition: background-color var(--transition-base) var(--ease-out);
}

.widget-newsletter__submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.widget-newsletter__error {
	display: block;
	font-size: var(--fs-11);
	font-weight: var(--fw-medium);
	color: var(--error-red);
}

.widget-newsletter__notice {
	margin-top: 1rem;
	padding: 1rem;
	border-radius: var(--radius-xl);
	background-color: var(--terracotta-10);
	border: 1px solid var(--terracotta-30);
	color: var(--brand-terracotta);
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	text-align: center;
	line-height: 1.25rem;
	animation: iv-zoom-in var(--transition-base) var(--ease-out);
}

/* ==========================================================================
   18. GENERIC POST CARD (iv_post_card) — image flush to card edges
   ========================================================================== */
.post-card {
	overflow: hidden;
	padding: 0;
	border-radius: var(--radius-xl);
	background-color: #fff;
	border: 1px solid var(--brand-border);
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-xs);
	transition: box-shadow var(--transition-slow) var(--ease-out),
		border-color var(--transition-slow) var(--ease-out);
}

.post-card:hover {
	box-shadow: var(--shadow-lg);
	border-color: rgba(194, 103, 80, 0.4);
}

.post-card__image-wrap {
	position: relative;
	border-radius: 0;
	margin: 0;
	overflow: hidden;
	background-color: var(--brand-sand);
}

.post-card__image-wrap a {
	display: block;
}

.post-card__image-wrap img {
	width: 100%;
	height: 13rem;
	object-fit: cover;
	transition: transform 500ms var(--ease-out);
}

.post-card:hover .post-card__image-wrap img {
	transform: scale(1.05);
}

.post-card__badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	background-color: rgba(255, 255, 255, 0.95);
	color: var(--brand-terracotta);
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	padding: 0.125rem 0.625rem;
	border-radius: var(--radius-full);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: var(--shadow-xs);
	line-height: 1.25;
}

.post-card__body {
	padding: 1rem 1rem 1.25rem;
}

.post-card__title {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
}

.post-card__title a {
	transition: color var(--transition-fast) var(--ease-out);
}

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

.post-card__excerpt {
	margin-top: 0.5rem;
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
}

.post-card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

/* Stepped carousel for post cards. No template renders this by default — it is
   the shared shell any `[data-iv-slider]` region in a child theme or block can
   use, with the track widths set by main.js. */
.iv-slider {
	position: relative;
}

.iv-slider__viewport {
	overflow: hidden;
}

.iv-slider__track {
	display: flex;
	transition: transform var(--transition-slow) var(--ease-out);
}

.iv-slider__slide {
	flex: 0 0 auto;
	padding-right: 2rem;
}

.iv-slider__nav {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-top: 1.5rem;
}

.iv-slider__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--brand-border);
	border-radius: 9999px;
	background-color: #fff;
	color: var(--brand-espresso);
	cursor: pointer;
	transition: background-color var(--transition-base) var(--ease-out),
		border-color var(--transition-base) var(--ease-out),
		color var(--transition-base) var(--ease-out);
}

.iv-slider__btn:hover:not(:disabled) {
	background-color: var(--brand-espresso);
	border-color: var(--brand-espresso);
	color: var(--brand-linen);
}

.iv-slider__btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

/* ==========================================================================
   19. ARCHIVE — CATEGORY HERO
   ========================================================================== */
.cat-hero {
	position: relative;
	background-color: var(--brand-sand);
	border-bottom: 1px solid var(--brand-border);
	padding-block: 3.5rem;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.cat-hero.has-bg-image {
	background-color: var(--brand-espresso);
	padding-block: 5rem;
	border-bottom-color: transparent;
}

.cat-hero__overlay {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, rgba(30, 27, 24, 0.85), rgba(30, 27, 24, 0.55));
	pointer-events: none;
}

.cat-hero__inner {
	position: relative;
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.75rem;
}

.cat-hero__eyebrow {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.375rem;
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--brand-terracotta);
	line-height: 1.25;
}

.cat-hero__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	letter-spacing: -0.025em;
	color: var(--brand-espresso);
	line-height: 1.12;
}

.cat-hero__count {
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	line-height: 1rem;
}

.cat-hero.has-bg-image .cat-hero__title {
	color: #fff;
}

.cat-hero.has-bg-image .cat-hero__count {
	color: var(--linen-70);
}

.cat-hero__desc-band {
	background-color: var(--terracotta-10);
	border-bottom: 1px solid var(--terracotta-30);
	padding-block: 1rem;
}

.cat-hero__desc {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	color: var(--espresso-80);
	line-height: 1.625;
	max-width: var(--container-3xl);
	margin-inline: auto;
	text-align: center;
}

.cat-hero__desc p + p {
	margin-top: 0.75rem;
}

.archive-root {
	padding-block: 3rem;
}

.archive-root > * + * {
	margin-top: 3rem;
}

.archive-root--lifestyle {
	padding-block: 0;
}

.archive-root--lifestyle > * + * {
	margin-top: 0;
}

.archive-featured {
	padding-bottom: 3rem;
}

.archive-lifestyle-grid__desc {
	margin: -0.5rem 0 2rem;
	max-width: 42rem;
	color: var(--espresso-75);
	font-size: var(--fs-sm);
	line-height: 1.7;
}

.archive-lifestyle-grid__desc p + p {
	margin-top: 0.75rem;
}

.archive-lifestyle-grid .iv-pagination {
	padding-top: 3rem;
}

.section-head__count {
	pointer-events: none;
}

.archive-empty {
	text-align: center;
	background-color: #fff;
	border: 1px solid var(--brand-border);
	border-radius: var(--radius-2xl);
	padding: 3rem 2rem;
}

/* Pagination */
.iv-pagination {
	display: flex;
	justify-content: center;
	padding-top: 1rem;
}

.iv-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.iv-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding-inline: 0.75rem;
	border-radius: var(--radius-full);
	background-color: #fff;
	border: 1px solid var(--brand-border);
	color: var(--espresso-75);
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1;
	box-shadow: var(--shadow-xs);
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out),
		border-color var(--transition-fast) var(--ease-out);
}

.iv-pagination a.page-numbers:hover {
	color: #fff;
	background-color: var(--brand-terracotta);
	border-color: var(--brand-terracotta);
}

.iv-pagination .page-numbers.current {
	background-color: var(--brand-espresso);
	border-color: var(--brand-espresso);
	color: #fff;
}

.iv-pagination .page-numbers.dots {
	background-color: transparent;
	border-color: transparent;
	box-shadow: none;
	color: var(--espresso-50);
}

/* ==========================================================================
   20. SEARCH RESULTS PAGE & MODAL RESULT CARDS
   ========================================================================== */
.search-root {
	padding-block: 2.5rem;
}

.search-root > * + * {
	margin-top: 1.5rem;
}

.search-head {
	border-bottom: 1px solid var(--brand-border);
	padding-bottom: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.search-head__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.search-head__count {
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	line-height: 1rem;
}

.search-head__count strong {
	color: var(--brand-espresso);
}

.search-page-form {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background-color: #fff;
	border: 1px solid var(--brand-border);
	border-radius: var(--radius-2xl);
	padding: 0.75rem 1rem;
	box-shadow: var(--shadow-xs);
}

.search-page-form .iv-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--brand-terracotta);
}

.search-page-form input[type="search"] {
	flex: 1 1 0%;
	font-size: var(--fs-base);
	color: var(--brand-espresso);
	border: 0;
	background: transparent;
}

.search-page-form input[type="search"]:focus {
	outline: none;
}

.search-page-form input[type="search"]::placeholder {
	color: var(--espresso-40);
}

.search-page-form button {
	padding: 0.5rem 1.25rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
	transition: background-color var(--transition-base) var(--ease-out);
}

.search-page-form button:hover {
	background-color: var(--brand-terracotta-dark);
}

.search-results-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.search-result {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	background-color: #fff;
	padding: 0.75rem;
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
	box-shadow: var(--shadow-xs);
	transition: background-color var(--transition-base) var(--ease-out),
		border-color var(--transition-base) var(--ease-out),
		box-shadow var(--transition-base) var(--ease-out);
}

.search-result:hover {
	background-color: var(--brand-linen);
	border-color: rgba(194, 103, 80, 0.5);
	box-shadow: var(--shadow-md);
}

.search-result__thumb {
	width: 5rem;
	height: 5rem;
	border-radius: var(--radius-xl);
	overflow: hidden;
	flex-shrink: 0;
	background-color: var(--brand-sand);
	border: 1px solid rgba(232, 225, 216, 0.6);
}

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

.search-result:hover .search-result__thumb img {
	transform: scale(1.05);
}

.search-result__info {
	flex: 1 1 0%;
	min-width: 0;
}

.search-result__info > * + * {
	margin-top: 0.25rem;
}

.search-result__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.search-result__cat {
	font-size: var(--fs-10);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--brand-terracotta);
	background-color: var(--terracotta-10);
	padding: 0.125rem 0.5rem;
	border-radius: var(--radius-full);
	line-height: 1.4;
}

.search-result__date {
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	color: var(--espresso-50);
	line-height: 1.4;
}

.search-result__title {
	font-family: var(--font-serif);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	transition: color var(--transition-fast) var(--ease-out);
}

.search-result:hover .search-result__title {
	color: var(--brand-terracotta);
}

.search-result__excerpt {
	display: none;
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.5;
}

.search-result__arrow {
	display: none;
	align-self: center;
	padding-left: 0.5rem;
}

.search-result__arrow span {
	width: 2rem;
	height: 2rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-linen);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--espresso-60);
	transition: background-color var(--transition-fast) var(--ease-out),
		color var(--transition-fast) var(--ease-out);
}

.search-result:hover .search-result__arrow span {
	background-color: var(--brand-terracotta);
	color: #fff;
}

/* Empty state (shared by search modal, search.php, 404 and empty archives) */
.empty-state {
	padding-block: 3rem;
	text-align: center;
	background-color: #fff;
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
	padding-inline: 2rem;
}

.empty-state > * + * {
	margin-top: 0.75rem;
}

.empty-state__icon {
	width: 3rem;
	height: 3rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-sand);
	color: var(--brand-terracotta);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-inline: auto;
}

.empty-state__icon .iv-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.empty-state__title {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.75rem;
}

.empty-state__text {
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	max-width: var(--container-sm);
	margin-inline: auto;
	line-height: 1.625;
}

.empty-state__action {
	padding-top: 0.5rem;
}

.empty-state__btn {
	display: inline-block;
	padding: 0.5rem 1rem;
	background-color: var(--brand-linen);
	color: var(--brand-terracotta);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	border-radius: var(--radius-xl);
	line-height: 1rem;
	transition: background-color var(--transition-fast) var(--ease-out);
}

.empty-state__btn:hover {
	background-color: var(--brand-sand);
}

/* ==========================================================================
   21. 404
   ========================================================================== */
.error-404 {
	padding-block: 4rem;
}

.error-404__code {
	font-family: var(--font-serif);
	font-size: var(--fs-5xl);
	font-weight: var(--fw-bold);
	color: var(--brand-terracotta);
	line-height: 1;
	text-align: center;
}

.error-404__suggested {
	margin-top: 3rem;
}

.error-404__suggested-title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	border-bottom: 2px solid var(--brand-espresso);
	padding-bottom: 1rem;
	margin-bottom: 2rem;
	line-height: 2rem;
}

/* ==========================================================================
   22. MODALS (subscribe + search)
   ========================================================================== */
.iv-modal {
	position: fixed;
	inset: 0;
	z-index: 50;
	background-color: rgba(0, 0, 0, 0.6);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	animation: iv-fade-in var(--transition-base) var(--ease-out);
}

.iv-modal[hidden] {
	display: none;
}

/* Subscribe modal */
.subscribe-modal {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.subscribe-modal__panel {
	position: relative;
	width: 100%;
	max-width: var(--container-lg);
	background-color: var(--brand-linen);
	border-radius: var(--radius-3xl);
	box-shadow: var(--shadow-2xl);
	border: 1px solid var(--brand-border);
	overflow: hidden;
	padding: 1.5rem;
	animation: iv-zoom-in var(--transition-base) var(--ease-out);
	max-height: 92vh;
	overflow-y: auto;
}

.iv-modal__close {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	padding: 0.5rem;
	border-radius: var(--radius-full);
	color: var(--espresso-60);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out);
}

.iv-modal__close:hover {
	color: var(--brand-espresso);
	background-color: rgba(232, 225, 216, 0.6);
}

.iv-modal__close .iv-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.subscribe-modal__body > * + * {
	margin-top: 1.25rem;
}

.subscribe-modal__badge {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	background-color: var(--terracotta-15);
	color: var(--brand-terracotta);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
}

.subscribe-modal__badge .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
}

.subscribe-modal__title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	letter-spacing: -0.025em;
	line-height: 2rem;
}

.subscribe-modal__text {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	margin-top: 0.375rem;
	line-height: 1.625;
}

.iv-field__label {
	display: block;
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	color: var(--espresso-80);
	margin-bottom: 0.25rem;
	line-height: 1rem;
}

.iv-field__req {
	color: var(--brand-terracotta);
}

.subscribe-modal .wpcf7-form,
.subscribe-form {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}

.subscribe-modal .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.subscribe-modal .wpcf7-form input[type="text"],
.subscribe-modal .wpcf7-form input[type="email"],
.subscribe-modal .wpcf7-form select,
.subscribe-form input[type="text"],
.subscribe-form input[type="email"],
.subscribe-form select {
	width: 100%;
	padding: 0.625rem 1rem;
	border-radius: var(--radius-xl);
	background-color: #fff;
	border: 1px solid var(--brand-border);
	font-size: var(--fs-sm);
	color: var(--brand-espresso);
	line-height: 1.25rem;
	transition: border-color var(--transition-fast) var(--ease-out),
		box-shadow var(--transition-fast) var(--ease-out);
}

.subscribe-modal .wpcf7-form input::placeholder,
.subscribe-form input::placeholder {
	color: var(--espresso-40);
}

.subscribe-modal .wpcf7-form input:focus,
.subscribe-modal .wpcf7-form select:focus,
.subscribe-form input:focus,
.subscribe-form select:focus {
	outline: none;
	border-color: var(--brand-terracotta);
	box-shadow: 0 0 0 1px var(--brand-terracotta);
}

.subscribe-modal .wpcf7-form label {
	display: block;
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	color: var(--espresso-80);
	margin-bottom: 0.25rem;
}

.subscribe-modal .wpcf7-form label .iv-label-text {
	display: inline;
}

.subscribe-modal .wpcf7-form label .iv-req,
.subscribe-modal .iv-field__req {
	display: inline;
	color: var(--brand-terracotta);
	font-weight: var(--fw-semibold);
}

.subscribe-modal .wpcf7-submit,
.subscribe-modal .wpcf7-form input[type="submit"],
.subscribe-modal .wpcf7-form button.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding-block: 0.75rem;
	border: 0;
	border-radius: var(--radius-xl);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	cursor: pointer;
	margin-top: 0.5rem;
}

.subscribe-modal .wpcf7-form input[type="submit"] {
	padding-left: 2.5rem;
}

.subscribe-modal .wpcf7-form button.wpcf7-submit .iv-icon {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

.subscribe-modal .wpcf7-submit:hover,
.subscribe-modal .wpcf7-form input[type="submit"]:hover,
.subscribe-modal .wpcf7-form button.wpcf7-submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.subscribe-modal .wpcf7-form .subscribe-modal__assurance {
	margin-top: -0.625rem;
	padding-top: 0.25rem;
}

.subscribe-modal .wpcf7-not-valid-tip {
	color: var(--error-red);
	font-size: var(--fs-11);
	margin-top: 0.25rem;
}

.subscribe-form input.has-error {
	border-color: var(--error-red);
}

.iv-field__error {
	display: block;
	margin-top: 0.25rem;
	font-size: var(--fs-11);
	font-weight: var(--fw-medium);
	color: var(--error-red);
}

.subscribe-form__submit {
	width: 100%;
	padding-block: 0.75rem;
	border-radius: var(--radius-xl);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	box-shadow: var(--shadow-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.5rem;
	transition: background-color var(--transition-base) var(--ease-out),
		transform var(--transition-base) var(--ease-out);
}

.subscribe-form__submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.subscribe-form__submit:active {
	transform: scale(0.98);
}

.subscribe-form__submit .iv-icon {
	width: 1rem;
	height: 1rem;
}

.subscribe-modal__assurance {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-size: var(--fs-11);
	color: var(--espresso-50);
	padding-top: 0.25rem;
}

.subscribe-modal__assurance .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
	color: var(--brand-terracotta);
}

.subscribe-modal__success {
	text-align: center;
	padding-block: 1.5rem;
	animation: iv-zoom-in var(--transition-base) var(--ease-out);
}

.subscribe-modal__success > * + * {
	margin-top: 0.75rem;
}

.subscribe-modal__success-icon {
	width: 3.5rem;
	height: 3.5rem;
	background-color: var(--terracotta-15);
	color: var(--brand-terracotta);
	border-radius: var(--radius-full);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-inline: auto;
}

.subscribe-modal__success-icon .iv-icon {
	width: 2rem;
	height: 2rem;
}

.subscribe-modal__success-title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 2rem;
}

.subscribe-modal__success-text {
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	max-width: 20rem;
	margin-inline: auto;
	line-height: 1.625;
}

/* Search modal */
.search-modal {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 0.75rem;
	overflow-y: auto;
}

.search-modal__panel {
	width: 100%;
	max-width: var(--container-3xl);
	background-color: var(--brand-linen);
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	box-shadow: var(--shadow-2xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	max-height: 88vh;
	animation: iv-zoom-in var(--transition-base) var(--ease-out);
}

.search-modal__head {
	padding: 1rem;
	background-color: #fff;
	border-bottom: 1px solid var(--brand-border);
	position: relative;
}

.search-modal__input-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.search-modal__input-row > .iv-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--brand-terracotta);
	flex-shrink: 0;
}

.search-modal__input {
	width: 100%;
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	color: var(--brand-espresso);
	background: transparent;
	border: 0;
}

.search-modal__input:focus {
	outline: none;
}

.search-modal__input::placeholder {
	color: var(--espresso-40);
}

.search-modal__clear {
	padding: 0.25rem;
	border-radius: var(--radius-full);
	color: var(--espresso-50);
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out);
}

.search-modal__clear[hidden] {
	display: none;
}

.search-modal__clear:hover {
	background-color: var(--brand-sand);
	color: var(--brand-espresso);
}

.search-modal__clear .iv-icon {
	width: 1rem;
	height: 1rem;
}

.search-modal__close {
	padding: 0.5rem;
	border-radius: var(--radius-xl);
	color: var(--espresso-60);
	flex-shrink: 0;
	transition: color var(--transition-fast) var(--ease-out),
		background-color var(--transition-fast) var(--ease-out);
}

.search-modal__close:hover {
	background-color: var(--brand-sand);
	color: var(--brand-espresso);
}

.search-modal__close .iv-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.search-modal__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--brand-border-soft);
}

.search-modal__filters-label {
	font-size: var(--fs-11);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--espresso-50);
	margin-right: 0.25rem;
}

.search-modal__pill {
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	line-height: 1rem;
	background-color: var(--brand-linen);
	color: var(--espresso-70);
	transition: background-color var(--transition-base) var(--ease-out),
		color var(--transition-base) var(--ease-out);
}

.search-modal__pill:hover {
	background-color: var(--brand-sand);
	color: var(--brand-espresso);
}

.search-modal__pill.is-active {
	background-color: var(--brand-terracotta);
	color: #fff;
	box-shadow: var(--shadow-xs);
}

.search-modal__results {
	flex: 1 1 0%;
	overflow-y: auto;
	padding: 1rem;
}

.search-modal__results > * + * {
	margin-top: 1rem;
}

.search-modal__popular {
	margin-bottom: 1rem;
	padding: 1rem;
	background-color: rgba(255, 255, 255, 0.7);
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
}

.search-modal__popular[hidden] {
	display: none;
}

.search-modal__popular-head {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--espresso-70);
	margin-bottom: 0.625rem;
	line-height: 1rem;
}

.search-modal__popular-head .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
	color: var(--brand-terracotta);
}

.search-modal__popular-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.search-modal__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-lg);
	background-color: var(--brand-linen);
	border: 1px solid var(--brand-border);
	font-size: var(--fs-xs);
	color: var(--espresso-80);
	line-height: 1rem;
	transition: background-color var(--transition-fast) var(--ease-out),
		color var(--transition-fast) var(--ease-out);
}

.search-modal__tag:hover {
	background-color: var(--terracotta-10);
	color: var(--brand-terracotta);
}

.search-modal__tag .iv-icon {
	width: 0.75rem;
	height: 0.75rem;
	color: rgba(194, 103, 80, 0.7);
}

.search-modal__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	padding-inline: 0.25rem;
	line-height: 1rem;
}

.search-modal__summary strong {
	color: var(--brand-espresso);
}

.search-modal__summary-cat {
	color: var(--brand-terracotta);
	font-weight: var(--fw-medium);
}

.search-modal__foot {
	padding: 0.75rem 1.5rem;
	background-color: var(--brand-sand);
	border-top: 1px solid var(--brand-border);
	font-size: var(--fs-11);
	color: var(--espresso-60);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.search-modal__foot kbd {
	padding: 0.125rem 0.375rem;
	background-color: #fff;
	border-radius: var(--radius-sm);
	border: 1px solid var(--brand-border);
	font-family: var(--font-mono);
	font-size: var(--fs-10);
}

.search-modal__foot-brand {
	color: var(--brand-terracotta);
	font-weight: var(--fw-medium);
}

.search-modal__loading {
	text-align: center;
	font-size: var(--fs-xs);
	color: var(--espresso-50);
	padding-block: 1.5rem;
}

/* ==========================================================================
   23. ABOUT PAGE
   ========================================================================== */
.about-root {
	max-width: var(--container-6xl);
	margin-inline: auto;
	padding: 2.5rem 1rem;
}

.about-root > * + * {
	margin-top: 3.5rem;
}

.about-head {
	max-width: var(--container-3xl);
	margin-inline: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.about-head__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	letter-spacing: -0.025em;
	line-height: 1.12;
}

.about-head__text {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	color: var(--espresso-70);
	line-height: 1.625;
}

.about-gallery {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

.about-gallery__item-frame {
	border-radius: var(--radius-3xl);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	border: 1px solid var(--brand-border);
	height: 18rem;
	background-color: var(--brand-sand);
}

.about-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}

.about-gallery__item:hover img {
	transform: scale(1.05);
}

.about-gallery__item--featured .about-gallery__item-frame {
	box-shadow: var(--shadow-md);
	border: 2px solid var(--terracotta-30);
}

.about-manifesto {
	max-width: var(--container-3xl);
	margin-inline: auto;
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	padding: 2rem;
	box-shadow: var(--shadow-sm);
}

.about-manifesto > * + * {
	margin-top: 2rem;
}

.about-manifesto__head {
	border-bottom: 1px solid var(--brand-border-soft);
	padding-bottom: 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.about-manifesto__title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 2rem;
}

.about-manifesto__badge {
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	line-height: 1rem;
	flex-shrink: 0;
}

.about-manifesto__body {
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	color: var(--espresso-85);
	line-height: 1.625;
}

.about-manifesto__body > * + * {
	margin-top: 1.5rem;
}

/* Pillar label paragraphs (Gutenberg className: about-pillar-label) */
.about-manifesto__body .about-pillar-label {
	display: block;
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--brand-terracotta);
	line-height: 1rem;
	margin-bottom: -1rem;
}

.about-manifesto__body .about-pillar-label + p {
	margin-top: 1.5rem;
}

.about-manifesto__body p {
	line-height: 1.625;
}

.about-manifesto__body h2,
.about-manifesto__body h3 {
	font-family: var(--font-serif);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	font-size: var(--fs-xl);
	line-height: 1.375;
}

.about-signoff {
	padding-top: 1.5rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.about-signoff__author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.about-signoff__avatar {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--radius-full);
	object-fit: cover;
	box-shadow: 0 0 0 2px var(--terracotta-30);
}

.about-signoff__name {
	font-family: var(--font-serif);
	font-weight: var(--fw-bold);
	font-size: var(--fs-sm);
	color: var(--brand-espresso);
	line-height: 1.25rem;
}

.about-signoff__role {
	font-size: var(--fs-xs);
	color: var(--espresso-50);
	line-height: 1rem;
}

.about-signoff__cta {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	padding: 0.625rem 1.25rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
	transition: background-color var(--transition-fast) var(--ease-out);
}

.about-signoff__cta:hover {
	background-color: var(--brand-terracotta-dark);
}

.about-signoff__cta .iv-icon {
	width: 0.875rem;
	height: 0.875rem;
}

/* ==========================================================================
   24. CONTACT PAGE
   ========================================================================== */
.contact-root {
	max-width: var(--container-7xl);
	margin-inline: auto;
	padding: 2.5rem 1rem;
}

.contact-root > * + * {
	margin-top: 3rem;
}

.contact-head {
	max-width: var(--container-2xl);
	margin-inline: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.contact-head__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.contact-head__text {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	color: var(--espresso-70);
	line-height: 1.625;
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
	max-width: var(--container-6xl);
	margin-inline: auto;
}

.contact-form-card {
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	padding: 1.5rem;
	box-shadow: var(--shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.contact-form__head {
	border-bottom: 1px solid var(--brand-border-soft);
	padding-bottom: 0.75rem;
}

.contact-form__title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 2rem;
}

.contact-form__note {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	margin-top: 0.25rem;
	line-height: 1rem;
}

.contact-form__note .iv-req {
	color: var(--brand-terracotta);
	font-weight: var(--fw-bold);
}

.contact-form__label {
	display: block;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--espresso-80);
	margin-bottom: 0.375rem;
	text-transform: uppercase;
	letter-spacing: 0.025em;
	line-height: 1rem;
}

.contact-form-card .wpcf7,
.contact-form-card .wpcf7-form,
.contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	width: 100%;
	max-width: none;
	margin: 0;
}

.contact-form-card .wpcf7-form .hidden-fields-container {
	display: contents;
}

.contact-form-card .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.contact-form-card .wpcf7-form p {
	margin: 0;
}

.contact-form-card .wpcf7-form input[type="text"],
.contact-form-card .wpcf7-form input[type="email"],
.contact-form-card .wpcf7-form textarea,
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 1rem;
	border-radius: var(--radius-xl);
	background-color: var(--brand-linen);
	border: 1px solid var(--brand-border);
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	font-weight: var(--fw-normal);
	color: var(--brand-espresso);
	line-height: 1.25rem;
	text-transform: none;
	letter-spacing: normal;
	appearance: none;
	transition: border-color var(--transition-fast) var(--ease-out),
		box-shadow var(--transition-fast) var(--ease-out);
}

.contact-form-card .wpcf7-form textarea,
.contact-form textarea {
	border-radius: var(--radius-xl);
	resize: vertical;
	min-height: 7.75rem;
	height: 7.75rem;
}

.contact-form-card .wpcf7-form input::placeholder,
.contact-form-card .wpcf7-form textarea::placeholder,
.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: var(--espresso-40);
	text-transform: none;
}

.contact-form-card .wpcf7-form input:focus,
.contact-form-card .wpcf7-form textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--brand-terracotta);
	box-shadow: 0 0 0 1px var(--brand-terracotta);
}

.contact-form input.has-error,
.contact-form textarea.has-error {
	border-color: var(--error-red);
}

.contact-form__submit {
	width: 100%;
	padding: 0.875rem 2rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	box-shadow: var(--shadow-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	transition: background-color var(--transition-base) var(--ease-out),
		transform var(--transition-base) var(--ease-out);
}

.contact-form__submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.contact-form__submit:active {
	transform: scale(0.98);
}

.contact-form__submit .iv-icon {
	width: 1rem;
	height: 1rem;
}

.contact-form-card .wpcf7-form label {
	display: block;
	margin: 0;
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--espresso-80);
	text-transform: uppercase;
	letter-spacing: 0.025em;
	line-height: 1rem;
}

.contact-form-card .wpcf7-form label .iv-label-text {
	display: inline;
}

.contact-form-card .wpcf7-form label .wpcf7-form-control-wrap {
	margin-top: 0.375rem;
}

.contact-form-card .wpcf7-form label .iv-req,
.contact-form__note .iv-req,
.iv-req {
	display: inline;
	color: var(--brand-terracotta);
	font-weight: var(--fw-bold);
}

.contact-form-card .wpcf7-submit,
.contact-form-card .wpcf7-form input[type="submit"],
.contact-form-card .wpcf7-form button.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	margin: 0;
	padding: 0.875rem 2rem;
	border: 0;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	box-shadow: var(--shadow-sm);
	cursor: pointer;
	appearance: none;
}

.contact-form-card .wpcf7-form input[type="submit"] {
	padding-left: 2.75rem;
}

.contact-form-card .wpcf7-form button.wpcf7-submit .iv-icon {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

.contact-form-card .wpcf7-submit:hover,
.contact-form-card .wpcf7-form input[type="submit"]:hover,
.contact-form-card .wpcf7-form button.wpcf7-submit:hover {
	background-color: var(--brand-terracotta-dark);
}

.contact-form-card .wpcf7-not-valid-tip {
	color: var(--error-red);
	font-size: var(--fs-11);
	margin-top: 0.375rem;
}

/* Success panel replaces the form */
.contact-notice {
	padding-block: 3rem;
	text-align: center;
	animation: iv-zoom-in var(--transition-base) var(--ease-out);
}

.contact-notice[hidden] {
	display: none;
}

.contact-notice > * + * {
	margin-top: 1rem;
}

.contact-notice__icon {
	width: 4rem;
	height: 4rem;
	background-color: var(--terracotta-15);
	color: var(--brand-terracotta);
	border-radius: var(--radius-full);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-inline: auto;
}

.contact-notice__icon .iv-icon {
	width: 2.25rem;
	height: 2.25rem;
}

.contact-notice__title {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 2rem;
}

.contact-notice__text {
	font-size: var(--fs-sm);
	color: var(--espresso-70);
	max-width: var(--container-md);
	margin-inline: auto;
	line-height: 1.625;
}

.contact-notice__text strong,
.contact-notice__text .is-echo {
	font-weight: var(--fw-semibold);
}

/* Studio image card */
.contact-aside > * + * {
	margin-top: 1.5rem;
}

.contact-studio {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	border-radius: var(--radius-3xl);
	overflow: hidden;
	box-shadow: var(--shadow-md);
	border: 1px solid var(--brand-border);
	background-color: var(--brand-sand);
}

.contact-studio img {
	display: block;
	width: 100%;
	height: 20rem;
	flex: 1 1 auto;
	object-fit: cover;
	object-position: center;
	transition: transform 700ms var(--ease-out);
}

.contact-studio:hover img {
	transform: scale(1.05);
}

.contact-studio__caption {
	flex-shrink: 0;
	padding: 1rem;
	background-color: rgba(255, 255, 255, 0.9);
	border-top: 1px solid var(--brand-border);
	text-align: center;
}

.contact-studio__name {
	font-family: var(--font-serif);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1rem;
}

.contact-studio__tagline {
	font-family: var(--font-sans);
	font-size: var(--fs-11);
	color: var(--espresso-60);
	line-height: 1.4;
}

/* Optional office / location card (renders only when meta is filled) */
.contact-office {
	background-color: #fff;
	border: 1px solid var(--brand-border);
	border-radius: var(--radius-3xl);
	padding: 1.5rem;
	box-shadow: var(--shadow-xs);
}

.contact-office > * + * {
	margin-top: 0.75rem;
}

.contact-office__name {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.75rem;
}

.contact-office__row {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	color: var(--espresso-75);
	line-height: 1.625;
}

.contact-office__row .iv-icon {
	width: 1rem;
	height: 1rem;
	color: var(--brand-terracotta);
	margin-top: 0.25rem;
}

.contact-office__row a:hover {
	color: var(--brand-terracotta);
}

.contact-office__disclaimer {
	padding-top: 0.75rem;
	border-top: 1px solid var(--brand-border-soft);
	font-size: var(--fs-11);
	color: var(--espresso-50);
	line-height: 1.5;
}

/* ==========================================================================
   25. LEGAL PAGES
   ========================================================================== */
.legal-root {
	max-width: var(--container-4xl);
	margin-inline: auto;
	padding: 2.5rem 1rem;
}

.legal-root > * + * {
	margin-top: 2.5rem;
}

.legal-toolbar {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
	border-bottom: 1px solid var(--brand-border);
	padding-bottom: 1.25rem;
}

.legal-toolbar .back-link {
	align-self: flex-start;
}

.legal-tabs {
	background-color: var(--brand-sand);
	padding: 0.25rem;
	border-radius: var(--radius-xl);
	border: 1px solid var(--brand-border);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem;
	font-size: var(--fs-xs);
	align-self: flex-end;
}

.legal-tabs a {
	padding: 0.375rem 0.75rem;
	border-radius: var(--radius-lg);
	color: var(--espresso-70);
	line-height: 1rem;
	transition: color var(--transition-base) var(--ease-out),
		background-color var(--transition-base) var(--ease-out);
}

.legal-tabs a:hover {
	color: var(--brand-espresso);
}

.legal-tabs a.is-active {
	background-color: #fff;
	color: var(--brand-terracotta);
	font-weight: var(--fw-bold);
	box-shadow: var(--shadow-xs);
}

.legal-doc {
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	padding: 2rem;
	box-shadow: var(--shadow-sm);
	font-family: var(--font-sans);
}

.legal-doc > * + * {
	margin-top: 2rem;
}

.legal-doc__head {
	border-bottom: 1px solid var(--brand-border-soft);
	padding-bottom: 1.5rem;
}

.legal-doc__head > * + * {
	margin-top: 0.75rem;
}

.legal-doc__kicker {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	color: var(--brand-terracotta);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1rem;
}

.legal-doc__kicker .iv-icon {
	width: 1rem;
	height: 1rem;
}

.legal-doc__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.2;
}

.legal-doc__intro {
	font-size: var(--fs-base);
	color: var(--espresso-85);
	line-height: 1.625;
	font-weight: var(--fw-normal);
	background-color: var(--brand-linen);
	padding: 1.25rem;
	border-radius: var(--radius-2xl);
	border: 1px solid var(--brand-border);
}

.legal-doc__body {
	font-size: var(--fs-sm);
	color: var(--espresso-80);
	line-height: 1.625;
}

.legal-doc__body > * + * {
	margin-top: 2rem;
}

.legal-doc__body h2 {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
	margin-bottom: 0.5rem;
}

.legal-doc__body h2 + p {
	margin-top: 0.5rem;
}

.legal-doc__body h3 {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	margin-bottom: 0.5rem;
}

.legal-doc__body p {
	line-height: 1.625;
}

.legal-doc__body a {
	color: var(--brand-terracotta);
	text-decoration: underline;
}

.legal-doc__body ul,
.legal-doc__body ol {
	padding-left: 1.5rem;
}

.legal-doc__body ul { list-style: disc; }
.legal-doc__body ol { list-style: decimal; }

.legal-doc__foot {
	padding-top: 1.5rem;
	border-top: 1px solid var(--brand-border-soft);
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--fs-xs);
	color: var(--espresso-60);
	line-height: 1rem;
}

.legal-doc__foot > span {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.legal-doc__foot .iv-icon {
	width: 1rem;
	height: 1rem;
	color: var(--brand-terracotta);
}

/* ==========================================================================
   26. GENERIC PAGE (page.php)
   ========================================================================== */
.generic-page {
	max-width: var(--container-4xl);
	margin-inline: auto;
	padding: 2.5rem 1rem;
}

.generic-page > * + * {
	margin-top: 2rem;
}

.generic-page__head {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.generic-page__title {
	font-family: var(--font-serif);
	font-size: var(--fs-3xl);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.generic-page__subtitle {
	font-family: var(--font-sans);
	font-size: var(--fs-sm);
	color: var(--espresso-70);
	line-height: 1.625;
}

.generic-page__thumb {
	border-radius: var(--radius-3xl);
	overflow: hidden;
	border: 1px solid var(--brand-border);
	box-shadow: var(--shadow-sm);
	background-color: var(--brand-sand);
}

.generic-page__thumb img {
	width: 100%;
	height: 20rem;
	object-fit: cover;
}

.generic-page__body {
	background-color: #fff;
	border-radius: var(--radius-3xl);
	border: 1px solid var(--brand-border);
	padding: 2rem;
	box-shadow: var(--shadow-sm);
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	color: var(--espresso-85);
	line-height: 1.625;
}

.generic-page__body > * + * {
	margin-top: 1.5rem;
}

.generic-page__body h2,
.generic-page__body h3,
.generic-page__body h4 {
	font-family: var(--font-serif);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.375;
}

.generic-page__body h2 { font-size: var(--fs-2xl); }
.generic-page__body h3 { font-size: var(--fs-xl); }
.generic-page__body h4 { font-size: var(--fs-lg); }

.generic-page__body a {
	color: var(--brand-terracotta);
	text-decoration: underline;
}

.generic-page__body ul,
.generic-page__body ol {
	padding-left: 1.5rem;
}

.generic-page__body ul { list-style: disc; }
.generic-page__body ol { list-style: decimal; }

.generic-page__body img {
	border-radius: var(--radius-2xl);
}

/* Gutenberg alignment + button support inside editor-driven regions */
.aligncenter { margin-inline: auto; text-align: center; }
.alignleft { float: left; margin-right: 1.5rem; }
.alignright { float: right; margin-left: 1.5rem; }
.alignwide { max-width: none; }
.alignfull { max-width: none; }

.wp-block-image img { border-radius: var(--radius-2xl); }

.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-espresso);
	color: #fff;
	font-size: var(--fs-sm);
	font-weight: var(--fw-semibold);
	line-height: 1.25rem;
	box-shadow: var(--shadow-xs);
	transition: background-color var(--transition-fast) var(--ease-out);
}

.wp-block-button__link:hover {
	background-color: var(--brand-terracotta);
}

.is-style-outline .wp-block-button__link {
	background-color: transparent;
	border: 1px solid var(--brand-espresso);
	color: var(--brand-espresso);
}

.is-style-outline .wp-block-button__link:hover {
	background-color: var(--brand-espresso);
	color: #fff;
}

/* ==========================================================================
   27. SCROLL TO TOP + COOKIE NOTICE
   ========================================================================== */
.floating-actions {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	z-index: 40;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.625rem;
}

.scroll-top-btn {
	padding: 0.75rem;
	border-radius: var(--radius-full);
	background-color: #fff;
	color: var(--brand-espresso);
	box-shadow: var(--shadow-md);
	border: 1px solid var(--brand-border);
	display: none;
	align-items: center;
	justify-content: center;
	transition: background-color var(--transition-slow) var(--ease-out),
		color var(--transition-slow) var(--ease-out);
}

.scroll-top-btn.is-visible {
	display: flex;
}

.scroll-top-btn:hover {
	background-color: var(--brand-linen);
	color: var(--brand-terracotta);
}

.scroll-top-btn .iv-icon {
	width: 1rem;
	height: 1rem;
}

.cookie-notice {
	position: fixed;
	bottom: 1.5rem;
	left: 1.5rem;
	z-index: 45;
	max-width: 24rem;
	background-color: #fff;
	border: 1px solid var(--brand-border);
	border-radius: var(--radius-2xl);
	box-shadow: var(--shadow-xl);
	padding: 1.25rem;
	animation: iv-zoom-in var(--transition-slow) var(--ease-out);
}

.cookie-notice[hidden] {
	display: none;
}

.cookie-notice__title {
	font-family: var(--font-serif);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	color: var(--brand-espresso);
	line-height: 1.5rem;
}

.cookie-notice__body {
	font-family: var(--font-sans);
	font-size: var(--fs-xs);
	color: var(--espresso-70);
	line-height: 1.625;
	margin-top: 0.5rem;
}

.cookie-notice__actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1rem;
}

.cookie-notice__accept {
	padding: 0.5rem 1rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-terracotta);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
	transition: background-color var(--transition-fast) var(--ease-out);
}

.cookie-notice__accept:hover {
	background-color: var(--brand-terracotta-dark);
}

.cookie-notice__dismiss {
	padding: 0.5rem 1rem;
	border-radius: var(--radius-full);
	background-color: var(--brand-sand);
	color: var(--espresso-70);
	font-size: var(--fs-xs);
	font-weight: var(--fw-semibold);
	line-height: 1rem;
	transition: color var(--transition-fast) var(--ease-out);
}

.cookie-notice__dismiss:hover {
	color: var(--brand-espresso);
}

/* ==========================================================================
   28. RESPONSIVE — sm (640px)
   ========================================================================== */
@media (min-width: 640px) {
	.iv-container {
		padding-inline: 1.5rem;
	}

	.site-header__actions {
		gap: 1rem;
	}

	.btn-subscribe-header {
		padding-inline: 1.25rem;
		font-size: var(--fs-sm);
		line-height: 1.25rem;
	}

	.hero-spotlight__body {
		padding: 3rem;
	}

	.hero-spotlight__title {
		font-size: var(--fs-4xl);
	}

	.hero-spotlight__excerpt {
		font-size: var(--fs-base);
	}

	.hero-spotlight__figure {
		height: 24rem;
	}

	.hero-spotlight__note {
		display: block;
	}

	.logo-slider__track {
		gap: 4rem;
	}

	.logo-slider__item {
		min-width: 160px;
	}

	.logo-slider__brand {
		font-size: var(--fs-xl);
	}

	.logo-slider__fade {
		width: 7rem;
	}

	.section-head {
		flex-direction: row;
		align-items: flex-end;
	}

	.section-head__title {
		font-size: var(--fs-3xl);
		line-height: 2.25rem;
	}

	.lead-card__media {
		height: 24rem;
	}

	.lead-card__title {
		font-size: var(--fs-2xl);
	}

	.lead-card__body {
		padding: 2rem;
	}

	.lead-card__excerpt {
		font-size: var(--fs-sm);
	}

	.companion-card {
		flex-direction: row;
		align-items: stretch;
		min-height: 13.5rem;
	}

	.companion-card__media {
		flex: 0 0 40%;
		width: 40%;
		max-width: 40%;
		height: auto;
		align-self: stretch;
	}

	.companion-card__media img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
	}

	.companion-card__body {
		flex: 1 1 60%;
		width: 60%;
		min-width: 0;
	}

	.companion-card__title {
		font-size: var(--fs-lg);
	}

	.trio-card__title,
	.ritual-card__title {
		font-size: var(--fs-xl);
	}

	.travel-lead__media {
		height: 24rem;
	}

	.travel-lead__title {
		font-size: var(--fs-2xl);
	}

	.travel-lead__body {
		padding: 1.75rem;
	}

	.travel-lead__excerpt {
		font-size: var(--fs-sm);
	}

	.destination-card__title {
		font-size: var(--fs-lg);
	}

	.ritual-card__top {
		padding: 1.25rem 1.25rem 0;
	}

	.ritual-card__body {
		padding: 1.5rem;
	}

	.newsletter-panel {
		padding: 3rem;
	}

	.newsletter-panel__title {
		font-size: var(--fs-4xl);
	}

	.newsletter-panel__text {
		font-size: var(--fs-base);
	}

	.newsletter-panel .wpcf7-form .newsletter-form,
	.newsletter-form {
		flex-direction: row;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.newsletter-form__field--name { width: 33.333333%; }
	.newsletter-form__field--email { width: 66.666667%; }

	.newsletter-panel .wpcf7-submit,
	.newsletter-panel .wpcf7-form input[type="submit"],
	.newsletter-panel .wpcf7-form button.wpcf7-submit,
	.newsletter-form__submit {
		width: auto;
		flex-shrink: 0;
		align-self: flex-start;
		height: auto;
	}

	.single-post-root {
		padding: 3rem 1.5rem;
	}

	.sidebar-switch__label {
		display: inline;
	}

	.post-title {
		font-size: var(--fs-4xl);
	}

	.post-standfirst {
		font-size: var(--fs-lg);
	}

	.post-figure__frame img {
		height: 28.125rem;
	}

	.post-pullquote {
		padding: 2rem;
	}

	.post-pullquote blockquote,
	.post-prose blockquote {
		font-size: var(--fs-2xl);
	}

	.post-secondary-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.post-author-box {
		padding: 2rem;
		flex-direction: row;
		align-items: flex-start;
	}

	.post-author-box__text {
		text-align: left;
	}

	.post-author-box__head {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.post-author-box__bio {
		font-size: var(--fs-sm);
	}

	.sidebar-card {
		padding: 1.5rem;
	}

	.sidebar-card__title {
		font-size: var(--fs-lg);
		line-height: 1.75rem;
	}

	.read-next-item__title {
		font-size: var(--fs-sm);
	}

	.search-result__thumb {
		width: 7rem;
		height: 6rem;
	}

	.search-result__excerpt {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
		overflow: hidden;
	}

	.search-result__arrow {
		display: block;
	}

	.search-result__title {
		font-size: var(--fs-base);
	}

	.search-result__cat {
		font-size: var(--fs-11);
	}

	.search-result {
		padding: 1rem;
	}

	.search-modal {
		padding: 1.5rem;
		padding-top: 4rem;
	}

	.search-modal__head {
		padding: 1.5rem;
	}

	.search-modal__input-row > .iv-icon {
		width: 1.5rem;
		height: 1.5rem;
	}

	.search-modal__input {
		font-size: var(--fs-lg);
	}

	.search-modal__results {
		padding: 1.5rem;
	}

	.subscribe-modal__panel {
		padding: 2rem;
	}

	.subscribe-modal__title {
		font-size: var(--fs-3xl);
		line-height: 2.25rem;
	}

	.subscribe-modal__text {
		font-size: var(--fs-sm);
	}

	.about-root {
		padding: 4rem 1.5rem;
	}

	.about-head__title {
		font-size: var(--fs-4xl);
	}

	.about-head__text,
	.contact-head__text {
		font-size: var(--fs-base);
	}

	.about-gallery {
		gap: 2rem;
	}

	.about-gallery__item-frame {
		height: 24rem;
	}

	.about-manifesto {
		padding: 3rem;
	}

	.contact-root {
		padding: 4rem 1.5rem;
	}

	.contact-head__title {
		font-size: var(--fs-4xl);
	}

	.contact-form-card {
		padding: 2.5rem;
	}

	.contact-form-card .wpcf7-submit,
	.contact-form-card .wpcf7-form input[type="submit"],
	.contact-form-card .wpcf7-form button.wpcf7-submit,
	.contact-form__submit {
		width: auto;
		align-self: flex-start;
	}

	.contact-studio img {
		height: 24rem;
	}

	.legal-root {
		padding: 4rem 1.5rem;
	}

	.legal-toolbar {
		flex-direction: row;
		align-items: center;
	}

	.legal-doc {
		padding: 3rem;
	}

	.legal-doc__title {
		font-size: var(--fs-4xl);
	}

	.legal-doc__body {
		font-size: var(--fs-base);
	}

	.legal-doc__body h2 {
		font-size: var(--fs-xl);
	}

	.about-signoff {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.generic-page {
		padding: 4rem 1.5rem;
	}

	.generic-page__title {
		font-size: var(--fs-4xl);
	}

	.generic-page__body {
		padding: 3rem;
	}

	.site-footer__bottom {
		flex-direction: row;
	}

	.footer-app__badges {
		flex-direction: row;
		align-items: center;
	}

	.error-404__code {
		font-size: 5rem;
	}
}

/* ==========================================================================
   29. RESPONSIVE — md (768px)
   ========================================================================== */
@media (min-width: 768px) {
	.mobile-menu-toggle {
		display: none;
	}

	.mobile-drawer,
	.mobile-drawer.is-open {
		display: none;
	}

	.primary-nav {
		display: flex;
	}

	.search-toggle,
	.btn-subscribe-header {
		display: inline-flex;
	}

	.site-brand__name {
		font-size: var(--fs-3xl);
		line-height: 2.25rem;
	}

	.site-brand__tagline {
		font-size: var(--fs-10);
		letter-spacing: 0.25em;
		line-height: 1.4;
	}

	.site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.trio-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.trio-card.is-highlighted {
		transform: translateY(-0.25rem);
	}

	.about-gallery {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.about-gallery__item--featured {
		transform: translateY(-1rem);
		transition: transform var(--transition-slow) var(--ease-out);
	}

	.post-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ==========================================================================
   30. RESPONSIVE — lg (1024px)
   ========================================================================== */
@media (min-width: 1024px) {
	.iv-container {
		padding-inline: 2rem;
	}

	.site-brand__name {
		font-size: var(--fs-4xl);
		line-height: 2.5rem;
	}

	.home-root > * + * {
		margin-top: 6rem;
	}

	.hero-spotlight__grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.hero-spotlight__body {
		grid-column: span 7 / span 7;
	}

	.hero-spotlight__figure {
		grid-column: span 5 / span 5;
		height: 30rem;
	}

	.hero-spotlight__figure-scrim {
		display: none;
	}

	.hero-spotlight__title {
		font-size: var(--fs-5xl);
		line-height: 1.12;
	}

	.section-head__title {
		font-size: var(--fs-4xl);
		line-height: 2.5rem;
	}

	.split-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.split-grid__main {
		grid-column: span 7 / span 7;
	}

	.split-grid__aside {
		grid-column: span 5 / span 5;
	}

	.lead-card__title,
	.travel-lead__title {
		font-size: var(--fs-3xl);
	}

	.travel-lead__media {
		flex: 1 1 0%;
		min-height: 21.25rem;
		height: auto;
	}

	.newsletter-panel {
		padding: 4rem;
	}

	.newsletter-panel__title {
		font-size: var(--fs-5xl);
		line-height: 1.15;
	}

	.single-post-root {
		padding-inline: 2rem;
	}

	.post-layout {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3.5rem;
	}

	.post-layout__main {
		grid-column: span 8 / span 8;
	}

	.post-layout__aside {
		grid-column: span 4 / span 4;
		position: sticky;
		top: 6rem;
		align-self: start;
		z-index: 2;
	}

	.post-layout.is-sidebar-left .post-layout__aside {
		order: 1;
	}

	.post-layout.is-sidebar-left .post-layout__main {
		order: 2;
	}

	.post-title {
		font-size: var(--fs-5xl);
		line-height: 1.14;
	}

	.site-footer__grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
	}

	.footer-col--brand { grid-column: span 4 / span 4; }
	.footer-col--sections { grid-column: span 2 / span 2; }
	.footer-col--pages { grid-column: span 2 / span 2; }
	.footer-col--trust { grid-column: span 4 / span 4; }

	.footer-app__badges {
		flex-direction: column;
		align-items: stretch;
	}

	.about-head__title,
	.contact-head__title,
	.legal-doc__title,
	.generic-page__title {
		font-size: var(--fs-5xl);
		line-height: 1.12;
	}

	.contact-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
		align-items: stretch;
	}

	.contact-grid__form { grid-column: span 7 / span 7; }
	.contact-grid__aside {
		grid-column: span 5 / span 5;
		display: flex;
		flex-direction: column;
		height: 100%;
		min-height: 0;
	}

	.contact-studio {
		flex: 1 1 auto;
		min-height: 0;
	}

	.contact-studio img {
		flex: 1 1 auto;
		height: 0;
		min-height: 0;
	}

	.cat-hero__title {
		font-size: var(--fs-5xl);
	}

	.post-card-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ==========================================================================
   31. RESPONSIVE — xl (1280px)
   ========================================================================== */
@media (min-width: 1280px) {
	.footer-app__badges {
		flex-direction: row;
		align-items: center;
	}
}

/* ==========================================================================
   32. PRINT
   ========================================================================== */
@media print {
	.site-header,
	.site-footer,
	.floating-actions,
	.iv-modal,
	.post-sidebar,
	.sidebar-switch,
	.cookie-notice {
		display: none !important;
	}

	body {
		background: #fff;
	}
}
