/*
 * Amber Jolly — theme styles.
 * Colours, fonts and type sizes come from theme.json (var(--wp--preset--…)), so changing them
 * in Appearance › Editor › Styles updates the whole site.
 *
 *  1. Base            6. Cards, quotes, grids     11. Shop (WooCommerce)
 *  2. Header & menu   7. Book & shop blocks       12. Blog
 *  3. Layout          8. Forms                    13. Editor
 *  4. Type helpers    9. Events                   14. Small screens
 *  5. Buttons        10. Footer
 */

:root {
	--aj-ink: var(--wp--preset--color--contrast, #1B1714);
	--aj-ink-2: var(--wp--preset--color--ink-2, #3F3832);
	--aj-ink-3: var(--wp--preset--color--ink-3, #5F574F);
	--aj-muted: var(--wp--preset--color--muted, #6B6259);
	--aj-cream: var(--wp--preset--color--base, #F6F1E9);
	--aj-sand: var(--wp--preset--color--sand, #EEE6DA);
	--aj-sand-2: var(--wp--preset--color--sand-2, #E7DED1);
	--aj-paper: var(--wp--preset--color--surface, #FFFDF9);
	--aj-accent: var(--wp--preset--color--accent, #E0761F);
	--aj-accent-text: var(--wp--preset--color--accent-text, #9C4F12);
	--aj-accent-rgb: 224, 118, 31;
	/* Focus rings and field borders: 3:1 or more against cream, sand and paper (WCAG 1.4.11). */
	--aj-focus: var(--aj-accent-text);
	--aj-field-line: rgba(27, 23, 20, 0.5);
	--aj-serif: var(--wp--preset--font-family--serif, Literata, Georgia, serif);
	--aj-sans: var(--wp--preset--font-family--sans, Geist, "Helvetica Neue", Helvetica, Arial, sans-serif);
	--aj-line: rgba(27, 23, 20, 0.1);
	--aj-line-soft: rgba(27, 23, 20, 0.06);
	--aj-line-strong: rgba(27, 23, 20, 0.14);
	--aj-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--aj-glow: 0 0 0 6px rgba(var(--aj-accent-rgb), 0.14), 0 10px 44px rgba(var(--aj-accent-rgb), 0.32);
	--aj-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ------------------------------------------------------------------ 1. Base */

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100svh;
	overflow-x: clip;
}

body .wp-site-blocks > * {
	margin-block: 0;
}

body .wp-site-blocks > footer {
	margin-top: auto;
}

::selection {
	background: rgba(var(--aj-accent-rgb), 0.22);
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 3px;
}

a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

/* Child elements of the theme's own containers: spacing comes from each container's gap. */
body :is(
	.aj-page,
	.aj-main,
	.aj-stack,
	.aj-flow,
	.aj-split,
	.aj-split__body,
	.aj-grid,
	.aj-intro,
	.aj-prose,
	.aj-title-pair,
	.aj-buy-row,
	.aj-news,
	.aj-news__text,
	.aj-news__form,
	.aj-hero,
	.aj-hero__inner,
	.is-style-rule-top,
	.is-style-card,
	.is-style-card-light,
	.aj-package,
	.aj-buybox,
	.aj-price-block,
	.aj-contact-box,
	.aj-contact-aside,
	.aj-inline,
	.aj-header,
	.aj-footer,
	.aj-footer__inner,
	.aj-footer__top,
	.aj-footer__brand,
	.aj-footer__cols,
	.aj-footer__col,
	.aj-footer__bottom,
	.aj-post-card,
	.aj-post-nav,
	.aj-page-head,
	.wp-block-post-template
) > * {
	margin-block: 0;
}

/* ------------------------------------------------------------------ 2. Header & menu */

.aj-header {
	position: relative;
	z-index: 30;
	padding-top: 20px;
}

.aj-header__row {
	position: relative;
	align-items: center;
	gap: 32px;
	min-height: 44px;
}

.aj-header .wp-block-site-title {
	margin: 0;
}

.aj-header .wp-block-site-title a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	white-space: nowrap;
}

/* The header and its dropdowns stay above the page, which comes later and would cover them. */
.wp-site-blocks > header {
	position: relative;
	z-index: 30;
}

/* The front page header floats over the hero. */
.wp-site-blocks:has(.aj-page > .aj-hero:first-child) {
	position: relative;
}

.wp-site-blocks:has(.aj-page > .aj-hero:first-child) > header {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
}

/* Menu (core Navigation block). The long prefix outweighs the block's own styles. */
.aj-header .wp-block-navigation.aj-nav {
	position: static;
	font-size: 14px;
	letter-spacing: 0.01em;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__container {
	gap: 0 26px;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0;
	color: var(--aj-ink-3);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation-item__content:hover,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation-item__content:focus-visible,
.aj-header .wp-block-navigation.aj-nav .current-menu-item > .wp-block-navigation-item__content,
.aj-header .wp-block-navigation.aj-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.aj-header .wp-block-navigation.aj-nav .has-child:hover > .wp-block-navigation-item__content,
.aj-header .wp-block-navigation.aj-nav .has-child:focus-within > .wp-block-navigation-item__content {
	color: var(--aj-ink);
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation-item__description {
	display: none;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__submenu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 44px;
	margin: 0 0 0 2px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--aj-ink-3);
	transition: color 0.2s ease;
}

/* The arrow stays 18px wide, but it can be clicked 24px wide (towards the next item, not the link). */
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__submenu-icon {
	position: relative;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__submenu-icon::before {
	content: "";
	position: absolute;
	inset: 0 -6px 0 0;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__submenu-icon svg {
	width: 12px;
	height: 12px;
	margin: 0;
	stroke: currentColor;
	transform: none;
	transition: transform 0.2s ease;
}

.aj-header .wp-block-navigation.aj-nav .has-child:hover > .wp-block-navigation__submenu-icon,
.aj-header .wp-block-navigation.aj-nav .has-child:focus-within > .wp-block-navigation__submenu-icon,
.aj-header .wp-block-navigation.aj-nav .current-menu-ancestor > .wp-block-navigation__submenu-icon {
	color: var(--aj-ink);
}

.aj-header .wp-block-navigation.aj-nav .has-child:hover > .wp-block-navigation__submenu-icon svg,
.aj-header .wp-block-navigation.aj-nav .has-child:focus-within > .wp-block-navigation__submenu-icon svg,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* Dropdown card */
.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container {
	top: 100%;
	right: auto;
	left: -14px;
	z-index: 40;
	box-sizing: border-box;
	min-width: 220px;
	padding: 8px;
	border: 1px solid var(--aj-line);
	border-radius: 16px;
	background-color: var(--aj-paper);
	color: var(--aj-ink);
	box-shadow: 0 24px 60px rgba(27, 23, 20, 0.12);
}

.aj-header .wp-block-navigation.aj-nav .has-child.aj-menu-wide > .wp-block-navigation__submenu-container {
	min-width: 264px;
}

.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item {
	display: block;
}

.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 2px;
	box-sizing: border-box;
	min-height: 44px;
	padding: 0 14px;
	border-radius: 10px;
	color: var(--aj-ink-2);
	font-size: 14px;
	line-height: 1.3;
	white-space: nowrap;
}

.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item:first-child > .wp-block-navigation-item__content,
.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .current-menu-item > .wp-block-navigation-item__content {
	color: var(--aj-ink);
}

.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
	background: rgba(27, 23, 20, 0.04);
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__description {
	display: block;
	color: var(--aj-muted);
	font-size: 12px;
	line-height: 1.3;
}

.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container > .aj-overview > .wp-block-navigation-item__content {
	min-height: 52px;
	padding-block: 6px;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__submenu-container > .aj-overview::after {
	content: "";
	display: block;
	height: 1px;
	margin: 4px 14px;
	background: rgba(27, 23, 20, 0.08);
}

/* Burger and close buttons. Drawn here (three lines, then a cross) so they look the same whatever
   the Navigation block prints inside: its own icons, or the words "Menu" / "Close" when its icon
   option is off. Either stays as the button's name for screen readers. */
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close {
	--aj-burger: var(--aj-ink);
	position: relative;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	/* 44px to tap, while the lines line up with the page edge like the cart icon. */
	margin: 0 -11px 0 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 50%;
	/* The middle line. */
	background: linear-gradient(var(--aj-burger), var(--aj-burger)) center / 22px 1.5px no-repeat;
	color: transparent;
	font-size: 14px;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open svg,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close svg {
	display: none;
}

/* The top and bottom lines. */
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open::before,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open::after,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close::before,
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 1.5px;
	margin: -0.75px 0 0 -11px;
	border-radius: 1px;
	background: var(--aj-burger);
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open::before {
	transform: translateY(-6px) rotate(0deg);
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open::after {
	transform: translateY(6px) rotate(0deg);
}

/* Cross: the outer lines turn, the middle one goes. */
.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close,
.aj-header .wp-block-navigation.aj-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open {
	background-size: 0 1.5px;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close::before,
.aj-header .wp-block-navigation.aj-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open::before {
	transform: translateY(0) rotate(45deg);
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close::after,
.aj-header .wp-block-navigation.aj-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open::after {
	transform: translateY(0) rotate(-45deg);
}

@media (hover: hover) {
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open:hover,
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-close:hover {
		--aj-burger: var(--aj-accent);
	}
}

/* Small screens: the menu opens as a card under the header. */
@media (max-width: 959px) {
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: inline-flex;
	}

	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	/* The burger keeps the top right corner; the cart, once there, sits just before it. */
	.aj-header__row > .wp-block-navigation {
		order: 2;
	}

	.aj-header__row > .aj-cart {
		order: 1;
		margin-right: 0;
	}

	.aj-header__row:has(> .aj-cart:not([hidden])) > .aj-cart {
		margin-left: auto;
	}

	.aj-header__row:has(> .aj-cart:not([hidden])) > .wp-block-navigation {
		margin-left: 0;
	}
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: absolute;
	inset: 0;
	z-index: 40;
	display: block;
	padding: 0;
	overflow: visible;
	background: none !important;
	animation: none;
	pointer-events: none;
}

.aj-header .wp-block-navigation.aj-nav .is-menu-open .wp-block-navigation__responsive-close,
.aj-header .wp-block-navigation.aj-nav .is-menu-open .wp-block-navigation__responsive-dialog {
	position: static;
	width: auto;
	max-width: none;
	margin: 0;
}

/* The cross sits exactly over the burger, which fades out meanwhile. Faded, not hidden: closing the
   menu sends the keyboard focus back to the burger, which a hidden button can't take. */
.aj-header .wp-block-navigation.aj-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-flex;
	pointer-events: auto;
}

.aj-header .wp-block-navigation.aj-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open {
	opacity: 0;
}

/* Burger to cross when the menu opens, back to a burger when it closes. */
@media (prefers-reduced-motion: no-preference) {
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open {
		transition: background-size 0.32s var(--aj-ease);
	}

	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open::before,
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container-open::after {
		transition: transform 0.32s var(--aj-ease), background-color 0.2s ease;
	}

	.aj-header .wp-block-navigation.aj-nav .is-menu-open .wp-block-navigation__responsive-container-close {
		animation: aj-burger-mid 0.32s var(--aj-ease);
	}

	.aj-header .wp-block-navigation.aj-nav .is-menu-open .wp-block-navigation__responsive-container-close::before {
		animation: aj-burger-top 0.32s var(--aj-ease);
	}

	.aj-header .wp-block-navigation.aj-nav .is-menu-open .wp-block-navigation__responsive-container-close::after {
		animation: aj-burger-bottom 0.32s var(--aj-ease);
	}
}

@keyframes aj-burger-mid {
	from {
		background-size: 22px 1.5px;
	}
}

@keyframes aj-burger-top {
	from {
		transform: translateY(-6px) rotate(0deg);
	}
}

@keyframes aj-burger-bottom {
	from {
		transform: translateY(6px) rotate(0deg);
	}
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	left: 0;
	display: block;
	box-sizing: border-box;
	max-height: calc(100svh - 110px);
	overflow: auto;
	padding: 10px;
	border: 1px solid var(--aj-line);
	border-radius: 20px;
	background: var(--aj-paper);
	box-shadow: 0 24px 60px rgba(27, 23, 20, 0.14);
	pointer-events: auto;
	animation: aj-menu-in 0.18s ease-out;
}

@keyframes aj-menu-in {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	display: block;
	width: 100%;
	padding: 0;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: flex;
	flex-direction: row;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border-radius: 10px;
	color: var(--aj-ink);
	font-size: 15px;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
	background: rgba(27, 23, 20, 0.04);
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .has-child .wp-block-navigation__submenu-container {
	position: static;
	display: block;
	width: auto;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: none !important;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	overflow: visible;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 0 14px 0 30px;
	color: var(--aj-ink-3);
	font-size: 14px;
}

.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__responsive-container.is-menu-open :is(.aj-hide-mobile, .wp-block-navigation__submenu-icon, .wp-block-navigation-item__description) {
	display: none;
}

/* ------------------------------------------------------------------ 3. Layout */

.aj-main {
	padding-block: 0;
}

.aj-sec {
	padding-block: clamp(88px, 10vw, 152px);
}

.aj-sec-md {
	padding-block: clamp(72px, 8vw, 120px);
}

.aj-sec-first {
	padding-block: clamp(24px, 3vw, 40px) clamp(72px, 8vw, 120px);
}

.aj-sec-tail {
	padding-block: 0 clamp(72px, 8vw, 120px);
}

.aj-sec-story {
	padding-block: clamp(32px, 4vw, 56px) clamp(72px, 8vw, 120px);
}

.aj-sec-book {
	padding-block: clamp(56px, 7vw, 104px) clamp(72px, 8vw, 120px);
}

.aj-page-head {
	padding-block: clamp(64px, 8vw, 112px) clamp(40px, 5vw, 64px);
}

.aj-page-head--roomy {
	padding-bottom: clamp(56px, 6vw, 88px);
}

.aj-page-head--tight {
	padding-bottom: clamp(32px, 4vw, 48px);
}

.aj-clip {
	position: relative;
	overflow: hidden;
}

.wp-block-group.is-style-band {
	position: relative;
	isolation: isolate;
	overflow: clip;
	background-color: var(--aj-sand);
	border-top: 1px solid var(--aj-line-soft);
	border-bottom: 1px solid var(--aj-line-soft);
}

/* A soft amber light, like the hero's sphere; it drifts with the scroll where supported. */
.wp-block-group.is-style-band::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 80%;
	z-index: -1;
	width: min(72vw, 920px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(var(--aj-accent-rgb), 0.11), rgba(var(--aj-accent-rgb), 0));
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.wp-block-group.is-style-band.aj-band-open {
	border-bottom: 0;
}

.aj-stack {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
}

.aj-stack--40 {
	gap: 40px;
}

.aj-stack--16 {
	gap: 16px;
}

.aj-stack--8 {
	gap: 8px;
}

.aj-flow {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(40px, 5vw, 64px);
}

.aj-flow--sm {
	gap: clamp(40px, 5vw, 56px);
}

.aj-flow--md {
	gap: clamp(32px, 4vw, 48px);
}

.aj-flow--lg {
	gap: clamp(48px, 5vw, 72px);
}

.aj-flow--xl {
	gap: clamp(56px, 6vw, 88px);
}

.aj-flow--quote {
	gap: clamp(32px, 3vw, 40px);
}

.aj-flow > :is(.aj-grid, .aj-flow, .wp-block-query, .aj-events) {
	align-self: stretch;
}

.aj-intro {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	max-width: 760px;
}

.aj-split {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(48px, 7vw, 112px);
}

.aj-split--between {
	justify-content: space-between;
}

.aj-split--book {
	gap: clamp(48px, 6vw, 96px);
}

.aj-split__body {
	display: flex;
	flex: 1 1 440px;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	min-width: 0;
}

.aj-split__body--20 {
	gap: 20px;
}

.aj-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 40px 48px;
}

.aj-grid--240 {
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}

.aj-grid--300 {
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}

.aj-grid--320 {
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
}

.aj-grid--360 {
	grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
}

.aj-grid--cards {
	gap: 24px;
}

ul.aj-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.aj-inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 24px;
}

/* ------------------------------------------------------------------ 4. Type helpers */

.is-style-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.is-style-eyebrow::before {
	content: "";
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--aj-accent);
	box-shadow: 0 0 12px rgba(var(--aj-accent-rgb), 0.9);
}

.is-style-lead {
	max-width: 36em;
	color: var(--aj-ink-2);
	font-size: clamp(1.0625rem, 1.3vw, 1.25rem);
	line-height: 1.6;
	text-wrap: pretty;
}

.aj-page-title {
	max-width: 14em;
	text-wrap: balance;
}

.aj-page-head--narrow .aj-page-title {
	max-width: 12em;
}

.aj-balance {
	text-wrap: balance;
}

.aj-measure {
	max-width: 16em;
}

h2.has-statement-font-size {
	max-width: 16em;
	line-height: 1.12;
	letter-spacing: -0.01em;
}

:is(h1, h2).has-book-font-size {
	line-height: 1;
	letter-spacing: -0.015em;
}

h2.has-feature-font-size {
	line-height: 1.08;
	letter-spacing: -0.012em;
}

h2.has-box-title-font-size {
	line-height: 1.05;
	letter-spacing: -0.012em;
}

:is(h2, h3).has-x-large-font-size {
	line-height: 1.1;
}

.aj-title-pair {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.aj-title-pair--8 {
	gap: 8px;
}

.aj-subtitle {
	color: var(--aj-ink-2);
	font-family: var(--aj-serif);
	font-size: clamp(1.375rem, 2vw, 1.875rem);
	font-style: italic;
	line-height: 1.3;
}

.aj-subtitle--sm {
	font-size: 1.375rem;
}

.aj-prose {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.aj-prose p,
.aj-text {
	max-width: 34em;
	color: var(--aj-ink-2);
	font-size: 1.0625rem;
	line-height: 1.65;
	text-wrap: pretty;
}

.aj-statement {
	max-width: 20em;
	font-family: var(--aj-serif);
	font-size: clamp(1.875rem, 3.6vw, 3.25rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

.aj-page em,
.aj-hero em,
.aj-news em {
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 1.15em;
	font-style: italic;
}

.aj-label {
	margin: 0;
	color: var(--aj-muted);
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.aj-meta {
	color: var(--aj-ink-3);
	font-size: 15px;
	line-height: 1.5;
}

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

.aj-admin-hint {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 8px;
	background: #fff3cd;
	color: #7a4b00;
	font-family: var(--aj-sans);
	font-size: 13px;
	font-style: normal;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
}

.aj-admin-hint a {
	color: inherit;
}

/* ------------------------------------------------------------------ 5. Buttons & links */

.wp-block-buttons {
	gap: 12px;
}

.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: 52px;
	text-decoration: none;
	white-space: nowrap;
	transition: box-shadow 0.26s ease, background-color 0.26s ease, border-color 0.26s ease, color 0.26s ease, transform 0.16s ease;
}

.wp-block-button:not(.is-style-outline):not(.is-style-play) > .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline):not(.is-style-play) > .wp-block-button__link:focus-visible,
.aj-newsletter button:hover,
.aj-newsletter button:focus-visible,
.aj-contact button:hover,
.aj-contact button:focus-visible,
a.aj-buy__button:hover,
a.aj-buy__button:focus-visible {
	box-shadow: var(--aj-glow);
}

.is-style-arrow > .wp-block-button__link::after {
	content: "";
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--aj-arrow) center / contain no-repeat;
	mask: var(--aj-arrow) center / contain no-repeat;
	transition: transform 0.26s ease;
}

.is-style-arrow > .wp-block-button__link:hover::after,
.is-style-arrow > .wp-block-button__link:focus-visible::after {
	transform: translateX(3px);
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	padding: 14px 25px;
	border: 1px solid rgba(27, 23, 20, 0.24);
	background: transparent;
	color: var(--aj-ink);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	border-color: rgba(var(--aj-accent-rgb), 0.6);
	background: rgba(var(--aj-accent-rgb), 0.08);
	color: var(--aj-ink);
}

.aj-push {
	margin-top: 8px !important;
}

/* Under "Book a session" once the Clarity Session link is set (inc/media.php): paid when booking. */
.aj-booking-note {
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.45;
	text-wrap: balance;
}

.aj-stack > .aj-booking-note {
	margin-top: -10px;
}

.aj-booking-note::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin: 0 6px 0 0;
	background: currentColor;
	vertical-align: -2px;
	-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='1.8'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain 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='1.8'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.aj-more {
	margin: 0;
}

.aj-more a,
a.aj-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	color: var(--aj-ink);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.2s ease;
}

.aj-more a::after,
a.aj-more::after {
	content: "";
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: var(--aj-arrow) center / contain no-repeat;
	mask: var(--aj-arrow) center / contain no-repeat;
	transition: transform 0.26s ease;
}

.aj-more a:hover,
a.aj-more:hover {
	color: var(--aj-accent-text);
}

.aj-more a:hover::after,
a.aj-more:hover::after {
	transform: translateX(3px);
}

/* ------------------------------------------------------------------ Hero */

.aj-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	box-sizing: border-box;
	min-height: clamp(780px, 62.5vw, 900px);
	padding-top: 112px;
	padding-bottom: clamp(40px, 6vw, 88px);
	overflow: hidden;
}

.aj-hero__canvas {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.aj-hero::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	height: 200px;
	background: linear-gradient(180deg, rgba(246, 241, 233, 0) 0%, var(--aj-cream) 100%);
	pointer-events: none;
}

.aj-hero > .aj-hero__book {
	position: absolute;
	top: auto;
	right: 0;
	bottom: 0;
	z-index: 1;
	width: min(48vw, 700px);
	max-width: none;
	margin: 0 !important;
	pointer-events: none;
}

.aj-hero__book::before {
	content: "";
	position: absolute;
	inset: 4% 14% 10% 0%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(var(--aj-accent-rgb), 0.2), rgba(var(--aj-accent-rgb), 0.06) 60%, rgba(var(--aj-accent-rgb), 0));
}

.aj-hero__book img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	-webkit-mask-image: linear-gradient(180deg, #000 92%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 92%, transparent 100%);
}

.aj-hero > .aj-hero__inner {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
	width: 100%;
}

.aj-hero__inner > * {
	max-width: 1040px;
}

h1.aj-hero__title {
	line-height: 1;
	letter-spacing: -0.015em;
}

.aj-hero__lead {
	max-width: 34ch !important;
	color: var(--aj-ink-3);
	font-size: clamp(1rem, 1.25vw, 1.1875rem);
	line-height: 1.55;
}

.aj-hero .aj-hero__lead em {
	font-size: 1.2em;
	line-height: 1;
}

body .aj-hero__inner > .aj-hero__actions {
	margin-top: 12px;
}

.aj-hero__actions > .wp-block-button {
	flex: 1 1 auto;
}

.aj-hero__actions > .wp-block-button > .wp-block-button__link {
	width: 100%;
}

/* ------------------------------------------------------------------ 6. Cards, quotes, grids */

/* The rule is drawn as a line so it can draw itself in, and turn amber under the pointer. */
.wp-block-group.is-style-rule-top {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding-top: 28px;
}

.wp-block-group.is-style-rule-top::before,
.wp-block-group.is-style-rule-top::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background: var(--aj-line-strong);
	transform-origin: 0 50%;
	pointer-events: none;
}

.wp-block-group.is-style-rule-top::after {
	background: var(--aj-accent);
	transform: scaleX(0);
}

.wp-block-group.is-style-rule-top:hover::after,
.wp-block-group.is-style-rule-top:focus-within::after {
	transform: none;
}

.is-style-rule-top h3 {
	font-size: 1.875rem;
	line-height: 1.1;
}

.is-style-rule-top p:not(.aj-more) {
	max-width: 26em;
	color: var(--aj-ink-3);
	font-size: 1rem;
	line-height: 1.6;
}

.aj-grid--240 .is-style-rule-top h3 {
	font-size: 1.75rem;
	line-height: 1.15;
}

.aj-grid--240 .is-style-rule-top p:not(.aj-more) {
	max-width: none;
}

.wp-block-group.is-style-card,
.wp-block-group.is-style-card-light {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	box-sizing: border-box;
	padding: 32px;
	border: 1px solid var(--aj-line);
	border-radius: 20px;
	background-color: var(--aj-sand);
}

.wp-block-group.is-style-card-light {
	background-color: var(--aj-cream);
}

.is-style-band .wp-block-group.is-style-card {
	background-color: var(--aj-cream);
}

:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light) h3 {
	font-size: 1.875rem;
	line-height: 1.1;
}

:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light) p:not(.aj-more):not(.aj-step__num):not(.aj-soon) {
	color: var(--aj-ink-3);
	font-size: 1rem;
	line-height: 1.6;
}

body :is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light) > .aj-more:last-child,
body .aj-post-card > .wp-block-read-more:last-child {
	margin-top: auto;
}

.aj-grid--360 h2 {
	font-size: 2rem;
}

/* Emblems at the top of the coaching cards (inc/motion.php). Fully drawn without JavaScript. */
.aj-emblem {
	display: block;
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	margin: 0 0 8px -4px;
	color: var(--aj-ink-2);
}

.aj-grid--240 .aj-emblem {
	width: 50px;
	height: 50px;
}

.aj-emblem svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.aj-emblem .aj-a {
	stroke: var(--aj-accent);
}

.aj-emblem circle.aj-p {
	fill: currentColor;
	stroke: none;
}

.aj-emblem circle.aj-p.aj-a {
	fill: var(--aj-accent);
}

.aj-emblem .aj-f {
	opacity: 0.35;
}

.aj-emblem .aj-f2 {
	opacity: 0.18;
}

.aj-emblem :is(.aj-comet, .aj-sig, .aj-wave) {
	opacity: 0;
}

.aj-emblem :is(.aj-comet, .aj-sig) {
	stroke-width: 2.4;
}

.aj-emblem .aj-comet {
	stroke-dasharray: 0.08 0.92;
}

.aj-emblem .aj-sig {
	stroke-dasharray: 0.22 0.78;
}

.aj-emblem .aj-wave {
	stroke-width: 1.2;
	vector-effect: non-scaling-stroke;
}

.aj-emblem :is(.aj-p, .aj-l, .aj-r, .aj-core, .aj-wave) {
	transform-box: fill-box;
	transform-origin: center;
}

.aj-emblem .aj-rays {
	transform-box: view-box;
	transform-origin: 32px 32px;
}

/* "Watch the film" badge in the home page coaching section (inc/motion.php). */
.aj-badge {
	position: relative;
	display: grid;
	place-items: center;
	width: 216px;
	aspect-ratio: 1;
	border-radius: 50%;
	color: var(--aj-ink-2);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

.aj-badge__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.aj-badge__ring text {
	fill: currentColor;
	font-family: var(--aj-sans);
	font-size: 11.5px;
	font-weight: 500;
	text-transform: uppercase;
}

.aj-badge__ring .aj-a {
	fill: var(--aj-accent);
}

.aj-badge__photo {
	position: relative;
	width: 66%;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 50%;
	background: var(--aj-sand-2);
	box-shadow: 0 0 0 6px rgba(255, 253, 249, 0.6), 0 20px 44px rgba(27, 23, 20, 0.14);
}

.aj-badge__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 18%;
}

.aj-badge__play {
	position: absolute;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--aj-accent);
	color: #fff;
	box-shadow: var(--aj-glow);
}

.aj-badge__play svg {
	width: 18px;
	height: 18px;
	margin-left: 2px;
}

.aj-badge__play::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba(var(--aj-accent-rgb), 0.7);
	border-radius: 50%;
	opacity: 0;
}

.aj-badge:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 6px;
}

.aj-has-badge .aj-flow {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: clamp(32px, 6vw, 96px);
}

.aj-has-badge .aj-flow > * {
	grid-column: 1 / -1;
}

.aj-has-badge .aj-flow > .aj-intro {
	grid-row: 1;
	grid-column: 1;
}

.aj-has-badge .aj-flow > .aj-badge {
	grid-row: 1;
	grid-column: 2;
	justify-self: end;
	margin-right: clamp(0px, 3vw, 40px);
}

@media (max-width: 781px) {
	.aj-has-badge .aj-flow {
		grid-template-columns: minmax(0, 1fr);
	}

	.aj-has-badge .aj-flow > .aj-badge {
		grid-row: auto;
		grid-column: 1;
		justify-self: start;
		width: 164px;
		margin: -12px 0 0;
	}

	.aj-badge__play {
		width: 40px;
		height: 40px;
	}

	.aj-badge__play svg {
		width: 15px;
		height: 15px;
	}
}

/* Cards: a soft amber glow follows the pointer (position set by assets/js/theme.js). */
:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light, .wp-block-group.aj-package) {
	position: relative;
	isolation: isolate;
}

:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light, .wp-block-group.aj-package)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: radial-gradient(340px circle at var(--mx, 50%) var(--my, 40%), rgba(var(--aj-accent-rgb), 0.13), rgba(var(--aj-accent-rgb), 0) 70%);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
}

@media (hover: hover) and (pointer: fine) {
	:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light, .wp-block-group.aj-package):hover::before {
		opacity: 1;
	}
}

.aj-step__num {
	color: var(--aj-accent-text);
	font-family: var(--aj-serif);
	font-size: 2.25rem;
	line-height: 1;
}

.aj-steps h3 {
	font-size: 1.75rem;
	line-height: 1.15;
}

/* Quotes */
.wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.wp-block-quote p {
	margin: 0;
}

.wp-block-quote cite {
	display: block;
	margin: 0;
	color: var(--aj-ink-3);
	font-family: var(--aj-sans);
	font-size: 12px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-align: left;
	text-transform: uppercase;
}

.wp-block-quote.is-style-feature {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.wp-block-quote.is-style-feature p {
	max-width: 20em;
	color: var(--aj-ink);
	font-size: clamp(1.875rem, 3.6vw, 3.25rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

.wp-block-quote.is-style-feature cite {
	display: flex;
	align-items: center;
	gap: 12px;
}

.wp-block-quote.is-style-feature cite::before {
	content: "";
	flex-shrink: 0;
	width: 24px;
	height: 1px;
	background: var(--aj-accent);
}

.aj-grid--quotes .wp-block-quote {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 28px;
	border-top: 1px solid var(--aj-line);
}

.aj-grid--quotes .wp-block-quote p {
	max-width: 22em;
	color: #2A2420;
	font-size: clamp(1.375rem, 2vw, 1.75rem);
	line-height: 1.3;
	text-wrap: pretty;
}

.wp-block-quote.is-style-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	box-sizing: border-box;
	padding: 32px;
	border: 1px solid var(--aj-line);
	border-radius: 20px;
	background: var(--aj-sand);
}

.wp-block-quote.is-style-card p {
	color: var(--aj-ink);
	font-size: 1.625rem;
	line-height: 1.3;
	text-wrap: pretty;
}

.is-style-band .wp-block-quote.is-style-card {
	background: var(--aj-cream);
}

/* ------------------------------------------------------------------ 7. Book & shop blocks */

.wp-block-image.aj-portrait {
	flex: 0 1 420px;
	aspect-ratio: 4 / 5;
	margin: 0;
	overflow: hidden;
	border-radius: 4px;
	background: var(--aj-sand-2);
}

.wp-block-image.aj-portrait--lg {
	flex-basis: 460px;
}

.wp-block-image.aj-portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 28%;
}

.wp-block-image.aj-cover,
.wp-block-image.aj-buy-media {
	position: relative;
	display: flex;
	flex: 0 1 480px;
	justify-content: center;
	margin: 0;
}

.wp-block-image.aj-cover--lg {
	flex-basis: 520px;
}

.wp-block-image.aj-buy-media {
	flex: 1 1 420px;
	min-width: 0;
}

.aj-cover::before,
.aj-buy-media::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 130%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(var(--aj-accent-rgb), 0.22), rgba(var(--aj-accent-rgb), 0.07) 55%, rgba(var(--aj-accent-rgb), 0));
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.aj-buy-media::before {
	width: 120%;
	background: radial-gradient(closest-side, rgba(var(--aj-accent-rgb), 0.2), rgba(var(--aj-accent-rgb), 0.06) 55%, rgba(var(--aj-accent-rgb), 0));
}

.aj-cover img,
.aj-buy-media img {
	position: relative;
	display: block;
	width: 100%;
	max-width: 480px;
	height: auto;
}

.aj-cover--lg img,
.aj-buy-media img {
	max-width: 520px;
}

.aj-buy-media img {
	-webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 78%, transparent 100%);
}

