/*
 * Atrium — base.css
 *
 * Scope: the shared design system, loaded on every front-end page after tokens.css (handle `atrium-base`).
 *   1. Reset & document          8. Badges
 *   2. Typography                9. Cards (+ the four card-style body classes)
 *   3. Accessibility utilities  10. Media, placeholders & image fade-in
 *   4. Layout primitives        11. Forms
 *   5. Text components          12. Notices
 *   6. Icons                    13. Entry content: page layout, flow, core blocks & block styles
 *   7. Buttons                  14. Motion · 15. Print
 *
 * Colors, type, spacing, radii and shadows come only from --atr-* tokens (tokens.css + the inline
 * Customizer block), so every rule works in all presets and inside dark / photo / brand contexts.
 * Section 13's block rules are mirrored in editor.css (scoped to .editor-styles-wrapper) — keep in sync.
 */

/* =========================================================================
 * 1. Reset & document
 * ====================================================================== */

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

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

html:has(body.atr-header-sticky) {
	scroll-padding-block-start: calc(var(--atr-header-h) + var(--atr-space-4));
}

body {
	margin: 0;
	min-block-size: 100vh;
	background-color: var(--atr-color-bg);
	color: var(--atr-color-text);
	font-family: var(--atr-font-body);
	font-size: var(--atr-step-0);
	font-weight: var(--atr-body-weight);
	line-height: var(--atr-line-height);
	font-synthesis-weight: none;
	font-optical-sizing: auto;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd,
pre {
	margin: 0;
}

img,
picture,
video,
canvas,
svg,
iframe,
embed,
object {
	max-inline-size: 100%;
}

img,
video {
	block-size: auto;
	vertical-align: middle;
}

img {
	border-style: none;
}

iframe {
	border: 0;
}

button,
input,
select,
textarea,
optgroup {
	margin: 0;
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
}

/* Inputs never render below 16px (prevents iOS zoom on focus). */
input,
select,
textarea {
	font-size: max(1rem, var(--atr-step-0));
}

button,
[role="button"],
label[for],
summary {
	cursor: pointer;
}

button:disabled,
[aria-disabled="true"] {
	cursor: not-allowed;
}

fieldset {
	min-inline-size: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

legend {
	padding: 0;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

hr {
	block-size: 0;
	margin-block: var(--atr-space-7);
	border: 0;
	border-block-start: var(--atr-border);
	color: inherit;
}

[hidden]:not([hidden="until-found"]) {
	display: none !important;
}

::selection {
	background-color: var(--atr-selection-bg);
	color: var(--atr-selection-fg);
}

/* =========================================================================
 * 2. Typography
 * ====================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--atr-font-heading);
	font-weight: var(--atr-heading-weight);
	line-height: var(--atr-heading-line-height);
	letter-spacing: calc(var(--atr-heading-tracking) + var(--atr-heading-caps-boost));
	text-transform: var(--atr-heading-transform);
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: auto;
	color: inherit;
}

h1 {
	font-size: var(--atr-h1);
}

h2 {
	font-size: var(--atr-h2);
}

h3 {
	font-size: var(--atr-h3);
}

h4 {
	font-size: var(--atr-h4);
}

h5 {
	font-size: var(--atr-h5);
}

h6 {
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--1);
	font-weight: var(--atr-weight-strong);
	line-height: 1.4;
	letter-spacing: var(--atr-label-tracking);
	text-transform: uppercase;
}

/* The signature editorial move: an italic, accent-colored word inside a title. */
:is(h1, h2, h3, h4, h5, .atr-display, .atr-section-head__title) em {
	font-style: italic;
	color: var(--atr-color-accent-ink);
}

p {
	text-wrap: pretty;
}

a {
	color: var(--atr-color-primary-ink);
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
	text-underline-offset: 0.2em;
	transition: color var(--atr-transition), text-decoration-color var(--atr-transition);
}

a:hover {
	text-decoration-color: currentColor;
}

/* Link style (Customizer → Corners, Buttons & Cards). Body copy links stay underlined (section 13). */
.atr-links--hover :where(a) {
	text-decoration-color: transparent;
}

.atr-links--hover :where(a):hover,
.atr-links--hover :where(a):focus-visible {
	text-decoration-color: currentColor;
}

.atr-links--none :where(a) {
	text-decoration-line: none;
}

strong,
b {
	font-weight: var(--atr-body-strong);
}

small {
	font-size: var(--atr-step--1);
}

sub,
sup {
	position: relative;
	font-size: 0.75em;
	line-height: 0;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

abbr[title] {
	text-decoration: underline dotted;
	text-underline-offset: 0.2em;
	cursor: help;
}

mark {
	padding-inline: 0.15em;
	border-radius: var(--atr-radius-sm);
	background-color: var(--atr-color-accent-soft);
	color: inherit;
}

code,
kbd,
samp,
pre {
	font-family: var(--atr-font-mono);
	font-size: 0.875em;
}

:not(pre) > code,
kbd {
	padding: 0.15em 0.4em;
	border-radius: var(--atr-radius-sm);
	background-color: var(--atr-color-surface);
	overflow-wrap: anywhere;
}

kbd {
	border: var(--atr-border);
	border-block-end-width: 2px;
}

pre {
	overflow-x: auto;
	white-space: pre;
	tab-size: 2;
}

address {
	font-style: normal;
}

dt {
	font-weight: var(--atr-body-strong);
}

/* Numerals: lining, tabular figures wherever numbers are compared. */
.atr-price,
.atr-stat__value,
.atr-facts,
[data-atr-mortgage-output] {
	font-variant-numeric: lining-nums tabular-nums;
}

/* =========================================================================
 * 3. Accessibility utilities
 * ====================================================================== */

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

:focus:not(:focus-visible) {
	outline: none;
}

[tabindex="-1"]:focus:not(:focus-visible),
.site-main:focus {
	outline: none;
}

.screen-reader-text,
.atr-visually-hidden {
	position: absolute !important;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.atr-visually-hidden.is-focusable:focus {
	inset-block-start: var(--atr-space-3);
	inset-inline-start: var(--atr-space-3);
	z-index: 100000;
	display: block;
	inline-size: auto;
	block-size: auto;
	padding: var(--atr-space-3) var(--atr-space-5);
	clip: auto;
	clip-path: none;
	border-radius: var(--atr-radius-button);
	background-color: var(--atr-color-primary);
	color: var(--atr-color-on-primary);
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--1);
	font-weight: var(--atr-weight-strong);
	line-height: 1.4;
	text-decoration: none;
	white-space: normal;
	box-shadow: var(--atr-shadow);
}

.skip-link:focus {
	position: fixed !important;
	outline: 2px solid var(--atr-color-focus);
	outline-offset: 3px;
}

/* Lead-form honeypot (rendered by the plugin). */
.atr-hp {
	position: absolute !important;
	inset-inline-start: -10000px;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
}

/* =========================================================================
 * 4. Layout primitives
 * ====================================================================== */

.atr-container {
	inline-size: min(100% - 2 * var(--atr-gutter), var(--atr-container));
	margin-inline: auto;
}

.atr-container--narrow {
	inline-size: min(100% - 2 * var(--atr-gutter), var(--atr-content));
}

.atr-section {
	position: relative;
	padding-block: calc(var(--atr-section-space) * var(--atr-space-unit));
}

.atr-section--tight {
	padding-block: calc(var(--atr-section-space) * var(--atr-space-unit) * 0.6);
}

.atr-section--flush-top {
	padding-block-start: 0;
}

.atr-section--surface {
	--atr-card-flat-bg: var(--atr-color-bg);
	--atr-frame-fill: var(--atr-color-surface);
	background-color: var(--atr-color-surface);
}

.has-surface-background-color {
	--atr-frame-fill: var(--atr-color-surface);
}

/* Native controls (date pickers, scrollbars) follow the band. */
.atr-section--dark,
.atr-dark,
.has-dark-background-color,
.atr-footer--dark .site-footer,
.atr-header-style--dark .site-header {
	color-scheme: dark;
}

.atr-on-image,
.atr-light,
.has-background-background-color,
.has-surface-background-color {
	color-scheme: light;
}

.atr-scheme--dark .atr-light,
.atr-scheme--dark .has-background-background-color,
.atr-scheme--dark .has-surface-background-color {
	color-scheme: dark;
}

.atr-grid {
	--atr-grid-cols: 1;
	--atr-grid-gap: clamp(var(--atr-space-5), 2.5vw, var(--atr-space-6));
	display: grid;
	grid-template-columns: repeat(var(--atr-grid-cols), minmax(0, 1fr));
	gap: var(--atr-grid-row-gap, calc(var(--atr-grid-gap) * 1.5)) var(--atr-grid-gap);
}

@media (min-width: 600px) {
	.atr-grid--2,
	.atr-grid--3,
	.atr-grid--4 {
		--atr-grid-cols: 2;
	}
}

@media (min-width: 1024px) {
	.atr-grid--3,
	.atr-grid--4 {
		--atr-grid-cols: 3;
	}
}

@media (min-width: 1280px) {
	.atr-grid--4 {
		--atr-grid-cols: 4;
	}
}

.atr-stack > * {
	margin-block: 0;
}

.atr-stack > * + * {
	margin-block-start: var(--atr-stack-space, var(--atr-space-4));
}

.atr-stack--sm {
	--atr-stack-space: var(--atr-space-2);
}

.atr-stack--lg {
	--atr-stack-space: var(--atr-space-6);
}

.atr-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--atr-cluster-gap, var(--atr-space-3) var(--atr-space-4));
}

.atr-cluster--between {
	justify-content: space-between;
}

.atr-cluster--center {
	justify-content: center;
}

.atr-split {
	display: grid;
	gap: clamp(var(--atr-space-6), 6vw, var(--atr-space-9));
	align-items: center;
}

.atr-split--top {
	align-items: start;
}

@media (min-width: 782px) {
	.atr-split {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.atr-split--60 {
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	}

	.atr-split--40 {
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	}

	.atr-split--reverse > :first-child {
		order: 2;
	}
}

/* =========================================================================
 * 5. Text components
 * ====================================================================== */

/* Eyebrow: small tracked label above titles. The leading hairline follows the "Small label style". */
.atr-eyebrow,
.is-style-atr-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--2);
	font-weight: var(--atr-weight-strong);
	font-style: normal;
	line-height: 1.4;
	letter-spacing: var(--atr-label-tracking);
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--atr-color-accent-ink);
}

