/* AP Saleroom — Theme stylesheet
   Bespoke hand-coded CSS. Brand: Union Jack navy/red/white.
   Mobile-first. Custom properties for everything tokenisable. */

/* ============================================================
   1. Tokens
   ============================================================ */
:root {
	/* Brand */
	--ap-navy: #012169;
	--ap-navy-dark: #00164a;
	--ap-navy-light: #1c3686;
	--ap-red: #C8102E;
	--ap-red-dark: #9c0a22;
	--ap-white: #ffffff;
	--ap-cream: #F5F2EA;
	--ap-cream-dark: #ece8dc;
	--ap-ink: #1A1A1A;
	--ap-stone: #6B6B6B;
	--ap-rule: #D9D5CB;
	--ap-shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.06);
	--ap-shadow-lg: 0 4px 12px rgba(0,0,0,.08), 0 16px 32px rgba(1,33,105,.10);

	/* Spacing */
	--space-1: 4px;  --space-2: 8px;  --space-3: 12px;
	--space-4: 16px; --space-5: 24px; --space-6: 32px;
	--space-7: 48px; --space-8: 64px; --space-9: 96px; --space-10: 128px;

	/* Type */
	--font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	--font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, monospace;
	--text-xs: 12px;  --text-sm: 14px; --text-base: 16px;
	--text-md: 18px;  --text-lg: 22px; --text-xl: 28px;
	--text-2xl: 36px; --text-3xl: 46px; --text-4xl: 58px;
	--leading-tight: 1.2;
	--leading-snug: 1.35;
	--leading-normal: 1.55;
	--leading-loose: 1.75;

	/* Layout */
	--container-max: 1280px;
	--container-px: clamp(16px, 4vw, 48px);
	--header-height: 96px;
	--utility-bar-height: 36px;
	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 12px;

	/* Motion */
	--ease-out: cubic-bezier(.2,.7,.2,1);
	--dur-fast: 150ms;
	--dur-base: 250ms;
}

/* ============================================================
   2. Reset / base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--leading-normal);
	color: var(--ap-ink);
	background: var(--ap-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
img { font-style: italic; vertical-align: middle; }
a { color: var(--ap-navy); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; transition: color var(--dur-fast) var(--ease-out); }
a:hover { color: var(--ap-red); }
a:focus-visible { outline: 2px solid var(--ap-navy); outline-offset: 2px; border-radius: 2px; }
button { font-family: inherit; cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 2px solid var(--ap-navy);
	outline-offset: 2px;
}

p, ul, ol, dl, blockquote, figure, pre { margin: 0 0 var(--space-4); }
ul, ol { padding-left: 1.25em; }
li { margin-bottom: var(--space-1); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	line-height: var(--leading-tight);
	color: var(--ap-navy);
	margin: 0 0 var(--space-3);
}
h1 { font-size: var(--text-3xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }

::selection { background: rgba(200, 16, 46, .18); color: inherit; }
::-moz-selection { background: rgba(200, 16, 46, .18); color: inherit; }

/* ============================================================
   3. Layout helpers
   ============================================================ */
.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-px);
}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.ap-skip-link {
	position: absolute; top: -100px; left: 16px;
	background: var(--ap-navy); color: #fff; padding: 12px 18px;
	border-radius: var(--radius-md); z-index: 10000;
	text-decoration: none; font-weight: 600;
	transition: top var(--dur-base) var(--ease-out);
}
.ap-skip-link:focus { top: 16px; color: #fff; outline: 2px solid var(--ap-red); outline-offset: 2px; }

/* ============================================================
   4. Site header — utility bar + main nav + flag stripe
   ============================================================ */
.ap-site { min-height: 100vh; display: flex; flex-direction: column; }
.ap-site > main { flex: 1; }

.ap-utility-bar {
	background: var(--ap-navy);
	color: #fff;
	font-size: var(--text-xs);
	letter-spacing: .04em;
}
.ap-utility-bar__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding: 0 var(--container-px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: var(--utility-bar-height);
	gap: var(--space-4);
	flex-wrap: wrap;
}
.ap-utility-bar a { color: rgba(255,255,255,.85); text-decoration: none; }
.ap-utility-bar a:hover { color: #fff; text-decoration: underline; }
.ap-utility-menu, .ap-utility-bar ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: var(--space-4);
	flex-wrap: wrap;
}
.ap-utility-bar__right {
	display: flex; align-items: center; gap: var(--space-3);
}
.ap-utility-phone { color: rgba(255,255,255,.85); }
.ap-utility-phone .ap-todo { color: rgba(255,255,255,.55); font-style: italic; }

.ap-icon-btn {
	background: transparent; border: 1px solid transparent;
	color: #fff; padding: 6px 10px; border-radius: var(--radius-sm);
	display: inline-flex; align-items: center; gap: 6px;
	font-size: var(--text-xs); font-weight: 600; letter-spacing: .04em;
	text-transform: uppercase;
	transition: background var(--dur-fast), border-color var(--dur-fast);
}
.ap-icon-btn:hover { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.25); }
.ap-icon-btn svg { width: 16px; height: 16px; }
.ap-icon-btn__label { display: none; }
@media (min-width: 480px) {
	.ap-icon-btn__label { display: inline; }
}

.ap-site-header {
	background: #fff;
	border-bottom: 1px solid var(--ap-rule);
	position: relative;
	z-index: 90;
}
.ap-utility-bar { position: relative; z-index: 91; }
.ap-flag-stripe { position: relative; z-index: 89; }
.ap-site-header__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding: 0 var(--container-px);
	min-height: var(--header-height);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-5);
}
.ap-site-branding__link { display: inline-flex; align-items: center; gap: var(--space-3); text-decoration: none; }
.ap-site-logo, .custom-logo {
	height: auto; max-height: 64px; width: auto; max-width: 240px; display: block;
}
.ap-site-name {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	color: var(--ap-navy);
	font-weight: 700;
}

.ap-flag-stripe {
	display: flex; height: 4px;
}
.ap-flag-stripe span { display: block; flex: 1 1 33.333%; }
.ap-flag-stripe__navy { background: var(--ap-navy); }
.ap-flag-stripe__white { background: #fff; }
.ap-flag-stripe__red { background: var(--ap-red); }

/* Primary nav */
.ap-primary-nav { position: relative; z-index: 100; }
.ap-nav-toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	border: 1px solid var(--ap-rule); border-radius: var(--radius-sm);
	background: #fff; color: var(--ap-navy);
	position: relative;
}
.ap-nav-toggle__bars,
.ap-nav-toggle__bars::before,
.ap-nav-toggle__bars::after {
	content: '';
	display: block;
	width: 22px; height: 2px;
	background: currentColor;
	position: absolute;
	left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	transition: transform var(--dur-base) var(--ease-out), top var(--dur-base) var(--ease-out);
}
.ap-nav-toggle__bars::before { transform: translate(-50%, calc(-50% - 7px)); }
.ap-nav-toggle__bars::after  { transform: translate(-50%, calc(-50% + 7px)); }
.ap-nav-toggle[aria-expanded="true"] .ap-nav-toggle__bars { background: transparent; }
.ap-nav-toggle[aria-expanded="true"] .ap-nav-toggle__bars::before { transform: translate(-50%, -50%) rotate(45deg); }
.ap-nav-toggle[aria-expanded="true"] .ap-nav-toggle__bars::after  { transform: translate(-50%, -50%) rotate(-45deg); }