body .aj-split__body > .aj-buy-row {
	margin-top: 16px;
}

body .aj-split__body > .aj-buy-row--tight {
	margin-top: 8px;
}

.aj-buy-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
}

.aj-price-note {
	color: var(--aj-ink-3);
	font-size: 15px;
	line-height: 1.4;
}

.aj-price-note .aj-price {
	color: var(--aj-ink);
	font-weight: 500;
}

.aj-price del {
	margin-right: 6px;
	color: var(--aj-ink-3);
	font-weight: 400;
}

.aj-price ins {
	text-decoration: none;
}

.aj-split--buy {
	gap: clamp(40px, 6vw, 96px);
}

.aj-buybox {
	display: flex;
	flex: 1 1 400px;
	flex-direction: column;
	gap: 20px;
	box-sizing: border-box;
	min-width: 0;
	max-width: 520px;
	padding: clamp(28px, 3vw, 40px);
	border: 1px solid var(--aj-line);
	border-radius: 24px;
	background: var(--aj-sand);
}

.aj-price-block {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.aj-price-big {
	color: var(--aj-ink);
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 1.2;
}

.aj-buy {
	display: flex;
	flex-direction: column;
	margin: 0;
}

.aj-buy__button.wp-element-button {
	width: 100%;
	padding: 0 26px;
}

.aj-buy__button.is-disabled {
	background: rgba(27, 23, 20, 0.12);
	color: var(--aj-ink-3);
	cursor: not-allowed;
}

ul.aj-perks {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--aj-line);
	list-style: none;
}