.atr-eyebrow--line .atr-eyebrow::before,
.atr-eyebrow--line .is-style-atr-eyebrow::before {
	content: "";
	flex: none;
	inline-size: 2rem;
	block-size: 1px;
	background-color: currentColor;
}

.atr-eyebrow--center,
.atr-section-head--center .atr-eyebrow,
.is-style-atr-eyebrow.has-text-align-center {
	justify-content: center;
}

.atr-eyebrow--line .atr-eyebrow--center::after,
.atr-eyebrow--line .atr-section-head--center .atr-eyebrow::after,
.atr-eyebrow--line .is-style-atr-eyebrow.has-text-align-center::after {
	content: "";
	flex: none;
	inline-size: 2rem;
	block-size: 1px;
	background-color: currentColor;
}

.is-style-atr-eyebrow.has-text-align-right {
	justify-content: flex-end;
}

/* Section head: eyebrow + title + intro, optional "view all" link aligned end on wide screens. */
.atr-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--atr-space-5) var(--atr-space-7);
	margin-block-end: clamp(var(--atr-space-6), 5vw, var(--atr-space-8));
}

.atr-section-head__main {
	flex: 1 1 28rem;
	min-inline-size: 0;
	max-inline-size: 48rem;
}

.atr-section-head__title {
	margin: 0;
	font-size: var(--atr-h2);
}

.atr-eyebrow + .atr-section-head__title {
	margin-block-start: var(--atr-space-4);
}

.atr-section-head__text {
	max-inline-size: 60ch;
	margin-block: var(--atr-space-4) 0;
	font-size: clamp(var(--atr-step-0), 0.9rem + 0.35vw, var(--atr-step-1));
	line-height: 1.6;
	color: var(--atr-color-muted-ink);
}

.atr-section-head__link {
	flex: none;
}

.atr-section-head--center {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.atr-section-head--center .atr-section-head__main {
	flex-basis: auto;
	margin-inline: auto;
}

.atr-section-head--center .atr-section-head__text {
	margin-inline: auto;
}

.atr-lead {
	max-inline-size: 60ch;
	font-size: clamp(var(--atr-step-0), 0.9rem + 0.45vw, var(--atr-step-1));
	line-height: 1.6;
	text-wrap: pretty;
}

.atr-muted {
	color: var(--atr-color-muted-ink);
}

.atr-display {
	font-family: var(--atr-font-heading);
	font-size: var(--atr-display);
	font-weight: var(--atr-heading-weight);
	line-height: min(var(--atr-heading-line-height), 1.05);
	letter-spacing: calc(var(--atr-heading-tracking) + var(--atr-heading-caps-boost) - 0.01em);
	text-transform: var(--atr-heading-transform);
	text-wrap: balance;
}

.atr-label {
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--2);
	font-weight: var(--atr-weight-strong);
	line-height: 1.4;
	letter-spacing: var(--atr-label-tracking);
	text-transform: uppercase;
}

/* Hairline rule and short accent divider. */
.atr-rule {
	block-size: 0;
	margin-block: var(--atr-space-7);
	border: 0;
	border-block-start: var(--atr-border);
}

.atr-divider,
.atr-short {
	inline-size: 3rem;
	block-size: 0;
	margin-block: var(--atr-space-5);
	border: 0;
	border-block-start: 2px solid var(--atr-color-accent-ink);
}

/* Text link with a trailing arrow that nudges forward on hover. */
.atr-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	min-block-size: 44px;
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--1);
	font-weight: var(--atr-weight-strong);
	letter-spacing: 0.02em;
	text-decoration-line: none;
	color: var(--atr-color-primary-ink);
}

.atr-link-arrow:hover {
	text-decoration-line: underline;
	text-decoration-color: currentColor;
}

.atr-link-arrow .atr-icon {
	transition: transform var(--atr-transition);
}

.atr-link-arrow:hover .atr-icon:last-child {
	transform: translateX(3px);
}

[dir="rtl"] .atr-link-arrow:hover .atr-icon:last-child {
	transform: scaleX(-1) translateX(3px);
}

.atr-text-center {
	text-align: center;
}

.atr-text-start {
	text-align: start;
}

.atr-text-end {
	text-align: end;
}

.atr-nowrap {
	white-space: nowrap;
}

/* =========================================================================
 * 6. Icons
 * ====================================================================== */

.atr-icon {
	display: inline-block;
	flex-shrink: 0;
	overflow: visible;
	vertical-align: -0.125em;
}

.atr-icon:where(:not([width])) {
	inline-size: 1em;
	block-size: 1em;
}

[dir="rtl"] :is(.atr-icon--arrow-right, .atr-icon--arrow-left, .atr-icon--arrow-up-right, .atr-icon--chevron-left, .atr-icon--chevron-right) {
	transform: scaleX(-1);
}

/* =========================================================================
 * 7. Buttons
 *
 * Each variant only sets local properties (--atr-btn-*), so any context can remap them. Inside dark
 * bands the primary button picks up --atr-color-btn-on-dark automatically (tokens.css), and over photos
 * it turns white with near-black text.
 * ====================================================================== */

.atr-btn,
.wp-block-button__link,
.wp-element-button {
	--atr-btn-bg: var(--atr-color-primary);
	--atr-btn-fg: var(--atr-color-on-primary);
	--atr-btn-border: var(--atr-color-primary);
	--atr-btn-bg-hover: var(--atr-color-primary-hover);
	--atr-btn-fg-hover: var(--atr-color-on-primary);
	--atr-btn-border-hover: var(--atr-color-primary-hover);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	min-block-size: max(44px, var(--atr-control-h));
	margin: 0;
	padding-block: 0.6em;
	padding-inline: 1.75em;
	border: 1px solid var(--atr-btn-border);
	border-radius: var(--atr-radius-button);
	background-color: var(--atr-btn-bg);
	color: var(--atr-btn-fg);
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--1);
	font-weight: var(--atr-weight-strong);
	font-style: normal;
	line-height: 1.2;
	letter-spacing: calc(var(--atr-button-tracking) + var(--atr-button-caps-boost));
	text-align: center;
	text-decoration: none;
	text-transform: var(--atr-button-transform);
	white-space: normal;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition:
		background-color var(--atr-transition),
		color var(--atr-transition),
		border-color var(--atr-transition),
		box-shadow var(--atr-transition),
		transform var(--atr-transition);
}

.atr-btn:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
	border-color: var(--atr-btn-border-hover);
	background-color: var(--atr-btn-bg-hover);
	color: var(--atr-btn-fg-hover);
	text-decoration: none;
}

.atr-btn:focus-visible,
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible {
	outline: 2px solid var(--atr-color-focus);
	outline-offset: 3px;
}

.atr-btn:active:not(:disabled) {
	transform: translateY(1px);
}

.atr-btn:disabled,
.atr-btn[aria-disabled="true"],
.wp-element-button:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.atr-btn__label {
	min-inline-size: 0;
}

.atr-btn .atr-btn__icon {
	inline-size: 1.15em;
	block-size: 1.15em;
	transition: transform var(--atr-transition);
}

.atr-btn:hover :is(.atr-icon--arrow-right, .atr-icon--chevron-right).atr-btn__icon:not(.atr-btn__icon--before) {
	transform: translateX(3px);
}

.atr-btn:hover .atr-icon--arrow-up-right.atr-btn__icon:not(.atr-btn__icon--before) {
	transform: translate(2px, -2px);
}