.ap-primary-menu {
	list-style: none; margin: 0; padding: 0;
	display: none;
	position: absolute;
	right: 0; top: calc(100% + 12px);
	background: #fff;
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	box-shadow: var(--ap-shadow-lg);
	min-width: 240px;
	padding: var(--space-3) 0;
	z-index: 200;
}
.ap-primary-menu li { margin: 0; }
.ap-primary-menu a {
	display: block;
	padding: var(--space-3) var(--space-5);
	color: var(--ap-navy);
	font-weight: 600;
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);
}
.ap-primary-menu a:hover, .ap-primary-menu a[aria-current="page"] {
	background: var(--ap-cream);
	border-left-color: var(--ap-red);
	color: var(--ap-navy);
}
.ap-primary-menu .sub-menu {
	list-style: none; margin: 0; padding: var(--space-2) 0 0 var(--space-4);
	display: none;
}

.ap-primary-nav.is-open .ap-primary-menu { display: block; }
.ap-primary-nav.is-open .ap-primary-menu .sub-menu { display: block; }

@media (min-width: 1024px) {
	.ap-nav-toggle { display: none; }
	.ap-primary-menu {
		display: flex !important;
		position: static;
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0;
		min-width: 0;
		gap: var(--space-1);
	}
	.ap-primary-menu li { position: relative; }
	.ap-primary-menu a {
		padding: var(--space-3) var(--space-4);
		border-left: 0;
		border-bottom: 3px solid transparent;
		font-size: var(--text-sm);
		text-transform: uppercase;
		letter-spacing: .06em;
	}
	.ap-primary-menu a:hover, .ap-primary-menu a[aria-current="page"] {
		background: transparent;
		border-bottom-color: var(--ap-red);
	}
	.ap-primary-menu .sub-menu {
		position: absolute;
		top: 100%; left: 0;
		min-width: 220px;
		padding: var(--space-2) 0;
		background: #fff;
		border: 1px solid var(--ap-rule);
		border-radius: var(--radius-md);
		box-shadow: var(--ap-shadow-lg);
		display: none;
		z-index: 210;
	}
	.ap-primary-menu li:hover > .sub-menu,
	.ap-primary-menu li:focus-within > .sub-menu { display: block; }
	.ap-primary-menu .sub-menu a {
		text-transform: none;
		letter-spacing: normal;
		font-size: var(--text-sm);
		border-bottom: 0;
	}
}

/* ============================================================
   5. Buttons
   ============================================================ */