.aj-perks li {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	color: var(--aj-ink-2);
	font-size: 15px;
	line-height: 1.4;
	text-wrap: pretty;
}

.aj-perks li::before {
	content: "";
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	background: var(--aj-accent-text);
	-webkit-mask: var(--aj-icon, var(--aj-arrow)) center / contain no-repeat;
	mask: var(--aj-icon, var(--aj-arrow)) center / contain no-repeat;
}

.aj-perks .aj-perk-lock {
	--aj-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3' stroke-linecap='round'/%3E%3C/svg%3E");
}

.aj-perks .aj-perk-truck {
	--aj-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M3 6h11v10H3z'/%3E%3Cpath d='M14 10h4l3 3v3h-7'/%3E%3Ccircle cx='7' cy='18' r='1.75'/%3E%3Ccircle cx='17' cy='18' r='1.75'/%3E%3C/svg%3E");
}

.aj-perks .aj-perk-pen {
	--aj-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M4 20l4-1 11-11-3-3L5 16l-1 4z'/%3E%3C/svg%3E");
}

/* Packages */
.wp-block-group.aj-package {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	box-sizing: border-box;
	padding: 32px;
	border: 1px solid var(--aj-line);
	border-radius: 24px;
	background: var(--aj-sand);
}

.wp-block-group.aj-package--featured {
	border-color: rgba(var(--aj-accent-rgb), 0.45);
}

/* Who the package is for, under its name. */
.aj-package__for {
	color: var(--aj-ink-2);
	font-size: 15px;
	line-height: 1.55;
	text-wrap: pretty;
}

/* Monthly payments, right under the price. */
.wp-block-group.aj-package > .aj-package__plan {
	margin-top: -14px;
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.4;
	text-wrap: balance;
}

/* The whole card opens its button's link: the link's layer covers the card, while the button stays
   the only link (one stop for the keyboard, one name for screen readers). */
.wp-block-group.aj-package .wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 24px;
}

/* Pressed, a button shrinks a little (motion styles); here that would shrink the layer and lose the click. */
.wp-block-group.aj-package .wp-block-button__link:active {
	transform: none;
}

/* Under a package's button once it can be bought on the site (inc/packages.php): the link to the
   checkout for clients who are ready, then how to pay fortnightly where PayPal's four payments
   don't apply. Inside the buttons, so the three cards keep their rows; the link sits above the
   card's click layer, the note stays part of the card's click. */
.wp-block-group.aj-package .wp-block-buttons > .aj-package__pay,
.wp-block-group.aj-package .wp-block-buttons > .aj-package__note {
	flex-basis: 100%;
	margin: 0;
}

.wp-block-group.aj-package .aj-package__pay a {
	position: relative;
	z-index: 2;
	font-size: 14px;
}

.aj-package__note {
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.45;
	text-wrap: balance;
}

/* Anywhere on the card, the button shows it is the way in. */
@media (hover: hover) and (pointer: fine) {
	.wp-block-group.aj-package:hover .wp-block-button.is-style-outline > .wp-block-button__link {
		border-color: rgba(var(--aj-accent-rgb), 0.6);
		background: rgba(var(--aj-accent-rgb), 0.08);
	}

	.wp-block-group.aj-package:hover .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
		box-shadow: var(--aj-glow);
	}
}

/* Cards with a single link (inc/cards.php), event cards and the book's buy box: a click anywhere
   on the card opens its link. The link's layer covers the card; any other link stays above it. */
.aj-linked,
.wp-block-group.aj-buybox {
	position: relative;
}

.aj-linked a[href]::before,
.wp-block-group.aj-buybox a.aj-buy__button[href]:not(.is-disabled)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.wp-block-group.aj-buybox a[href]:not(.aj-buy__button) {
	position: relative;
	z-index: 2;
}

.aj-linked .wp-block-button__link:active,
.wp-block-group.aj-buybox a.aj-buy__button:active {
	transform: none;
}

@media (hover: hover) and (pointer: fine) {
	.aj-linked:hover .aj-more a {
		color: var(--aj-accent-text);
	}

	.aj-linked:hover .aj-more a::after {
		transform: translateX(3px);
	}

	.aj-event.aj-linked:hover .aj-event__link {
		border-color: rgba(var(--aj-accent-rgb), 0.6);
		background: rgba(var(--aj-accent-rgb), 0.08);
	}

	.wp-block-group.aj-buybox:hover a.aj-buy__button[href]:not(.is-disabled) {
		box-shadow: var(--aj-glow);
	}
}

ul.aj-includes {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	gap: 10px;
	margin: 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--aj-line);
	color: var(--aj-ink-2);
	font-size: 15px;
	line-height: 1.5;
	list-style: none;
}

.aj-includes li {
	margin: 0;
}

.aj-package__price {
	color: var(--aj-ink);
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.2;
}

body .aj-package > .aj-push-auto {
	margin-top: auto;
}

/* Coaching Packages (patterns/packages-cards.php): where each package starts, then the cards with
   their focus areas, what you'll gain and what's included; price and button line up at the foot. */
.wp-block-group.aj-path .aj-path__num {
	margin: 0;
	color: var(--aj-accent-text);
	font-family: var(--aj-serif);
	font-size: clamp(2.5rem, 4vw, 3.25rem);
	line-height: 1;
}

.wp-block-group.aj-path .aj-path__tag {
	margin: 0;
	color: var(--aj-accent-text);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.wp-block-group.aj-path h3 {
	margin: 4px 0 0;
}

.wp-block-group.aj-path > .aj-more {
	margin-top: auto;
}

.wp-block-group.aj-package[id] {
	scroll-margin-top: 24px;
}

.wp-block-group.aj-package > .aj-package__part {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	gap: 12px;
	padding-top: 20px;
	border-top: 1px solid var(--aj-line);
}

.aj-package__part > *,
.aj-package__cost > * {
	margin: 0;
}

.aj-package__label {
	color: var(--aj-muted);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

ul.aj-points,
.aj-package__part ul.aj-includes {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--aj-ink-2);
	font-size: 15px;
	line-height: 1.5;
	list-style: none;
}

.aj-points li,
.aj-package__part .aj-includes li {
	position: relative;
	margin: 0;
	padding-left: 22px;
}

.aj-points li::before {
	content: "";
	position: absolute;
	top: 0.62em;
	left: 4px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(var(--aj-accent-rgb), 0.75);
}

.aj-package__part .aj-includes li::before {
	content: "";
	position: absolute;
	top: 0.3em;
	left: 0;
	width: 15px;
	height: 15px;
	background: var(--aj-accent-text);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5l3 3 6-7' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5l3 3 6-7' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-group.aj-package > .aj-package__cost {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: auto;
	padding-top: 8px;
}

.aj-package__cost .aj-package__plan {
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.4;
	text-wrap: balance;
}

/* PayPal's four interest-free payments under the price (inc/packages.php): a soft tag, so it is
   seen without shouting. */
.aj-package__cost .aj-package__plan--paypal {
	align-self: flex-start;
	margin-top: 4px;
	padding: 6px 12px;
	border-radius: 14px;
	background: rgba(var(--aj-accent-rgb), 0.12);
	color: var(--aj-ink);
	text-wrap: balance;
}

.aj-package__plan--paypal strong {
	font-weight: 600;
}

/* Three cards side by side: their parts line up across the cards (who it's for, focus areas, what
   you'll gain, what's included, price, button), so the eye can compare them row by row. */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 1080px) {
		.wp-block-group.aj-grid--packages {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.wp-block-group.aj-grid--packages > .wp-block-group.aj-package {
			display: grid;
			grid-row: span 7;
			grid-template-rows: subgrid;
			row-gap: 20px;
			align-items: start;
		}

		.wp-block-group.aj-grid--packages > .aj-package > .aj-package__part {
			align-self: stretch;
		}

		.wp-block-group.aj-grid--packages > .aj-package > .aj-package__cost {
			margin-top: 0;
		}
	}
}

/* 1:1 details */
.aj-split--details {
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px 64px;
}

.aj-split--details .aj-split__body {
	flex-basis: 420px;
}

.wp-block-table.aj-details {
	flex: 1 1 380px;
	box-sizing: border-box;
	min-width: 0;
	max-width: 520px;
	margin: 0;
	padding: 8px 32px;
	border: 1px solid var(--aj-line);
	border-radius: 24px;
	background: var(--aj-sand);
}

.aj-details table {
	width: 100%;
	border-collapse: collapse;
	table-layout: auto;
}

.aj-details td {
	padding: 18px 0;
	border: 0;
	border-bottom: 1px solid rgba(27, 23, 20, 0.08);
	font-size: 15px;
	line-height: 1.2;
	vertical-align: top;
}

.aj-details tr:last-child td {
	border-bottom: 0;
}

.aj-details td:first-child {
	padding-right: 24px;
	color: var(--aj-ink-3);
	white-space: nowrap;
}

.aj-details td:last-child {
	color: var(--aj-ink);
	text-align: right;
}

/* ------------------------------------------------------------------ 8. Forms */

.aj-news {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 32px 56px;
	box-sizing: border-box;
	padding: clamp(24px, 5vw, 72px);
	border: 1px solid var(--aj-line);
	border-radius: clamp(20px, 2.4vw, 32px);
	background: var(--aj-sand);
}

.aj-news__text {
	display: flex;
	flex: 1 1 380px;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

.aj-news__form {
	flex: 1 1 340px;
	min-width: 0;
	max-width: 480px;
}

.aj-newsletter {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
}

.aj-newsletter label,
.aj-contact label {
	color: var(--aj-ink-3);
	font-size: 13px;
	line-height: 1.4;
}

.aj-newsletter__row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.aj-newsletter input[type="email"],
.aj-contact input,
.aj-contact select,
.aj-contact textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	border: 1px solid var(--aj-field-line);
	background: rgba(27, 23, 20, 0.04);
	color: var(--aj-ink);
	font-family: inherit;
	font-size: 15px;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.aj-newsletter input[type="email"] {
	flex: 1 1 220px;
	width: auto;
	min-width: 0;
	padding: 0 22px;
	border-radius: 999px;
}

.aj-newsletter input::placeholder,
.aj-contact input::placeholder,
.aj-contact textarea::placeholder {
	color: var(--aj-ink-3);
}

.aj-newsletter input:focus,
.aj-contact input:focus,
.aj-contact select:focus,
.aj-contact textarea:focus {
	border-color: var(--aj-focus);
	background: var(--aj-paper);
	outline: 2px solid var(--aj-focus);
	outline-offset: 1px;
}

.aj-newsletter button,
.aj-contact button {
	min-height: 52px;
	padding: 0 26px;
	border: 0;
	cursor: pointer;
}

.aj-newsletter button {
	flex: 1 0 auto;
}

.aj-contact button {
	padding: 0 28px;
}

.aj-form-status {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 52px;
	margin: 0;
	color: var(--aj-ink);
	font-size: 1.0625rem;
}

.aj-dot {
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--aj-accent);
	box-shadow: 0 0 12px rgba(var(--aj-accent-rgb), 0.9);
}

.aj-form-error {
	margin: 0;
	color: #9b2c1c;
	font-size: 14px;
}

.aj-trap {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.aj-split--contact {
	align-items: flex-start;
	gap: 40px 72px;
}

.aj-contact-box {
	flex: 1 1 480px;
	box-sizing: border-box;
	min-width: 0;
	max-width: 680px;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--aj-line);
	border-radius: 24px;
	background: var(--aj-sand);
}

.aj-contact {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0;
	scroll-margin-top: 24px;
}

.aj-contact p {
	margin: 0;
}

.aj-contact .aj-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.aj-contact input,
.aj-contact textarea {
	padding: 0 18px;
	border-radius: 14px;
}

.aj-contact select {
	padding: 0 14px;
	border-radius: 14px;
	background: var(--aj-paper);
}

.aj-contact textarea {
	min-height: 0;
	padding: 14px 18px;
	line-height: 1.5;
	resize: vertical;
}

.aj-form-sent {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 24px 0;
}

.aj-form-sent .aj-dot {
	width: 8px;
	height: 8px;
}

.aj-form-sent p {
	margin: 0;
	color: var(--aj-ink-3);
}

.aj-form-sent .aj-form-sent__title {
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 2rem;
	line-height: 1.15;
}

.aj-contact-aside {
	display: flex;
	flex: 1 1 280px;
	flex-direction: column;
	gap: 28px;
	min-width: 0;
}

.aj-contact-email {
	color: var(--aj-ink);
	font-size: 1.0625rem;
	line-height: 1.5;
}

.aj-email {
	color: inherit;
	text-decoration: none;
}

.aj-email:hover {
	color: var(--aj-accent-text);
}

ul.aj-linklist {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.aj-linklist li {
	display: flex;
	align-items: center;
	min-height: 44px;
	margin: 0;
	font-size: 15px;
}

.aj-linklist li:empty {
	display: none;
}

.aj-linklist a {
	color: var(--aj-ink);
	text-decoration: none;
	transition: color 0.2s ease;
}

.aj-linklist a:hover {
	color: var(--aj-accent-text);
}

.aj-linklist--lg li {
	font-size: 1.0625rem;
}

/* ------------------------------------------------------------------ 9. Events */

.aj-events {
	display: flex;
	flex-direction: column;
	gap: clamp(32px, 4vw, 48px);
	padding-block: clamp(24px, 3vw, 40px) clamp(40px, 5vw, 64px);
}

.aj-events__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
}

.aj-events__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.aj-event {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 16px 32px;
	padding: 24px 32px;
	border: 1px solid var(--aj-line);
	border-radius: 20px;
	background: var(--aj-sand);
}

.aj-event__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	margin: 0;
	border: 1px solid rgba(var(--aj-accent-rgb), 0.35);
	border-radius: 16px;
	background: var(--aj-cream);
}