[dir="rtl"] .atr-btn:hover :is(.atr-icon--arrow-right, .atr-icon--chevron-right).atr-btn__icon:not(.atr-btn__icon--before) {
	transform: scaleX(-1) translateX(3px);
}

[dir="rtl"] .atr-btn:hover .atr-icon--arrow-up-right.atr-btn__icon:not(.atr-btn__icon--before) {
	transform: scaleX(-1) translate(2px, -2px);
}

/* Secondary: outline in the text color; hover fills with the text color. */
.atr-btn--secondary {
	--atr-btn-bg: transparent;
	--atr-btn-fg: var(--atr-color-text);
	--atr-btn-border: var(--atr-color-text);
	--atr-btn-bg-hover: var(--atr-color-inverse-bg);
	--atr-btn-fg-hover: var(--atr-color-inverse-fg);
	--atr-btn-border-hover: var(--atr-color-inverse-bg);
}

/* Light: white outline for photos and dark bands. */
.atr-btn--light {
	--atr-btn-bg: transparent;
	--atr-btn-fg: #fff;
	--atr-btn-border: rgb(255 255 255 / 0.75);
	--atr-btn-bg-hover: #fff;
	--atr-btn-fg-hover: #14171a;
	--atr-btn-border-hover: #fff;
}

/* Ghost: a quiet text button with an arrow. */
.atr-btn--ghost {
	--atr-btn-bg: transparent;
	--atr-btn-fg: var(--atr-color-primary-ink);
	--atr-btn-border: transparent;
	--atr-btn-bg-hover: transparent;
	--atr-btn-fg-hover: var(--atr-color-primary-ink);
	--atr-btn-border-hover: transparent;
	min-block-size: 44px;
	padding-inline: 0;
	border-radius: 0;
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: transparent;
	text-underline-offset: 0.4em;
}

.atr-btn--ghost:hover {
	text-decoration-line: underline;
	text-decoration-color: currentColor;
}

.atr-btn--ghost:active:not(:disabled) {
	transform: none;
}

/* Sizes */
.atr-btn--sm {
	gap: 0.5em;
	min-block-size: max(40px, calc(var(--atr-control-h) - 0.5rem));
	padding-inline: 1.25em;
	font-size: var(--atr-step--2);
}

.atr-btn--lg {
	min-block-size: max(48px, calc(var(--atr-control-h) + 0.5rem));
	padding-inline: 2.25em;
}

.atr-btn--ghost.atr-btn--sm,
.atr-btn--ghost.atr-btn--lg {
	padding-inline: 0;
}

.atr-btn--block {
	inline-size: 100%;
}

/* Icon-only square button (e.g. close). */
.atr-btn--icon {
	inline-size: max(44px, var(--atr-control-h));
	padding: 0;
}

/* Pill-shaped buttons breathe a little more. */
.atr-btn-shape--pill .atr-btn:not(.atr-btn--ghost, .atr-btn--icon),
.atr-btn-shape--pill .wp-block-button__link {
	padding-inline: 2em;
}

.atr-btn-shape--pill .atr-btn--sm:not(.atr-btn--ghost) {
	padding-inline: 1.4em;
}

/* "Outline" button style (Customizer): primary buttons become outlined, filling on hover. */
.atr-buttons--outline .atr-btn--primary,
.atr-buttons--outline .wp-block-button:not(.is-style-outline) > .wp-block-button__link:not(.has-background) {
	--atr-btn-bg: transparent;
	--atr-btn-fg: var(--atr-color-primary-ink);
	--atr-btn-border: var(--atr-color-primary);
	--atr-btn-bg-hover: var(--atr-color-primary);
	--atr-btn-fg-hover: var(--atr-color-on-primary);
	--atr-btn-border-hover: var(--atr-color-primary);
}

/* =========================================================================
 * 8. Badges
 * ====================================================================== */

.atr-badge {
	--atr-badge-bg: color-mix(in srgb, var(--atr-color-bg) 88%, transparent);
	--atr-badge-fg: var(--atr-color-text);
	--atr-badge-border: transparent;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	min-block-size: 1.75rem;
	padding: 0.3em 0.75em;
	border: 1px solid var(--atr-badge-border);
	border-radius: var(--atr-radius-sm);
	background-color: var(--atr-badge-bg);
	color: var(--atr-badge-fg);
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--2);
	font-weight: var(--atr-weight-strong);
	font-style: normal;
	line-height: 1.2;
	letter-spacing: calc(var(--atr-label-tracking) * 0.6);
	text-transform: uppercase;
	white-space: nowrap;
}

.atr-badge .atr-icon {
	font-size: 1.15em;
}

.atr-btn-shape--pill .atr-badge {
	border-radius: 999px;
}

.atr-badge--solid {
	--atr-badge-bg: var(--atr-color-primary);
	--atr-badge-fg: var(--atr-color-on-primary);
}

.atr-badge--accent,
.atr-badge--featured {
	--atr-badge-bg: var(--atr-color-accent-fill);
	--atr-badge-fg: var(--atr-color-on-accent);
}

.atr-badge--light {
	--atr-badge-bg: color-mix(in srgb, var(--atr-color-bg) 88%, transparent);
	--atr-badge-fg: var(--atr-color-text);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.atr-badge--outline {
	--atr-badge-bg: transparent;
	--atr-badge-fg: var(--atr-color-text);
	--atr-badge-border: currentColor;
}

.atr-badge--price-improved {
	--atr-badge-bg: var(--atr-color-bg);
	--atr-badge-fg: var(--atr-color-success);
}

/* Listing status colors (derived per preset by the token engine). Unknown statuses keep the default. */
.atr-badge--for-sale {
	--atr-badge-bg: var(--atr-badge-for-sale-bg);
	--atr-badge-fg: var(--atr-badge-for-sale-fg);
}

.atr-badge--for-rent {
	--atr-badge-bg: var(--atr-badge-for-rent-bg);
	--atr-badge-fg: var(--atr-badge-for-rent-fg);
}

.atr-badge--coming-soon {
	--atr-badge-bg: var(--atr-badge-coming-soon-bg);
	--atr-badge-fg: var(--atr-badge-coming-soon-fg);
}

.atr-badge--pending {
	--atr-badge-bg: var(--atr-badge-pending-bg);
	--atr-badge-fg: var(--atr-badge-pending-fg);
}

.atr-badge--sold {
	--atr-badge-bg: var(--atr-badge-sold-bg);
	--atr-badge-fg: var(--atr-badge-sold-fg);
}

/* =========================================================================
 * 9. Cards
 *
 * `.atr-card` with `.atr-card__media` + `.atr-card__body`. The site-wide card style is a body class:
 * minimal (default) · bordered · elevated · flat. Non-minimal cards clip a flush image.
 * ====================================================================== */

.atr-card,
.is-style-atr-card,
.atr-card-block {
	--atr-card-pad: clamp(var(--atr-space-5), 2.2vw, var(--atr-space-6));
}

.atr-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-inline-size: 0;
	color: var(--atr-color-text);
}

.atr-card__media {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	aspect-ratio: var(--atr-card-media-ratio, var(--atr-card-ratio));
	border-radius: var(--atr-radius-image);
	background-color: var(--atr-color-surface);
}

.atr-card__media img,
.atr-card__media video {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--atr-ease), opacity 0.4s var(--atr-ease);
}

.atr-card__media .atr-placeholder {
	block-size: 100%;
	border-radius: 0;
}

.atr-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-inline-size: 0;
	padding-block-start: var(--atr-space-5);
}

.atr-card-hover--zoom .atr-card:hover .atr-card__media img,
.atr-card-hover--zoom .atr-card:focus-within .atr-card__media img {
	transform: scale(1.04);
}

/* Bordered */
.atr-cards--bordered .atr-card {
	overflow: hidden;
	overflow: clip;
	border: var(--atr-border);
	border-radius: var(--atr-radius);
	background-color: var(--atr-color-bg);
}

/* Elevated */
.atr-cards--elevated .atr-card {
	overflow: hidden;
	overflow: clip;
	border-radius: var(--atr-radius);
	background-color: var(--atr-color-bg);
	box-shadow: var(--atr-shadow);
	transition: transform var(--atr-transition), box-shadow var(--atr-transition);
}

.atr-cards--elevated .atr-card:hover {
	transform: translateY(-2px);
}

/* Flat */
.atr-cards--flat .atr-card {
	overflow: hidden;
	overflow: clip;
	border-radius: var(--atr-radius);
	background-color: var(--atr-card-flat-bg, var(--atr-color-surface));
}

:is(.atr-cards--bordered, .atr-cards--elevated, .atr-cards--flat) .atr-card__media {
	border-radius: 0;
}

:is(.atr-cards--bordered, .atr-cards--elevated, .atr-cards--flat) .atr-card__body {
	padding: var(--atr-card-pad);
}

