/**
 * Custom Styles — Agent Driven Development Blog
 *
 * Styles supplementing theme.json design tokens.
 *
 * @package addb
 */

/* ================================================================
   CUSTOM PROPERTIES
   ================================================================ */

:root {
	color-scheme: light dark;

	/* ── WP Font Size Overrides (prevent fluid scaling) ── */
	--wp--preset--font-size--small: 0.875rem;
	--wp--preset--font-size--medium: 1rem;
	--wp--preset--font-size--large: 1.125rem;
	--wp--preset--font-size--x-large: clamp(1.25rem, 1.15rem + 0.25vw, 1.5rem);
	--wp--preset--font-size--xx-large: clamp(1.75rem, 1.55rem + 0.5vw, 2.25rem);
	--wp--preset--font-size--xxx-large: clamp(2.25rem, 1.95rem + 0.75vw, 3rem);

	/* ── Navigation ── */
	--addb-nav-bg: rgb(255 255 255 / 92%);
	--addb-nav-bg-scrolled: rgb(255 255 255 / 97%);
	--addb-nav-blur: 12px;
	--addb-nav-border: rgb(224 224 224 / 80%);
	--addb-nav-border-scrolled: rgb(224 224 224);
	--addb-nav-height: 64px;
	--addb-nav-height-scrolled: 56px;

	/* ── Surfaces ── */
	--addb-color-bg: #fff;
	--addb-color-surface: #f5f5f5;
	--addb-color-surface-alt: #f0f0f0;
	--addb-color-border: #e0e0e0;
	--addb-color-border-light: #f0f0f0;

	/* ── Text ── */
	--addb-color-text: #333333;
	--addb-color-text-strong: #000000;
	--addb-color-text-muted: #666666;
	--addb-color-text-faint: #999999;

	/* ── Accent ── */
	--addb-color-accent: #000000;
	--addb-color-primary: #000000;

	/* ── Shadows ── */
	--addb-shadow-sm: 0 1px 2px rgb(0 0 0 / 4%);
	--addb-shadow-md: 0 1px 3px rgb(0 0 0 / 6%), 0 4px 16px rgb(0 0 0 / 3%);
	--addb-shadow-lg: 0 4px 20px rgb(0 0 0 / 8%);

	/* ── Transitions ── */
	--addb-transition-fast: 150ms;
	--addb-transition-base: 250ms;
	--addb-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ================================================================
   DARK MODE — Pure Black/White Inversion
   ================================================================ */

/*
 * True black/white dark mode: pure black backgrounds, white text.
 *
 *   Light → Dark
 *   #ffffff (page bg)      → #000000 (pure black)
 *   #fafbfc (surface)      → #111111
 *   #f1f5f9 (surface-alt)  → #1c1c1c
 *   #e2e8f0 (border)       → #2e2e2e
 *   #334155 (body text)    → #cccccc
 *   #0f172a (strong/head)  → #ffffff
 *   #475569 (muted)        → #888888
 *   #64748b (faint)        → #555555
 *   #0f172a (accent)       → #ffffff
 */

[data-theme="dark"] {
	/* ── WP preset overrides (drives all native blocks) ── */
	--wp--preset--color--primary:     #ffffff;
	--wp--preset--color--secondary:   #cccccc;
	--wp--preset--color--accent:      #fff;
	--wp--preset--color--base:        #f0f0f0;
	--wp--preset--color--contrast:    #000000;
	--wp--preset--color--surface:     #111111;
	--wp--preset--color--surface-alt: #1c1c1c;
	--wp--preset--color--border:      #2e2e2e;
	--wp--preset--color--muted:       #888888;
	--wp--preset--color--subtle:      #cccccc;
	--wp--preset--color--faint:       #555555;

	/* ── Navigation ── */
	--addb-nav-bg:              rgb(0 0 0 / 92%);
	--addb-nav-bg-scrolled:     rgb(0 0 0 / 98%);
	--addb-nav-border:          rgb(46 46 46 / 80%);
	--addb-nav-border-scrolled: rgb(46 46 46);

	/* ── Surfaces ── */
	--addb-color-bg:           #000;
	--addb-color-surface:      #111;
	--addb-color-surface-alt:  #1c1c1c;
	--addb-color-border:       #2e2e2e;
	--addb-color-border-light: #111;

	/* ── Text ── */
	--addb-color-text:        #ccc;
	--addb-color-text-strong: #fff;
	--addb-color-text-muted:  #888;
	--addb-color-text-faint:  #555;

	/* ── Accent / Primary ── */
	--addb-color-accent:  #fff;
	--addb-color-primary: #fff;

	/* ── Shadows ── */
	--addb-shadow-sm: 0 1px 2px rgb(0 0 0 / 50%);
	--addb-shadow-md: 0 1px 4px rgb(0 0 0 / 60%), 0 4px 20px rgb(0 0 0 / 40%);
	--addb-shadow-lg: 0 4px 24px rgb(0 0 0 / 70%);
}

/* ── Page background & body text ── */
[data-theme="dark"] body,
[data-theme="dark"] .wp-site-blocks {
	background-color: var(--addb-color-bg);
	color: var(--addb-color-text);
}

/* ── WP block backgrounds driven by preset vars ── */
[data-theme="dark"] .has-contrast-background-color {
	background-color: var(--addb-color-bg) !important;
}

[data-theme="dark"] .has-surface-background-color {
	background-color: var(--addb-color-surface) !important;
}

[data-theme="dark"] .has-surface-alt-background-color {
	background-color: var(--addb-color-surface-alt) !important;
}

[data-theme="dark"] .has-primary-background-color {
	background-color: var(--addb-color-primary) !important;
	color: var(--addb-color-bg) !important;
}

/* ── Headings ── */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .has-primary-color {
	color: var(--addb-color-text-strong) !important;
}

[data-theme="dark"] .has-muted-color {
	color: var(--addb-color-text-muted) !important;
}

[data-theme="dark"] .has-faint-color {
	color: var(--addb-color-text-faint) !important;
}

[data-theme="dark"] .has-subtle-color {
	color: var(--addb-color-text) !important;
}

[data-theme="dark"] .has-border-color {
	color: var(--addb-color-border) !important;
}

/* ── Links (general — component selectors override per-context) ── */
[data-theme="dark"] a {
	color: var(--addb-color-accent);
}

/* ── Separators ── */
[data-theme="dark"] .wp-block-separator,
[data-theme="dark"] hr {
	border-color: var(--addb-color-border);
	color: var(--addb-color-border);
}

/* ── Buttons ── */
[data-theme="dark"] .wp-element-button,
[data-theme="dark"] .wp-block-button__link {
	background-color: var(--addb-color-primary);
	color: var(--addb-color-bg);
	border-color: var(--addb-color-primary);
}

[data-theme="dark"] .wp-element-button:hover,
[data-theme="dark"] .wp-block-button__link:hover {
	background-color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-strong);
}