.aj-event__day {
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 2.125rem;
	line-height: 1;
}

.aj-event__month {
	margin-top: 2px;
	color: var(--aj-accent-text);
	font-size: 11px;
	line-height: 1.2;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.aj-event__name {
	margin: 0;
	font-size: 1.625rem;
	line-height: 1.2;
}

.aj-event__meta {
	margin: 6px 0 0;
	color: var(--aj-ink-3);
	font-size: 15px;
	line-height: 1.5;
}

.aj-event__text {
	max-width: 46em;
	margin: 10px 0 0;
	color: var(--aj-ink-2);
	font-size: 1rem;
	line-height: 1.6;
}

.aj-event__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 22px;
	border: 1px solid rgba(27, 23, 20, 0.24);
	border-radius: 999px;
	color: var(--aj-ink);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.26s ease, background-color 0.26s ease;
}

.aj-event__link:hover {
	border-color: rgba(var(--aj-accent-rgb), 0.6);
	background: rgba(var(--aj-accent-rgb), 0.08);
	color: var(--aj-ink);
}

/* ------------------------------------------------------------------ 10. Footer */

.aj-footer {
	border-top: 1px solid rgba(27, 23, 20, 0.08);
	background: var(--aj-cream);
}

.aj-footer__inner {
	padding-top: clamp(72px, 8vw, 112px);
}

.aj-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 56px 64px;
}

.aj-footer__brand {
	display: flex;
	flex: 1 1 320px;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	min-width: 0;
	max-width: 460px;
}

.aj-footer .wp-block-site-title.aj-footer__name {
	margin: 0;
	font-family: var(--aj-serif);
	font-size: clamp(2.5rem, 4.5vw, 4rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.015em;
	text-transform: none;
}

.aj-footer .wp-block-site-title.aj-footer__name a {
	color: var(--aj-ink);
	text-decoration: none;
}

.aj-footer__about {
	max-width: 30em;
	color: var(--aj-ink-3);
	font-size: 1rem;
	line-height: 1.6;
}

.aj-footer__cols {
	display: flex;
	flex-wrap: wrap;
	gap: 32px 56px;
}

.aj-footer__col {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

body .aj-footer__inner > .aj-footer__bottom {
	margin-top: clamp(56px, 6vw, 80px);
}

.aj-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	padding: 24px 0 32px;
	border-top: 1px solid rgba(27, 23, 20, 0.08);
}

.aj-footer__copy {
	color: var(--aj-muted);
	font-size: 13px;
	line-height: 1.4;
}

/* ------------------------------------------------------------------ 11. Shop (WooCommerce) */

/* Cart link in the header (inc/woocommerce.php): only there once something is in the cart. */
.aj-header__row > .wp-block-navigation {
	margin-left: auto;
}

.aj-cart {
	position: relative;
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-left: 6px;
	margin-right: -10px;
	border-radius: 50%;
	color: var(--aj-ink);
	transition: background-color 0.2s ease;
}

.aj-cart[hidden] {
	display: none;
}

.aj-cart svg {
	width: 22px;
	height: 22px;
}

.aj-cart__dot {
	position: absolute;
	top: 9px;
	right: 8px;
	width: 9px;
	height: 9px;
	border: 2px solid var(--aj-cream);
	border-radius: 50%;
	background: var(--aj-accent);
}

.aj-cart:hover {
	background: rgba(27, 23, 20, 0.06);
}

.aj-cart:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 2px;
}

/* WooCommerce's mini-cart block, if it is added back in the editor: hidden while the cart is empty. */
.aj-header .wp-block-woocommerce-mini-cart:has(.wc-block-mini-cart__badge[hidden]) {
	display: none;
}

.aj-header .wc-block-mini-cart__button {
	min-height: 44px;
	padding: 0 4px;
	color: var(--aj-ink);
}

.aj-header .wc-block-mini-cart__icon {
	width: 22px;
	height: 22px;
}

.aj-header .wc-block-mini-cart__badge {
	background: var(--aj-accent) !important;
	color: #fff !important;
	border-color: var(--aj-cream);
	font-family: var(--aj-sans);
	font-weight: 500;
}

.aj-currency {
	font-size: 0.86em;
	letter-spacing: 0.04em;
}

/* WooCommerce's own templates (product, cart, checkout) */
.wp-site-blocks > main:not(.aj-main) {
	padding-top: clamp(24px, 3vw, 40px);
}

/* Cart and checkout fill in after loading: keep the footer below the fold so nothing jumps. */
.woocommerce-cart .wp-site-blocks > main,
.woocommerce-checkout .wp-site-blocks > main {
	min-height: calc(100vh - 64px);
	min-height: calc(100svh - 64px);
}

.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
	color: var(--aj-ink-3);
	font-size: 14px;
}

.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a {
	color: var(--aj-ink-3);
	text-decoration: none;
}

.woocommerce-breadcrumb a:hover,
.wc-block-breadcrumbs a:hover {
	color: var(--aj-accent-text);
}

.woocommerce div.product form.cart .quantity .qty,
.woocommerce .quantity .qty {
	box-sizing: border-box;
	width: 76px;
	min-height: 52px;
	border: 1px solid var(--aj-field-line);
	border-radius: 999px;
	background: rgba(27, 23, 20, 0.04);
	color: var(--aj-ink);
	font-family: inherit;
	font-size: 15px;
	text-align: center;
}

.wc-block-components-notice-banner.is-success {
	border-color: rgba(var(--aj-accent-rgb), 0.45);
	background: var(--aj-paper);
	color: var(--aj-ink);
}

.wc-block-components-notice-banner.is-success > svg {
	background-color: var(--aj-accent);
}

.wc-block-components-notice-banner .wc-forward,
.wc-block-components-notice-banner a {
	color: var(--aj-ink);
}

.woocommerce-page .aj-main,
.woocommerce .aj-main {
	padding-bottom: clamp(72px, 8vw, 120px);
}

.wc-block-components-button:not(.is-link),
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button {
	border-radius: 999px;
}

.wc-block-components-notice-banner {
	border-radius: 14px;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
	border-radius: 12px !important;
}

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	padding-bottom: clamp(40px, 5vw, 64px);
}

.woocommerce-page .wp-block-post-title,
.woocommerce .wp-block-post-title {
	text-wrap: balance;
}

/* ------------------------------------------------------------------ 12. Blog, pages and posts */

.aj-page-head--plain {
	padding-bottom: clamp(32px, 4vw, 48px);
}

.aj-page-head--plain .wp-block-post-title {
	max-width: 16em;
}

.aj-page-head--post .aj-page-title {
	max-width: 18em;
	font-size: clamp(2.5rem, 5vw, 4.25rem);
	line-height: 1.04;
}

.aj-post-cat,
.aj-post-cat a {
	color: var(--aj-accent-text);
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-decoration: none;
	text-transform: uppercase;
}

.aj-post-cat .wp-block-post-terms__separator {
	color: var(--aj-ink-3);
}

.aj-post-date {
	color: var(--aj-ink-3);
	font-size: 15px;
}

.wp-block-post-featured-image.aj-post-image {
	margin-bottom: clamp(40px, 5vw, 64px);
}

.wp-block-post-featured-image.aj-post-image img {
	border-radius: 20px;
}

.aj-entry {
	padding-bottom: clamp(72px, 8vw, 120px);
	color: var(--aj-ink-2);
	font-size: 1.125rem;
	line-height: 1.7;
}

.aj-entry > :where(h2, h3, h4) {
	margin-top: 1.6em;
	color: var(--aj-ink);
}

.aj-entry h2 {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.aj-entry h3 {
	font-size: clamp(1.5rem, 2.4vw, 1.875rem);
}

.aj-entry a {
	color: var(--aj-accent-text);
}

.aj-entry .wp-block-quote {
	padding: 4px 0 4px 24px;
	border-left: 2px solid var(--aj-accent);
	color: var(--aj-ink);
	font-size: 1.5rem;
}

.aj-entry .wp-block-quote cite {
	margin-top: 12px;
}

.aj-entry .wp-block-image img {
	border-radius: 12px;
}

.wp-block-group.aj-post-card {
	gap: 16px;
}

.wp-block-post-template.aj-grid > li {
	display: flex;
	margin: 0;
}

.wp-block-post-template.aj-grid > li > .aj-post-card {
	flex: 1;
}

.aj-post-card .wp-block-post-title {
	font-size: 1.625rem;
	line-height: 1.2;
	text-wrap: pretty;
}

.aj-post-card .wp-block-post-title a {
	color: var(--aj-ink);
	text-decoration: none;
}

.aj-post-card .wp-block-post-title a:hover {
	color: var(--aj-accent-text);
}

.aj-post-card .wp-block-post-excerpt {
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 1rem;
	line-height: 1.6;
}

.aj-post-card .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.aj-pagination {
	margin-top: clamp(40px, 5vw, 56px);
	font-size: 15px;
}

.aj-pagination a {
	color: var(--aj-ink);
	text-decoration: none;
}

.aj-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	border-radius: 999px;
}

.aj-pagination .page-numbers.current {
	background: var(--aj-ink);
	color: var(--aj-cream);
}

.aj-post-foot {
	padding-block: 0 clamp(16px, 2vw, 24px);
}

.aj-post-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 16px 32px;
	padding-top: 28px;
	border-top: 1px solid var(--aj-line);
	font-size: 15px;
}

.aj-post-nav a {
	color: var(--aj-ink);
	text-decoration: none;
}

.aj-post-nav a:hover {
	color: var(--aj-accent-text);
}

.aj-search .wp-block-search__input {
	min-height: 52px;
	padding: 0 22px;
	border: 1px solid var(--aj-field-line);
	border-radius: 999px;
	background: rgba(27, 23, 20, 0.04);
	font-family: inherit;
	font-size: 15px;
}

.aj-search .wp-block-search__inside-wrapper {
	gap: 12px;
}


/* ------------------------------------------------------------------ Legal links, form notes, gift */

body .aj-footer__bottom > .aj-footer__legal {
	margin: 0;
}

.aj-footer__legal:empty {
	display: none;
}

.aj-legal {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	font-size: 13px;
	line-height: 1.4;
}

.aj-legal a {
	color: var(--aj-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.aj-legal a:hover {
	color: var(--aj-ink);
}

.aj-form-note {
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 13px;
	line-height: 1.5;
}

.aj-form-note a {
	color: inherit;
}

.aj-gift {
	margin: 6px 0 0;
}

/* ------------------------------------------------------------------ More reviews, FAQ, video */

.aj-masonry {
	align-self: stretch;
	columns: 3 280px;
	column-gap: 24px;
}

body .aj-masonry > * {
	margin: 0 0 24px;
	break-inside: avoid;
}

.aj-faq {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	max-width: 880px;
	border-top: 1px solid var(--aj-line-strong);
	interpolate-size: allow-keywords;
}

body .aj-faq > * {
	margin: 0;
}

.aj-faq .wp-block-details {
	padding: 0;
	border-bottom: 1px solid var(--aj-line-strong);
}

.aj-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 0;
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 1.5rem;
	line-height: 1.25;
	list-style: none;
	cursor: pointer;
}

.aj-faq summary::-webkit-details-marker {
	display: none;
}

.aj-faq summary::after {
	content: "";
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.3s var(--aj-ease);
}

.aj-faq details[open] > summary::after {
	transform: rotate(45deg);
}

.aj-faq details > :not(summary) {
	max-width: 46em;
	margin: 0 0 22px;
	color: var(--aj-ink-2);
	font-size: 1.0625rem;
	line-height: 1.65;
}

.wp-block-video.aj-video {
	align-self: stretch;
	margin: 0;
	overflow: hidden;
	border-radius: 24px;
	background: var(--aj-sand-2);
	box-shadow: 0 30px 80px rgba(27, 23, 20, 0.12);
}

.wp-block-video.aj-video video {
	display: block;
	width: 100%;
	height: auto;
}

.wp-block-video.aj-video:not(:has(video)) {
	display: none;
}

.editor-styles-wrapper .wp-block-video.aj-video:not(:has(video)) {
	display: block;
}

/* ------------------------------------------------------------------ Films
 * Video blocks with autoplay (the book trailer, the coaching film): a rounded frame, a muted
 * loop while on screen, and two buttons added by assets/js/theme.js. Without the script the
 * browser's own controls show instead.
 */

.wp-block-video.aj-film {
	align-self: stretch;
	margin: 0;
}

.wp-block-video.aj-film video,
.aj-player__media {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 24px;
}

.wp-block-video.aj-film video {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: var(--aj-sand-2);
	box-shadow: 0 30px 80px rgba(27, 23, 20, 0.12), 0 0 0 1px var(--aj-line-soft);
}

.aj-player__media {
	position: relative;
}

.wp-block-video.aj-film figcaption {
	margin: 14px 0 0;
	color: var(--aj-muted);
	font-size: 0.875rem;
	line-height: 1.5;
	text-align: left;
}

.aj-player__bar {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	padding: clamp(12px, 2.2vw, 22px);
	pointer-events: none;
}

.aj-player__bar[hidden] {
	display: none;
}

.aj-player__sound,
.aj-player__toggle,
.aj-lightbox__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	height: 44px;
	margin: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(27, 23, 20, 0.84);
	color: var(--aj-cream);
	font: 500 15px/1 var(--aj-sans);
	letter-spacing: 0.01em;
	white-space: nowrap;
	cursor: pointer;
	pointer-events: auto;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	transition: background-color 0.2s ease, transform 0.16s ease, box-shadow 0.26s ease;
}