/* Dark scheme and dark bands: elevated cards need a visible surface (shadows vanish on dark). */
.atr-scheme--dark.atr-cards--elevated .atr-card,
.atr-cards--elevated :is(.atr-section--dark, .atr-dark, .has-dark-background-color) .atr-card {
	border: var(--atr-border);
	background-color: var(--atr-color-surface);
}

.atr-cards--bordered :is(.atr-section--dark, .atr-dark, .has-dark-background-color) .atr-card {
	background-color: var(--atr-color-surface);
}

/* Card block style (Group → Card). Follows the site card style. */
.is-style-atr-card,
.atr-card-block {
	padding: clamp(var(--atr-space-5), 4vw, var(--atr-space-7));
	border: var(--atr-border);
	border-radius: var(--atr-radius-lg);
	background-color: var(--atr-color-bg);
	color: var(--atr-color-text);
}

.atr-cards--elevated :is(.is-style-atr-card, .atr-card-block) {
	border-color: transparent;
	box-shadow: var(--atr-shadow);
}

.atr-cards--flat :is(.is-style-atr-card, .atr-card-block) {
	border-color: transparent;
	background-color: var(--atr-card-flat-bg, var(--atr-color-surface));
}

.atr-scheme--dark.atr-cards--elevated :is(.is-style-atr-card, .atr-card-block) {
	border-color: var(--atr-color-border);
	background-color: var(--atr-color-surface);
}

/* =========================================================================
 * 10. Media, placeholders & image fade-in
 * ====================================================================== */

.atr-media {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	aspect-ratio: var(--atr-media-ratio, auto);
	border-radius: var(--atr-radius-image);
	background-color: var(--atr-color-surface);
}

.atr-media > img,
.atr-media > picture > img,
.atr-media > a > img,
.atr-media > video,
.atr-media > iframe {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.atr-media--landscape {
	--atr-media-ratio: 3 / 2;
}

.atr-media--wide {
	--atr-media-ratio: 16 / 9;
}

.atr-media--portrait {
	--atr-media-ratio: 4 / 5;
}

.atr-media--square {
	--atr-media-ratio: 1;
}

/* Elegant stand-in for a missing photo: soft surface, hairline frame, centered house mark. */
.atr-placeholder {
	container-type: inline-size;
	position: relative;
	display: grid;
	place-items: center;
	inline-size: 100%;
	block-size: 100%;
	min-block-size: 10rem;
	overflow: hidden;
	border-radius: var(--atr-radius-image);
	background-color: var(--atr-color-surface);
	background-image:
		radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--atr-color-bg) 55%, transparent), transparent 62%),
		linear-gradient(160deg, transparent 40%, color-mix(in srgb, var(--atr-color-border) 45%, transparent));
	color: var(--atr-color-muted-ink);
}

.atr-placeholder::after {
	content: "";
	position: absolute;
	inset: var(--atr-space-3);
	border: 1px solid color-mix(in srgb, var(--atr-color-border) 80%, transparent);
	border-radius: max(0px, calc(var(--atr-radius-image) - var(--atr-space-2)));
	pointer-events: none;
}

.atr-placeholder__mark {
	display: grid;
	place-items: center;
	inline-size: clamp(2.75rem, 16cqi, 4.5rem);
	aspect-ratio: 1;
	border: 1px solid color-mix(in srgb, var(--atr-color-muted-ink) 30%, transparent);
	border-radius: 50%;
	background-color: color-mix(in srgb, var(--atr-color-bg) 70%, transparent);
	font-size: clamp(1.15rem, 6.5cqi, 1.75rem);
}

.atr-placeholder__mark .atr-icon {
	inline-size: 1em;
	block-size: 1em;
}

/* Images fade in once loaded — only with JS (inc/enqueue.php marks <html data-atr-fade>) and motion on,
   so nothing is ever hidden if scripts fail. */
@media (prefers-reduced-motion: no-preference) {
	:where(.atr-js[data-atr-fade] .atr-motion--subtle img[loading="lazy"]) {
		transition: opacity 0.4s var(--atr-ease);
	}

	:where(.atr-js[data-atr-fade] .atr-motion--subtle img[loading="lazy"]):not([data-atr-loaded]) {
		opacity: 0;
	}
}

/* =========================================================================
 * 11. Forms
 *
 * Shared primitives (.atr-field, .atr-label, .atr-input, .atr-select, .atr-textarea, .atr-checkbox,
 * .atr-radio, .atr-check, .atr-choice, .atr-input-group) plus zero-specificity defaults for WordPress
 * forms (search, comments, password, widgets) and forms placed in post content.
 * ====================================================================== */

.atr-form {
	display: grid;
	gap: var(--atr-space-5);
}

.atr-field {
	display: grid;
	align-content: start;
	gap: var(--atr-space-2);
	min-inline-size: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.atr-label,
.atr-field__label,
:where(.comment-form, .post-password-form) label:not([for="wp-comment-cookies-consent"]) {
	display: block;
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--1);
	font-weight: var(--atr-weight-strong);
	font-style: normal;
	line-height: 1.4;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--atr-color-text);
}

legend.atr-field__label,
legend.atr-label {
	margin-block-end: var(--atr-space-2);
}

.atr-field__optional {
	font-weight: var(--atr-body-weight);
	color: var(--atr-color-muted-ink);
}

.atr-field__hint {
	margin: 0;
	font-size: var(--atr-step--1);
	line-height: 1.5;
	color: var(--atr-color-muted-ink);
}

.atr-field__error {
	display: flex;
	align-items: flex-start;
	gap: 0.4em;
	margin: 0;
	font-size: var(--atr-step--1);
	font-weight: var(--atr-body-strong);
	line-height: 1.45;
	color: var(--atr-color-danger);
}

.atr-field__error-icon {
	margin-block-start: 0.15em;
}

/* Text-like controls */
.atr-input,
.atr-textarea,
select.atr-select,
.atr-field__control,
.atr-select__control,
:where(.comment-form, .post-password-form, .widget, .search-form, .wp-block-search, .entry-content, .atr-prose) :where(input:is([type="text"], [type="email"], [type="url"], [type="password"], [type="search"], [type="tel"], [type="number"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]), select, textarea) {
	display: block;
	inline-size: 100%;
	min-block-size: var(--atr-control-h);
	padding-block: 0.55em;
	padding-inline: 0.95em;
	border: 1px solid var(--atr-field-border);
	border-radius: var(--atr-radius-input);
	background-color: var(--atr-field-bg);
	color: var(--atr-field-fg);
	font-family: var(--atr-font-body);
	font-size: max(1rem, var(--atr-step-0));
	font-weight: var(--atr-body-weight);
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color var(--atr-transition), box-shadow var(--atr-transition), background-color var(--atr-transition);
}

.atr-textarea,
textarea.atr-field__control,
:where(.comment-form, .post-password-form, .widget, .entry-content, .atr-prose) :where(textarea) {
	min-block-size: calc(var(--atr-control-h) * 2.75);
	padding-block: 0.75em;
	line-height: 1.6;
	resize: vertical;
}

:is(.atr-input, .atr-textarea, select.atr-select, .atr-field__control, .atr-select__control):hover {
	border-color: color-mix(in srgb, var(--atr-field-border) 55%, var(--atr-field-fg));
}

:is(.atr-input, .atr-textarea, select.atr-select, .atr-field__control, .atr-select__control):focus-visible {
	border-color: var(--atr-color-focus);
	outline: 2px solid var(--atr-color-focus);
	outline-offset: 3px;
}

:is(.atr-input, .atr-textarea, .atr-field__control, .atr-input-group__control)::placeholder,
:where(.comment-form, .search-form, .wp-block-search, .entry-content) :where(input, textarea)::placeholder {
	color: var(--atr-field-placeholder);
	opacity: 1;
}

:is(.atr-input, .atr-textarea, select.atr-select, .atr-field__control, .atr-select__control):disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