[data-theme="dark"] .is-style-outline .wp-block-button__link {
	background-color: transparent;
	border-color: var(--addb-color-border);
	color: var(--addb-color-text);
}

[data-theme="dark"] .is-style-outline .wp-block-button__link:hover {
	border-color: var(--addb-color-accent);
	color: var(--addb-color-accent);
}

/* ── Code blocks ── */
[data-theme="dark"] .wp-block-code,
[data-theme="dark"] pre,
[data-theme="dark"] code {
	background-color: #0a0a0a;
	border-color: var(--addb-color-border);
	color: #d4d4d4;
}

/* ── Blockquotes ── */
[data-theme="dark"] .wp-block-quote {
	border-left-color: var(--addb-color-accent);
	color: var(--addb-color-text-muted);
}

[data-theme="dark"] .wp-block-pullquote {
	border-top-color: var(--addb-color-border);
	border-bottom-color: var(--addb-color-border);
	color: var(--addb-color-text-strong);
}

/* ── Tables ── */
[data-theme="dark"] .wp-block-table table {
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .wp-block-table td,
[data-theme="dark"] .wp-block-table th {
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .wp-block-table thead th {
	background-color: var(--addb-color-surface);
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .wp-block-table tbody tr:nth-child(even) {
	background-color: var(--addb-color-surface);
}

/* ── Images / Media ── */
[data-theme="dark"] .wp-block-image figcaption {
	color: var(--addb-color-text-faint);
}



/* ================================================================
   HEADER
   ================================================================ */

.addb-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: var(--addb-nav-bg);
	backdrop-filter: blur(var(--addb-nav-blur));
	-webkit-backdrop-filter: blur(var(--addb-nav-blur));
	border-bottom: 1px solid var(--addb-nav-border);
	transition:
		background var(--addb-transition-base) var(--addb-ease),
		border-color var(--addb-transition-base) var(--addb-ease),
		box-shadow var(--addb-transition-base) var(--addb-ease);
}

.addb-header.is-scrolled {
	background: var(--addb-nav-bg-scrolled);
	border-bottom-color: var(--addb-nav-border-scrolled);
	box-shadow: var(--addb-shadow-sm);
}

.addb-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 75rem;
	margin: 0 auto;
	padding: 0 1.5rem;
	height: var(--addb-nav-height);
	transition: height var(--addb-transition-base) var(--addb-ease);
}

.addb-header.is-scrolled .addb-header__inner {
	height: var(--addb-nav-height-scrolled);
}

.addb-header__logo {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	text-decoration: none;
	color: var(--addb-color-text-strong);
}

.addb-header__logo-name {
	font-family: 'Lora', Georgia, serif;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.addb-header__logo-sub {
	font-family: 'Inter', sans-serif;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--addb-color-text-faint);
}

.addb-header__nav {
	display: flex;
	align-items: center;
	gap: 2rem;
}

.addb-header__link {
	font-family: 'Inter', sans-serif;
	font-size: 0.84rem;
	font-weight: 500;
	color: var(--addb-color-text-muted);
	text-decoration: none;
	transition: color var(--addb-transition-fast) var(--addb-ease);
}

.addb-header__link:hover {
	color: var(--addb-color-text-strong);
}

.addb-header__search {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-left: 0.25rem;
}

.addb-header__search-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.addb-header__search-input {
	width: 8.5rem;
	height: 2.1rem;
	padding: 0 0.7rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.82rem;
	line-height: 1;
	color: var(--addb-color-text);
	background: var(--addb-color-bg);
	border: 1px solid var(--addb-color-border);
	border-radius: 4px;
	outline: none;
	transition:
		border-color var(--addb-transition-fast) var(--addb-ease),
		color var(--addb-transition-fast) var(--addb-ease);
}

.addb-header__search-input::placeholder {
	color: var(--addb-color-text-faint);
}

.addb-header__search-input:focus {
	border-color: var(--addb-color-text-strong);
}

.addb-header__search-button {
	height: 2.1rem;
	padding: 0 0.65rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--addb-color-text-muted);
	background: transparent;
	border: 1px solid var(--addb-color-border);
	border-radius: 4px;
	cursor: pointer;
	transition:
		color var(--addb-transition-fast) var(--addb-ease),
		border-color var(--addb-transition-fast) var(--addb-ease);
}

.addb-header__search-button:hover {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-muted);
}

.addb-header__dark-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--addb-color-border);
	border-radius: 4px;
	background: transparent;
	color: var(--addb-color-text-muted);
	cursor: pointer;
	transition:
		color var(--addb-transition-fast) var(--addb-ease),
		border-color var(--addb-transition-fast) var(--addb-ease);
}

.addb-header__dark-toggle:hover {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-muted);
}

/* Show sun in dark mode, moon in light mode */
.addb-icon-sun {
	display: none;
}

[data-theme="dark"] .addb-icon-sun {
	display: block;
}

[data-theme="dark"] .addb-icon-moon {
	display: none;
}

/* Mobile toggle */
.addb-header__toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 36px;
	height: 36px;
	padding: 8px 6px;
	border: none;
	background: transparent;
	cursor: pointer;
}

.addb-header__toggle span {
	display: block;
	height: 2px;
	background: var(--addb-color-text-strong);
	border-radius: 1px;
	transition: transform var(--addb-transition-base) var(--addb-ease);
}

/* ================================================================
   MAIN CONTENT
   ================================================================ */

.addb-main {
	padding-top: var(--addb-nav-height);
}

/* ================================================================
	FRONT PAGE INTRO
	================================================================ */

.addb-landing-hero {
	position: relative;
	margin-bottom: 2.1rem;
	animation: addb-fade-up 560ms var(--addb-ease) both;
}