.ap-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: var(--space-2);
	padding: 12px 24px;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
	border: 2px solid transparent;
	border-radius: var(--radius-md);
	cursor: pointer;
	background: var(--ap-navy);
	color: #fff;
	transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast);
	white-space: nowrap;
}
.ap-btn:hover { background: var(--ap-navy-dark); color: #fff; transform: translateY(-1px); }
.ap-btn:active { transform: translateY(0); }
.ap-btn--primary { background: var(--ap-red); }
.ap-btn--primary:hover { background: var(--ap-red-dark); color: #fff; }
.ap-btn--ghost { background: transparent; color: var(--ap-navy); border-color: var(--ap-navy); }
.ap-btn--ghost:hover { background: var(--ap-navy); color: #fff; }
.ap-btn--lg { padding: 16px 32px; font-size: var(--text-base); }
.ap-btn--sm { padding: 8px 16px; font-size: var(--text-xs); }

/* ============================================================
   6. Hero — simple
   ============================================================ */
.ap-hero {
	position: relative;
	background: var(--ap-navy);
	color: #fff;
	overflow: hidden;
}
.ap-hero--simple { padding-block: var(--space-7); text-align: center; }
.ap-hero--simple .ap-hero__bg {
	position: absolute; inset: 0;
	background: linear-gradient(135deg, var(--ap-navy) 0%, var(--ap-navy-light) 100%);
	z-index: 0;
}
.ap-hero--simple .ap-hero__bg::after {
	content: '';
	position: absolute; inset: 0;
	background: radial-gradient(circle at 80% 50%, rgba(200,16,46,.18), transparent 60%);
}
.ap-hero__content { position: relative; z-index: 1; }
.ap-hero--simple .ap-hero__content { max-width: 880px; margin-inline: auto; }
.ap-hero__title { color: #fff; font-size: clamp(28px, 5vw, 48px); margin-bottom: var(--space-3); }
.ap-hero__subtitle { color: rgba(255,255,255,.85); font-size: var(--text-md); max-width: 64ch; margin: 0 auto; }
.ap-hero__eyebrow {
	color: var(--ap-red);
	font-size: var(--text-sm);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin: 0 0 var(--space-3);
}

/* Hero — keep below header in stacking order so dropdowns layer above */
.ap-hero { position: relative; z-index: 1; }

/* Hero — split (homepage) */
.ap-hero--split { padding: 0; }
.ap-hero-split {
	display: grid;
	grid-template-columns: 1fr;
	min-height: 540px;
}
@media (min-width: 1024px) {
	.ap-hero-split { grid-template-columns: 55% 45%; min-height: 620px; }
}
.ap-hero-split__left {
	position: relative;
	display: flex;
	align-items: center;
	padding: var(--space-7) var(--container-px);
	color: #fff;
	overflow: hidden;
	background: var(--ap-navy-dark);
}
.ap-hero-split__copy { position: relative; z-index: 2; max-width: 560px; }
.ap-hero-split__copy .ap-hero__title {
	color: #fff;
	font-size: clamp(32px, 4vw, 56px);
	line-height: 1.1;
	margin-bottom: var(--space-4);
}
.ap-hero-split__copy .ap-hero__lead {
	color: rgba(255,255,255,.92);
	font-size: var(--text-md);
	line-height: var(--leading-normal);
	margin-bottom: var(--space-5);
}
.ap-hero__ctas { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.ap-hero-split__copy .ap-btn--ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.ap-hero-split__copy .ap-btn--ghost:hover { background: #fff; color: var(--ap-navy); border-color: #fff; }

.ap-hero-collage {
	position: absolute; inset: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	z-index: 0;
	opacity: .35;
}
.ap-hero-collage__tile {
	background-size: cover;
	background-position: center;
}
.ap-hero-collage__tile--0 { grid-column: 1; grid-row: 1 / 3; }
.ap-hero-collage__tile--1 { grid-column: 2; grid-row: 1; }
.ap-hero-collage__tile--2 { grid-column: 2; grid-row: 2; }
.ap-hero-collage__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, var(--ap-navy-dark) 0%, rgba(0,22,74,.85) 50%, rgba(0,22,74,.55) 100%);
}

.ap-hero-split__right {
	background: var(--ap-cream);
	padding: var(--space-6) var(--container-px);
	display: flex;
	align-items: center;
}

/* ============================================================
   7. Hero slider (Swiper)
   ============================================================ */
.ap-hero-slider { width: 100%; }
.ap-hero-slider__header { margin-bottom: var(--space-4); }
.ap-hero-slider__eyebrow {
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ap-red);
}
.ap-hero-slider__swiper { padding-bottom: 48px; }
.ap-hero-slide {
	background: #fff;
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-lg);
	box-shadow: var(--ap-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-height: 380px;
}
.ap-hero-slide__media {
	display: block;
	height: 200px;
	overflow: hidden;
	background: var(--ap-cream);
}
.ap-hero-slide__media img {
	width: 100%; height: 100%; object-fit: cover;
}
.ap-hero-slide__body {
	padding: var(--space-5);
	flex: 1;
	display: flex;
	flex-direction: column;
}
.ap-hero-slide__date {
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ap-red);
	margin: 0 0 var(--space-2);
}
.ap-hero-slide__title {
	font-size: var(--text-xl);
	margin: 0 0 var(--space-3);
	color: var(--ap-navy);
}
.ap-hero-slide__title a { color: inherit; text-decoration: none; }
.ap-hero-slide__title a:hover { color: var(--ap-red); }
.ap-hero-slide__desc {
	color: var(--ap-stone);
	font-size: var(--text-sm);
	margin: 0 0 var(--space-4);
}
.ap-hero-slide__actions {
	display: flex;
	gap: var(--space-2);
	flex-wrap: wrap;
	margin-top: auto;
}
.ap-hero-slide__status {
	color: var(--ap-red);
	font-size: var(--text-sm);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
}
.ap-hero-slide--empty .ap-hero-slide__body {
	background: linear-gradient(180deg, var(--ap-cream), #fff);
	min-height: 360px;
	justify-content: center;
}

/* Swiper overrides */
.ap-hero-slider .swiper-pagination {
	bottom: 0 !important;
}
.ap-hero-slider .swiper-pagination-bullet {
	width: 10px; height: 10px;
	background: var(--ap-rule);
	opacity: 1;
}
.ap-hero-slider .swiper-pagination-bullet-active {
	background: var(--ap-red);
}
.ap-hero-slider__nav {
	width: 40px; height: 40px;
	border-radius: 50%;
	background: rgba(255,255,255,.95);
	color: var(--ap-navy);
	border: 1px solid var(--ap-rule);
	box-shadow: var(--ap-shadow);
	cursor: pointer;
}
.ap-hero-slider__nav::after {
	font-size: 16px !important;
	font-weight: 700;
}

/* ============================================================
   8. Sections / common
   ============================================================ */
.ap-section-header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto var(--space-6);
}
.ap-section-header--inline {
	max-width: var(--container-max);
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: var(--space-4);
	text-align: left;
	flex-wrap: wrap;
}
.ap-section-eyebrow {
	color: var(--ap-red);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin: 0 0 var(--space-2);
}
.ap-section-title {
	font-size: clamp(28px, 4vw, 40px);
	margin: 0;
}
.ap-section-link {
	font-weight: 600;
	color: var(--ap-navy);
	text-decoration: none;
}
.ap-section-link:hover { color: var(--ap-red); }

/* ============================================================
   9. Categories grid
   ============================================================ */
.ap-categories { padding-block: var(--space-9); background: var(--ap-cream); }
/* Fully fluid: cards auto-fit by available width with a sensible min size,
   so the grid flows from 1 → 2 → 3 → 4 columns as the viewport widens. */
.ap-category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(var(--space-3), 2vw, var(--space-5));
}
.ap-category-card__media {
	height: clamp(140px, 16vw, 220px);
}
.ap-category-card__title {
	font-size: clamp(var(--text-base), 1.4vw + 0.6rem, var(--text-lg));
}
.ap-category-card__desc {
	font-size: clamp(var(--text-xs), 0.6vw + 0.6rem, var(--text-sm));
}

.ap-category-card {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--ap-shadow);
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base);
}
.ap-category-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ap-shadow-lg);
	color: inherit;
}
.ap-category-card__media {
	height: 180px;
	background-size: cover;
	background-position: center;
	background-color: var(--ap-cream-dark);
	border-bottom: 4px solid var(--ap-red);
}
.ap-category-card__body { padding: var(--space-5); }
.ap-category-card__title {
	font-size: var(--text-lg);
	margin: 0 0 var(--space-2);
	color: var(--ap-navy);
}
.ap-category-card__desc {
	color: var(--ap-stone);
	font-size: var(--text-sm);
	margin: 0 0 var(--space-3);
}
.ap-category-card__cta {
	display: inline-flex;
	color: var(--ap-red);
	font-weight: 700;
	font-size: var(--text-sm);
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* ============================================================
   10. Upcoming auctions section (wrapping plugin shortcode)
   ============================================================ */
.ap-upcoming-section { padding-block: var(--space-9); background: #fff; }

/* ============================================================
   11. Why Sell With Us
   ============================================================ */
.ap-why-sell { padding-block: var(--space-9); background: #fff; }
.ap-why-sell__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-5);
}
@media (min-width: 768px) {
	.ap-why-sell__grid { grid-template-columns: repeat(3, 1fr); }
}
.ap-why-sell__item {
	padding: var(--space-6);
	background: var(--ap-cream);
	border-radius: var(--radius-md);
	border-top: 4px solid var(--ap-red);
}
.ap-why-sell__icon {
	color: var(--ap-navy);
	margin-bottom: var(--space-3);
}
.ap-why-sell__title {
	font-size: var(--text-lg);
	margin: 0 0 var(--space-2);
}
.ap-why-sell__body { margin: 0; color: var(--ap-stone); }

/* ============================================================
   12. Recent News (homepage)
   ============================================================ */
.ap-recent-news { padding-block: var(--space-9); background: var(--ap-cream); }
.ap-recent-news__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-5);
}
@media (min-width: 768px) {
	.ap-recent-news__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   13. CTA banner
   ============================================================ */
.ap-cta-banner {
	background: var(--ap-navy);
	color: #fff;
	padding-block: var(--space-8);
}
.ap-cta-banner__inner {
	display: flex; flex-wrap: wrap;
	gap: var(--space-5);
	align-items: center; justify-content: space-between;
}
.ap-cta-banner__copy { flex: 1 1 360px; }
.ap-cta-banner__eyebrow {
	color: var(--ap-red);
	font-size: clamp(22px, 3.2vw, 31px);
	font-weight: 700;
	letter-spacing: .01em;
	text-transform: none;
	line-height: 1.2;
	white-space: nowrap;
	margin: 0 0 var(--space-3);
}
.ap-cta-banner__heading {
	color: #fff;
	font-size: clamp(24px, 3vw, 36px);
	margin: 0 0 var(--space-2);
}
.ap-cta-banner__body { color: rgba(255,255,255,.9); margin: 0; max-width: 60ch; font-size: var(--text-md); }
.ap-cta-banner__body p { margin: 0 0 var(--space-4); }
.ap-cta-banner__body p:last-child { margin-bottom: 0; }
.ap-cta-banner__subheading {
	color: #fff;
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 600;
	margin: var(--space-4) 0 var(--space-3);
}
.ap-cta-banner__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ap-cta-banner__list li {
	position: relative;
	padding-left: 1.6em;
	margin-bottom: var(--space-2);
	color: rgba(255,255,255,.92);
}
.ap-cta-banner__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 8px;
	height: 8px;
	background: var(--ap-red);
	border-radius: 2px;
	transform: rotate(45deg);
}
.ap-cta-banner__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.ap-cta-banner .ap-btn--ghost { color: #fff; border-color: rgba(255,255,255,.6); }
.ap-cta-banner .ap-btn--ghost:hover { background: #fff; color: var(--ap-navy); border-color: #fff; }

/* ============================================================
   14. Cards (blog / archive)
   ============================================================ */
.ap-card {
	background: #fff;
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	overflow: hidden;
	display: flex; flex-direction: column;
	box-shadow: var(--ap-shadow);
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base);
}
.ap-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--ap-shadow-lg);
}
.ap-card__media { display: block; aspect-ratio: 4 / 3; background: var(--ap-cream); overflow: hidden; }
.ap-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ap-card__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); flex: 1; }
.ap-card__meta {
	font-size: var(--text-xs);
	color: var(--ap-stone);
	text-transform: uppercase;
	letter-spacing: .06em;
}
.ap-card__title {
	font-size: var(--text-lg);
	margin: 0;
}
.ap-card__title a { color: var(--ap-navy); text-decoration: none; }
.ap-card__title a:hover { color: var(--ap-red); }
.ap-card__excerpt { color: var(--ap-stone); font-size: var(--text-sm); margin: 0; flex: 1; }
.ap-card__excerpt p:last-child { margin-bottom: 0; }
.ap-card__body .ap-btn { align-self: flex-start; margin-top: var(--space-3); }

/* ============================================================
   15. Inner pages — prose
   ============================================================ */