:is(.atr-input, .atr-field__control)[type="search"]::-webkit-search-decoration,
:is(.atr-input, .atr-field__control)[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

/* Invalid */
.is-invalid :is(.atr-field__control, .atr-input, .atr-textarea, .atr-select__control, .atr-input-group),
:is(.atr-input, .atr-textarea, select.atr-select, .atr-field__control, .atr-select__control)[aria-invalid="true"] {
	border-color: var(--atr-color-danger);
	box-shadow: inset 0 0 0 1px var(--atr-color-danger);
}

/* Selects: bare selects get a currentColor chevron drawn with gradients; the .atr-select wrapper
   carries an inline SVG chevron (.atr-select__icon) instead. */
select.atr-select,
:where(.comment-form, .post-password-form, .widget, .entry-content, .atr-prose) :where(select:not([multiple], [size])) {
	padding-inline-end: 2.75em;
	background-image:
		linear-gradient(45deg, transparent calc(50% - 0.75px), currentColor calc(50% - 0.75px), currentColor calc(50% + 0.75px), transparent calc(50% + 0.75px)),
		linear-gradient(135deg, transparent calc(50% - 0.75px), currentColor calc(50% - 0.75px), currentColor calc(50% + 0.75px), transparent calc(50% + 0.75px));
	background-position:
		calc(100% - 1.25em - 6px) 50%,
		calc(100% - 1.25em) 50%;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	cursor: pointer;
}

[dir="rtl"] select.atr-select,
[dir="rtl"] :where(.comment-form, .post-password-form, .widget, .entry-content, .atr-prose) :where(select:not([multiple], [size])) {
	padding-inline: 2.75em 0.95em;
	background-position:
		1.25em 50%,
		calc(1.25em + 6px) 50%;
}

.atr-select:not(select) {
	position: relative;
	display: block;
	min-inline-size: 0;
}

.atr-select__control {
	padding-inline-end: 2.75em;
	background-image: none;
	cursor: pointer;
	text-overflow: ellipsis;
}

.atr-select__icon {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: 0.95em;
	inline-size: 1em;
	block-size: 1em;
	color: var(--atr-color-muted-ink);
	pointer-events: none;
	transform: translateY(-50%);
}

.atr-select:not(select):focus-within .atr-select__icon {
	color: var(--atr-field-fg);
}

option {
	background-color: var(--atr-field-bg);
	color: var(--atr-field-fg);
}

/* Checkboxes & radios: native controls tinted with the brand color (robust, accessible). */
.atr-checkbox,
.atr-radio,
.atr-check__input,
.atr-choice__input,
:where(.comment-form, .entry-content, .atr-prose, .widget) :where(input[type="checkbox"], input[type="radio"]) {
	flex: none;
	inline-size: 1.25rem;
	block-size: 1.25rem;
	margin: 0;
	accent-color: var(--atr-color-primary);
	cursor: pointer;
}

.atr-check {
	display: flex;
	align-items: flex-start;
	gap: var(--atr-space-3);
}

.atr-check__input {
	margin-block-start: 0.15em;
}

.atr-check__label {
	font-size: var(--atr-step--1);
	line-height: 1.55;
	color: var(--atr-color-muted-ink);
}

.atr-check__label a {
	color: inherit;
}

.atr-choice {
	display: flex;
	flex-wrap: wrap;
	gap: var(--atr-space-2) var(--atr-space-5);
}

.atr-choice__option {
	display: inline-flex;
	align-items: center;
	gap: var(--atr-space-2);
	min-block-size: 44px;
	cursor: pointer;
}

.atr-choice__text {
	font-size: var(--atr-step--1);
}

/* Input with a prefix/suffix ("$", "%"). */
.atr-input-group {
	display: flex;
	align-items: stretch;
	min-inline-size: 0;
	min-block-size: var(--atr-control-h);
	overflow: hidden;
	border: 1px solid var(--atr-field-border);
	border-radius: var(--atr-radius-input);
	background-color: var(--atr-field-bg);
	color: var(--atr-field-fg);
	transition: border-color var(--atr-transition), box-shadow var(--atr-transition);
}

.atr-input-group:hover {
	border-color: color-mix(in srgb, var(--atr-field-border) 55%, var(--atr-field-fg));
}

.atr-input-group:focus-within {
	border-color: var(--atr-color-focus);
	outline: 2px solid var(--atr-color-focus);
	outline-offset: 3px;
}

.atr-input-group__control {
	flex: 1 1 auto;
	min-inline-size: 0;
	padding-block: 0.55em;
	padding-inline: 0.95em;
	border: 0;
	background: transparent;
	color: inherit;
	font-family: var(--atr-font-body);
	font-size: max(1rem, var(--atr-step-0));
	line-height: 1.4;
	font-variant-numeric: lining-nums tabular-nums;
	-webkit-appearance: none;
	appearance: none;
}

.atr-input-group__control:focus,
.atr-input-group__control:focus-visible {
	outline: none;
}

.atr-input-group__affix {
	display: flex;
	flex: none;
	align-items: center;
	padding-inline: 0.85em;
	background-color: color-mix(in srgb, var(--atr-color-surface) 70%, transparent);
	color: var(--atr-color-muted-ink);
	font-size: var(--atr-step--1);
	font-weight: var(--atr-weight-medium);
	white-space: nowrap;
}

.atr-input-group__affix:first-child {
	border-inline-end: 1px solid var(--atr-color-border);
}

.atr-input-group__affix:last-child {
	border-inline-start: 1px solid var(--atr-color-border);
}

/* Native date/time pickers follow the field text color. */
:is(.atr-input, .atr-field__control)::-webkit-calendar-picker-indicator {
	cursor: pointer;
	opacity: 0.7;
}

/* WordPress form chrome */
:where(.comment-form, .post-password-form) p {
	margin-block: 0 var(--atr-space-5);
}

:where(.comment-form) .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: var(--atr-space-3);
	font-size: var(--atr-step--1);
	color: var(--atr-color-muted-ink);
}

:where(.comment-form) .required {
	color: var(--atr-color-danger);
}

/* =========================================================================
 * 12. Notices
 * ====================================================================== */

.atr-notice {
	--atr-notice-color: var(--atr-color-primary-ink);
	display: flex;
	align-items: flex-start;
	gap: var(--atr-space-3);
	padding: var(--atr-space-4) var(--atr-space-5);
	border: 1px solid color-mix(in srgb, var(--atr-notice-color) 30%, transparent);
	border-inline-start: 3px solid var(--atr-notice-color);
	border-radius: var(--atr-radius-sm);
	background-color: color-mix(in srgb, var(--atr-notice-color) 7%, var(--atr-color-bg));
	color: var(--atr-color-text);
	font-size: var(--atr-step--1);
	line-height: 1.55;
}

.atr-notice:focus {
	outline: 2px solid var(--atr-notice-color);
	outline-offset: 3px;
}

.atr-notice__icon {
	flex: none;
	margin-block-start: 0.1em;
	font-size: 1.25rem;
	color: var(--atr-notice-color);
}

.atr-notice__message,
.atr-notice p {
	margin: 0;
}

.atr-notice__title {
	display: block;
	margin-block-end: var(--atr-space-1);
	font-weight: var(--atr-body-strong);
}

.atr-notice a {
	color: inherit;
}

.atr-notice--success {
	--atr-notice-color: var(--atr-color-success);
}

.atr-notice--error {
	--atr-notice-color: var(--atr-color-danger);
}

.atr-notice--warning {
	--atr-notice-color: var(--atr-color-warning);
}

.atr-notice--info {
	--atr-notice-color: var(--atr-color-primary-ink);
}

/* =========================================================================
 * 13. Entry content
 *
 * 13a. Page-level layout: `.atr-entry-content` (pages, posts) lays blocks out in the reading column with
 *      wide/full breakouts; `--wide` uses the container width; `--landing` has no top padding.
 * 13b. Flow: vertical rhythm for block content (.entry-content) and simple rich text (.atr-prose).
 * 13c. Core blocks & theme block styles (mirrored in editor.css).
 * ====================================================================== */

/* 13a. Page-level layout */
.atr-entry-content {
	padding-block: clamp(var(--atr-space-7), 7vw, var(--atr-space-9));
}

.atr-entry-content--landing {
	padding-block-start: 0;
}

.atr-entry-content:has(> .alignfull:first-child) {
	padding-block-start: 0;
}

.atr-entry-content:has(> .alignfull:last-child) {
	padding-block-end: 0;
}

.atr-entry-content > *,
.atr-home-content__body > * {
	max-inline-size: min(100% - 2 * var(--atr-gutter), var(--atr-content));
	margin-inline: auto;
}

.atr-entry-content--wide > *,
.atr-entry-content > .alignwide,
.atr-home-content__body > .alignwide {
	max-inline-size: min(100% - 2 * var(--atr-gutter), var(--atr-container));
}

.atr-entry-content > .alignfull,
.atr-home-content__body > .alignfull {
	max-inline-size: none;
}

.atr-entry-content > .alignleft,
.atr-home-content__body > .alignleft {
	float: left;
	max-inline-size: min(50%, 24rem);
	margin-left: max(var(--atr-gutter), calc((100% - var(--atr-content)) / 2));
	margin-right: var(--atr-space-6);
}

.atr-entry-content > .alignright,
.atr-home-content__body > .alignright {
	float: right;
	max-inline-size: min(50%, 24rem);
	margin-right: max(var(--atr-gutter), calc((100% - var(--atr-content)) / 2));
	margin-left: var(--atr-space-6);
}

.atr-entry-content--wide > .alignleft {
	margin-left: max(var(--atr-gutter), calc((100% - var(--atr-container)) / 2));
}

.atr-entry-content--wide > .alignright {
	margin-right: max(var(--atr-gutter), calc((100% - var(--atr-container)) / 2));
}

.atr-entry-content::after,
.atr-home-content__body::after {
	content: "";
	display: table;
	clear: both;
}