.addb-landing-hero__eyebrow {
	margin: 0;
	animation: addb-fade-up 520ms var(--addb-ease) both;
	animation-delay: 40ms;
}

.addb-landing-hero__title {
	margin: 0;
	max-width: 20ch;
	color: var(--addb-color-text-strong);
	animation: addb-fade-up 620ms var(--addb-ease) both;
	animation-delay: 90ms;
}

.addb-landing-hero__rule {
	width: 4rem;
	margin: 0.15rem 0 0.1rem;
	border: 0;
	height: 1px;
	transform-origin: left center;
	animation: addb-rule-in 650ms var(--addb-ease) both;
	animation-delay: 120ms;
}

.addb-landing-hero__lede {
	margin: 0;
	max-width: 58ch;
	animation: addb-fade-up 680ms var(--addb-ease) both;
	animation-delay: 140ms;
}

@keyframes addb-fade-up {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes addb-rule-in {
	from {
		opacity: 0;
		transform: scaleX(0);
	}

	to {
		opacity: 1;
		transform: scaleX(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.addb-landing-hero,
	.addb-landing-hero__eyebrow,
	.addb-landing-hero__title,
	.addb-landing-hero__rule,
	.addb-landing-hero__lede,
	.addb-sort-toggle,
	.addb-list-item,
	.addb-post-list .addb-list-item,
	.addb-contact-intro,
	.addb-contact-intro__rule,
	.addb-contact-form-section,
	.addb-contact-expect {
		animation: none;
	}

	.addb-list-item:hover {
		transform: none;
	}
}

/* ================================================================
   FEATURED POST (Pattern)
   ================================================================ */

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

.addb-featured__image {
	overflow: hidden;
	border-radius: 2px;
	aspect-ratio: 3/2;
}

.addb-featured__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--addb-transition-base) var(--addb-ease);
}

.addb-featured:hover .addb-featured__image img {
	transform: scale(1.02);
}

.addb-featured__body {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 0.75rem 0;
}

.addb-featured__cat {
	font-family: 'Inter', sans-serif;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--addb-color-accent);
}

.addb-featured__title {
	font-family: 'Lora', Georgia, serif;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: var(--addb-color-text-strong);
	margin: 0;
}

.addb-featured__title a {
	color: inherit;
	text-decoration: none;
}

.addb-featured__title a:hover {
	color: var(--addb-color-accent);
}

.addb-featured__excerpt {
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--addb-color-text-muted);
	margin: 0;
}

.addb-featured__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.8rem;
	color: var(--addb-color-text-faint);
}

/* ================================================================
   POST CARDS (Grid)
   ================================================================ */

.addb-post-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 2.5rem;
}

.addb-card {
	transition:
		background var(--addb-transition-fast) var(--addb-ease);
}

.addb-card__cat a,
.addb-list-item__cat a {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--addb-color-accent);
	text-decoration: none;
}

.addb-card__cat a:hover,
.addb-list-item__cat a:hover {
	text-decoration: underline;
}

/* ================================================================
   POST LIST ITEMS
   ================================================================ */

.addb-list-item {
	transition:
		transform var(--addb-transition-fast) var(--addb-ease),
		background var(--addb-transition-fast) var(--addb-ease);
	animation: addb-fade-up 520ms var(--addb-ease) both;
}

.addb-list-item:hover {
	transform: translateY(-1px);
}

.addb-post-list .addb-list-item:nth-child(2) {
	animation-delay: 40ms;
}

.addb-post-list .addb-list-item:nth-child(3) {
	animation-delay: 80ms;
}

.addb-post-list .addb-list-item:nth-child(4) {
	animation-delay: 120ms;
}

.addb-post-list .addb-list-item:nth-child(5) {
	animation-delay: 160ms;
}

.addb-post-list .addb-list-item:nth-child(6) {
	animation-delay: 200ms;
}

/* ================================================================
   SORT TOGGLE
   ================================================================ */

.addb-sort-toggle {
	margin: 0.85rem 0 1.4rem;
	animation: addb-fade-up 460ms var(--addb-ease) both;
}

.addb-sort-toggle__form {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem;
	border: 1px solid var(--addb-color-border);
	border-radius: 6px;
	background: var(--addb-color-bg);
}

.addb-sort-toggle__pill {
	padding: 0.4rem 0.75rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1;
	color: var(--addb-color-text-muted);
	border: 1px solid transparent;
	border-radius: 4px;
	background: transparent;
	cursor: pointer;
	transition:
		color var(--addb-transition-fast) var(--addb-ease),
		border-color var(--addb-transition-fast) var(--addb-ease),
		background var(--addb-transition-fast) var(--addb-ease);
}

.addb-sort-toggle__pill:hover {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-border);
}

.addb-sort-toggle__pill.is-active {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-border);
	background: var(--addb-color-surface);
}

.addb-sort-toggle__row {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.addb-sort-toggle__divider {
	width: 1px;
	height: 1.1rem;
	margin: 0 0.3rem;
	background: var(--addb-color-border);
	flex-shrink: 0;
}

.addb-sort-toggle__select {
	padding: 0.4rem 1.8rem 0.4rem 0.75rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1;
	color: var(--addb-color-text-muted);
	border: 1px solid transparent;
	border-radius: 4px;
	background: transparent;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999999' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.55rem center;
	background-size: 10px 6px;
	transition:
		color var(--addb-transition-fast) var(--addb-ease),
		border-color var(--addb-transition-fast) var(--addb-ease);
}

.addb-sort-toggle__select:hover {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-border);
}

.addb-sort-toggle__select:focus {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-border);
	outline: none;
}

/* ================================================================
   CATEGORY PILLS
   ================================================================ */

.addb-cat-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	margin: 0 0 2rem;
}

.addb-cat-filter__pill {
	display: inline-block;
	padding: 0.35rem 0.85rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--addb-color-text-muted);
	text-decoration: none;
	border: 1px solid var(--addb-color-border);
	border-radius: 3px;
	transition:
		color var(--addb-transition-fast) var(--addb-ease),
		border-color var(--addb-transition-fast) var(--addb-ease),
		background var(--addb-transition-fast) var(--addb-ease);
}

.addb-cat-filter__pill:hover,
.addb-cat-filter__pill--all {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-muted);
}

/* ================================================================
   SEARCH & SORT TOOLBAR
   ================================================================ */

.addb-toolbar {
	margin-bottom: 2.5rem;
}