.aj-player__sound {
	padding: 0 18px 0 15px;
}

.aj-player__toggle {
	flex-shrink: 0;
	width: 44px;
	padding: 0;
}

.aj-player__sound svg {
	width: 19px;
	height: 19px;
}

.aj-player__toggle svg,
.aj-lightbox__close svg {
	width: 15px;
	height: 15px;
}

.aj-player__time {
	opacity: 0.66;
	font-variant-numeric: tabular-nums;
}

.aj-player__sound:hover,
.aj-player__toggle:hover,
.aj-lightbox__close:hover {
	background: var(--aj-ink);
	box-shadow: var(--aj-glow);
}

.aj-player__sound:active,
.aj-player__toggle:active {
	transform: scale(0.97);
}

.aj-player__sound:focus-visible,
.aj-player__toggle:focus-visible,
.aj-lightbox__close:focus-visible,
.aj-hero__pause:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 3px;
}

.wp-block-details.aj-transcript {
	margin-top: -8px;
}

.aj-transcript summary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--aj-ink);
	font-size: 15px;
	font-weight: 500;
	list-style: none;
	cursor: pointer;
}

.aj-transcript summary::-webkit-details-marker {
	display: none;
}

.aj-transcript summary::after {
	content: "";
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.3s var(--aj-ease);
}

.aj-transcript summary:hover {
	color: var(--aj-accent-text);
}

.aj-transcript[open] > summary::after {
	transform: rotate(45deg);
}

.aj-transcript > :not(summary) {
	max-width: 46em;
	margin: 6px 0 0;
	color: var(--aj-ink-2);
	font-size: 1rem;
	line-height: 1.7;
}

/* Same background as the section above: one gap, not two. */
.aj-page-head + .aj-film-sec {
	padding-top: clamp(8px, 2vw, 24px);
}

.aj-sec-book + .aj-film-sec {
	padding-top: 0;
}

/* "Watch the trailer" button (Button block, style "Play film") */
.wp-block-button.is-style-play > .wp-block-button__link {
	padding: 13px 24px 13px 13px;
	border: 1px solid rgba(27, 23, 20, 0.22);
	background: transparent;
	color: var(--aj-ink);
}

.wp-block-button.is-style-play > .wp-block-button__link::before {
	content: "";
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--aj-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 1.8v6.4L8.2 5z' fill='%23FFFDF9'/%3E%3C/svg%3E") 55% 50% / 10px no-repeat;
	transition: transform 0.26s var(--aj-ease);
}

.wp-block-button.is-style-play > .wp-block-button__link:hover,
.wp-block-button.is-style-play > .wp-block-button__link:focus-visible {
	border-color: rgba(var(--aj-accent-rgb), 0.6);
	background: rgba(var(--aj-accent-rgb), 0.08);
	box-shadow: none;
}

.wp-block-button.is-style-play > .wp-block-button__link:hover::before,
.wp-block-button.is-style-play > .wp-block-button__link:focus-visible::before {
	transform: scale(1.1);
}

/* Lightbox */
html.aj-lightbox-open {
	overflow: hidden;
}

.aj-lightbox {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: clamp(64px, 8vh, 96px) clamp(16px, 4vw, 56px) clamp(24px, 6vh, 72px);
	border: 0;
	background: transparent;
	overflow: hidden;
}

.aj-lightbox[open] {
	display: grid;
	place-items: center;
}

.aj-lightbox::backdrop {
	background: rgba(20, 17, 15, 0.9);
}

.aj-lightbox__frame {
	width: min(100%, 1280px, calc((100vh - 170px) * 16 / 9));
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 18px;
	background: #000;
	box-shadow: 0 40px 120px rgba(0, 0, 0, 0.5);
}

.aj-lightbox__frame video {
	display: block;
	width: 100%;
	height: 100%;
}

.aj-lightbox__close {
	position: fixed;
	top: 16px;
	right: 16px;
	padding: 0 18px 0 15px;
	border: 1px solid rgba(246, 241, 233, 0.24);
}

/* Booking calendar window (Calendly or a Google appointment schedule, assets/js/theme.js). */
.aj-booking {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: clamp(16px, 4vh, 40px) clamp(16px, 4vw, 56px);
	border: 0;
	background: transparent;
	overflow: hidden;
}

.aj-booking[open] {
	display: grid;
	place-items: center;
}

.aj-booking::backdrop {
	background: rgba(20, 17, 15, 0.78);
}

.aj-booking__panel {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: min(100%, 1040px);
	height: min(100%, 940px);
	overflow: hidden;
	border-radius: 18px;
	background: var(--aj-paper);
	box-shadow: 0 40px 120px rgba(0, 0, 0, 0.4);
}

/* Header: who, how long, how, and the package picked on a card. */
.aj-booking__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"photo title tools"
		"photo meta tools";
	align-items: center;
	gap: 6px 16px;
	padding: 18px 18px 18px 24px;
	border-bottom: 1px solid var(--aj-line);
	background: var(--aj-sand);
	color: var(--aj-ink);
}

.aj-booking__photo {
	grid-area: photo;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	/* Amber's portrait, framed on her face. */
	background: var(--aj-sand-2) no-repeat 53% 8% / 190% auto;
	box-shadow: 0 0 0 3px var(--aj-paper), 0 0 0 4px rgba(var(--aj-accent-rgb), 0.5);
}

.aj-booking__photo[hidden] {
	display: none;
}

.aj-booking__title {
	grid-area: title;
	align-self: end;
	margin: 0;
	color: var(--aj-ink);
	font: 400 clamp(24px, 2.4vw, 30px)/1.05 var(--aj-serif);
	letter-spacing: -0.005em;
}

.aj-booking__meta {
	grid-area: meta;
	align-self: start;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 0;
	margin: 0;
	color: var(--aj-ink-3);
	font: 400 14px/1.35 var(--aj-sans);
}

.aj-booking__fact + .aj-booking__fact::before {
	content: "·";
	margin: 0 8px;
	color: var(--aj-muted);
}

.aj-booking__chip {
	display: inline-flex;
	align-items: center;
	margin-left: 12px;
	padding: 3px 10px;
	border: 1px solid rgba(var(--aj-accent-rgb), 0.45);
	border-radius: 999px;
	background: var(--aj-paper);
	color: var(--aj-accent-text);
	font-size: 13px;
	font-weight: 500;
}

.aj-booking__chip[hidden] {
	display: none;
}

.aj-booking__tools {
	grid-area: tools;
	display: flex;
	align-items: center;
	gap: 6px;
}

.aj-booking__newtab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border-radius: 999px;
	color: var(--aj-ink-2);
	font: 500 14px/1 var(--aj-sans);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.aj-booking__newtab svg,
.aj-booking__close svg {
	flex: none;
	width: 15px;
	height: 15px;
}

.aj-booking__newtab:hover {
	background: rgba(27, 23, 20, 0.06);
	color: var(--aj-ink);
}

.aj-booking__close {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--aj-line-strong);
	border-radius: 50%;
	background: var(--aj-paper);
	color: var(--aj-ink);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.26s ease;
}

.aj-booking__close:hover {
	background: var(--aj-ink);
	color: var(--aj-cream);
	box-shadow: var(--aj-glow);
}

.aj-booking__newtab:focus-visible,
.aj-booking__close:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 3px;
}

.aj-booking__frame {
	position: relative;
	flex: 1;
	min-height: 0;
	background: var(--aj-paper);
}

/* Shown until the calendar has loaded over it. */
.aj-booking__frame::before {
	content: "Loading the calendar…";
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: var(--aj-ink-3);
	font-size: 15px;
}

.aj-booking__frame iframe {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Phones: the window takes the whole screen. */
@media (max-width: 600px) {
	.aj-booking {
		padding: 0;
	}

	.aj-booking__panel {
		width: 100%;
		height: 100%;
		border-radius: 0;
		box-shadow: none;
	}

	.aj-booking__head {
		grid-template-areas:
			"photo title tools"
			"meta meta meta";
		gap: 10px 12px;
		padding: 12px 12px 14px 16px;
	}

	.aj-booking__photo {
		width: 44px;
		height: 44px;
	}

	.aj-booking__title {
		align-self: center;
		font-size: 24px;
	}

	.aj-booking__meta {
		font-size: 13px;
	}

	/* Her photo and the site already say who: "20 min · Video call" and the package fit one line. */
	.aj-booking__fact:first-child {
		display: none;
	}

	.aj-booking__fact:nth-child(2)::before {
		content: none;
	}

	.aj-booking__newtab {
		padding: 0;
	}

	.aj-booking__newtab span {
		display: none;
	}
}

/* Pause button for the hero animation */
.aj-hero__pause {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--aj-line-strong);
	border-radius: 50%;
	background: rgba(246, 241, 233, 0.72);
	color: var(--aj-ink-2);
	cursor: pointer;
	opacity: 0.72;
	transition: opacity 0.2s ease, background-color 0.2s ease;
}

.aj-hero__pause svg {
	width: 13px;
	height: 13px;
}

.aj-hero__pause:hover,
.aj-hero__pause:focus-visible {
	background: var(--aj-cream);
	opacity: 1;
}

@media (max-width: 599px) {
	/* room for the pause button under the hero buttons */
	.aj-hero {
		padding-bottom: 76px;
	}

	.aj-hero__pause {
		bottom: 20px;
	}
}

@media (max-width: 480px) {
	.wp-block-buttons:has(> .is-style-play) > .wp-block-button {
		flex: 1 1 100%;
	}

	.wp-block-buttons:has(> .is-style-play) > .wp-block-button > .wp-block-button__link {
		width: 100%;
	}
}

@media (max-width: 599px) {
	.aj-player__bar {
		padding: 10px;
	}

	.aj-player__sound,
	.aj-player__toggle {
		height: 34px;
		font-size: 13px;
	}

	.aj-player__sound {
		gap: 7px;
		padding: 0 13px 0 11px;
	}

	.aj-player__time {
		display: none;
	}

	.aj-player__toggle {
		width: 34px;
	}

	.aj-player__sound svg {
		width: 15px;
		height: 15px;
	}

	.aj-player__toggle svg {
		width: 13px;
		height: 13px;
	}

	.wp-block-video.aj-film video,
	.aj-player__media {
		border-radius: 16px;
	}
}

@media (max-width: 480px) {
	/* small frames: two round buttons in the corners, the label stays for screen readers */
	.aj-player__sound {
		width: 34px;
		padding: 0;
	}

	.aj-player__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}

/* ------------------------------------------------------------------ Motion
 * Live, Remotion-style choreography: transform and opacity only (no layout shift), never
 * hiding text from search engines, and switched off for visitors who prefer reduced motion.
 * Content below the fold is revealed by assets/js/theme.js as it scrolls into view.
 */