/* Full-width groups and columns keep a gutter so their text never touches the screen edge. */
.atr-entry-content > .alignfull:is(.wp-block-group, .wp-block-columns, .wp-block-media-text),
.atr-home-content__body > .alignfull:is(.wp-block-group, .wp-block-columns, .wp-block-media-text) {
	padding-inline: var(--atr-gutter);
}

/* 13b. Flow */
:is(.entry-content, .atr-prose) > * {
	margin-block: 0;
}

:is(.entry-content, .atr-prose) > * + * {
	margin-block-start: var(--atr-flow-space, var(--atr-space-5));
}

:is(.entry-content, .atr-prose) > :is(h2, h3, h4, h5, h6) {
	margin-block-start: clamp(var(--atr-space-6), 4vw, var(--atr-space-7));
}

:is(.entry-content, .atr-prose) > :is(h1, h2, h3, h4, h5, h6) + * {
	margin-block-start: var(--atr-space-4);
}

:is(.entry-content, .atr-prose) > .is-style-atr-eyebrow + :is(h1, h2, h3, h4, h5, h6) {
	margin-block-start: var(--atr-space-3);
}

:is(.entry-content, .atr-prose) > :is(.alignwide, .alignfull, .wp-block-cover, .wp-block-pullquote, .wp-block-media-text, .wp-block-separator) {
	margin-block: clamp(var(--atr-space-6), 5vw, var(--atr-space-8));
}

:is(.entry-content, .atr-prose) > .alignfull + .alignfull {
	margin-block-start: 0;
}

:is(.entry-content, .atr-prose) > .alignfull:has(+ .alignfull) {
	margin-block-end: 0;
}

:is(.entry-content, .atr-prose) > :is(.alignleft, .alignright) {
	margin-block: 0.35em var(--atr-space-4);
}

:is(.entry-content, .atr-prose) > :first-child {
	margin-block-start: 0;
}

:is(.entry-content, .atr-prose) > :last-child {
	margin-block-end: 0;
}

/* Body-copy links are always underlined (WCAG 1.4.1), whatever the link style setting. */
:is(.entry-content, .atr-prose) :where(a:not(.wp-block-button__link, .wp-element-button, .atr-btn, .wp-block-file__button)) {
	text-decoration-line: underline;
	text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
}

:is(.entry-content, .atr-prose) :where(a:not(.wp-block-button__link, .wp-element-button, .atr-btn, .wp-block-file__button)):hover {
	text-decoration-color: currentColor;
}

/* @blocks:start — mirrored in editor.css with `.entry-content` → `.editor-styles-wrapper`. */

/* Lists (class-less lists and List blocks only, so components placed in content keep their own styles) */
.entry-content :is(ul, ol):where(:not([class]), .wp-block-list:not(.is-style-atr-checklist)) {
	padding-inline-start: 1.35em;
}

.entry-content :is(ul, ol):where(:not([class]), .wp-block-list) > li + li {
	margin-block-start: 0.45em;
}

.entry-content :is(ul, ol):where(:not([class]), .wp-block-list) > li > :is(ul, ol) {
	margin-block-start: 0.45em;
}

.entry-content :is(ul, ol):where(:not([class]), .wp-block-list) > li::marker {
	color: var(--atr-color-accent-ink);
}

.entry-content ol:where(:not([class]), .wp-block-list) > li::marker {
	font-family: var(--atr-font-accent);
	font-size: 0.9em;
	font-weight: var(--atr-weight-strong);
}

.entry-content dl:not([class]) dt {
	margin-block-start: var(--atr-space-4);
}

.entry-content dl:not([class]) dd {
	margin-inline-start: 0;
	color: var(--atr-color-muted-ink);
}

/* Checklist list style (also usable as `.atr-checklist`). */
.entry-content .is-style-atr-checklist,
.atr-checklist {
	padding-inline-start: 0;
	list-style: none;
}

.entry-content .is-style-atr-checklist li,
.atr-checklist li {
	position: relative;
	padding-inline-start: 2.1em;
}

.entry-content .is-style-atr-checklist li + li,
.atr-checklist li + li {
	margin-block-start: 0.65em;
}

.entry-content .is-style-atr-checklist li::before,
.entry-content .is-style-atr-checklist li::after,
.atr-checklist li::before,
.atr-checklist li::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.15em;
	inset-block-start: calc(0.5lh - 0.7em);
	inline-size: 1.4em;
	block-size: 1.4em;
	border-radius: 50%;
}

.entry-content .is-style-atr-checklist li::before,
.atr-checklist li::before {
	background-color: var(--atr-color-accent-soft);
}

.entry-content .is-style-atr-checklist li::after,
.atr-checklist li::after {
	background-color: var(--atr-color-accent-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 12.5l3.25 3.25L17 9'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 12.5l3.25 3.25L17 9'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* Quotes */
.entry-content blockquote:not([class]),
.entry-content .wp-block-quote {
	padding-block: var(--atr-space-1);
	padding-inline: var(--atr-space-5) 0;
	border: 0;
	border-inline-start: 2px solid var(--atr-color-accent-ink);
	font-family: var(--atr-font-heading);
	font-size: var(--atr-step-2);
	font-weight: var(--atr-heading-weight);
	line-height: 1.35;
	letter-spacing: var(--atr-heading-tracking);
}

.entry-content .wp-block-quote > * + * {
	margin-block-start: var(--atr-space-4);
}

.entry-content .wp-block-quote :is(cite, footer),
.entry-content .wp-block-pullquote cite,
.entry-content blockquote:not([class]) cite {
	display: block;
	margin-block-start: var(--atr-space-4);
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--2);
	font-weight: var(--atr-weight-strong);
	font-style: normal;
	line-height: 1.5;
	letter-spacing: var(--atr-label-tracking);
	text-transform: uppercase;
	color: var(--atr-color-muted-ink);
}

.entry-content .wp-block-quote.is-style-large,
.entry-content .wp-block-quote.is-large {
	padding-inline-start: var(--atr-space-6);
	font-size: var(--atr-step-3);
}

.entry-content .wp-block-quote.has-text-align-center {
	padding-inline: 0;
	border-inline-start: 0;
}

.entry-content .wp-block-quote.has-text-align-right {
	padding-inline: 0 var(--atr-space-5);
	border-inline-start: 0;
	border-inline-end: 2px solid var(--atr-color-accent-ink);
}

/* Elegant quote style (also usable as `.atr-elegant`). */
.entry-content .wp-block-quote.is-style-atr-elegant,
.atr-elegant {
	padding: 0;
	border: 0;
	font-size: var(--atr-step-3);
	font-style: italic;
	line-height: 1.3;
	text-align: center;
}

blockquote.atr-elegant:not(.wp-block-quote) {
	max-inline-size: 46rem;
	margin-inline: auto;
}

.entry-content .wp-block-quote.is-style-atr-elegant::before,
.atr-elegant::before {
	content: "\201C";
	content: "\201C" / "";
	display: block;
	margin-block-end: var(--atr-space-2);
	font-family: var(--atr-font-heading);
	font-size: 4.5em;
	font-style: normal;
	line-height: 0.6;
	color: var(--atr-color-accent-ink);
	text-align: center;
	padding-block-start: 0.15em;
}

.entry-content .wp-block-quote.is-style-atr-elegant :is(cite, footer),
.atr-elegant :is(cite, footer) {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-block-start: var(--atr-space-5);
}

.entry-content .wp-block-quote.is-style-atr-elegant :is(cite, footer)::before,
.entry-content .wp-block-quote.is-style-atr-elegant :is(cite, footer)::after,
.atr-elegant :is(cite, footer)::before,
.atr-elegant :is(cite, footer)::after {
	content: "";
	flex: none;
	inline-size: 1.5rem;
	block-size: 1px;
	background-color: currentColor;
}

/* Pullquote */
.entry-content .wp-block-pullquote {
	padding-block: clamp(var(--atr-space-6), 5vw, var(--atr-space-8));
	padding-inline: 0;
	border-block: 1px solid var(--atr-color-border);
	border-inline: 0;
	text-align: center;
	color: inherit;
}

.entry-content .wp-block-pullquote blockquote {
	max-inline-size: 48rem;
	margin: 0 auto;
	padding: 0;
	border: 0;
}

.entry-content .wp-block-pullquote p {
	font-family: var(--atr-font-heading);
	font-size: var(--atr-step-3);
	font-weight: var(--atr-heading-weight);
	line-height: 1.3;
	letter-spacing: var(--atr-heading-tracking);
	text-wrap: balance;
}

.entry-content .wp-block-pullquote.has-background {
	padding-inline: clamp(var(--atr-space-5), 5vw, var(--atr-space-8));
	border: 0;
	border-radius: var(--atr-radius-lg);
}

/* Images & captions */
.entry-content .wp-block-image img,
.entry-content .wp-block-media-text__media img,
.entry-content .wp-block-media-text__media video,
.entry-content .wp-block-video video,
.entry-content .wp-block-embed iframe,
.entry-content .wp-block-gallery .wp-block-image img,
.entry-content .wp-caption img {
	border-radius: var(--atr-radius-image);
}

.entry-content .alignfull.wp-block-image img,
.entry-content .alignfull .wp-block-image img {
	border-radius: 0;
}

.entry-content .wp-block-image.is-style-rounded img {
	border-radius: 9999px;
}

.entry-content :is(.wp-element-caption, .wp-caption-text, .gallery-caption),
.entry-content figure:not([class]) > figcaption {
	margin-block: var(--atr-space-3) 0;
	font-size: var(--atr-step--1);
	line-height: 1.5;
	color: var(--atr-color-muted-ink);
	text-align: center;
}

.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	margin: 0;
	color: #fff;
	font-size: var(--atr-step--2);
}