.ap-prose {
	padding-block: var(--space-7);
}
.ap-prose .ap-page__content {
	max-width: 760px;
	margin-inline: auto;
}
.ap-prose .ap-breadcrumbs {
	max-width: 760px;
	margin-inline: auto;
	margin-bottom: var(--space-4);
}
.ap-prose .ap-page__content p { font-size: var(--text-md); line-height: var(--leading-loose); }
.ap-prose .ap-page__content h2 { margin-top: var(--space-7); }
.ap-prose .ap-page__content h3 { margin-top: var(--space-5); }
.ap-prose .ap-page__content img { border-radius: var(--radius-md); margin-block: var(--space-5); }
.ap-prose .ap-page__content blockquote {
	border-left: 4px solid var(--ap-red);
	padding-left: var(--space-4);
	color: var(--ap-stone);
	font-style: italic;
	margin: var(--space-5) 0;
}

/* ============================================================
   16. Breadcrumbs
   ============================================================ */
.ap-breadcrumbs { margin-bottom: var(--space-4); }
.ap-breadcrumbs__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: 4px 8px;
	font-size: var(--text-sm);
	color: var(--ap-stone);
}
.ap-breadcrumbs__item { display: inline-flex; align-items: center; }
.ap-breadcrumbs__item:not(:last-child)::after {
	content: '›';
	margin-left: 8px;
	color: var(--ap-rule);
}
.ap-breadcrumbs__item a { color: var(--ap-navy); }
.ap-breadcrumbs__item--current { color: var(--ap-stone); }

/* ============================================================
   17. FAQ accordion
   ============================================================ */
.ap-faq details {
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	background: #fff;
	margin-bottom: var(--space-3);
	transition: box-shadow var(--dur-fast);
}
.ap-faq details[open] { box-shadow: var(--ap-shadow); border-color: var(--ap-navy); }
.ap-faq summary {
	padding: var(--space-4) var(--space-5);
	cursor: pointer;
	font-weight: 600;
	color: var(--ap-navy);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-3);
}
.ap-faq summary::-webkit-details-marker { display: none; }
.ap-faq summary::after {
	content: '+';
	font-size: var(--text-xl);
	color: var(--ap-red);
	transition: transform var(--dur-fast);
}
.ap-faq details[open] summary::after { content: '−'; }
.ap-faq details > *:not(summary) {
	padding: 0 var(--space-5) var(--space-4);
	color: var(--ap-ink);
}

/* ============================================================
   17b. Past Auction Highlights — staggered category sections
   ============================================================ */
.ap-page-header--compact {
	padding-block: var(--space-5) var(--space-4);
	background: var(--ap-cream);
}
.ap-page-header--compact .ap-breadcrumbs { margin-bottom: var(--space-3); }
.ap-page-header__title {
	font-size: clamp(28px, 4vw, 40px);
	margin: 0;
	color: var(--ap-navy);
}
.ap-page-header__content {
	margin-top: var(--space-3);
	color: var(--ap-stone);
	font-size: var(--text-md);
	max-width: 720px;
}

/* ---- Brick-wall wallpaper for the highlights sections ----
   Each section sits on a tile-able SVG brick texture. A subtle
   dark vignette is layered on top to keep the white text content
   areas readable. The wallpaper URL can be overridden via the
   --ap-brick custom property (set inline from page-template
   if a Customizer override exists). */
.ap-highlights-sections {
	background: #ffffff;
	position: relative;
}
.ap-highlight {
	padding-block: clamp(var(--space-8), 9vw, var(--space-9));
	scroll-margin-top: 100px;
	background: transparent;
}

/* Image — looks like a hanging sign on the wall */
.ap-highlight__media {
	border-radius: 2px;
	overflow: visible;
	background: transparent;
	box-shadow: none;
	position: relative;
	aspect-ratio: 4 / 3;
	transform: rotate(-1.2deg);
	transition: transform var(--dur-base) var(--ease-out);
}
.ap-highlight--right .ap-highlight__media { transform: rotate(1.2deg); }
.ap-highlight:hover .ap-highlight__media,
.ap-highlight:focus-within .ap-highlight__media { transform: rotate(0deg); }

.ap-highlight__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: 8px solid #1a1a1a;
	box-shadow:
		0 1px 0 rgba(255,255,255,.18) inset,
		0 24px 32px -12px rgba(0,0,0,.55),
		0 8px 12px -4px rgba(0,0,0,.35);
}

/* Two little nails / mounting points above the image */
.ap-highlight__media::before,
.ap-highlight__media::after {
	content: '';
	position: absolute;
	top: -10px;
	width: 10px;
	height: 10px;
	background: radial-gradient(circle at 30% 30%, #d6d6d6, #707070 60%, #2a2a2a);
	border-radius: 50%;
	box-shadow: 0 1px 1px rgba(0,0,0,.6);
	z-index: 2;
}
.ap-highlight__media::before { left: 18%; }
.ap-highlight__media::after  { right: 18%; }

/* Text panel — cream "plaque" hanging on the wall */
.ap-highlight__copy {
	background: rgba(245, 242, 234, .98);
	padding: clamp(var(--space-5), 3vw, var(--space-7));
	border-radius: 4px;
	box-shadow:
		0 1px 0 rgba(255,255,255,.6) inset,
		0 24px 40px -12px rgba(0,0,0,.55),
		0 8px 16px -6px rgba(0,0,0,.35);
	position: relative;
	max-width: none;
}
.ap-highlight__copy::before,
.ap-highlight__copy::after {
	content: '';
	position: absolute;
	top: 12px;
	width: 8px;
	height: 8px;
	background: radial-gradient(circle at 30% 30%, #f4d27a, #b58a2b 60%, #4a3508);
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(0,0,0,.35), 0 1px 2px rgba(0,0,0,.4);
}
.ap-highlight__copy::before { left: 12px; }
.ap-highlight__copy::after  { right: 12px; }

/* Make the buttons inside the plaque sit cleanly against the cream */
.ap-highlight__copy .ap-btn--primary { background: var(--ap-red); color: #fff; border-color: var(--ap-red); }
.ap-highlight__copy .ap-btn--primary:hover { background: var(--ap-red-dark); }

.ap-highlight__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-6);
	align-items: center;
}
@media (min-width: 900px) {
	.ap-highlight__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--space-8);
	}
	.ap-highlight--right .ap-highlight__media { order: 2; }
	.ap-highlight--right .ap-highlight__copy  { order: 1; }
}

.ap-highlight__media {
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--ap-shadow-lg);
	aspect-ratio: 4 / 3;
	background: var(--ap-cream-dark);
}
.ap-highlight__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ap-highlight__copy { max-width: 560px; }
.ap-highlight__eyebrow {
	color: var(--ap-red);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin: 0 0 var(--space-3);
}
.ap-highlight__title {
	font-size: clamp(28px, 4vw, 42px);
	margin: 0 0 var(--space-3);
	color: var(--ap-navy);
}
.ap-highlight__lede {
	font-size: var(--text-md);
	font-weight: 600;
	color: var(--ap-navy);
	margin: 0 0 var(--space-3);
	line-height: var(--leading-snug);
}
.ap-highlight__body {
	font-size: var(--text-base);
	color: var(--ap-ink);
	line-height: var(--leading-loose);
	margin: 0 0 var(--space-5);
}

/* Smooth scrolling for hash links */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* ============================================================
   18. Contact page + Specialists card
   ============================================================ */
.ap-contact-page { padding-block: var(--space-7); }

/* ----- Featured specialists section (full-width above form/sidebar) ----- */
.ap-specialists--featured {
	margin-bottom: var(--space-7);
	padding-bottom: var(--space-6);
	border-bottom: 1px solid var(--ap-rule);
}
.ap-specialists__header {
	text-align: center;
	max-width: 700px;
	margin: 0 auto var(--space-6);
}
.ap-specialists__eyebrow {
	color: var(--ap-red);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin: 0 0 var(--space-2);
}
.ap-specialists__title {
	font-size: clamp(24px, 3vw, 32px);
	margin: 0 0 var(--space-3);
	color: var(--ap-navy);
}
.ap-specialists__lead {
	color: var(--ap-stone);
	font-size: var(--text-md);
	margin: 0;
}
.ap-specialists__cards {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-5);
}
@media (min-width: 720px) {
	.ap-specialists__cards { grid-template-columns: repeat(2, 1fr); }
}