.addb-toolbar__form {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.addb-toolbar__row--search {
	display: flex;
}

.addb-toolbar__search-wrap {
	position: relative;
	flex: 1;
}

.addb-toolbar__search-icon {
	position: absolute;
	top: 50%;
	left: 1rem;
	transform: translateY(-50%);
	color: var(--addb-color-text-faint);
	pointer-events: none;
}

.addb-toolbar__search {
	width: 100%;
	padding: 0.8rem 1rem 0.8rem 2.75rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.9375rem;
	color: var(--addb-color-text);
	background: var(--addb-color-bg);
	border: 1.5px solid var(--addb-color-border);
	border-radius: 6px;
	outline: none;
	transition:
		border-color var(--addb-transition-fast) var(--addb-ease),
		box-shadow var(--addb-transition-fast) var(--addb-ease);
}

.addb-toolbar__search::placeholder {
	color: var(--addb-color-text-faint);
}

.addb-toolbar__search:focus {
	border-color: var(--addb-color-text-strong);
	box-shadow: 0 0 0 3px rgb(0 0 0 / 8%);
}

[data-theme="dark"] .addb-toolbar__search {
	background: var(--addb-color-surface);
	border-color: var(--addb-color-border);
	color: var(--addb-color-text);
}

[data-theme="dark"] .addb-toolbar__search:focus {
	border-color: var(--addb-color-text-strong);
	box-shadow: 0 0 0 3px rgb(255 255 255 / 10%);
}

.addb-toolbar__row--controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

.addb-toolbar__sort,
.addb-toolbar__audience {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

/* Labels hidden — grouping is self-evident */
.addb-toolbar__label {
	display: none;
}

/* Thin vertical divider between sort chips and category chips */
.addb-toolbar__divider {
	display: inline-block;
	width: 1px;
	height: 1.25rem;
	background: var(--addb-color-border);
	margin: 0 0.4rem;
	flex-shrink: 0;
	align-self: center;
}

.addb-toolbar__pill {
	display: inline-block;
	padding: 0.35rem 0.9rem;
	font-family: 'Inter', sans-serif;
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--addb-color-text-muted);
	background: transparent;
	border: 1px solid var(--addb-color-border);
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
	transition:
		color var(--addb-transition-fast) var(--addb-ease),
		border-color var(--addb-transition-fast) var(--addb-ease),
		background var(--addb-transition-fast) var(--addb-ease);
}

.addb-toolbar__pill:hover {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-muted);
	background: var(--addb-color-surface-alt);
}

.addb-toolbar__pill.is-active {
	color: var(--addb-color-bg);
	background: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-strong);
	font-weight: 600;
}

[data-theme="dark"] .addb-toolbar__pill:hover {
	background: var(--addb-color-surface);
}

[data-theme="dark"] .addb-toolbar__pill.is-active {
	color: #000;
	background: #fff;
	border-color: #fff;
}



/* ================================================================
   NEWSLETTER CTA
   ================================================================ */

.addb-newsletter {
	text-align: left;
}

/* ================================================================
   AUTHOR BIO
   ================================================================ */

.addb-author-bio {
	max-width: 42.5rem;
}

/* ================================================================
   PROGRESS BAR
   ================================================================ */

.addb-progress-bar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1001;
	height: 3px;
	background: transparent;
}

.addb-progress-bar__fill {
	height: 100%;
	width: 0;
	background: var(--addb-color-accent);
	transition: width 100ms linear;
}

/* ================================================================
   READING TIME
   ================================================================ */

.addb-reading-time {
	font-size: inherit;
	color: inherit;
}

/* ================================================================
   SINGLE POST LAYOUT
   ================================================================ */

.addb-single-hero__cat a {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--addb-color-accent);
	text-decoration: none;
}

.addb-single-content .wp-block-post-content {
	max-width: 42.5rem;
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--addb-color-text);
}

.addb-single-content .wp-block-post-content > * {
	max-width: 42.5rem;
}

.addb-single-content .wp-block-post-content > .alignwide {
	max-width: 100%;
}

.addb-single-content .wp-block-post-content > .alignfull {
	max-width: none;
}