.entry-content .alignfull > figcaption,
.entry-content .alignfull.wp-block-image figcaption {
	padding-inline: var(--atr-gutter);
}

/* Framed image style (also `.atr-framed`): a hairline accent frame offset behind the photo. */
.entry-content .wp-block-image.is-style-atr-framed,
.atr-framed {
	--atr-frame-offset: var(--atr-space-4);
	padding-inline-end: var(--atr-frame-offset);
	padding-block-end: var(--atr-frame-offset);
}

.entry-content .wp-block-image.is-style-atr-framed img,
.atr-framed img {
	box-shadow:
		var(--atr-frame-offset) var(--atr-frame-offset) 0 -1px var(--atr-frame-fill, var(--atr-color-bg)),
		var(--atr-frame-offset) var(--atr-frame-offset) 0 0 var(--atr-color-accent-ink);
}

[dir="rtl"] .entry-content .wp-block-image.is-style-atr-framed img,
[dir="rtl"] .atr-framed img {
	box-shadow:
		calc(var(--atr-frame-offset) * -1) var(--atr-frame-offset) 0 -1px var(--atr-frame-fill, var(--atr-color-bg)),
		calc(var(--atr-frame-offset) * -1) var(--atr-frame-offset) 0 0 var(--atr-color-accent-ink);
}

/* Separators */
.entry-content .wp-block-separator,
.entry-content hr:not([class]) {
	block-size: 0;
	margin-inline: auto;
	border: 0;
	border-block-start: 1px solid currentColor;
	opacity: 1;
	color: var(--atr-color-border);
	background: none;
}

.entry-content .wp-block-separator:not(.is-style-wide, .is-style-dots, .is-style-atr-short) {
	inline-size: min(100%, 6rem);
}

.entry-content .wp-block-separator.is-style-wide,
.entry-content hr:not([class]) {
	inline-size: 100%;
}

.entry-content .wp-block-separator.is-style-atr-short {
	inline-size: 3rem;
	border-block-start-width: 2px;
	color: var(--atr-color-accent-ink);
}

.entry-content .wp-block-separator.is-style-dots {
	inline-size: auto;
	border: 0;
	color: var(--atr-color-accent-ink);
	text-align: center;
}

.entry-content .wp-block-separator.is-style-dots::before {
	content: "\00B7\00B7\00B7";
	padding-inline-start: 1em;
	font-family: var(--atr-font-heading);
	font-size: var(--atr-step-3);
	line-height: 1;
	letter-spacing: 1em;
	color: currentColor;
}

.entry-content .wp-block-separator.has-background:not(.is-style-dots) {
	block-size: 1px;
	border: 0;
}

/* Buttons block */
.entry-content .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--atr-space-3);
}

.entry-content .wp-block-button__link {
	inline-size: auto;
	padding-block: 0.6em;
	padding-inline: 1.75em;
	border-width: 1px;
	font-size: var(--atr-step--1);
}

.entry-content .wp-block-button.has-custom-width .wp-block-button__link {
	inline-size: 100%;
}

.entry-content .wp-block-button.is-style-outline > .wp-block-button__link,
.entry-content .wp-block-button .wp-block-button__link.is-style-outline {
	--atr-btn-bg: transparent;
	--atr-btn-fg: var(--atr-color-text);
	--atr-btn-border: var(--atr-color-text);
	--atr-btn-bg-hover: var(--atr-color-inverse-bg);
	--atr-btn-fg-hover: var(--atr-color-inverse-fg);
	--atr-btn-border-hover: var(--atr-color-inverse-bg);
	padding-block: 0.6em;
	padding-inline: 1.75em;
	border-width: 1px;
	border-color: var(--atr-btn-border);
}

.entry-content .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) {
	background-color: var(--atr-btn-bg);
}

.entry-content .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) {
	color: var(--atr-btn-fg);
}

.entry-content .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover {
	border-color: var(--atr-btn-border-hover);
	background-color: var(--atr-btn-bg-hover);
	color: var(--atr-btn-fg-hover);
}

.entry-content .wp-block-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--atr-space-3) var(--atr-space-5);
}

.entry-content .wp-block-file__button {
	min-block-size: max(40px, calc(var(--atr-control-h) - 0.5rem));
	padding-inline: 1.25em;
	font-size: var(--atr-step--2);
}

/* Tables */
.entry-content .wp-block-table {
	overflow-x: auto;
}

.entry-content :is(.wp-block-table table, table:not([class])) {
	inline-size: 100%;
	border-collapse: collapse;
	font-size: var(--atr-step--1);
	font-variant-numeric: lining-nums tabular-nums;
}

.entry-content :is(.wp-block-table, table:not([class])) :is(th, td) {
	padding: 0.85em 1em;
	border: 0;
	border-block-end: 1px solid var(--atr-color-border);
	text-align: start;
	vertical-align: top;
}

.entry-content :is(.wp-block-table, table:not([class])) :is(th, td):first-child {
	padding-inline-start: 0;
}

.entry-content :is(.wp-block-table, table:not([class])) :is(th, td):last-child {
	padding-inline-end: 0;
}

.entry-content :is(.wp-block-table, table:not([class])) thead :is(th, td),
.entry-content :is(.wp-block-table table, table:not([class])):not(:has(thead)) th {
	border-block-end-color: var(--atr-color-text);
	font-family: var(--atr-font-accent);
	font-size: var(--atr-step--2);
	font-weight: var(--atr-weight-strong);
	letter-spacing: calc(var(--atr-label-tracking) * 0.6);
	text-transform: uppercase;
	color: var(--atr-color-muted-ink);
}

.entry-content :is(.wp-block-table, table:not([class])) tfoot :is(th, td) {
	border-block-end: 0;
	font-weight: var(--atr-body-strong);
}

.entry-content .wp-block-table.is-style-stripes {
	border-block-end: 0;
}

.entry-content .wp-block-table.is-style-stripes table :is(th, td) {
	padding-inline: 1em;
	border-color: transparent;
}

.entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--atr-color-surface);
}

/* Code & preformatted */
.entry-content :is(pre:not([class]), .wp-block-code, .wp-block-preformatted) {
	padding: var(--atr-space-4) var(--atr-space-5);
	border: var(--atr-border);
	border-radius: var(--atr-radius-sm);
	background-color: var(--atr-color-surface);
	font-family: var(--atr-font-mono);
	font-size: 0.875em;
	line-height: 1.6;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.entry-content .wp-block-code code {
	padding: 0;
	background: none;
	font-size: inherit;
	white-space: inherit;
}

.entry-content .wp-block-verse {
	font-family: var(--atr-font-heading);
	font-size: var(--atr-step-1);
	white-space: pre-wrap;
}

/* Groups, columns, cover, media & text */
.entry-content .wp-block-group.has-background {
	padding: clamp(var(--atr-space-5), 5vw, var(--atr-space-8));
}

.entry-content .wp-block-group.alignfull.has-background {
	padding-block: clamp(var(--atr-space-7), 8vw, var(--atr-space-9));
	padding-inline: var(--atr-gutter);
}

.entry-content .wp-block-group.has-background:not(.alignfull) {
	border-radius: var(--atr-radius-lg);
}

.entry-content .wp-block-columns {
	gap: clamp(var(--atr-space-5), 4vw, var(--atr-space-8));
}

.entry-content .wp-block-cover,
.entry-content .wp-block-cover-image {
	padding: clamp(var(--atr-space-6), 6vw, var(--atr-space-9)) var(--atr-gutter);
}

.entry-content .wp-block-cover:not(.alignfull),
.entry-content .wp-block-cover-image:not(.alignfull) {
	overflow: hidden;
	border-radius: var(--atr-radius-image);
}

.entry-content .wp-block-cover__inner-container > * + * {
	margin-block-start: var(--atr-space-4);
}

.entry-content .wp-block-cover:not(.is-light) .wp-block-cover__inner-container {
	color: var(--atr-color-text);
}

.entry-content .wp-block-media-text {
	gap: 0;
}

.entry-content .wp-block-media-text .wp-block-media-text__content {
	padding: clamp(var(--atr-space-5), 4vw, var(--atr-space-8));
}

.entry-content .wp-block-media-text .wp-block-media-text__content > * + * {
	margin-block-start: var(--atr-space-4);
}

/* Details (FAQ) */
.entry-content .wp-block-details,
.entry-content details:not([class]) {
	border-block: 1px solid var(--atr-color-border);
}

.entry-content :is(.wp-block-details, details:not([class])) + :is(.wp-block-details, details:not([class])) {
	margin-block-start: -1px;
}

.entry-content :is(.wp-block-details, details:not([class])) > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--atr-space-4);
	min-block-size: 44px;
	padding-block: var(--atr-space-5);
	list-style: none;
	font-family: var(--atr-font-heading);
	font-size: var(--atr-step-1);
	font-weight: var(--atr-heading-weight);
	line-height: 1.3;
	letter-spacing: var(--atr-heading-tracking);
	cursor: pointer;
}