.ap-specialist-card {
	display: flex;
	gap: var(--space-5);
	background: #fff;
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	padding: var(--space-5);
	box-shadow: var(--ap-shadow);
	transition: box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base);
}
.ap-specialist-card:hover {
	box-shadow: var(--ap-shadow-lg);
	transform: translateY(-2px);
}
.ap-specialist-card__photo {
	flex: 0 0 140px;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--ap-cream);
	border: 3px solid var(--ap-cream-dark);
	box-shadow: 0 0 0 4px var(--ap-navy);
}
.ap-specialist-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ap-specialist-card__body {
	flex: 1;
	min-width: 0;
}
.ap-specialist-card__name {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 600;
	color: var(--ap-navy);
	margin: 0 0 4px;
}
.ap-specialist-card__role {
	color: var(--ap-red);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin: 0 0 var(--space-3);
}
.ap-specialist-card__channels {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

/* Branded contact-channel buttons */
.ap-channel {
	display: grid;
	grid-template-columns: 36px 1fr auto;
	align-items: center;
	gap: var(--space-3);
	padding: 10px 14px;
	border-radius: var(--radius-md);
	background: var(--ap-cream);
	color: var(--ap-navy);
	text-decoration: none;
	font-size: var(--text-sm);
	border: 1px solid transparent;
	transition: background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);
}
.ap-channel:hover {
	background: #fff;
	border-color: var(--ap-rule);
	color: var(--ap-navy);
}
.ap-channel__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--ap-navy);
	color: #fff;
}
.ap-channel__label {
	font-weight: 700;
	font-size: var(--text-xs);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ap-navy);
}
.ap-channel__value {
	color: var(--ap-stone);
	font-size: var(--text-sm);
	text-align: right;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ap-channel--phone .ap-channel__icon { background: var(--ap-navy); }
.ap-channel--phone:hover .ap-channel__icon { background: var(--ap-navy-dark); }
.ap-channel--whatsapp .ap-channel__icon { background: #25D366; }
.ap-channel--whatsapp:hover .ap-channel__icon { background: #128C7E; }
.ap-channel--whatsapp .ap-channel__value { color: #25D366; font-weight: 600; }
.ap-channel--email .ap-channel__icon { background: var(--ap-red); }
.ap-channel--email:hover .ap-channel__icon { background: var(--ap-red-dark); }

/* Stack the photo above the body on narrow viewports */
@media (max-width: 480px) {
	.ap-specialist-card { flex-direction: column; align-items: center; text-align: center; }
	.ap-specialist-card__photo { margin-bottom: var(--space-3); }
	.ap-channel { grid-template-columns: 32px 1fr; }
	.ap-channel__value { display: none; }
}
.ap-contact-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-7);
}
@media (min-width: 1024px) {
	.ap-contact-grid { grid-template-columns: 1fr 360px; }
}
.ap-contact-card {
	background: var(--ap-cream);
	border-radius: var(--radius-md);
	padding: var(--space-5);
	margin-bottom: var(--space-4);
}
.ap-contact-card__title {
	font-size: var(--text-lg);
	margin: 0 0 var(--space-3);
	color: var(--ap-navy);
}
.ap-contact-card__line { margin: 0 0 var(--space-2); }
.ap-contact-card__map {
	border-radius: var(--radius-sm);
	overflow: hidden;
	border: 1px solid var(--ap-rule);
	aspect-ratio: 4 / 3;
}
.ap-contact-card__map iframe {
	width: 100%; height: 100%; border: 0; display: block;
}
.ap-contact-card__map-link { font-size: var(--text-sm); margin: var(--space-2) 0 0; }

/* ============================================================
   19. CF7 form styling (lots-table commission bid form)
   ============================================================ */
.wpcf7 { font-family: inherit; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7 label { display: block; font-weight: 600; color: var(--ap-navy); margin-bottom: var(--space-1); }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 textarea,
.wpcf7 select {
	width: 100%;
	padding: 12px 14px;
	font-family: var(--font-body);
	font-size: var(--text-base);
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--ap-ink);
	transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus {
	border-color: var(--ap-navy);
	box-shadow: 0 0 0 3px rgba(1,33,105,.15);
	outline: none;
}
.wpcf7 input[type="submit"], .wpcf7 .wpcf7-submit {
	background: var(--ap-red); color: #fff;
	padding: 14px 28px; border: 0;
	font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	border-radius: var(--radius-md); cursor: pointer;
	transition: background var(--dur-fast);
}
.wpcf7 input[type="submit"]:hover { background: var(--ap-red-dark); }
.wpcf7-response-output {
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4) !important;
}
.wpcf7-not-valid-tip { color: var(--ap-red); font-size: var(--text-sm); }

/* Valuation form: fieldsets, multi-file uploads */
.ap-valuation-form-wrap { margin-top: var(--space-6); }
.ap-form-intro {
	font-size: var(--text-md);
	color: var(--ap-stone);
	margin-bottom: var(--space-5);
}
.wpcf7 fieldset {
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	padding: var(--space-5);
	margin: 0 0 var(--space-5);
	background: var(--ap-cream);
}
.wpcf7 fieldset legend {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	color: var(--ap-navy);
	font-weight: 600;
	padding: 0 var(--space-2);
}
.wpcf7 fieldset > label {
	display: block;
	margin-bottom: var(--space-3);
	font-weight: 600;
	color: var(--ap-navy);
	font-size: var(--text-sm);
}
.wpcf7 fieldset > label:last-child {
	margin-bottom: 0;
}
.wpcf7 input[type="file"] {
	display: block;
	width: 100%;
	margin-top: var(--space-2);
	padding: var(--space-3);
	background: #fff;
	border: 1px dashed var(--ap-rule);
	border-radius: var(--radius-sm);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	cursor: pointer;
	color: var(--ap-ink);
	font-weight: 400;
}
.wpcf7 input[type="file"]:hover {
	border-color: var(--ap-navy);
	background: #fafafa;
}
.wpcf7 input[type="file"]::file-selector-button {
	background: var(--ap-navy);
	color: #fff;
	border: 0;
	padding: 8px 16px;
	border-radius: var(--radius-sm);
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-right: var(--space-3);
	cursor: pointer;
	transition: background 150ms;
}
.wpcf7 input[type="file"]:hover::file-selector-button {
	background: var(--ap-navy-dark);
}
.ap-form-consent {
	font-size: var(--text-sm);
	margin: var(--space-5) 0;
}
.wpcf7-acceptance {
	display: inline-flex;
	align-items: flex-start;
	gap: var(--space-2);
}
.wpcf7-acceptance input[type="checkbox"] {
	margin-top: 4px;
}

/* lots-table repeater (cf7-repeatable-fields) */
.wpcf7 .lots-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-4);
}
.wpcf7 .lots-table th, .wpcf7 .lots-table td {
	padding: var(--space-2);
	border-bottom: 1px solid var(--ap-rule);
	text-align: left;
}
.wpcf7 .lots-table th {
	background: var(--ap-cream);
	color: var(--ap-navy);
	font-weight: 700;
	font-size: var(--text-sm);
	text-transform: uppercase;
	letter-spacing: .04em;
}

/* ============================================================
   20. Modals
   ============================================================ */