@media (prefers-reduced-motion: no-preference) {
	.aj-js .wp-site-blocks > header {
		animation: aj-fade 0.9s ease both;
	}

	.aj-js .aj-hero__canvas {
		animation: aj-fade 1.8s ease both;
	}

	.aj-js .aj-hero__inner > * {
		animation: aj-rise 1s var(--aj-ease) both;
	}

	.aj-js .aj-hero__inner > :nth-child(1) {
		animation-delay: 0.08s;
	}

	.aj-js .aj-hero__inner > :nth-child(2) {
		animation-delay: 0.16s;
	}

	.aj-js .aj-hero__inner > :nth-child(3) {
		animation-delay: 0.3s;
	}

	.aj-js .aj-hero__inner > :nth-child(4) {
		animation-delay: 0.42s;
	}

	/* The book glides in (transform only, so it counts as painted straight away), then floats. */
	.aj-js .aj-hero > .aj-hero__book {
		animation: aj-book-in 1.4s var(--aj-ease) 0.1s backwards;
	}

	.aj-js .aj-hero__book img {
		animation: aj-float 9s ease-in-out 1.6s infinite;
	}

	.aj-reveal {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}

	.aj-reveal.is-in {
		opacity: 1;
		transform: none;
		transition: opacity 0.9s var(--aj-ease), transform 1s var(--aj-ease);
		transition-delay: var(--aj-delay, 0s);
	}

	.aj-reveal.aj-words {
		opacity: 1;
		transform: none;
	}

	.aj-words .aj-w {
		display: inline-block;
		opacity: 0;
		transform: translate3d(0, 0.35em, 0);
	}

	.aj-words.is-in .aj-w {
		opacity: 1;
		transform: none;
		transition: opacity 0.6s var(--aj-ease), transform 0.8s var(--aj-ease);
		transition-delay: calc(var(--i, 0) * 45ms);
	}

	.aj-words cite {
		opacity: 0;
	}

	.aj-words.is-in cite {
		opacity: 1;
		transition: opacity 0.8s ease calc(var(--n, 10) * 45ms + 0.15s);
	}

	.wp-block-button__link:active,
	.wp-element-button:active {
		transform: scale(0.98);
	}

	.aj-header .wp-block-navigation.aj-nav .has-child .wp-block-navigation__submenu-container {
		transform: translate3d(0, 6px, 0);
		transition: opacity 0.18s ease, transform 0.26s var(--aj-ease);
	}

	.aj-header .wp-block-navigation.aj-nav .has-child:hover > .wp-block-navigation__submenu-container,
	.aj-header .wp-block-navigation.aj-nav .has-child:focus-within > .wp-block-navigation__submenu-container,
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
	.aj-header .wp-block-navigation.aj-nav .is-menu-open .has-child .wp-block-navigation__submenu-container {
		transform: none;
	}

	.aj-faq details::details-content {
		block-size: 0;
		overflow: hidden;
		transition: block-size 0.35s var(--aj-ease), content-visibility 0.35s allow-discrete;
	}

	.aj-faq details[open]::details-content {
		block-size: auto;
	}

	.aj-lightbox[open] .aj-lightbox__frame {
		animation: aj-pop 0.4s var(--aj-ease) both;
	}

	.aj-lightbox[open]::backdrop {
		animation: aj-fade 0.3s ease both;
	}

	.aj-booking[open] .aj-booking__panel {
		animation: aj-pop 0.4s var(--aj-ease) both;
	}

	.aj-booking[open]::backdrop {
		animation: aj-fade 0.3s ease both;
	}

	/* Smooth fade between pages (Chrome, Edge, Safari 18.2+); other browsers simply load the page. */
	@view-transition {
		navigation: auto;
	}

	::view-transition-old(root) {
		animation: aj-vt-out 0.22s ease both;
	}

	::view-transition-new(root) {
		animation: aj-vt-in 0.5s var(--aj-ease) both;
	}

	.aj-header {
		view-transition-name: aj-header;
	}

	/* Headings rise from behind their own baseline. */
	h2.aj-reveal {
		opacity: 1;
		transform: translate3d(0, 100%, 0);
		clip-path: inset(-20% -10% 100% -10%);
	}

	h2.aj-reveal.is-in {
		transform: none;
		clip-path: inset(-20% -10% -20% -10%);
		transition: clip-path 1.1s var(--aj-ease), transform 1.1s var(--aj-ease);
		transition-delay: var(--aj-delay, 0s);
	}

	/* Images open like a curtain while the photo settles. */
	.wp-block-image.aj-reveal {
		opacity: 1;
		transform: translate3d(0, 32px, 0);
		clip-path: inset(100% 0 0 0);
	}

	.wp-block-image.aj-reveal img {
		transform: scale(1.12);
	}

	.wp-block-image.aj-reveal.is-in {
		transform: none;
		clip-path: inset(-20% -20% -20% -20%);
		transition: clip-path 1.3s var(--aj-ease), transform 1.3s var(--aj-ease);
		transition-delay: var(--aj-delay, 0s);
	}

	.wp-block-image.aj-reveal.is-in img {
		transform: none;
		transition: transform 1.8s var(--aj-ease) var(--aj-delay, 0s);
	}

	/* No parent to watch: a plain fade instead of the clip. */
	.aj-reveal.aj-noclip {
		clip-path: none;
		opacity: 0;
	}

	.aj-reveal.aj-noclip.is-in {
		opacity: 1;
		transition: opacity 0.9s var(--aj-ease), transform 1s var(--aj-ease);
	}

	/* The rule above a card draws from left to right, then turns amber under the pointer. */
	.is-style-rule-top.aj-reveal::before {
		transform: scaleX(0);
	}

	.is-style-rule-top.aj-reveal.is-in::before {
		transform: none;
		transition: transform 1.2s var(--aj-ease) var(--aj-delay, 0s);
	}

	.wp-block-group.is-style-rule-top::after {
		transition: transform 0.7s var(--aj-ease);
	}

	/* Emblems: lines draw in, dots pop, then a slow movement while the card is on screen. */
	.aj-em-ready .aj-d {
		stroke-dasharray: 1 1;
		stroke-dashoffset: 1;
	}

	.aj-em-ready .aj-p {
		opacity: 0;
		transform: scale(0.2);
	}

	.aj-em-ready.is-drawn .aj-d {
		stroke-dashoffset: 0;
		transition: stroke-dashoffset 1.6s var(--aj-ease);
		transition-delay: calc(var(--aj-delay, 0s) + 0.15s + var(--i, 0) * 0.16s);
	}

	.aj-em-ready.is-drawn .aj-p {
		opacity: 1;
		transform: none;
		transition: opacity 0.5s ease, transform 0.7s cubic-bezier(0.3, 1.6, 0.5, 1);
		transition-delay: calc(var(--aj-delay, 0s) + 0.6s + var(--i, 0) * 0.12s);
	}

	.aj-emblem {
		transition: transform 0.6s var(--aj-ease);
	}

	:is(.is-style-rule-top, .is-style-card, .is-style-card-light):hover > .aj-emblem {
		transform: translate3d(0, -3px, 0) rotate(-4deg);
	}

	.aj-em-ready.is-live .aj-comet {
		animation: aj-comet 5.5s var(--aj-ease) 2.2s infinite both;
	}

	.aj-em-ready.is-live .aj-sig {
		animation: aj-sig 3.6s ease-in-out infinite both;
		animation-delay: calc(2s + var(--i, 0) * 0.45s);
	}

	.aj-em-ready.is-live .aj-wave {
		animation: aj-wave 4s ease-out 1.8s infinite both;
	}

	.aj-em-ready.is-live .aj-wave + .aj-wave {
		animation-delay: 3.8s;
	}

	.aj-em-ready.is-live .aj-l {
		animation: aj-em-l 5s ease-in-out 1.8s infinite;
	}

	.aj-em-ready.is-live .aj-r {
		animation: aj-em-r 5s ease-in-out 1.8s infinite;
	}

	.aj-em-ready.is-live .aj-pulse {
		animation: aj-beat 2.6s ease-in-out 2.2s infinite;
	}

	.aj-em-ready.is-live .aj-rays {
		animation: aj-spin 36s linear infinite;
	}

	.aj-em-ready.is-live .aj-core {
		animation: aj-swell 3.2s ease-in-out 2s infinite;
	}

	.aj-em-ready.is-live .aj-write {
		animation: aj-write 6.5s ease-in-out 1.4s infinite both;
	}

	/* Film badge: arrives with a turn, then the ring of text keeps turning slowly. */
	.aj-badge.aj-em-ready {
		opacity: 0;
		transform: scale(0.86) rotate(-12deg);
	}

	.aj-badge.aj-em-ready.is-drawn {
		opacity: 1;
		transform: none;
		transition: opacity 0.9s ease 0.2s, transform 1.4s var(--aj-ease) 0.2s;
	}

	.aj-badge.is-live .aj-badge__ring {
		animation: aj-spin 30s linear infinite;
	}

	.aj-badge.is-live .aj-badge__play::after {
		animation: aj-ping 2.8s ease-out 1.6s infinite;
	}

	.aj-badge__photo img,
	.aj-badge__play {
		transition: transform 0.8s var(--aj-ease);
	}

	.aj-badge:hover .aj-badge__photo img {
		transform: scale(1.07);
	}

	.aj-badge:hover .aj-badge__play {
		transform: scale(1.08);
	}

	/* Cards lift a little under the pointer. */
	@media (hover: hover) and (pointer: fine) {
		:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light, .wp-block-group.aj-package) {
			transition: transform 0.6s var(--aj-ease), box-shadow 0.6s var(--aj-ease), border-color 0.4s ease;
		}

		:is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light, .wp-block-group.aj-package):hover {
			border-color: rgba(var(--aj-accent-rgb), 0.3);
			box-shadow: 0 24px 56px rgba(27, 23, 20, 0.08);
			transform: translate3d(0, -4px, 0);
		}
	}
}

/* The band's amber light drifts as the section crosses the screen. */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.wp-block-group.is-style-band::before {
			animation: aj-glow-drift linear both;
			animation-timeline: view();
			animation-range: cover;
		}
	}
}

/* Reading progress on articles. */
@supports (animation-timeline: scroll()) {
	@media (prefers-reduced-motion: no-preference) {
		.single-post .wp-site-blocks::before {
			content: "";
			position: fixed;
			top: 0;
			left: 0;
			z-index: 99;
			width: 100%;
			height: 2px;
			background: var(--aj-accent);
			transform-origin: 0 50%;
			animation: aj-progress linear both;
			animation-timeline: scroll(root block);
		}
	}
}

@keyframes aj-fade {
	from {
		opacity: 0;
	}
}

@keyframes aj-rise {
	from {
		opacity: 0;
		transform: translate3d(0, 24px, 0);
	}
}

@keyframes aj-pop {
	from {
		opacity: 0;
		transform: scale(0.96);
	}
}

@keyframes aj-book-in {
	from {
		transform: translate3d(36px, 64px, 0) rotate(3deg);
	}
}

@keyframes aj-float {
	0%,
	100% {
		transform: translate3d(0, 0, 0);
	}

	50% {
		transform: translate3d(0, -8px, 0);
	}
}

@keyframes aj-vt-out {
	to {
		opacity: 0;
	}
}

@keyframes aj-vt-in {
	from {
		opacity: 0;
		transform: translate3d(0, 10px, 0);
	}
}

@keyframes aj-progress {
	from {
		transform: scaleX(0);
	}

	to {
		transform: scaleX(1);
	}
}

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

@keyframes aj-comet {
	0% {
		opacity: 0;
		stroke-dashoffset: 0.08;
	}

	10%,
	70% {
		opacity: 1;
	}

	80%,
	100% {
		opacity: 0;
		stroke-dashoffset: -0.92;
	}
}

@keyframes aj-sig {
	0% {
		opacity: 0;
		stroke-dashoffset: 0.22;
	}

	15% {
		opacity: 1;
	}

	55% {
		opacity: 1;
		stroke-dashoffset: -0.78;
	}

	60%,
	100% {
		opacity: 0;
		stroke-dashoffset: -0.78;
	}
}

@keyframes aj-wave {
	0% {
		opacity: 0;
		transform: scale(1);
	}

	10% {
		opacity: 0.8;
	}

	100% {
		opacity: 0;
		transform: scale(2.6);
	}
}

@keyframes aj-em-l {
	50% {
		transform: translateX(2.5px);
	}
}

@keyframes aj-em-r {
	50% {
		transform: translateX(-2.5px);
	}
}

@keyframes aj-beat {
	50% {
		transform: scale(1.45);
	}
}

@keyframes aj-swell {
	50% {
		transform: scale(1.12);
	}
}

@keyframes aj-write {
	0% {
		opacity: 1;
		stroke-dashoffset: 1;
	}

	45%,
	85% {
		opacity: 1;
		stroke-dashoffset: 0;
	}

	100% {
		opacity: 0;
		stroke-dashoffset: 0;
	}
}

@keyframes aj-ping {
	0% {
		opacity: 0.8;
		transform: scale(1);
	}

	100% {
		opacity: 0;
		transform: scale(1.9);
	}
}

@keyframes aj-glow-drift {
	from {
		transform: translate(-30%, -25%);
	}

	to {
		transform: translate(-70%, -75%);
	}
}

@media print {
	.aj-reveal,
	.aj-words .aj-w,
	.aj-words cite,
	.aj-em-ready .aj-p,
	.aj-badge.aj-em-ready {
		opacity: 1 !important;
		transform: none !important;
		clip-path: none !important;
	}

	.aj-em-ready .aj-d {
		stroke-dashoffset: 0 !important;
	}
}

/* ------------------------------------------------------------------ 13. Editor */

.editor-styles-wrapper .aj-hero {
	background: radial-gradient(60% 70% at 40% 30%, rgba(var(--aj-accent-rgb), 0.1), rgba(var(--aj-accent-rgb), 0) 70%), var(--aj-cream);
}

.editor-styles-wrapper .aj-hero > .aj-hero__book {
	pointer-events: auto;
}

.editor-styles-wrapper .aj-hero__inner > *,
.editor-styles-wrapper .aj-hero > .aj-hero__book,
.editor-styles-wrapper .aj-hero__book img {
	animation: none !important;
}

/* ------------------------------------------------------------------ 14. Small screens */

@media (max-width: 859px) {
	.aj-hero > .aj-hero__book {
		top: 108px;
		bottom: auto;
		width: clamp(260px, 66vw, 420px);
	}

	.aj-hero__book img {
		-webkit-mask-image: linear-gradient(180deg, #000 66%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 66%, transparent 100%);
	}
}

@media (max-width: 700px) {
	.aj-event {
		grid-template-columns: 60px 1fr;
		align-items: start;
		gap: 16px;
		padding: 20px;
	}

	.aj-event__date {
		width: 60px;
		height: 64px;
		border-radius: 14px;
	}

	.aj-event__day {
		font-size: 1.75rem;
	}

	.aj-event__name {
		font-size: 1.375rem;
	}

	.aj-event__link {
		grid-column: 1 / -1;
		justify-self: start;
	}

	.aj-details td:first-child {
		white-space: normal;
	}
}

@media (max-width: 600px) {
	.aj-footer__cols {
		display: grid;
		grid-template-columns: minmax(0, auto) minmax(0, 1fr);
		gap: 32px 24px;
	}
}

@media (max-width: 480px) {
	.wp-block-group.is-style-card,
	.wp-block-group.is-style-card-light,
	.wp-block-quote.is-style-card,
	.wp-block-group.aj-package {
		padding: 28px 24px;
	}

	.wp-block-table.aj-details {
		padding: 4px 24px;
	}
}

/* ------------------------------------------------------------------ 15. Conversion: book a call, buy now */

/* "Book a call" after the menu (inc/convert.php): the booking window, or the contact form until the
   booking link is set. Outlined, so it doesn't compete with the page's own main button. */
.aj-header-cta {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 40px;
	padding: 0 18px;
	border: 1px solid rgba(27, 23, 20, 0.24);
	border-radius: 999px;
	color: var(--aj-ink);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.01em;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.26s ease, background-color 0.26s ease;
}

/* "Book a free call", or "Free call" where the header is short of room. */
.aj-header-cta__short {
	display: none;
}

@media (max-width: 413px), (min-width: 960px) and (max-width: 1199px) {
	.aj-header-cta__long {
		display: none;
	}

	.aj-header-cta__short {
		display: inline;
	}
}

.aj-header-cta:hover,
.aj-header-cta:focus-visible {
	border-color: rgba(var(--aj-accent-rgb), 0.6);
	background: rgba(var(--aj-accent-rgb), 0.08);
	color: var(--aj-ink);
}

.aj-header-cta:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 2px;
}

/* Computers: the menu stays on the right, next to the button. */
@media (min-width: 960px) {
	.aj-header__row:has(> .aj-header-cta) > .wp-block-navigation {
		margin-left: auto;
	}

	.aj-header__row > .aj-header-cta {
		margin-left: -6px;
	}
}

/* Between computers and tablets the menu and "Book a free call" need the room. */
@media (min-width: 960px) and (max-width: 1099px) {
	.aj-header .wp-block-navigation.aj-nav .wp-block-navigation__container {
		gap: 0 12px;
	}

	.aj-header__row:has(> .aj-header-cta) {
		gap: 14px;
	}

	.aj-header__row > .aj-header-cta {
		padding: 0 14px;
	}
}

/* Up to 1199px, a filled cart in the header too: a little less room between the links. */
@media (min-width: 1100px) and (max-width: 1199px) {
	.aj-header__row:has(> .aj-cart:not([hidden])) .wp-block-navigation.aj-nav .wp-block-navigation__container {
		gap: 0 14px;
	}
}

/* Phones and tablets: logo, the button, then the cart (when there is one) and the burger. */
@media (max-width: 959px) {
	.aj-header__row:has(> .aj-header-cta) {
		gap: 12px;
	}

	.aj-header__row > .aj-header-cta {
		order: 0;
		min-height: 36px;
		margin-left: auto;
		padding: 0 15px;
		font-size: 13px;
	}

	.aj-header__row:has(> .aj-header-cta):has(> .aj-cart:not([hidden])) > .aj-cart,
	.aj-header__row:has(> .aj-header-cta) > .wp-block-navigation {
		margin-left: 0;
	}
}

@media (max-width: 374px) {
	.aj-header__row:has(> .aj-header-cta):has(> .aj-cart:not([hidden])) {
		gap: 8px;
	}
}