/* ── Post typography hierarchy ── */
.addb-single-content .wp-block-post-content h2 {
	font-size: clamp(1.75rem, 1.55rem + 0.5vw, 2.25rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin-top: 3rem;
	margin-bottom: 1rem;
}

.addb-single-content .wp-block-post-content h3 {
	font-size: clamp(1.25rem, 1.15rem + 0.25vw, 1.5rem);
	line-height: 1.3;
	letter-spacing: -0.015em;
	margin-top: 2.5rem;
	margin-bottom: 0.75rem;
}

.addb-single-content .wp-block-post-content h4 {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	margin-top: 2rem;
	margin-bottom: 0.5rem;
}

.addb-single-content .wp-block-post-content p {
	margin-bottom: 1.5rem;
}

.addb-single-content .wp-block-post-content ul,
.addb-single-content .wp-block-post-content ol {
	margin-bottom: 1.5rem;
	padding-left: 1.5rem;
}

.addb-single-content .wp-block-post-content li {
	margin-bottom: 0.5rem;
	line-height: 1.7;
}

.addb-single-content .wp-block-post-content blockquote {
	font-size: 1.05rem;
	line-height: 1.7;
	border-left: 3px solid var(--addb-color-border);
	padding-left: 1.25rem;
	margin: 2rem 0;
	color: var(--addb-color-text-muted);
	font-style: italic;
}

.addb-single-content .wp-block-post-content pre {
	font-size: 0.875rem;
	line-height: 1.6;
	padding: 1.25rem;
	border-radius: 4px;
	overflow-x: auto;
}

/* ================================================================
   PAGINATION
   ================================================================ */

.wp-block-query-pagination {
	font-size: 0.875rem;
}

.wp-block-query-pagination a {
	color: var(--addb-color-text-muted);
	text-decoration: none;
}

.wp-block-query-pagination a:hover {
	color: var(--addb-color-text-strong);
}

.wp-block-query-pagination-numbers .page-numbers.current {
	font-weight: 700;
	color: var(--addb-color-text-strong);
}

/* ================================================================
   FRONT PAGE — SIDEBAR LAYOUT
   ================================================================ */

.addb-front-columns {
	display: grid;
	grid-template-columns: 1fr 17rem;
	gap: 3rem;
	align-items: start;
}

.addb-front-sidebar {
	position: sticky;
	top: calc(var(--addb-nav-height-scrolled, 56px) + 1.5rem);
}

/* ── Book Callout Card ── */

.addb-book-callout {
	padding: 1.5rem;
	border: 1px solid var(--addb-color-border);
	border-radius: 6px;
	background: var(--addb-color-surface);
}

.addb-book-callout__label {
	margin: 0 0 0.6rem;
	color: var(--addb-color-text-faint);
}

.addb-book-callout__title {
	margin: 0 0 0.5rem;
	color: var(--addb-color-text-strong);
}

.addb-book-callout__desc {
	margin: 0 0 1rem;
	color: var(--addb-color-text-muted);
}

.addb-book-callout__rule {
	margin: 0 0 1rem;
	border: none;
	border-top: 1px solid var(--addb-color-border);
	opacity: 1;
}

.addb-book-callout__book {
	margin-bottom: 0.75rem;
}

.addb-book-callout__book-label {
	margin: 0 0 0.15rem;
	color: var(--addb-color-text-faint);
}

.addb-book-callout__book h4 {
	margin: 0;
}

.addb-book-callout__book h4 a {
	color: var(--addb-color-text-strong);
	text-decoration: none;
}

.addb-book-callout__book h4 a:hover {
	text-decoration: underline;
}

.addb-book-callout__cta .wp-block-button__link {
	width: 100%;
	text-align: center;
}

/* Dark mode */
[data-theme="dark"] .addb-book-callout {
	background: var(--addb-color-surface);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-book-callout__label {
	color: var(--addb-color-text-faint);
}

[data-theme="dark"] .addb-book-callout__title {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-book-callout__desc {
	color: var(--addb-color-text-muted);
}

[data-theme="dark"] .addb-book-callout__rule {
	border-top-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-book-callout__book-label {
	color: var(--addb-color-text-faint);
}

[data-theme="dark"] .addb-book-callout__book h4 a {
	color: var(--addb-color-text-strong);
}

/* ================================================================
   FOOTER
   ================================================================ */

.addb-footer {
	background: #000;
	color: #999;
	margin-top: 0;
}

.addb-footer__inner {
	max-width: 72rem;
	margin: 0 auto;
	padding: 5rem 1.5rem 3rem;
}

.addb-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.4fr;
	gap: 3rem;
}

/* ── Brand column ── */
.addb-footer__logo {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	letter-spacing: -0.02em;
	display: block;
}

.addb-footer__logo:hover {
	color: #fff;
}

.addb-footer__tagline {
	margin-top: 1rem;
	font-size: 0.875rem;
	line-height: 1.65;
	color: #777;
	max-width: 28ch;
}

/* ── Column headings ── */
.addb-footer__heading {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #555;
	margin: 0 0 1.25rem;
}

/* ── Link lists ── */
.addb-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.addb-footer__links li {
	margin-bottom: 0.65rem;
}

.addb-footer__links a {
	font-size: 0.875rem;
	color: #999;
	text-decoration: none;
	transition: color var(--addb-transition-fast) var(--addb-ease);
}

.addb-footer__links a:hover {
	color: #fff;
}

/* ── CTA column ── */
.addb-footer__cta-text {
	font-size: 0.875rem;
	line-height: 1.55;
	color: #777;
	margin: 0 0 1.25rem;
}

.addb-footer__cta-button {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #000;
	background: #fff;
	padding: 0.65rem 1.5rem;
	text-decoration: none;
	transition: background var(--addb-transition-fast) var(--addb-ease),
	            color var(--addb-transition-fast) var(--addb-ease);
}

.addb-footer__cta-button:hover {
	background: #ccc;
	color: #000;
}

/* ── Bottom bar ── */
.addb-footer__bottom {
	margin-top: 4rem;
	padding-top: 1.5rem;
	border-top: 1px solid #222;
}

.addb-footer__copyright {
	font-size: 0.75rem;
	color: #555;
	margin: 0;
}

/* ── Footer dark mode (inverted: dark bg already, lighten slightly) ── */
[data-theme="dark"] .addb-footer {
	background: #000;
	border-top: 1px solid #1a1a1a;
}

/* ── Footer responsive ── */
@media (max-width: 980px) {
	.addb-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem;
	}

	.addb-footer__brand {
		grid-column: 1 / -1;
	}

	.addb-footer__tagline {
		max-width: 44ch;
	}
}

@media (max-width: 600px) {
	.addb-footer__inner {
		padding: 3.5rem 1.25rem 2rem;
	}

	.addb-footer__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.addb-footer__brand {
		grid-column: auto;
	}

	.addb-footer__bottom {
		margin-top: 2.5rem;
	}
}

/* ================================================================
   RESPONSIVE
   ================================================================ */

@media (max-width: 980px) {
	.addb-front-columns {
		grid-template-columns: 1fr;
	}

	.addb-front-sidebar {
		position: static;
		order: -1;
	}

	.addb-header__toggle {
		display: flex;
	}

	.addb-header__nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		gap: 0;
		padding: 1rem 1.5rem 1.5rem;
		background: var(--addb-nav-bg-scrolled);
		backdrop-filter: blur(var(--addb-nav-blur));
		-webkit-backdrop-filter: blur(var(--addb-nav-blur));
		border-bottom: 1px solid var(--addb-nav-border);
		box-shadow: var(--addb-shadow-md);
	}

	.addb-header__nav.is-open {
		display: flex;
	}

	.addb-header__link {
		padding: 0.75rem 0;
		font-size: 0.95rem;
		border-bottom: 1px solid var(--addb-color-border-light);
	}

	.addb-header__link:last-of-type {
		border-bottom: none;
	}

	.addb-header__search {
		width: 100%;
		margin-top: 0.6rem;
		margin-left: 0;
	}

	.addb-header__search-input {
		flex: 1;
		width: auto;
	}

	.addb-sort-toggle__form {
		display: flex;
		width: 100%;
	}

	.addb-sort-toggle__row {
		flex-wrap: wrap;
	}

	.addb-sort-toggle__pill {
		flex: 0 0 auto;
		text-align: center;
	}

	.addb-header__dark-toggle {
		margin-top: 0.5rem;
		align-self: flex-start;
	}

	/* Toolbar stacks */
	.addb-toolbar__row--controls {
		gap: 0.75rem;
	}

	.addb-toolbar__search-wrap {
		max-width: none;
	}

	/* Featured post stacks */
	.addb-featured {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	/* Post grid stacks */
	.addb-post-grid {
		grid-template-columns: 1fr;
	}

}

@media (max-width: 600px) {
	.addb-header__logo-name {
		font-size: 0.92rem;
	}

	.addb-header__logo-sub {
		display: none;
	}

	.addb-hero__title {
		font-size: 2rem;
	}

	.addb-featured__title {
		font-size: 1.35rem;
	}

	.addb-landing-hero {
		margin-bottom: 1.5rem;
	}

	.addb-landing-hero__lede {
		font-size: 1rem;
	}

	.addb-sort-toggle {
		margin-bottom: 1.1rem;
	}

	/* Stack sort pills and topic dropdown on mobile */
	.addb-sort-toggle__form {
		flex-direction: column;
		align-items: stretch;
		gap: 0.5rem;
	}

	.addb-sort-toggle__row {
		flex-wrap: wrap;
		gap: 0.4rem;
	}

	.addb-sort-toggle__divider {
		display: none;
	}

	.addb-sort-toggle__select {
		width: 100%;
		padding: 0.5rem 1.8rem 0.5rem 0.75rem;
		border: 1px solid var(--addb-color-border);
		border-radius: 4px;
	}

	.addb-sort-toggle__pill {
		flex: 0 0 auto;
	}

	/* Toolbar audience pills wrap */
	.addb-toolbar__row--controls {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}

	.addb-toolbar__divider {
		display: none;
	}

	.addb-toolbar__audience {
		width: 100%;
		gap: 0.4rem;
	}

	/* Category filter pills */
	.addb-cat-filter {
		gap: 0.4rem;
	}

	.addb-cat-filter__pill {
		font-size: 0.72rem;
		padding: 0.3rem 0.7rem;
	}
}

/* ================================================================
   HAMBURGER ANIMATION
   ================================================================ */

.addb-header__toggle[aria-expanded="true"] span:first-child {
	transform: translateY(3.5px) rotate(45deg);
}

.addb-header__toggle[aria-expanded="true"] span:last-child {
	transform: translateY(-3.5px) rotate(-45deg);
}

/* ================================================================
   BODY SCROLL LOCK (mobile menu open)
   ================================================================ */

body.addb-menu-open {
	overflow: hidden;
}
/* ================================================================
   ABOUT PAGE
   ================================================================ */

.addb-about-hero {
	position: relative;
	overflow: hidden;
}

.addb-about-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: none;
	pointer-events: none;
}

.addb-about-hero-rule {
	width: 3.5rem !important;
	border: none !important;
	height: 3px !important;
	background-color: #fff !important;
	opacity: 1 !important;
	margin-left: 0 !important;
}

.addb-about-hero-metrics {
	gap: 2rem;
	margin-top: 2rem;
}

.addb-about-hero-metric {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	color: #cccccc;
	font-size: 0.88rem;
	line-height: 1.4;
}

.addb-about-hero-metric strong {
	color: #ffffff;
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.addb-about-hero-metric span {
	color: #999999;
	font-size: 0.78rem;
	letter-spacing: 0.01em;
}

.addb-about-beliefs {
	margin-top: 0.5rem;
}

.addb-about-belief {
	padding-left: 1rem;
	border-left: 2px solid var(--addb-color-border);
}

.addb-about-cta {
	border-top: 1px solid var(--addb-color-border);
}

/* Dark mode: About page */
[data-theme="dark"] .addb-about-hero {
	background-color: #000000;
}

[data-theme="dark"] .addb-about-belief {
	border-left-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-about-cta {
	background-color: #111111 !important;
	border-top-color: var(--addb-color-border);
}

/* ================================================================
   CONTACT PAGE
   ================================================================ */


.addb-contact-intro {
	animation: addb-fade-up 520ms var(--addb-ease) both;
}

.addb-contact-title,
.addb-contact-kicker,
.addb-contact-sub {
	margin: 0;
}

.addb-contact-title {
	max-width: 22ch;
	color: var(--addb-color-text-strong);
}

.addb-contact-intro__rule {
	width: 3.5rem;
	margin: 0 !important;
	border: 0;
	height: 3px !important;
	opacity: 1 !important;
	transform-origin: left center;
	animation: addb-rule-in 640ms var(--addb-ease) both;
	animation-delay: 120ms;
}

/* ── Form Section ── */

.addb-contact-form-section {
	border-top: 1px solid var(--addb-color-border, #e0e0e0);
	animation: addb-fade-up 600ms var(--addb-ease) both;
	animation-delay: 90ms;
}

.addb-contact-form-header {
	margin: 0;
}

.addb-contact-form-title {
	margin: 0;
}

.addb-contact-form-header p {
	margin: 0;
}

/* Strip plugin chrome — page layout handles the shell */
.addb-contact-form-section .add-website-communication-form {
	max-width: 42.5rem;
	margin: 0 auto;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

/* Suppress wpautop artifacts inside the form */
.addb-contact-form-section .add-website-communication-form p:empty:not(.add-website-communication-feedback),
.addb-contact-form-section .add-website-communication-form > p:has(> input[type="hidden"]) {
	display: none;
}

.addb-contact-form-section .add-website-communication-field br {
	display: none;
}

.addb-contact-form-section .add-website-communication-field label {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--addb-color-text-muted, #666666);
}

.addb-contact-form-section .add-website-communication-field input,
.addb-contact-form-section .add-website-communication-field select,
.addb-contact-form-section .add-website-communication-field textarea {
	padding: 0.82rem 0.9rem;
	border-radius: 4px;
	border-color: var(--addb-color-border, #e0e0e0);
	background: var(--addb-color-surface, #f5f5f5);
	font-size: 0.97rem;
}

.addb-contact-form-section .add-website-communication-field input:focus,
.addb-contact-form-section .add-website-communication-field select:focus,
.addb-contact-form-section .add-website-communication-field textarea:focus {
	border-color: var(--addb-color-text-strong, #000000);
	outline: 2px solid rgb(0 0 0 / 8%);
	outline-offset: 1px;
	background: #fff;
}

.addb-contact-form-section .add-website-communication-field small {
	color: var(--addb-color-text-muted, #999999);
}

.addb-contact-form-section .add-website-communication-submit {
	min-width: 12rem;
	padding: 0.82rem 1.6rem;
	border-radius: 4px;
	font-size: 0.84rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: var(--addb-color-text-strong, #000000);
	border-color: var(--addb-color-text-strong, #000000);
	color: #fff;
	transition: opacity 0.2s ease;
}

.addb-contact-form-section .add-website-communication-submit:hover {
	opacity: 0.85;
	background: var(--addb-color-text-strong, #000000);
	border-color: var(--addb-color-text-strong, #000000);
	transform: none;
}

.addb-contact-form-section .add-website-communication-feedback {
	font-size: 0.9rem;
}

/* ── What Happens Next ── */

.addb-contact-expect {
	animation: addb-fade-up 600ms var(--addb-ease) both;
	animation-delay: 200ms;
}

.addb-contact-steps {
	margin: 0;
}

.addb-contact-step {
	margin: 0;
}

.addb-contact-step p {
	margin: 0;
}

.addb-contact-step__num {
	margin: 0 0 0.15rem;
}

/* Dark mode: Contact page */
[data-theme="dark"] .addb-contact-title {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-contact-form-section {
	border-top-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-contact-form-section .add-website-communication-form {
	background: transparent;
}

[data-theme="dark"] .addb-contact-form-section .add-website-communication-field input,
[data-theme="dark"] .addb-contact-form-section .add-website-communication-field select,
[data-theme="dark"] .addb-contact-form-section .add-website-communication-field textarea {
	background: var(--addb-color-surface, #111);
	border-color: var(--addb-color-border);
	color: var(--addb-color-text, #ccc);
}

[data-theme="dark"] .addb-contact-form-section .add-website-communication-field input:focus,
[data-theme="dark"] .addb-contact-form-section .add-website-communication-field select:focus,
[data-theme="dark"] .addb-contact-form-section .add-website-communication-field textarea:focus {
	background: #000;
	border-color: var(--addb-color-text-muted);
	outline-color: rgb(255 255 255 / 8%);
}

[data-theme="dark"] .addb-contact-form-section .add-website-communication-field label {
	color: var(--addb-color-text-muted, #888888);
}

[data-theme="dark"] .addb-contact-form-section .add-website-communication-submit {
	background: #fff;
	border-color: #fff;
	color: #000000;
}

[data-theme="dark"] .addb-contact-form-section .add-website-communication-submit:hover {
	background: #e0e0e0;
	border-color: #e0e0e0;
}

[data-theme="dark"] .addb-contact-step {
	border-bottom-color: var(--addb-color-border) !important;
}

/* Responsive: Contact page */
@media (max-width: 768px) {
	.addb-contact-clean {
		padding-top: 1.25rem !important;
	}

	.addb-contact-sub {
		font-size: 1rem !important;
	}

	.addb-contact-form-section .add-website-communication-submit {
		width: 100%;
	}
}

/* ================================================================
   DARK MODE — Component Overrides
   (ordered low → high specificity to satisfy cascade linter)
   ================================================================ */

/* ── Pagination (specificity 0,2,1) ── */
[data-theme="dark"] .wp-block-query-pagination a {
	color: var(--addb-color-text-muted);
}

[data-theme="dark"] .wp-block-query-pagination-numbers .page-numbers.current {
	color: var(--addb-color-text-strong);
}

/* ── Single post hero meta (0,2,1) ── */
[data-theme="dark"] .addb-single-hero__cat a {
	color: var(--addb-color-accent);
}

/* ── Post terms / category labels (0,2,1) ── */
[data-theme="dark"] .wp-block-post-terms a {
	color: var(--addb-color-accent);
}

/* ── Post date / reading time ── */
[data-theme="dark"] .wp-block-post-date,
[data-theme="dark"] .addb-reading-time {
	color: var(--addb-color-text-faint);
}

/* ── Tag cloud (0,2,1) ── */
[data-theme="dark"] .wp-block-tag-cloud a {
	border-color: var(--addb-color-border);
	color: var(--addb-color-text-muted);
}

/* ── General link hover (0,2,1) — sits before higher-specificity hover states ── */
[data-theme="dark"] a:hover {
	color: #fff;
}

/* ── Pagination hover (0,3,1) ── */
[data-theme="dark"] .wp-block-query-pagination a:hover {
	color: var(--addb-color-accent);
}

/* ── Tag cloud hover (0,3,1) ── */
[data-theme="dark"] .wp-block-tag-cloud a:hover {
	color: var(--addb-color-accent);
	border-color: var(--addb-color-accent);
}

/* ── Category filter pills ── */
[data-theme="dark"] .addb-cat-filter__pill {
	color: var(--addb-color-text-muted);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-cat-filter__pill:hover,
[data-theme="dark"] .addb-cat-filter__pill--all {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-muted);
	background: transparent;
}

[data-theme="dark"] .addb-sort-toggle__form {
	background: var(--addb-color-surface);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-sort-toggle__pill {
	color: var(--addb-color-text-muted);
}

[data-theme="dark"] .addb-sort-toggle__pill:hover,
[data-theme="dark"] .addb-sort-toggle__pill.is-active {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-border);
	background: #000;
}

[data-theme="dark"] .addb-sort-toggle__divider {
	background: var(--addb-color-border);
}

[data-theme="dark"] .addb-sort-toggle__select {
	color: var(--addb-color-text-muted);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999999' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

[data-theme="dark"] .addb-sort-toggle__select:hover,
[data-theme="dark"] .addb-sort-toggle__select:focus {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-sort-toggle__select option {
	background: #111;
	color: #e0e0e0;
}

/* ── Featured post ── */
[data-theme="dark"] .addb-featured__title {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-featured__excerpt {
	color: var(--addb-color-text-muted);
}

[data-theme="dark"] .addb-featured__meta {
	color: var(--addb-color-text-faint);
}

/* ── Post grid / list cards ── */
[data-theme="dark"] .wp-block-group.addb-post-grid,
[data-theme="dark"] .wp-block-group.addb-list-item {
	background: transparent;
}

/* ── Single post content (0,4,1 for a:hover) ── */
[data-theme="dark"] .addb-single .wp-block-post-content {
	color: var(--addb-color-text);
}

[data-theme="dark"] .addb-single .wp-block-post-content h2,
[data-theme="dark"] .addb-single .wp-block-post-content h3,
[data-theme="dark"] .addb-single .wp-block-post-content h4 {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-single .wp-block-post-content a {
	color: var(--addb-color-accent);
}

[data-theme="dark"] .addb-single .wp-block-post-content a:hover {
	color: #fff;
}

[data-theme="dark"] .addb-single .wp-block-post-content figcaption {
	color: var(--addb-color-text-faint);
}

[data-theme="dark"] .addb-single .wp-block-post-content strong {
	color: var(--addb-color-text-strong);
}

/* ── Nav links: keep muted-slate colour in dark mode ── */
[data-theme="dark"] .addb-header__logo {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-header__link {
	color: var(--addb-color-text-muted);
}

[data-theme="dark"] .addb-header__link:hover {
	color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-header__logo-sub {
	color: var(--addb-color-text-faint);
}

[data-theme="dark"] .addb-header__search-input {
	background: var(--addb-color-surface);
	color: var(--addb-color-text);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-header__search-input:focus {
	border-color: var(--addb-color-text-strong);
}

[data-theme="dark"] .addb-header__search-button {
	color: var(--addb-color-text-muted);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] .addb-header__search-button:hover {
	color: var(--addb-color-text-strong);
	border-color: var(--addb-color-text-muted);
}

/* ── Form elements: override browser defaults in dark mode ── */
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="url"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] textarea,
[data-theme="dark"] select {
	background-color: var(--addb-color-surface);
	color: var(--addb-color-text);
	border-color: var(--addb-color-border);
}

[data-theme="dark"] input[type="text"]::placeholder,
[data-theme="dark"] input[type="email"]::placeholder,
[data-theme="dark"] input[type="tel"]::placeholder,
[data-theme="dark"] input[type="url"]::placeholder,
[data-theme="dark"] input[type="search"]::placeholder,
[data-theme="dark"] textarea::placeholder {
	color: var(--addb-color-text-faint);
}

[data-theme="dark"] input[type="text"]:focus,
[data-theme="dark"] input[type="email"]:focus,
[data-theme="dark"] input[type="tel"]:focus,
[data-theme="dark"] input[type="url"]:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus {
	border-color: var(--addb-color-accent);
	outline-color: var(--addb-color-accent);
	box-shadow: 0 0 0 3px rgb(255 255 255 / 20%);
}

[data-theme="dark"] select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	-webkit-appearance: none;
	appearance: none;
}

/* ── Contact form 7 / Gravity forms wrappers ── */
[data-theme="dark"] .wpcf7-form-control,
[data-theme="dark"] .gfield input,
[data-theme="dark"] .gfield textarea,
[data-theme="dark"] .gfield select,
[data-theme="dark"] .wpcf7-text,
[data-theme="dark"] .wpcf7-email,
[data-theme="dark"] .wpcf7-textarea {
	background-color: var(--addb-color-surface) !important;
	color: var(--addb-color-text) !important;
	border-color: var(--addb-color-border) !important;
}

/* ── Mobile nav: nav links also keep slate colour ── */
@media (max-width: 980px) {
	[data-theme="dark"] .addb-header__nav {
		background: var(--addb-nav-bg-scrolled);
		border-bottom-color: var(--addb-nav-border);
	}

	[data-theme="dark"] .addb-header__link {
		color: var(--addb-color-text-muted);
		border-bottom-color: var(--addb-color-border-light);
	}

	[data-theme="dark"] .addb-header__link:hover {
		color: var(--addb-color-text-strong);
	}

	[data-theme="dark"] .addb-header__toggle span {
		background: var(--addb-color-text-strong);
	}
}

/* ── System-preference dark mode: CSS-only fallback ──
   Applied before JS runs to prevent any residual flash on
   slow connections when localStorage has no stored value. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		/* WP preset overrides */
		--wp--preset--color--primary:     #ffffff;
		--wp--preset--color--secondary:   #cccccc;
		--wp--preset--color--accent:      #fff;
		--wp--preset--color--base:        #f0f0f0;
		--wp--preset--color--contrast:    #000000;
		--wp--preset--color--surface:     #111111;
		--wp--preset--color--surface-alt: #1c1c1c;
		--wp--preset--color--border:      #2e2e2e;
		--wp--preset--color--muted:       #888888;
		--wp--preset--color--subtle:      #cccccc;
		--wp--preset--color--faint:       #555555;

		/* Custom tokens */
		--addb-nav-bg:              rgb(0 0 0 / 92%);
		--addb-nav-bg-scrolled:     rgb(0 0 0 / 98%);
		--addb-nav-border:          rgb(46 46 46 / 80%);
		--addb-nav-border-scrolled: rgb(46 46 46);
		--addb-color-bg:           #000;
		--addb-color-surface:      #111;
		--addb-color-surface-alt:  #1c1c1c;
		--addb-color-border:       #2e2e2e;
		--addb-color-border-light: #111;
		--addb-color-text:        #ccc;
		--addb-color-text-strong: #fff;
		--addb-color-text-muted:  #888;
		--addb-color-text-faint:  #555;
		--addb-color-accent:  #fff;
		--addb-color-primary: #fff;
		--addb-shadow-sm: 0 1px 2px rgb(0 0 0 / 50%);
		--addb-shadow-md: 0 1px 4px rgb(0 0 0 / 60%), 0 4px 20px rgb(0 0 0 / 40%);
		--addb-shadow-lg: 0 4px 24px rgb(0 0 0 / 70%);
	}
}

/* ── Infinite Scroll ──────────────────────────────── */
.addb-infinite-sentinel {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 2rem 0;
	min-height: 4rem;
}
.addb-infinite-loader {
	display: none;
	gap: 0.5rem;
	align-items: center;
}
.addb-infinite-sentinel.is-loading .addb-infinite-loader {
	display: flex;
}
.addb-infinite-loader span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--muted, #666666);
	animation: addb-pulse 1.4s ease-in-out infinite;
}
.addb-infinite-loader span:nth-child(2) {
	animation-delay: 0.2s;
}
.addb-infinite-loader span:nth-child(3) {
	animation-delay: 0.4s;
}
@keyframes addb-pulse {
	0%, 80%, 100% {
		opacity: 0.3;
		transform: scale(0.8);
	}
	40% {
		opacity: 1;
		transform: scale(1);
	}
}