.ap-modal {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: 480px;
	width: calc(100% - 32px);
	border-radius: var(--radius-lg);
	color: inherit;
}
.ap-modal::backdrop {
	background: rgba(0, 22, 74, .55);
	backdrop-filter: blur(2px);
}
.ap-modal__panel {
	background: #fff;
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	box-shadow: var(--ap-shadow-lg);
	position: relative;
}
.ap-modal__title {
	margin: 0 0 var(--space-4);
	font-size: var(--text-xl);
	color: var(--ap-navy);
}
.ap-modal__close {
	position: absolute;
	top: 12px; right: 12px;
	width: 36px; height: 36px;
	background: transparent;
	border: 1px solid var(--ap-rule);
	border-radius: 50%;
	font-size: 22px;
	line-height: 1;
	color: var(--ap-stone);
	display: flex; align-items: center; justify-content: center;
	cursor: pointer;
}
.ap-modal__close:hover { background: var(--ap-cream); color: var(--ap-navy); }
.ap-modal__footnote {
	margin: var(--space-4) 0 0;
	font-size: var(--text-sm);
	color: var(--ap-stone);
}

/* Header sign-in button: show guest variant by default, member variant when
   AuctionForge has set body.bp-login. */
.ap-signin-guest  { display: inline-flex; }
.ap-signin-member { display: none; }
body.bp-login .ap-signin-guest  { display: none; }
body.bp-login .ap-signin-member { display: inline-flex; }

/* ============================================================
   21. Search form
   ============================================================ */
.ap-searchform {
	display: flex;
	gap: var(--space-2);
	align-items: stretch;
}
.ap-searchform__input {
	flex: 1;
	padding: 12px 14px;
	font-family: var(--font-body);
	font-size: var(--text-base);
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-sm);
}
.ap-searchform__submit {
	background: var(--ap-navy);
	color: #fff;
	border: 0;
	padding: 12px 18px;
	border-radius: var(--radius-sm);
	cursor: pointer;
}
.ap-searchform__submit:hover { background: var(--ap-navy-dark); }

/* ============================================================
   21b. AuctionForge duplicate-listing suppression
   ============================================================
   AuctionForge auto-renders its own #auction-list-section at the bottom
   of pages it controls (template_include @ priority 99). On pages where
   we've embedded [bp_upcoming_wide] in the post content (e.g. the
   /upcoming-auctions/ page) that creates a duplicate listing — hide it.
   The sibling selector targets only the auction-list-section that comes
   AFTER our wide block, so on pages WITHOUT [bp_upcoming_wide] the
   plugin's default list still renders. */
body.page-id-13576 #auction-list-section,
body.page-id-13576 .wrp-navigation { display: none !important; }

/* ============================================================
   21c. Mobile polish (<= 768px)
   ============================================================
   The breakpoints throughout the theme are mostly handled inline, but
   the homepage hero, utility bar and a few wide layouts need extra
   tightening at phone widths. */

/* Global overflow guards — applied at every width to stop any plugin
   element (AuctionForge modals / shortcodes, Swiper slides, etc.) from
   pushing the document wider than the viewport. */
html, body {
	max-width: 100%;
	overflow-x: clip; /* clip ≠ hidden — doesn't break sticky/position parents */
}
.ap-site, main { max-width: 100vw; overflow-x: clip; }

/* The hero's split layout never needs more horizontal room than the viewport. */
.ap-hero-split { max-width: 100vw; }
.ap-hero-split__left,
.ap-hero-split__right { min-width: 0; }

/* Slider — Swiper slides must obey the wrapper width (never overflow). */
.ap-hero-slider .swiper,
.ap-hero-slider .swiper-wrapper,
.ap-hero-slider .swiper-slide { max-width: 100%; }

/* AuctionForge plugin modals — their default min-widths overflow phones. */
.bp-modal .modal__container { max-width: min(560px, 95vw); }
.bp-modal .modal__content    { max-width: 100%; }

/* The bp_upcoming_wide shortcode forces 320px-wide auction images via
   inline <style>. Override so the image never exceeds the viewport. */
.bpw-upcoming-wrap .bpw-auction-img {
	flex: 0 1 320px !important;
	max-width: min(320px, 100%) !important;
}

@media (max-width: 768px) {

	/* --- Utility bar: single tidy row, no wrapping --- */
	.ap-utility-bar__inner { gap: var(--space-2); min-height: auto; padding: 8px var(--space-3); }
	.ap-utility-bar { font-size: 11px; }
	.ap-utility-menu { gap: var(--space-3); }
	.ap-utility-bar__right { gap: 4px; }
	.ap-utility-phone { display: none; } /* phone is in the specialists card / contact page */
	.ap-icon-btn { padding: 4px 8px; }
	.ap-icon-btn__label { display: none; } /* icons only on mobile to save space */

	/* --- Main header --- */
	.ap-site-header__inner { min-height: 64px; gap: var(--space-3); padding: 0 var(--space-3); }
	.ap-site-logo, .custom-logo { max-height: 48px; max-width: 160px; }

	/* --- Hero (split) — stack cleanly, no clipping, no oversized empty space --- */
	.ap-hero-split {
		display: block; /* override grid; flow naturally on mobile */
		min-height: auto;
	}
	.ap-hero-split__left,
	.ap-hero-split__right {
		display: block;
		width: 100%;
	}
	.ap-hero-split__left {
		padding: var(--space-6) var(--space-4);
		min-height: 360px;
		position: relative;
	}
	.ap-hero-collage {
		display: none; /* hide the decorative collage entirely on phones */
	}
	.ap-hero-split__copy { max-width: 100%; }
	.ap-hero-split__copy .ap-hero__title { font-size: clamp(28px, 8vw, 36px); }
	.ap-hero-split__copy .ap-hero__lead   { font-size: var(--text-base); }
	.ap-hero__eyebrow { font-size: 11px; letter-spacing: .1em; }
	.ap-hero__ctas { gap: var(--space-2); }
	.ap-hero__ctas .ap-btn { padding: 12px 18px; font-size: var(--text-xs); flex: 1 1 auto; }
	.ap-hero-collage { opacity: .25; }
	.ap-hero-split__right { padding: var(--space-5) var(--space-4); }

	/* --- Hero slider card simplifications --- */
	.ap-hero-slide__media   { height: 160px; }
	.ap-hero-slide__title   { font-size: var(--text-lg); }
	.ap-hero-slide__body    { padding: var(--space-4); }
	.ap-hero-slide__actions { flex-direction: column; align-items: stretch; }

	/* --- Sections: tighten vertical padding on mobile --- */
	.ap-categories,
	.ap-upcoming-section,
	.ap-why-sell,
	.ap-recent-news,
	.ap-cta-banner { padding-block: var(--space-7); }
	.ap-section-title { font-size: clamp(24px, 6vw, 32px); }

	/* --- CTA banner: stack copy + buttons --- */
	.ap-cta-banner__inner { flex-direction: column; align-items: flex-start; gap: var(--space-4); }
	.ap-cta-banner__heading { font-size: clamp(22px, 6vw, 28px); }
	.ap-cta-banner__eyebrow { font-size: clamp(18px, 5.5vw, 24px); white-space: normal; }
	.ap-cta-banner__actions { width: 100%; }
	.ap-cta-banner__actions .ap-btn { width: 100%; }

	/* --- Specialists card: vertical layout always on phone --- */
	.ap-specialist-card { flex-direction: column; align-items: center; text-align: center; }
	.ap-specialist-card__photo { margin-bottom: var(--space-3); }
	.ap-channel { grid-template-columns: 32px auto; }
	.ap-channel__value { display: none; } /* hide redundant phone-number / email on the right column; label is enough */

	/* --- Contact page: stack columns --- */
	.ap-contact-grid { grid-template-columns: 1fr; gap: var(--space-5); }

	/* --- Highlights staggered sections: smaller media tiles --- */
	.ap-highlight { padding-block: var(--space-6); }
	.ap-highlight__title { font-size: clamp(24px, 7vw, 32px); }
	.ap-highlight__media { aspect-ratio: 16 / 10; }

	/* --- Footer: collapse to a single column with tight spacing --- */
	.ap-footer-cols { gap: var(--space-3); }
	.ap-footer-col { padding: var(--space-4); }
	.ap-footer-bottom__inner { gap: var(--space-5); }
	.ap-footer-signup__form { flex-direction: column; }
	.ap-footer-signup__btn { width: 100%; }

	/* --- Forms (CF7) breathing room --- */
	.wpcf7 fieldset { padding: var(--space-4); }
	.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
	.wpcf7 input[type="url"], .wpcf7 input[type="number"], .wpcf7 textarea, .wpcf7 select {
		padding: 10px 12px; font-size: var(--text-base);
	}

	/* --- Floating WhatsApp button: keep it out of the way of CTA buttons --- */
	#nta-wa-popup, #njt-wa-popup { bottom: 16px !important; right: 12px !important; }

	/* --- bp_upcoming_wide cards stack on mobile rather than horizontal flex --- */
	.bpw-upcoming-wrap { max-width: 100% !important; padding: 0 var(--space-3) !important; }
	.bpw-upcoming-wrap .bpw-auction-card { flex-direction: column !important; gap: var(--space-4) !important; }
	.bpw-upcoming-wrap .bpw-auction-img  { flex: none !important; max-width: 100% !important; }
}