.entry-content :is(.wp-block-details, details:not([class])) > summary::-webkit-details-marker {
	display: none;
}

.entry-content :is(.wp-block-details, details:not([class])) > summary::after {
	content: "";
	flex: none;
	inline-size: 0.75em;
	block-size: 0.75em;
	background:
		linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat;
	color: var(--atr-color-accent-ink);
	transition: background-size var(--atr-transition), transform var(--atr-transition);
}

.entry-content :is(.wp-block-details, details:not([class]))[open] > summary::after {
	background-size: 100% 1.5px, 1.5px 0;
	transform: rotate(180deg);
}

.entry-content :is(.wp-block-details, details:not([class])) > summary:hover {
	color: var(--atr-color-primary-ink);
}

.entry-content :is(.wp-block-details, details:not([class])) > :not(summary) {
	margin-block: 0;
	color: var(--atr-color-muted-ink);
}

.entry-content :is(.wp-block-details, details:not([class])) > :not(summary) + :not(summary) {
	margin-block-start: var(--atr-space-3);
}

.entry-content :is(.wp-block-details, details:not([class])) > :last-child:not(summary) {
	margin-block-end: var(--atr-space-5);
}

/* Search block */
.entry-content .wp-block-search__inside-wrapper {
	gap: var(--atr-space-2);
}

.entry-content .wp-block-search__input {
	min-block-size: var(--atr-control-h);
	padding-inline: 0.95em;
	border: 1px solid var(--atr-field-border);
	border-radius: var(--atr-radius-input);
	background-color: var(--atr-field-bg);
	color: var(--atr-field-fg);
}

.entry-content .wp-block-search__button {
	margin-inline-start: 0;
}

/* Lists of posts, categories, archives */
.entry-content :is(.wp-block-latest-posts, .wp-block-categories, .wp-block-archives, .wp-block-page-list) {
	padding-inline-start: 0;
	list-style: none;
}

.entry-content :is(.wp-block-latest-posts, .wp-block-categories, .wp-block-archives, .wp-block-page-list) > li {
	padding-block: var(--atr-space-3);
	border-block-end: 1px solid var(--atr-color-border);
}

.entry-content :is(.wp-block-latest-posts, .wp-block-categories, .wp-block-archives, .wp-block-page-list) > li + li {
	margin-block-start: 0;
}

.entry-content .wp-block-latest-posts__post-date,
.entry-content .wp-block-latest-posts__post-author {
	font-size: var(--atr-step--1);
	color: var(--atr-color-muted-ink);
}

.entry-content .wp-block-footnotes {
	font-size: var(--atr-step--1);
	color: var(--atr-color-muted-ink);
}

/* Eyebrow heading style inside content keeps its small size. */
.entry-content .wp-block-heading.is-style-atr-eyebrow {
	font-size: var(--atr-step--2);
	line-height: 1.4;
	letter-spacing: var(--atr-label-tracking);
	text-transform: uppercase;
}

/* Theme palette backgrounds inside content get breathing room. */
.entry-content :is(p, h1, h2, h3, h4, h5, h6).has-background {
	padding: var(--atr-space-4) var(--atr-space-5);
	border-radius: var(--atr-radius-sm);
}

/* @blocks:end */

/* Pill-shaped buttons in content (beats the block button padding above). */
.atr-btn-shape--pill .entry-content .wp-block-button > .wp-block-button__link {
	padding-inline: 2em;
}

/* Classic editor & gallery shortcode */
.alignleft {
	float: left;
	margin-block: 0.35em var(--atr-space-4);
	margin-right: var(--atr-space-6);
}

.alignright {
	float: right;
	margin-block: 0.35em var(--atr-space-4);
	margin-left: var(--atr-space-6);
}

.aligncenter {
	display: block;
	margin-inline: auto;
}

@media (max-width: 599px) {
	.entry-content .alignleft,
	.entry-content .alignright {
		max-inline-size: 45%;
	}
}

.wp-caption {
	max-inline-size: 100%;
}

.wp-caption img {
	display: block;
}

.wp-caption-text,
.gallery-caption {
	margin-block-start: var(--atr-space-2);
	font-size: var(--atr-step--1);
	color: var(--atr-color-muted-ink);
}

.gallery {
	--atr-gallery-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--atr-gallery-cols), minmax(0, 1fr));
	gap: var(--atr-space-3);
}

.gallery-columns-1 { --atr-gallery-cols: 1; }
.gallery-columns-2 { --atr-gallery-cols: 2; }
.gallery-columns-4 { --atr-gallery-cols: 4; }
.gallery-columns-5 { --atr-gallery-cols: 5; }
.gallery-columns-6 { --atr-gallery-cols: 6; }
.gallery-columns-7 { --atr-gallery-cols: 7; }
.gallery-columns-8 { --atr-gallery-cols: 8; }
.gallery-columns-9 { --atr-gallery-cols: 9; }

@media (max-width: 599px) {
	.gallery:not(.gallery-columns-1) {
		--atr-gallery-cols: 2;
	}
}

.gallery-item {
	margin: 0;
}

.gallery-item img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	border-radius: var(--atr-radius-image);
}

.sticky .atr-post-card__title::before,
.sticky > .entry-title::before {
	content: "";
	display: inline-block;
	inline-size: 0.4em;
	block-size: 0.4em;
	margin-inline-end: 0.4em;
	border-radius: 50%;
	background-color: var(--atr-color-accent-ink);
	vertical-align: middle;
}

.bypostauthor > .comment-body .fn,
.bypostauthor > article .fn {
	color: var(--atr-color-primary-ink);
}

/* =========================================================================
 * 14. Motion
 * ====================================================================== */

/* Reveal on scroll: content is only hidden once JS has flagged <html class="atr-js">; navigation.js
   (or the load-time fallback) adds .is-revealed. */
@media (prefers-reduced-motion: no-preference) {
	:where(.atr-js .atr-motion--subtle) [data-atr-reveal] {
		transition: opacity 0.7s var(--atr-ease), transform 0.7s var(--atr-ease);
	}

	:where(.atr-js .atr-motion--subtle) [data-atr-reveal]:not(.is-revealed) {
		opacity: 0;
		transform: translate3d(0, 16px, 0);
	}

	html:has(body.atr-motion--subtle) {
		scroll-behavior: smooth;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Motion: None (Customizer) */
.atr-motion--none *,
.atr-motion--none *::before,
.atr-motion--none *::after {
	animation: none !important;
	transition: none !important;
}

/* =========================================================================
 * 15. Print
 * ====================================================================== */

@media print {
	:root,
	.atr-section--dark,
	.atr-dark,
	.atr-on-image,
	.atr-on-primary,
	.has-dark-background-color,
	.has-primary-background-color,
	.atr-footer--dark .site-footer {
		--atr-color-bg: #fff;
		--atr-color-surface: #fff;
		--atr-color-text: #000;
		--atr-color-muted: #444;
		--atr-color-muted-ink: #444;
		--atr-color-border: #bbb;
		--atr-color-primary-ink: #000;
		--atr-color-accent-ink: #000;
		--atr-shadow: none;
	}

	body,
	.atr-section,
	.atr-section--surface,
	.atr-section--dark,
	.atr-dark,
	.atr-on-image {
		background: #fff !important;
		color: #000 !important;
	}

	.atr-section {
		padding-block: 1.5rem;
	}

	.skip-link,
	.atr-btn--ghost .atr-icon,
	video,
	iframe,
	[data-atr-slider-prev],
	[data-atr-slider-next] {
		display: none !important;
	}

	[data-atr-reveal],
	img {
		opacity: 1 !important;
		transform: none !important;
	}

	.atr-card,
	.atr-section-head,
	figure,
	blockquote,
	tr,
	img {
		break-inside: avoid;
	}

	h1,
	h2,
	h3,
	h4 {
		break-after: avoid;
	}

	.entry-content a[href^="http"]:not(.wp-block-button__link)::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
		overflow-wrap: anywhere;
	}
}