@media (max-width: 359px) {
	.aj-header__row > .aj-header-cta {
		padding: 0 12px;
	}

	/* Too narrow for all three: the cart, once filled, matters more. */
	.aj-header__row:has(> .aj-cart:not([hidden])) > .aj-header-cta {
		display: none;
	}
}

/* The book: "Buy now" stays at the bottom of the screen on The Book page (inc/convert.php). */
.aj-buybar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 25;
	box-sizing: border-box;
	padding: 10px var(--wp--style--root--padding-right, 24px) calc(10px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--aj-line);
	background: rgba(255, 253, 249, 0.96);
	box-shadow: 0 -12px 32px rgba(27, 23, 20, 0.06);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	visibility: hidden;
	transform: translateY(110%);
	transition: transform 0.38s var(--aj-ease), visibility 0s linear 0.38s;
}

.aj-buybar[hidden] {
	display: none;
}

.aj-buybar.is-in {
	visibility: visible;
	transform: none;
	transition: transform 0.38s var(--aj-ease), visibility 0s;
}

.aj-buybar__inner {
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: var(--wp--style--global--wide-size, 1136px);
	margin: 0 auto;
}

.aj-buybar__cover {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.aj-buybar__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	line-height: 1.25;
}

.aj-buybar__title {
	overflow: hidden;
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 21px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aj-buybar__price {
	color: var(--aj-ink-3);
	font-size: 14px;
}

.aj-buybar__price .aj-currency {
	font-size: 12px;
}

@media (max-width: 480px) {
	.aj-buybar__title {
		font-size: 18px;
	}

	.aj-buybar__inner {
		gap: 12px;
	}
}

.aj-buybar .aj-buybar__button.wp-element-button {
	flex-shrink: 0;
	min-height: 46px;
	padding: 0 24px;
}

.aj-buybar .aj-buybar__button.wp-element-button:hover,
.aj-buybar .aj-buybar__button.wp-element-button:focus-visible {
	box-shadow: var(--aj-glow);
}

/* Room under the footer, so the bar never covers its last line. */
body.aj-has-buybar .wp-site-blocks {
	padding-bottom: 72px;
}

@media (prefers-reduced-motion: reduce) {
	.aj-buybar,
	.aj-buybar.is-in {
		transition: none;
	}
}

/* With a gift for subscribers (Appearance › Amber Jolly), the sign-up form says what it is. */
.aj-gift-pitch {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	color: var(--aj-ink);
	font-size: 15px;
	line-height: 1.4;
}

/* ------------------------------------------------------------------ 16. Blog: topics and articles (inc/journal.php) */

/* Blog › Topic, above an article's title. */
.aj-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
}

/* 24px tall to tap, without moving anything. */
.aj-crumbs a {
	display: inline-block;
	margin: -4px 0;
	padding: 4px 0;
}

.aj-crumbs a:hover {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.aj-crumbs__sep {
	color: var(--aj-ink-3);
	letter-spacing: 0;
}

.aj-read-time {
	color: var(--aj-ink-3);
}

/* "In this article". */
.aj-toc {
	margin: 32px 0 40px;
	padding: 22px 26px;
	border: 1px solid var(--aj-line);
	border-radius: 16px;
	background: rgba(255, 253, 249, 0.6);
	font-size: 1rem;
	line-height: 1.5;
}

.aj-toc__title {
	margin: 0 0 10px;
	color: var(--aj-ink);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.aj-toc__list {
	display: grid;
	gap: 6px;
	margin: 0;
	padding-left: 1.2em;
}

.aj-entry .aj-toc__list a {
	color: var(--aj-ink-2);
	text-decoration: none;
}

.aj-entry .aj-toc__list a:hover {
	color: var(--aj-accent-text);
	text-decoration: underline;
}

.aj-entry h2[id] {
	scroll-margin-top: 24px;
}

/* Under an article: the author, the guide, the next step, more on the topic. */
.aj-entry:has(+ .aj-after) {
	padding-bottom: clamp(40px, 5vw, 56px);
}

.aj-after {
	padding-bottom: clamp(16px, 2vw, 24px);
}

/* Without more articles to list, the previous / next links still follow. */
.aj-after:has(+ .aj-post-foot) {
	padding-bottom: clamp(40px, 5vw, 56px);
}

/* The blog's only article: no previous / next, so no empty rule either. */
.aj-post-foot:not(:has(a)) {
	display: none;
}

.aj-after__inner {
	display: grid;
	gap: clamp(32px, 4vw, 48px);
}

.aj-author {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 22px 0;
	border-top: 1px solid var(--aj-line);
	border-bottom: 1px solid var(--aj-line);
}

.aj-author__photo {
	flex-shrink: 0;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	object-fit: cover;
	object-position: 50% 25%;
}

.aj-author__by {
	margin: 0 0 4px;
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 1.375rem;
	line-height: 1.2;
}

.aj-author__by a {
	color: inherit;
	text-decoration: none;
}

.aj-author__by a:hover {
	color: var(--aj-accent-text);
}

.aj-author__bio {
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 15px;
	line-height: 1.55;
}

@media (max-width: 600px) {
	.aj-author {
		align-items: flex-start;
		gap: 14px;
	}

	.aj-author__photo {
		width: 56px;
		height: 56px;
	}
}

.aj-guide-link {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	color: var(--aj-ink-2);
	font-size: 1rem;
	line-height: 1.5;
}

.aj-guide-link .aj-dot {
	transform: translateY(-2px);
}

.aj-guide-link a {
	color: var(--aj-accent-text);
}

.aj-next {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.aj-next__card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 26px;
	border-radius: 20px;
	background: var(--aj-sand);
}

.aj-next__kicker {
	margin: 0;
	color: var(--aj-accent-text);
	font-size: 12px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.aj-next__title {
	margin: 0;
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 1.625rem;
	line-height: 1.15;
}

.aj-next__text {
	flex: 1;
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 15px;
	line-height: 1.55;
}

.aj-next__action {
	margin: 10px 0 0;
}

.aj-next__action .wp-element-button {
	min-height: 46px;
	padding: 0 22px;
}

.aj-next__action .wp-element-button:hover,
.aj-next__action .wp-element-button:focus-visible {
	box-shadow: var(--aj-glow);
}

@media (max-width: 640px) {
	.aj-next {
		grid-template-columns: minmax(0, 1fr);
	}
}

.aj-related__title {
	margin: 0 0 18px;
	font-size: clamp(1.5rem, 2.4vw, 1.875rem);
}

.aj-related__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.aj-related__item {
	padding: 18px 0;
	border-top: 1px solid var(--aj-line);
}

.aj-related__item:last-child {
	border-bottom: 1px solid var(--aj-line);
}

.aj-related__link {
	color: var(--aj-ink);
	font-family: var(--aj-serif);
	font-size: 1.375rem;
	line-height: 1.25;
	text-decoration: none;
}

.aj-related__link:hover {
	color: var(--aj-accent-text);
}

.aj-related__excerpt {
	margin: 6px 0 0;
	color: var(--aj-ink-3);
	font-size: 15px;
	line-height: 1.55;
}

.aj-related__all {
	margin: 18px 0 0;
	font-size: 15px;
}

.aj-related__all a {
	color: var(--aj-ink);
}

/* The topics, above the articles on the blog and on each topic's page. */
.aj-topics {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: clamp(28px, 3vw, 40px) !important;
}

.aj-topic {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 18px;
	border: 1px solid rgba(27, 23, 20, 0.18);
	border-radius: 999px;
	color: var(--aj-ink-2);
	font-size: 14px;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.aj-topic:hover {
	border-color: rgba(var(--aj-accent-rgb), 0.6);
	background: rgba(var(--aj-accent-rgb), 0.08);
	color: var(--aj-ink);
}

.aj-topic.is-current {
	border-color: var(--aj-ink);
	background: var(--aj-ink);
	color: var(--aj-cream);
}

/* A topic's guide, first on its page. */
.aj-guide {
	display: grid;
	gap: 10px;
	margin-bottom: clamp(28px, 3vw, 40px) !important;
	padding: clamp(24px, 3vw, 40px);
	border-radius: 24px;
	background: var(--aj-sand);
	color: var(--aj-ink);
	text-decoration: none;
	transition: box-shadow 0.26s ease;
}

.aj-guide:hover,
.aj-guide:focus-visible {
	box-shadow: 0 18px 50px rgba(27, 23, 20, 0.08);
}

.aj-guide__kicker {
	color: var(--aj-accent-text);
	font-size: 12px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.aj-guide__title {
	max-width: 22em;
	font-family: var(--aj-serif);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.1;
}

.aj-guide__text {
	max-width: 62ch;
	color: var(--aj-ink-3);
	font-size: 1rem;
	line-height: 1.6;
}

.aj-guide__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	font-size: 15px;
	font-weight: 500;
}

.aj-guide__more::after {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--aj-arrow) center / contain no-repeat;
	mask: var(--aj-arrow) center / contain no-repeat;
	transition: transform 0.26s ease;
}

.aj-guide:hover .aj-guide__more::after {
	transform: translateX(3px);
}

/* ==========================================================================
   17. The book in two formats: the printed book and the ebook
       (inc/woocommerce.php, inc/convert.php, assets/js/theme.js)
   ========================================================================== */

/* Where to Buy: each format shows its price, so the single big price goes. */
.aj-price-big:empty {
	display: none;
}

.aj-formats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
	gap: 12px;
}

/* A format: anywhere on the card opens the checkout with it in the cart. */
.aj-format {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	gap: 4px;
	box-sizing: border-box;
	min-width: 0;
	padding: 18px 18px 16px;
	border: 1px solid var(--aj-line-strong);
	border-radius: 18px;
	background: var(--aj-paper);
	color: var(--aj-ink);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition: border-color 0.2s ease, box-shadow 0.26s ease, transform 0.26s var(--aj-ease);
}

/* A soft amber glow follows the pointer on the card (assets/js/theme.js, as on the other cards). */
.aj-format::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 40%), rgba(var(--aj-accent-rgb), 0.14), rgba(var(--aj-accent-rgb), 0) 70%);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
}

/* The drawing at the top of the card: the book with its ribbon, the reader with its arrow
   (inc/woocommerce.php). Drawn like the coaching emblems; fully drawn without JavaScript. */
.aj-format__icon {
	display: block;
	width: 44px;
	height: 44px;
	margin: -4px 0 4px -6px;
	color: var(--aj-ink-2);
}

.aj-format__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.aj-format__icon .aj-d {
	stroke-dasharray: 1 1;
}

.aj-format__icon .aj-a {
	stroke: var(--aj-accent);
}

.aj-format__icon .aj-f {
	opacity: 0.4;
}

.aj-format__icon :is(.aj-ribbon, .aj-arrow) {
	transform-box: fill-box;
	transform-origin: 50% 0;
}

/* Chosen (assets/js/theme.js): the card turns amber with a tick, a line runs under "Buy now" while
   the checkout opens, and the other format steps back. */
.aj-format__tick {
	position: absolute;
	top: 14px;
	right: 14px;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--aj-accent);
	color: #fff;
	opacity: 0;
	transform: scale(0.4);
	pointer-events: none;
}

.aj-format__tick svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.aj-format.is-chosen {
	border-color: var(--aj-accent);
	box-shadow: inset 0 0 0 100vmax rgba(var(--aj-accent-rgb), 0.07), 0 0 0 1px var(--aj-accent), 0 18px 48px rgba(var(--aj-accent-rgb), 0.2);
}

.aj-format.is-chosen .aj-format__tick {
	opacity: 1;
	transform: none;
}

.aj-format.is-chosen .aj-format__go {
	color: var(--aj-accent-text);
	background-size: calc(100% - 24px) 1.5px;
}

.aj-formats.is-choosing .aj-format:not(.is-chosen) {
	opacity: 0.45;
}

.aj-format__name {
	color: var(--aj-accent-text);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.aj-format__price {
	margin-top: 2px;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.2;
}

.aj-format__price del {
	margin-right: 6px;
	color: var(--aj-ink-3);
	font-size: 0.7em;
	font-weight: 400;
}

.aj-format__price ins {
	text-decoration: none;
}

.aj-format__note {
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.45;
}

/* The ebook's file types, on their own line: "EPUB, PDF". */
.aj-format__detail {
	display: block;
}

.aj-format__go {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	margin-top: auto;
	padding-top: 12px;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat;
	font-size: 15px;
	font-weight: 500;
}

.aj-format__go::after {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--aj-arrow) center / contain no-repeat;
	mask: var(--aj-arrow) center / contain no-repeat;
	transition: transform 0.26s ease;
}

.aj-format:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 3px;
}

.aj-format:active {
	transform: scale(0.99);
}

@media (hover: hover) and (pointer: fine) {
	.aj-format:hover {
		border-color: rgba(var(--aj-accent-rgb), 0.6);
		box-shadow: 0 14px 40px rgba(var(--aj-accent-rgb), 0.16);
		transform: translateY(-2px);
	}

	.aj-format:hover::before {
		opacity: 1;
	}

	.aj-format:hover .aj-format__go {
		color: var(--aj-accent-text);
	}

	.aj-format:hover .aj-format__go::after {
		transform: translateX(3px);
	}
}

/* Phones: the two formats side by side (one under the other on the narrowest screens). */
@media (max-width: 600px) {
	.aj-format {
		padding: 16px 14px 14px;
		border-radius: 16px;
	}

	.aj-format__price {
		font-size: 1.25rem;
	}

	.aj-format__note {
		font-size: 13px;
	}
}

/* Under "Buy the book": "Printed book $34.95 AUD · Ebook $14.99 AUD · Secure checkout". On phones
   the two prices only (the window then says "Secure payment by card"), one per line on the
   narrowest screens. */
.aj-price-format {
	white-space: nowrap;
}

@media (max-width: 600px) {
	.aj-price-format--note {
		display: none;
	}
}

@media (max-width: 359px) {
	.aj-price-note .aj-price-format:not(.aj-price-format--note) {
		display: block;
	}

	.aj-price-note .aj-price-format__dot {
		display: none;
	}
}

/* The window to choose a format, from "Buy the book" and the bar on The Book page. */
.aj-chooser {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: clamp(16px, 4vh, 40px) 16px;
	border: 0;
	background: transparent;
	overflow: auto;
}

.aj-chooser[open] {
	display: grid;
	place-items: center;
}

.aj-chooser::backdrop {
	background: rgba(20, 17, 15, 0.7);
}

.aj-chooser__panel {
	display: flex;
	flex-direction: column;
	gap: 20px;
	box-sizing: border-box;
	width: min(100%, 560px);
	padding: clamp(22px, 3vw, 32px);
	border-radius: 22px;
	background: var(--aj-cream);
	box-shadow: 0 40px 120px rgba(0, 0, 0, 0.4);
}

.aj-chooser__head {
	display: flex;
	align-items: center;
	gap: 16px;
}

.aj-chooser__cover {
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 12px;
	background: var(--aj-sand);
	object-fit: cover;
}

.aj-chooser__heading {
	flex: 1;
	min-width: 0;
}

.aj-chooser__book {
	margin: 0 0 2px;
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.3;
}