@media (max-width: 480px) {
	/* Even tighter on tiny phones */
	.ap-utility-menu { display: none; } /* free up the navy bar for icons only */
	.ap-hero-split__copy .ap-hero__title { font-size: clamp(24px, 9vw, 32px); }
	.ap-hero-split__left { min-height: 320px; padding: var(--space-5) var(--space-3); }
	.ap-section-header { margin-bottom: var(--space-4); }
	.ap-specialists__cards { gap: var(--space-3); }
	.ap-specialist-card { padding: var(--space-4); }
	.ap-specialist-card__photo { flex: 0 0 110px; width: 110px; height: 110px; }
}

/* ============================================================
   22. Footer
   ============================================================ */
.ap-site-footer { background: #fff; padding-top: var(--space-7); }
.ap-footer-cols {
	max-width: var(--container-max);
	margin-inline: auto;
	padding: 0 var(--container-px);
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-5);
}
@media (min-width: 600px) { .ap-footer-cols { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ap-footer-cols { grid-template-columns: repeat(4, 1fr); } }
.ap-footer-col {
	background: #fff;
	border: 2px solid var(--ap-navy);
	border-radius: var(--radius-md);
	padding: var(--space-5);
}
.ap-footer-col .widget-title, .ap-footer-col h2 {
	color: var(--ap-red);
	font-size: var(--text-base);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	border-bottom: 1px solid var(--ap-rule);
	padding-bottom: var(--space-2);
	margin: 0 0 var(--space-3);
	text-align: center;
}
.ap-footer-col ul { list-style: none; padding: 0; margin: 0; }
.ap-footer-col li { margin-bottom: var(--space-2); }
.ap-footer-col a {
	color: var(--ap-ink);
	text-decoration: none;
	font-weight: 600;
	font-size: var(--text-sm);
}
.ap-footer-col a:hover { color: var(--ap-red); text-decoration: underline; }

.ap-footer-bottom {
	background: var(--ap-navy);
	color: rgba(255,255,255,.8);
	margin-top: var(--space-7);
	padding-block: var(--space-6);
}
.ap-footer-bottom__inner {
	max-width: var(--container-max);
	margin-inline: auto;
	padding: 0 var(--container-px);
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-6);
}
.ap-footer-bottom__contact { display: flex; flex-direction: column; gap: var(--space-3); }
.ap-footer-bottom__signup  { display: flex; flex-direction: column; gap: var(--space-4); }

@media (min-width: 768px) {
	.ap-footer-bottom__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas:
			"contact signup"
			"copy    copy";
		gap: var(--space-7);
		align-items: start;
	}
	.ap-footer-bottom__contact { grid-area: contact; }
	.ap-footer-bottom__signup  { grid-area: signup; }
	.ap-footer-copyright       { grid-area: copy; }
}

.ap-footer-signup__title {
	color: #fff;
	font-size: var(--text-lg);
	margin: 0 0 var(--space-2);
}
.ap-footer-signup__lead {
	color: rgba(255,255,255,.75);
	font-size: var(--text-sm);
	margin: 0 0 var(--space-3);
	max-width: 46ch;
}
.ap-footer-signup__form {
	display: flex;
	gap: var(--space-2);
	flex-wrap: wrap;
	align-items: stretch;
}
.ap-footer-signup__email {
	flex: 1 1 220px;
	padding: 12px 14px;
	font-family: var(--font-body);
	font-size: var(--text-base);
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.25);
	color: #fff;
	border-radius: var(--radius-sm);
}
.ap-footer-signup__email::placeholder { color: rgba(255,255,255,.55); }
.ap-footer-signup__email:focus {
	outline: 2px solid var(--ap-red);
	outline-offset: 0;
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.5);
}
.ap-footer-signup__btn {
	flex: 0 0 auto;
	padding: 12px 22px;
	background: var(--ap-red);
	color: #fff;
	border: 0;
	border-radius: var(--radius-sm);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: var(--text-sm);
	cursor: pointer;
	transition: background var(--dur-fast);
}
.ap-footer-signup__btn:hover { background: var(--ap-red-dark); }
.ap-footer-signup__btn:disabled { opacity: .65; cursor: wait; }
.ap-footer-signup__status {
	flex: 1 1 100%;
	margin: 4px 0 0;
	font-size: var(--text-sm);
	color: rgba(255,255,255,.85);
	min-height: 1.4em;
}
.ap-footer-signup__status.is-success { color: #b6e5b8; }
.ap-footer-signup__status.is-error   { color: #ffb3bd; }

/* Social icons sit beneath the signup form on the right column */
.ap-footer-bottom__signup .ap-footer-social { margin-top: var(--space-2); }
.ap-footer-address {
	font-style: normal;
	font-size: var(--text-sm);
	line-height: 1.5;
}
.ap-footer-contact {
	display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5);
	font-size: var(--text-sm);
}
.ap-footer-bottom a { color: #fff; }
.ap-footer-social {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: var(--space-2);
}
.ap-footer-social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.3);
	color: #fff;
	transition: background var(--dur-fast), border-color var(--dur-fast);
}
.ap-footer-social a:hover { background: var(--ap-red); border-color: var(--ap-red); }
.ap-social-icon {
	display: inline-block; width: 16px; height: 16px;
	background: currentColor;
	mask-repeat: no-repeat; mask-position: center; mask-size: contain;
	-webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain;
}
.ap-social-icon--facebook  { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M22 12a10 10 0 1 0-11.6 9.9V14.9H7.9V12h2.5V9.8c0-2.5 1.5-3.8 3.7-3.8 1.1 0 2.2.2 2.2.2v2.4h-1.2c-1.2 0-1.6.8-1.6 1.6V12h2.7l-.4 2.9h-2.3v7A10 10 0 0 0 22 12z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M22 12a10 10 0 1 0-11.6 9.9V14.9H7.9V12h2.5V9.8c0-2.5 1.5-3.8 3.7-3.8 1.1 0 2.2.2 2.2.2v2.4h-1.2c-1.2 0-1.6.8-1.6 1.6V12h2.7l-.4 2.9h-2.3v7A10 10 0 0 0 22 12z'/%3E%3C/svg%3E"); }
.ap-social-icon--twitter   { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.451-6.231zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.451-6.231zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z'/%3E%3C/svg%3E"); }
.ap-social-icon--instagram { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.9.1 1.2.1 1.8.2 2.2.4.6.2 1 .5 1.4.9.4.4.7.8.9 1.4.2.4.4 1 .4 2.2.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c-.1 1.2-.2 1.8-.4 2.2-.2.6-.5 1-.9 1.4a3.5 3.5 0 0 1-1.4.9c-.4.2-1 .4-2.2.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2-.1-1.8-.2-2.2-.4-.6-.2-1-.5-1.4-.9a3.5 3.5 0 0 1-.9-1.4c-.2-.4-.4-1-.4-2.2C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.9c.1-1.2.2-1.8.4-2.2.2-.6.5-1 .9-1.4a3.5 3.5 0 0 1 1.4-.9c.4-.2 1-.4 2.2-.4 1.3-.1 1.7-.1 4.8-.1zm0 2.2c-3.1 0-3.5 0-4.8.1-1.1 0-1.7.2-2.1.3-.5.2-.9.4-1.3.8a2.7 2.7 0 0 0-.8 1.3c-.1.4-.3 1-.3 2.1-.1 1.3-.1 1.7-.1 4.8s0 3.5.1 4.8c0 1.1.2 1.7.3 2.1.2.5.4.9.8 1.3.4.4.8.6 1.3.8.4.1 1 .3 2.1.3 1.3.1 1.7.1 4.8.1s3.5 0 4.8-.1c1.1 0 1.7-.2 2.1-.3.5-.2.9-.4 1.3-.8.4-.4.6-.8.8-1.3.1-.4.3-1 .3-2.1.1-1.3.1-1.7.1-4.8s0-3.5-.1-4.8c0-1.1-.2-1.7-.3-2.1a2.7 2.7 0 0 0-.8-1.3 2.7 2.7 0 0 0-1.3-.8c-.4-.1-1-.3-2.1-.3-1.3-.1-1.7-.1-4.8-.1zm0 3.7a3.9 3.9 0 1 1 0 7.8 3.9 3.9 0 0 1 0-7.8zm0 6.4a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm5-6.6a.9.9 0 1 1-1.8 0 .9.9 0 0 1 1.8 0z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.9.1 1.2.1 1.8.2 2.2.4.6.2 1 .5 1.4.9.4.4.7.8.9 1.4.2.4.4 1 .4 2.2.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c-.1 1.2-.2 1.8-.4 2.2-.2.6-.5 1-.9 1.4a3.5 3.5 0 0 1-1.4.9c-.4.2-1 .4-2.2.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2-.1-1.8-.2-2.2-.4-.6-.2-1-.5-1.4-.9a3.5 3.5 0 0 1-.9-1.4c-.2-.4-.4-1-.4-2.2C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.9c.1-1.2.2-1.8.4-2.2.2-.6.5-1 .9-1.4a3.5 3.5 0 0 1 1.4-.9c.4-.2 1-.4 2.2-.4 1.3-.1 1.7-.1 4.8-.1zm0 2.2c-3.1 0-3.5 0-4.8.1-1.1 0-1.7.2-2.1.3-.5.2-.9.4-1.3.8a2.7 2.7 0 0 0-.8 1.3c-.1.4-.3 1-.3 2.1-.1 1.3-.1 1.7-.1 4.8s0 3.5.1 4.8c0 1.1.2 1.7.3 2.1.2.5.4.9.8 1.3.4.4.8.6 1.3.8.4.1 1 .3 2.1.3 1.3.1 1.7.1 4.8.1s3.5 0 4.8-.1c1.1 0 1.7-.2 2.1-.3.5-.2.9-.4 1.3-.8.4-.4.6-.8.8-1.3.1-.4.3-1 .3-2.1.1-1.3.1-1.7.1-4.8s0-3.5-.1-4.8c0-1.1-.2-1.7-.3-2.1a2.7 2.7 0 0 0-.8-1.3 2.7 2.7 0 0 0-1.3-.8c-.4-.1-1-.3-2.1-.3-1.3-.1-1.7-.1-4.8-.1zm0 3.7a3.9 3.9 0 1 1 0 7.8 3.9 3.9 0 0 1 0-7.8zm0 6.4a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm5-6.6a.9.9 0 1 1-1.8 0 .9.9 0 0 1 1.8 0z'/%3E%3C/svg%3E"); }
.ap-social-icon--youtube   { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2C0 8.1 0 12 0 12s0 3.9.5 5.8a3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1c.5-1.9.5-5.8.5-5.8s0-3.9-.5-5.8zM9.6 15.6V8.4l6.3 3.6-6.3 3.6z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2C0 8.1 0 12 0 12s0 3.9.5 5.8a3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1c.5-1.9.5-5.8.5-5.8s0-3.9-.5-5.8zM9.6 15.6V8.4l6.3 3.6-6.3 3.6z'/%3E%3C/svg%3E"); }

.ap-footer-copyright { font-size: var(--text-sm); margin: 0; color: rgba(255,255,255,.65); }

/* ============================================================
   22b. Newsletter signup ([ap_newsletter] shortcode)
   ============================================================ */
.ap-newsletter {
	background: var(--ap-cream);
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-md);
	padding: var(--space-5);
}
.ap-newsletter__title {
	font-size: var(--text-lg);
	color: var(--ap-navy);
	margin: 0 0 var(--space-2);
}
.ap-newsletter__text {
	color: var(--ap-stone);
	font-size: var(--text-sm);
	margin: 0 0 var(--space-4);
}
.ap-newsletter__form {
	display: flex;
	gap: var(--space-2);
	flex-wrap: wrap;
	align-items: stretch;
}
.ap-newsletter__email {
	flex: 1 1 220px;
	padding: 12px 14px;
	border: 1px solid var(--ap-rule);
	border-radius: var(--radius-sm);
	font-family: var(--font-body);
	font-size: var(--text-base);
	background: #fff;
}
.ap-newsletter__email:focus {
	outline: 2px solid var(--ap-navy);
	outline-offset: 0;
	border-color: var(--ap-navy);
}
.ap-newsletter__form .ap-btn { flex: 0 0 auto; }
.ap-newsletter__status {
	flex: 1 1 100%;
	margin: var(--space-2) 0 0;
	font-size: var(--text-sm);
}
.ap-newsletter__status.is-success { color: #11663b; }
.ap-newsletter__status.is-error   { color: var(--ap-red); }

/* ============================================================
   23. 404 + utility
   ============================================================ */
.ap-404 { padding-block: var(--space-9); text-align: center; max-width: 720px; }
.ap-404__heading { font-size: clamp(36px, 6vw, 56px); }
.ap-404__lead { font-size: var(--text-md); color: var(--ap-stone); }
.ap-404__actions { display: flex; gap: var(--space-3); justify-content: center; margin-block: var(--space-5); flex-wrap: wrap; }
.ap-404__search { margin-block: var(--space-7); max-width: 480px; margin-inline: auto; }
.ap-404__links ul { list-style: none; padding: 0; }
.ap-404__links li { margin: var(--space-2) 0; }

.ap-todo {
	display: inline-block;
	background: rgba(200, 16, 46, .12);
	color: var(--ap-red-dark);
	padding: 1px 6px;
	border-radius: var(--radius-sm);
	font-size: 0.92em;
	font-style: italic;
	border: 1px dashed rgba(200, 16, 46, .35);
}
.ap-utility-bar .ap-todo { background: rgba(255,255,255,.08); color: rgba(255,255,255,.6); border-color: rgba(255,255,255,.20); }

/* WP-required utility classes */
.alignleft { float: left; margin: 0 var(--space-4) var(--space-2) 0; }
.alignright { float: right; margin: 0 0 var(--space-2) var(--space-4); }
.aligncenter { display: block; margin-inline: auto; }
.alignwide { width: 100%; max-width: 100%; }
.alignfull { width: 100%; max-width: 100vw; margin-inline: calc(50% - 50vw); }

.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: var(--text-sm); color: var(--ap-stone); margin-top: var(--space-2); text-align: center; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--space-2); }

/* ============================================================
   24. Reduced motion
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	.ap-hero-collage { opacity: .25; }
	.ap-category-card:hover, .ap-card:hover { transform: none; }
}