.aj-chooser__title {
	margin: 0;
	color: var(--aj-ink);
	font: 400 clamp(26px, 3vw, 32px)/1.05 var(--aj-serif);
	letter-spacing: -0.005em;
}

.aj-chooser__close {
	display: grid;
	flex: none;
	place-items: center;
	align-self: flex-start;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--aj-line-strong);
	border-radius: 50%;
	background: var(--aj-paper);
	color: var(--aj-ink);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.26s ease;
}

.aj-chooser__close svg {
	width: 15px;
	height: 15px;
}

.aj-chooser__close:hover {
	background: var(--aj-ink);
	color: var(--aj-cream);
	box-shadow: var(--aj-glow);
}

.aj-chooser__close:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 3px;
}

.aj-chooser__note {
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 14px;
	text-align: center;
	text-wrap: balance;
}

/* Phones: a sheet from the bottom of the screen. */
@media (max-width: 600px) {
	.aj-chooser {
		padding: 0;
	}

	.aj-chooser[open] {
		place-items: end stretch;
	}

	.aj-chooser__panel {
		width: 100%;
		padding: 20px 16px max(20px, env(safe-area-inset-bottom));
		border-radius: 22px 22px 0 0;
	}

	.aj-chooser__cover {
		width: 48px;
		height: 48px;
	}
}

/* The lock before "Secure payment by …" in the window. */
.aj-chooser__note::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin: 0 6px 0 0;
	background: currentColor;
	vertical-align: -2px;
	-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='1.8'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain 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='1.8'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Choosing a format: the motion (switched off for visitors who prefer less motion) ----------
   The window opens: the panel rises (a sheet from the bottom on phones), the cover opens like a
   curtain, the title rises from its baseline, then the two formats arrive one after the other and
   their drawings draw in (again each time the window opens). On Where to Buy the drawings draw in
   once the cards are on screen. Under the pointer the drawing tilts, the ribbon swings and the
   arrow nudges. Chosen: a line of amber light runs round the card, which rises a little, the tick
   pops in and draws, and the other format steps back, all while the checkout opens. */
@media (prefers-reduced-motion: no-preference) {
	.aj-chooser[open]::backdrop {
		animation: aj-fade 0.35s ease both;
	}

	.aj-chooser[open] .aj-chooser__panel {
		animation: aj-chooser-in 0.55s var(--aj-ease) backwards;
	}

	#aj-chooser[open] .aj-chooser__cover {
		animation: aj-chooser-cover 0.9s var(--aj-ease) 0.12s backwards;
	}

	#aj-chooser[open] .aj-chooser__title {
		animation: aj-chooser-title 0.9s var(--aj-ease) 0.16s backwards;
	}

	#aj-chooser[open] :is(.aj-chooser__book, .aj-chooser__close) {
		animation: aj-fade 0.6s ease 0.22s backwards;
	}

	#aj-chooser[open] .aj-format {
		animation: aj-format-in 0.75s var(--aj-ease) backwards;
		animation-delay: calc(0.24s + var(--n, 0) * 0.09s);
	}

	#aj-chooser[open] .aj-format__icon .aj-d {
		animation: aj-draw 1.1s var(--aj-ease) backwards;
		animation-delay: calc(0.42s + var(--n, 0) * 0.09s + var(--i, 0) * 0.12s);
	}

	#aj-chooser[open] :is(.aj-chooser__note, .aj-chooser__chapter) {
		animation: aj-fade 0.7s ease 0.5s backwards;
	}

	.aj-fx:not(.is-in) .aj-format__icon .aj-d {
		stroke-dashoffset: 1;
	}

	.aj-fx.is-in .aj-format__icon .aj-d {
		animation: aj-draw 1.1s var(--aj-ease) backwards;
		animation-delay: calc(0.1s + var(--n, 0) * 0.12s + var(--i, 0) * 0.12s);
	}

	@media (hover: hover) and (pointer: fine) {
		.aj-format__icon {
			transition: transform 0.6s var(--aj-ease);
		}

		.aj-format:hover .aj-format__icon {
			transform: translate3d(0, -2px, 0) rotate(-5deg);
		}

		.aj-format:hover .aj-ribbon {
			animation: aj-ribbon 1.4s ease-in-out;
		}

		.aj-format:hover .aj-arrow {
			animation: aj-nudge 1.2s ease-in-out infinite;
		}
	}

	.aj-format {
		transition: border-color 0.3s ease, box-shadow 0.45s ease, transform 0.5s var(--aj-ease), opacity 0.45s ease, filter 0.45s ease;
	}

	.aj-format::after {
		content: "";
		position: absolute;
		inset: -1px;
		border-radius: inherit;
		padding: 2px;
		background: conic-gradient(from 200deg, var(--aj-accent) var(--aj-sweep), transparent 0);
		-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
		-webkit-mask-composite: xor;
		mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
		opacity: 0;
		pointer-events: none;
	}

	/* The border itself turns amber once the line has gone round. */
	.aj-format.is-chosen {
		box-shadow: inset 0 0 0 100vmax rgba(var(--aj-accent-rgb), 0.07), 0 18px 48px rgba(var(--aj-accent-rgb), 0.22);
		transform: translate3d(0, -3px, 0) scale(1.02);
		transition: border-color 0.25s ease 0.55s, box-shadow 0.45s ease, transform 0.6s cubic-bezier(0.3, 1.5, 0.5, 1);
	}

	.aj-format.is-chosen::after {
		opacity: 1;
		animation: aj-sweep 0.7s var(--aj-ease) both;
	}

	.aj-formats.is-choosing .aj-format:not(.is-chosen) {
		filter: saturate(0.4);
		transform: scale(0.97);
	}

	.aj-format__tick {
		transition: opacity 0.2s ease, transform 0.55s cubic-bezier(0.3, 1.6, 0.5, 1);
	}

	.aj-format.is-chosen .aj-format__tick {
		transition-delay: 0.12s;
	}

	.aj-format__tick path {
		stroke-dasharray: 1 1;
	}

	.aj-format.is-chosen .aj-format__tick path {
		animation: aj-draw 0.45s ease-out 0.3s backwards;
	}

	.aj-format.is-chosen .aj-format__go {
		transition: color 0.3s ease, background-size 1.8s cubic-bezier(0.25, 0.6, 0.2, 1) 0.3s;
	}

	.aj-format.is-chosen .aj-format__go::after {
		transform: translateX(4px);
	}

	@media (max-width: 600px) {
		.aj-chooser[open] .aj-chooser__panel {
			animation: aj-sheet-in 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;
		}
	}
}

@property --aj-sweep {
	syntax: "<angle>";
	inherits: false;
	initial-value: 0deg;
}

@keyframes aj-chooser-in {
	from {
		opacity: 0;
		transform: translate3d(0, 28px, 0) scale(0.97);
	}
}

@keyframes aj-sheet-in {
	from {
		transform: translate3d(0, 100%, 0);
	}
}

@keyframes aj-chooser-cover {
	from {
		clip-path: inset(100% 0 0 0 round 12px);
		transform: translate3d(0, 10px, 0) scale(1.1);
	}

	to {
		clip-path: inset(0 round 12px);
		transform: none;
	}
}

@keyframes aj-chooser-title {
	from {
		clip-path: inset(-20% -10% 100% -10%);
		transform: translate3d(0, 100%, 0);
	}

	to {
		clip-path: inset(-20% -10% -20% -10%);
		transform: none;
	}
}

@keyframes aj-format-in {
	from {
		opacity: 0;
		transform: translate3d(0, 18px, 0);
	}
}

@keyframes aj-draw {
	from {
		stroke-dashoffset: 1;
	}

	to {
		stroke-dashoffset: 0;
	}
}

@keyframes aj-sweep {
	from {
		--aj-sweep: 0deg;
	}

	to {
		--aj-sweep: 360deg;
	}
}

@keyframes aj-ribbon {
	0%,
	100% {
		transform: none;
	}

	25% {
		transform: rotate(16deg);
	}

	55% {
		transform: rotate(-9deg);
	}

	80% {
		transform: rotate(4deg);
	}
}

@keyframes aj-nudge {
	0%,
	100% {
		transform: none;
	}

	50% {
		transform: translate3d(0, 3px, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.aj-format,
	.aj-format__go::after {
		transition: none;
	}

	.aj-format:hover,
	.aj-format.is-chosen {
		transform: none;
	}
}

@media print {
	.aj-fx .aj-format__icon .aj-d {
		stroke-dashoffset: 0 !important;
	}
}

/* ==========================================================================
   18. After the purchase: the next step, readers' reviews (inc/after.php)
   ========================================================================== */

/* The order page: "Go further with Amber" at its end. */
.aj-thanks-next {
	box-sizing: border-box;
	max-width: 640px;
	margin-block: clamp(32px, 4vw, 48px) clamp(48px, 6vw, 80px);
}

.aj-thanks-next .aj-next__title {
	margin: 0;
}

/* Stars: amber for the rating, a soft line for the rest. */
.aj-stars {
	display: inline-flex;
	gap: 2px;
	color: rgba(27, 23, 20, 0.18);
	font-size: 15px;
	letter-spacing: 0;
	line-height: 1;
	vertical-align: -1px;
}

.aj-star.is-on {
	color: var(--aj-accent);
}

/* On The Book page, under "What readers say". */
.aj-reviews {
	display: grid;
	gap: 18px;
	align-self: stretch;
	width: 100%;
}

.aj-reviews__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0;
	color: var(--aj-ink-2);
	font-size: 15px;
}

.aj-reviews__summary a {
	color: inherit;
}

/* A reader's own words can run longer than the theme's quotes: a little smaller. */
.wp-block-quote.is-style-card.aj-review {
	justify-content: flex-start;
	gap: 14px;
}

.wp-block-quote.is-style-card.aj-review p {
	font-size: clamp(1.125rem, 1.6vw, 1.3125rem);
	line-height: 1.4;
}

.aj-review cite {
	margin-top: auto;
}

.aj-review__verified {
	margin-left: 6px;
	color: var(--aj-accent-text);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Where to Buy: the average under the formats. */
.aj-buybox .aj-reviews__summary {
	margin-top: 4px;
	font-size: 14px;
}

/* WooCommerce's review page (the link in the review email). */
.woocommerce-review-order textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 110px;
	padding: 12px 14px;
	border: 1px solid var(--aj-line-strong);
	border-radius: 14px;
	background: var(--aj-paper);
	color: var(--aj-ink);
	font: inherit;
	font-size: 16px;
	line-height: 1.5;
}

.woocommerce-review-order textarea:focus-visible {
	outline: 2px solid var(--aj-focus);
	outline-offset: 2px;
}

.woocommerce-review-order .aj-thanks-next {
	margin-top: 32px;
}

/* ==========================================================================
   19. "Read the first chapter" (inc/chapter.php, assets/js/theme.js)
   ========================================================================== */

.aj-chapter-cta,
.aj-chooser__chapter,
.aj-next__more {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
}

.aj-chooser__chapter {
	margin-top: -8px;
	text-align: center;
}

.aj-buy-row .aj-chapter-cta {
	margin-top: 4px;
}

.aj-chapter-link {
	color: var(--aj-ink);
	text-decoration: underline;
	text-decoration-color: rgba(var(--aj-accent-rgb), 0.6);
	text-underline-offset: 3px;
}

.aj-chapter-link:hover {
	color: var(--aj-accent-text);
}

/* The window. */
.aj-chapter__closeform {
	align-self: flex-start;
	margin: 0;
}

.aj-chapter__text {
	margin: 0;
	color: var(--aj-ink-2);
	font-size: 15px;
	line-height: 1.55;
}

.aj-chapter .aj-newsletter {
	gap: 10px;
}

.aj-chapter .aj-gift {
	margin: 0;
}

/* Without JavaScript (a link followed, or back from signing up): the window still covers the page. */
.aj-chooser[open]:not(:modal) {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(20, 17, 15, 0.7);
}

/* The windows themselves never show a focus ring (what's inside them does). */
.aj-chooser:focus,
.aj-chooser:focus-visible {
	outline: none;
}

/* The order page: when the printed copy should arrive. */
.aj-thanks-delivery {
	display: flex;
	align-items: baseline;
	gap: 10px;
	max-width: 640px;
	margin: clamp(28px, 4vw, 40px) 0 0;
	color: var(--aj-ink-2);
	font-size: 16px;
	line-height: 1.55;
}

.aj-thanks-delivery .aj-dot {
	transform: translateY(-2px);
}

.aj-thanks-delivery + .aj-thanks-next {
	margin-top: 20px;
}

/* Two packages in one order: one "Book your first session" card under the other. */
.aj-thanks-first:has(+ .aj-thanks-first) {
	margin-bottom: 16px;
}

.aj-thanks-first + .aj-thanks-first {
	margin-top: 0;
}

/* ==========================================================================
   20. Client testimonials (inc/stories.php): the "Share your experience" form
   ========================================================================== */

.aj-story__names {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px 16px;
}

.aj-optional {
	color: var(--aj-ink-3);
	font-weight: 400;
}

.aj-field__hint {
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.5;
	text-wrap: pretty;
}

.aj-choice {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.aj-choice legend {
	margin: 0 0 6px;
	padding: 0;
	color: var(--aj-ink-3);
	font-size: 13px;
	line-height: 1.4;
}

.aj-story .aj-choice__item,
.aj-story .aj-consent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	color: var(--aj-ink-2);
	font-size: 15px;
	line-height: 1.45;
	cursor: pointer;
}

.aj-story .aj-consent {
	padding: 14px 16px;
	border: 1px solid var(--aj-line);
	border-radius: 14px;
	background: var(--aj-paper);
}

.aj-story input[type="radio"],
.aj-story input[type="checkbox"] {
	-webkit-appearance: auto;
	appearance: auto;
	flex: none;
	width: 18px;
	height: 18px;
	min-height: 0;
	margin: 2px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	accent-color: var(--aj-accent);
}

.aj-perks .aj-perk-eye {
	--aj-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M2.5 12s3.5-6.5 9.5-6.5S21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

/* ==========================================================================
   21. The launch list (inc/launch.php); other shops, the podcast and templates, the ABN
       (inc/links.php)
   ========================================================================== */

/* Under "Be the first to know", while the book can't be bought yet. */
.aj-launch-note {
	margin: 10px 0 0;
	color: var(--aj-ink-3);
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
	text-wrap: pretty;
}

/* Where to Buy: "Also available at", one button per shop. */
.wp-block-buttons.aj-retailers {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 4px 0 0;
}

.aj-retailers .wp-block-button__link {
	min-width: 168px;
}

@media (max-width: 600px) {
	.aj-retailers .wp-block-button {
		flex: 1 1 100%;
	}

	.aj-retailers .wp-block-button__link {
		width: 100%;
	}
}

/* Events & Resources: a card without its link yet. */
.aj-soon {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--aj-ink-3);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.aj-soon::before {
	content: "";
	flex: none;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--aj-accent);
}

body :is(.wp-block-group.is-style-card, .wp-block-group.is-style-card-light) > .aj-soon {
	margin-top: auto;
	padding-top: 8px;
}

/* The ABN at the foot of every page: never split over two lines. */
.aj-abn {
	white-space: nowrap;
}
