/*
 * Foliowick: layout and component styles. Colors, type, spacing, radii and
 * shadows come from theme.json presets (var(--wp--preset--*), var(--wp--custom--*)).
 * Logical properties throughout, so right-to-left languages mirror correctly.
 *
 * 1. Foundations   2. Editorial details   3. Header   4. Homepage
 * 5. Book cards    6. Journal and pages   7. Footer   8. Motion
 */

/* ------------------------------------------------------------------ */
/* 1. Foundations                                                      */
/* ------------------------------------------------------------------ */

:root {
	--fo-rule: var(--wp--custom--rule);
	--fo-ease: var(--wp--custom--transition);
	--fo-announce-h: 2.25rem;
	--fo-gap: var(--wp--custom--card--gap);
	--fo-paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body {
	background-image: var(--wp--custom--grain, var(--fo-paper-grain));
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "kern", "liga";
}

::selection {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--contrast);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--terracotta-ink);
	outline-offset: 3px;
	border-radius: 1px;
}

:where(.has-accent-background-color, .has-accent-deep-background-color, .has-contrast-background-color, .has-terracotta-ink-background-color) :where(a, button, input, [tabindex]):focus-visible {
	outline-color: var(--wp--preset--color--blush);
}

a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--fo-ease), text-decoration-color var(--fo-ease);
}

h1 em,
h2 em,
h3 em,
.wp-block-heading em {
	font-style: italic;
	font-weight: 300;
	color: var(--wp--preset--color--accent);
}

.has-on-accent-color :is(h1, h2, h3) em,
.has-on-accent-color.wp-block-heading em {
	color: var(--wp--preset--color--blush);
}

.wp-element-button,
.wp-block-button__link {
	transition: background-color var(--fo-ease), color var(--fo-ease), border-color var(--fo-ease), transform var(--fo-ease);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.has-on-accent-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--on-accent);
	color: var(--wp--preset--color--accent);
}

.fo-main {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--80);
}

.fo-main.fo-front {
	padding-block-start: 0;
}

/* Every flow section gets generous, consistent air. */
.fo-section {
	margin-block: var(--wp--preset--spacing--70) 0;
}

.fo-main > .alignfull + .fo-section,
.fo-section + .fo-section {
	margin-block-start: var(--wp--preset--spacing--70);
}

.fo-main > .alignfull {
	margin-block-start: var(--wp--preset--spacing--70);
}

.fo-main > .fo-hero + .fo-section {
	margin-block-start: var(--wp--preset--spacing--50);
}

.fo-main > .alignfull:first-child {
	margin-block-start: 0;
}

/* ------------------------------------------------------------------ */
/* 2. Editorial details: eyebrows, chapter markers, rules, fleurons    */
/* ------------------------------------------------------------------ */

.is-style-fo-eyebrow,
.fo-chapter {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--wp--preset--color--terracotta-ink);
}

.has-on-accent-color .is-style-fo-eyebrow,
.has-on-accent-color .fo-chapter {
	color: var(--wp--preset--color--blush);
}

/* "01 —— Discover" */
.fo-chapter {
	display: flex;
	align-items: center;
	gap: 0.85em;
}

.fo-chapter__number {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.45em;
	font-style: italic;
	font-weight: 300;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--contrast);
}

.has-on-accent-color .fo-chapter__number {
	color: var(--wp--preset--color--on-accent);
}

.fo-chapter__number::after {
	content: "";
	display: inline-block;
	inline-size: 2.75rem;
	block-size: 1px;
	margin-inline-start: 0.85em;
	vertical-align: middle;
	background: currentColor;
	opacity: 0.45;
}

.is-style-fo-lede {
	max-inline-size: 34rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 300;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}

/* Fleuron: a short centered rule interrupted by an ornament. */
.wp-block-separator.is-style-fo-fleuron {
	position: relative;
	inline-size: 9rem;
	max-inline-size: 100%;
	block-size: 1rem;
	margin-inline: auto;
	border: 0;
	background:
		linear-gradient(currentColor, currentColor) left center / calc(50% - 1.1rem) 1px no-repeat,
		linear-gradient(currentColor, currentColor) right center / calc(50% - 1.1rem) 1px no-repeat;
	color: var(--wp--preset--color--line);
	opacity: 1;
}

.wp-block-separator.is-style-fo-fleuron::after {
	content: "❦";
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	line-height: 1;
	color: var(--wp--preset--color--terracotta);
}

/* Section heading row: chapter marker + title on one side, a quiet link on the other. */
.fo-section-head {
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	margin-block-end: var(--wp--preset--spacing--60);
	padding-block-end: var(--wp--preset--spacing--40);
	border-block-end: var(--fo-rule);
}

.fo-section-head__text > * + * {
	margin-block-start: 0.85rem;
}

.fo-section-head__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
}

.fo-section-head__intro {
	max-inline-size: 32rem;
	text-wrap: pretty;
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	font-weight: 300;
	color: var(--wp--preset--color--muted);
}

.fo-more {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.fo-more a {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	padding-block: 0.4rem;
	text-decoration: none;
	border-block-end: 1px solid currentColor;
}

.fo-more a::after {
	content: "→";
	font-size: 1.2em;
	letter-spacing: 0;
	transition: transform var(--fo-ease);
}

.fo-more--back a::after {
	content: none;
}

.fo-more--back a::before {
	content: "←";
	font-size: 1.2em;
}

[dir="rtl"] .fo-more a::after,
[dir="rtl"] .fo-more--back a::before {
	transform: scaleX(-1);
}

.fo-more a:hover::after {
	transform: translateX(0.25em);
}

[dir="rtl"] .fo-more a:hover::after {
	transform: scaleX(-1) translateX(0.25em);
}

.fo-demo-note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* Page frame block style: a fine double rule, like a printed page border. */
.is-style-fo-page-frame {
	padding: var(--wp--preset--spacing--50);
	border: var(--fo-rule);
	outline: var(--fo-rule);
	outline-offset: -8px;
}

.wp-block-image.is-style-fo-plate img {
	padding: 0.6rem;
	background: var(--wp--preset--color--paper);
	border: var(--fo-rule);
	box-shadow: var(--wp--preset--shadow--md);
}

/* ------------------------------------------------------------------ */
/* 3. Header                                                           */
/* ------------------------------------------------------------------ */

.fo-header {
	position: relative;
	z-index: 20;
}

.fo-announce {
	block-size: var(--fo-announce-h);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.fo-announce p {
	margin: 0;
	overflow: hidden;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.fo-announce a {
	color: inherit;
}

.fo-header__main {
	position: relative;
	z-index: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas:
		"search brand tools"
		"nav nav nav";
	align-items: center;
	column-gap: var(--wp--preset--spacing--40);
}

/* The bar's background is a grid item, so the compact header can shrink it to the first row. */
.fo-header__main::before {
	content: "";
	z-index: -1;
	grid-column: 1 / -1;
	grid-row: 1 / -1;
	align-self: stretch;
	background: var(--wp--preset--color--base) var(--fo-paper-grain);
	box-shadow: 0 0 0 100vmax var(--wp--preset--color--base);
	clip-path: inset(0 -100vmax);
	border-block-end: var(--fo-rule);
}

.fo-header__main > .wp-block-search { grid-area: search; }
.fo-header__main > .fo-header__brand { grid-area: brand; }
.fo-header__main > .fo-header__tools { grid-area: tools; }
.fo-header__main > .wp-block-navigation { grid-area: nav; }

.fo-header__main > * {
	margin: 0 !important;
}

.fo-header__brand {
	gap: 0.75rem;
	padding-block: 1.4rem 1.2rem;
}

.fo-wordmark {
	margin: 0;
	font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem);
	font-weight: 300;
	letter-spacing: -0.015em;
	white-space: nowrap;
}

.fo-wordmark a {
	color: inherit;
}

.fo-header__main > .fo-header__search {
	justify-self: start;
	inline-size: min(100%, 17rem);
}

.fo-header__main > .fo-header__search .wp-block-search__inside-wrapper {
	padding: 0;
	border: 0;
	border-block-end: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: transparent;
}

.fo-header__main > .fo-header__search .wp-block-search__input {
	min-block-size: 2.75rem;
	padding-inline: 0;
	border: 0;
	background: transparent;
	font-size: var(--wp--preset--font-size--small);
	color: inherit;
}

.fo-header__main > .fo-header__search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.fo-header__main > .fo-header__search .wp-block-search__button {
	margin: 0;
	padding: 0 0.25rem;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

.fo-header__main > .fo-header__search .wp-block-search__button svg {
	inline-size: 1.4rem;
	block-size: 1.4rem;
	fill: currentColor;
}

.fo-header__tools {
	justify-self: end;
	gap: 0.35rem;
}

.fo-header__tools .wc-block-customer-account__link,
.fo-header__tools .wc-block-mini-cart__button {
	display: inline-grid;
	place-items: center;
	min-inline-size: 2.75rem;
	min-block-size: 2.75rem;
	padding: 0;
	color: var(--wp--preset--color--contrast);
	border-radius: 50%;
	transition: background-color var(--fo-ease);
}

.fo-header__tools .wc-block-customer-account__link:hover,
.fo-header__tools .wc-block-mini-cart__button:hover {
	background: var(--wp--preset--color--surface);
}

.fo-header__tools svg {
	inline-size: 1.45rem;
	block-size: 1.45rem;
}

.fo-header__tools .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--terracotta-ink);
	color: var(--wp--preset--color--on-accent);
	font-size: 0.65rem;
	font-weight: 700;
}

/* Navigation row between fine rules. */
.fo-header__main > .fo-header__nav {
	position: relative;
	justify-content: center;
	padding-block: 0;
	border-block-start: var(--fo-rule);
}

.fo-header__nav .wp-block-navigation__container {
	gap: 0 clamp(1rem, 2.4vw, 2.5rem);
}

.fo-header__nav .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.9rem;
	color: var(--wp--preset--color--contrast);
}

.fo-header__nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0.55rem;
	block-size: 1px;
	background: var(--wp--preset--color--terracotta);
	transform: scaleX(0);
	transition: transform var(--fo-ease);
}

.fo-header__nav .wp-block-navigation-item__content:hover::after,
.fo-header__nav .current-menu-item > .wp-block-navigation-item__content::after,
.fo-header__nav [aria-current="page"]::after {
	transform: scaleX(1);
}

/* Mobile overlay menu: a quiet, typographic page. */
.fo-header__nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base) var(--fo-paper-grain);
	color: var(--wp--preset--color--contrast);
}

.fo-header__nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-block-start: var(--wp--preset--spacing--60);
}

.fo-header__nav .is-menu-open .wp-block-navigation__container {
	gap: 0;
	inline-size: 100%;
}

.fo-header__nav .is-menu-open .wp-block-navigation-item {
	inline-size: 100%;
	border-block-end: var(--fo-rule);
}

.fo-header__nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	inline-size: 100%;
	padding-block: 0.85rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	letter-spacing: -0.01em;
}

.fo-header__nav .is-menu-open .wp-block-navigation-item__content::after {
	content: none;
}

.fo-header__nav .wp-block-navigation__responsive-container-open,
.fo-header__nav .wp-block-navigation__responsive-container-close {
	place-items: center;
	min-inline-size: 2.75rem;
	min-block-size: 2.75rem;
}

@media (max-width: 599px) {

	.fo-header__nav .wp-block-navigation__responsive-container-open {
		display: grid;
	}
}

/* Sticky compact header (kit sticky-header component toggles .is-fo-compact). */
.wp-block-template-part:has(> .is-style-fo-sticky-header) {
	position: sticky;
	inset-block-start: 0;
	z-index: 50;
	pointer-events: none;
}

.wp-block-template-part:has(> .is-style-fo-sticky-header) > * {
	pointer-events: auto;
}

.admin-bar .wp-block-template-part:has(> .is-style-fo-sticky-header) {
	inset-block-start: var(--wp-admin--admin-bar--height, 0px);
}

html:has(.is-style-fo-sticky-header) {
	scroll-padding-top: calc(var(--fo-sticky-offset, 0px) + 1rem);
}

.is-style-fo-sticky-header {
	transition: transform var(--fo-ease);
}

.is-style-fo-sticky-header.is-fo-compact:has(> .fo-announce) {
	transform: translateY(calc(-1 * var(--fo-announce-h)));
}

.is-style-fo-sticky-header.is-fo-compact,
.is-style-fo-sticky-header.is-fo-compact .fo-header__bar,
.is-style-fo-sticky-header.is-fo-compact .fo-header__main {
	pointer-events: none;
}

.is-style-fo-sticky-header.is-fo-compact .fo-header__main > * {
	pointer-events: auto;
}

.is-style-fo-sticky-header.is-fo-compact .fo-announce {
	visibility: hidden;
}

.is-style-fo-sticky-header.is-fo-compact .fo-header__main::before {
	grid-row: 1;
	box-shadow: 0 0 0 100vmax var(--wp--preset--color--base), 0 12px 24px -18px rgba(41, 37, 34, 0.45);
	clip-path: inset(0 -100vmax -40px);
}

.is-style-fo-sticky-header.is-fo-compact .fo-header__brand {
	padding-block: 0.7rem;
}

@media (min-width: 600px) {

	.is-style-fo-sticky-header.is-fo-compact .fo-header__main > .wp-block-navigation {
		visibility: hidden;
	}
}

/* Phones: menu button, wordmark and tools on one row; search full width below. */
@media (max-width: 599px) {

	.fo-header__main {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas:
			"nav brand tools"
			"search search search";
		column-gap: 0.25rem;
	}

	.fo-header__main > .wp-block-navigation {
		padding: 0;
		border: 0;
	}

	.fo-header__brand {
		justify-content: center;
		padding-block: 0.8rem;
	}

	.fo-wordmark {
		font-size: 1.6rem;
	}

	.fo-header__brand .wp-block-site-logo img {
		inline-size: 36px;
	}

	.fo-header__main > .fo-header__search {
		inline-size: 100%;
		padding-block-end: 0.75rem;
	}

	.fo-header__main > .fo-header__search .wp-block-search__inside-wrapper {
		padding-inline: 0.9rem 0.25rem;
		border: var(--fo-rule);
		border-radius: var(--wp--custom--radius--pill);
		background: var(--wp--preset--color--paper);
	}

	.fo-header__tools {
		gap: 0;
	}

	.is-style-fo-sticky-header.is-fo-compact .fo-header__main > .fo-header__search {
		visibility: hidden;
	}

	.fo-announce p {
		letter-spacing: 0.1em;
	}
}

/* Checkout: a calmer header. */
.fo-header--checkout {
	border-block-end: var(--fo-rule);
}

.fo-checkout-bar {
	align-items: center;
	padding-block: 1.1rem;
}

/* ------------------------------------------------------------------ */
/* 4. Homepage                                                         */
/* ------------------------------------------------------------------ */

/* 4.1 Hero: an invitation beside a window display of covers. */
.fo-hero {
	position: relative;
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	overflow: clip;
}

.fo-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	align-items: center;
	gap: var(--wp--preset--spacing--70);
}

.fo-hero__text > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

.fo-hero__title {
	max-inline-size: 11ch;
	margin-block: var(--wp--preset--spacing--40) 0 !important;
	font-weight: 300;
	line-height: 0.98;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.fo-hero__title em {
	display: inline-block;
	font-weight: 300;
	letter-spacing: -0.02em;
}

.fo-hero .is-style-fo-lede {
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

.fo-hero__actions {
	gap: 0.75rem 1rem;
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

.fo-hero__stage {
	position: relative;
	aspect-ratio: 6 / 4.6;
}

/* A warm disc and a thin frame behind the covers. */
.fo-hero__stage::before {
	content: "";
	position: absolute;
	inset-block-start: 4%;
	inset-inline-start: 14%;
	inline-size: 72%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--wp--preset--color--sand);
	opacity: 0.85;
}


.fo-hero__covers,
.fo-hero__covers .wc-block-product-template {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
}

.fo-hero__covers .wc-block-product-template {
	display: block !important;
	padding: 0;
	list-style: none;
}

.fo-hero__covers .wc-block-product {
	position: absolute;
	inline-size: 27%;
	margin: 0 !important;
	transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.fo-hero__covers .wc-block-product:nth-child(1) { inset-inline-start: 34%; inset-block-start: 7%; inline-size: 33%; z-index: 5; }
.fo-hero__covers .wc-block-product:nth-child(2) { inset-inline-start: 9%; inset-block-start: 17%; z-index: 4; transform: rotate(-7deg); }
.fo-hero__covers .wc-block-product:nth-child(3) { inset-inline-start: 64%; inset-block-start: 15%; z-index: 4; transform: rotate(6deg); }
.fo-hero__covers .wc-block-product:nth-child(4) { inset-inline-start: -1%; inset-block-start: 47%; inline-size: 22%; z-index: 2; transform: rotate(-13deg); }
.fo-hero__covers .wc-block-product:nth-child(5) { inset-inline-start: 79%; inset-block-start: 46%; inline-size: 22%; z-index: 2; transform: rotate(11deg); }

.fo-hero__covers .wc-block-product:hover {
	z-index: 6;
	transform: translateY(-8px) rotate(0deg);
}

/* Shared cover treatment: spine shading, page edge and a soft book shadow. */
.fo-cover,
.fo-book__cover,
.fo-mini__cover,
.fo-pick__cover {
	margin: 0 !important;
}

:is(.fo-cover, .fo-book__cover, .fo-mini__cover, .fo-pick__cover) a {
	position: relative;
	display: block;
	border-radius: var(--wp--custom--radius--cover);
}

:is(.fo-cover, .fo-book__cover, .fo-mini__cover, .fo-pick__cover) img {
	display: block;
	inline-size: 100%;
	block-size: auto !important;
	border-radius: var(--wp--custom--radius--cover);
	box-shadow: var(--wp--preset--shadow--book);
	background: var(--wp--preset--color--surface);
	transition: box-shadow var(--fo-ease), transform var(--fo-ease);
}

:is(.fo-cover, .fo-book__cover, .fo-mini__cover, .fo-pick__cover) a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.22) 0, rgba(255, 255, 255, 0.18) 1.6%, rgba(0, 0, 0, 0.08) 3.2%, rgba(255, 255, 255, 0.06) 5%, transparent 9%);
}

[dir="rtl"] :is(.fo-cover, .fo-book__cover, .fo-mini__cover, .fo-pick__cover) a::after {
	transform: scaleX(-1);
}

/* 4.2 Genres: an editorial grid with varied proportions. */
.fo-genres__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: minmax(15rem, auto);
	grid-auto-flow: dense;
	gap: 1rem;
}

.fo-genre {
	position: relative;
	display: flex;
	border-radius: var(--wp--custom--radius--card);
	flex-direction: column;
	justify-content: flex-end;
	min-block-size: 15rem;
	margin: 0 !important;
	padding: 1.5rem;
	overflow: hidden;
	isolation: isolate;
}

.fo-genre:nth-child(1) {
	grid-row: span 2;
}

.fo-genre:nth-child(6),
.fo-genre:nth-child(7):nth-last-child(2),
.fo-genre:nth-child(8):last-child {
	grid-column: span 2;
}

/* The book stack sits in the flow above the name, bleeding off the top edge, so it never covers the text. */
.fo-genre__art {
	align-self: flex-end;
	inline-size: min(78%, 15rem);
	margin: -2.75rem -1.75rem auto 0 !important;
	transition: transform 520ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

[dir="rtl"] .fo-genre__art {
	margin: -2.75rem 0 auto -1.75rem !important;
}

.fo-genre:nth-child(1) .fo-genre__art {
	align-self: center;
	inline-size: 108%;
	max-inline-size: none;
	margin: -1rem -1.5rem auto !important;
}

.fo-genre__art img {
	display: block;
	inline-size: 100%;
	block-size: auto;
}

.fo-genre:hover .fo-genre__art {
	transform: translateY(-8px) rotate(-1.5deg);
}

.fo-genre__count {
	position: absolute;
	inset-block-start: 1.5rem;
	inset-inline-start: 1.5rem;
}

.fo-genre__count {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.85;
}

.fo-genre__name {
	max-inline-size: 9ch;
	margin: 0;
	font-size: clamp(1.5rem, 1.1rem + 1vw, 2.1rem);
	line-height: 1.02;
	color: inherit;
}

.fo-genre:nth-child(1) .fo-genre__name {
	font-size: clamp(2rem, 1.3rem + 2vw, 3.25rem);
}

.fo-genre__name a {
	color: inherit;
	text-decoration: none;
}

/* The whole tile is the link. */
.fo-genre__name a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}

.fo-genre__name a::after {
	content: " →";
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.6em;
	opacity: 0;
	transition: opacity var(--fo-ease);
}

.fo-genre:hover .fo-genre__name a::after,
.fo-genre__name a:focus-visible::after {
	opacity: 1;
}

.fo-genre:has(a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--terracotta-ink);
	outline-offset: 3px;
}

/* 4.4 The editor's pick. */
.fo-pick {
	padding-block: var(--wp--preset--spacing--80);
	overflow: clip;
}

.fo-pick__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: var(--wp--preset--spacing--70);
}

.fo-pick__stage {
	position: relative;
	display: grid;
	place-items: center;
	padding-block: var(--wp--preset--spacing--60);
}

/* An arched window behind the book. */
.fo-pick__stage::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline: 12%;
	z-index: 0;
	border-radius: 999px 999px 0 0;
	background: var(--wp--preset--color--sand);
}

.fo-pick__stage::after {
	content: "";
	position: absolute;
	inset-block: -1.25rem 0;
	inset-inline: calc(12% - 1.25rem);
	border: 1px solid var(--wp--preset--color--contrast);
	border-block-end: 0;
	border-radius: 999px 999px 0 0;
	opacity: 0.25;
	pointer-events: none;
}

.fo-pick__cover {
	position: relative;
	z-index: 1;
	inline-size: min(62%, 22rem);
}

/* A stack of pages behind the cover. */
.fo-pick__cover img {
	box-shadow:
		5px 5px 0 -1px var(--wp--preset--color--paper),
		5px 5px 0 0 var(--wp--preset--color--line),
		10px 10px 0 -1px var(--wp--preset--color--paper),
		10px 10px 0 0 var(--wp--preset--color--line),
		var(--wp--preset--shadow--book),
		0 50px 60px -30px rgba(41, 37, 34, 0.55);
}

.fo-pick__text > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.fo-pick__title {
	margin-block-start: var(--wp--preset--spacing--40) !important;
	line-height: 1.02;
	letter-spacing: -0.025em;
}

.fo-pick__title a {
	color: inherit;
}

.fo-pick__author,
.fo-product__author {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
	font-weight: 300;
	color: var(--wp--preset--color--muted);
}

.fo-pick__author a,
.fo-product__author a {
	color: var(--wp--preset--color--contrast);
	text-decoration-color: var(--wp--preset--color--terracotta);
}

.fo-pick .is-style-fo-fleuron {
	margin-inline: 0 !important;
	margin-block: var(--wp--preset--spacing--40) !important;
	inline-size: 7rem;
}

.fo-pick__summary,
.fo-pick__summary p {
	max-inline-size: 34rem;
	font-family: var(--wp--preset--font-family--reading);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
}

.fo-pick__why {
	max-inline-size: 30rem;
	padding-inline-start: 1rem;
	border-inline-start: 2px solid var(--wp--preset--color--terracotta);
	font-size: var(--wp--preset--font-size--small);
	font-style: italic;
	color: var(--wp--preset--color--muted);
}

.fo-pick__buy {
	gap: 1rem 1.75rem;
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

.fo-pick__price,
.fo-pick__price .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
}

.fo-pick__button {
	margin: 0;
}

/* 4.5 New & noteworthy: numbered, compact, sideways. */
.fo-new__row {
	position: relative;
	counter-reset: fo-new;
}

.fo-new__row .wc-block-product-template {
	display: grid !important;
	grid-auto-flow: column;
	grid-auto-columns: max(19rem, calc((100% - 2 * var(--fo-gap)) / 3));
	grid-template-columns: none !important;
	gap: var(--fo-gap) !important;
	margin: 0;
	padding: 0 0 1.25rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: var(--wp--preset--color--line) transparent;
}

.fo-new__row .wc-block-product {
	position: relative;
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	align-items: start;
	gap: 1.25rem;
	padding: 1.5rem 1.25rem 1.25rem;
	border-block-start: 1px solid var(--wp--preset--color--contrast);
	counter-increment: fo-new;
	scroll-snap-align: start;
}

.fo-new__row .wc-block-product::before {
	content: counter(fo-new, decimal-leading-zero);
	position: absolute;
	inset-block-start: 0.6rem;
	inset-inline-end: 0.25rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-style: italic;
	font-weight: 300;
	color: var(--wp--preset--color--terracotta-ink);
}

.fo-mini__body > * {
	margin: 0;
}

.fo-mini__body > * + * {
	margin-block-start: 0.4rem;
}

.fo-mini__genre {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.fo-mini__genre a,
.fo-mini__author a {
	color: inherit;
	text-decoration: none;
}

.fo-mini__title {
	padding-inline-end: 1.5rem;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.2;
}

.fo-mini__title a {
	text-decoration: none;
}

.fo-mini__title a:hover {
	text-decoration: underline;
}

.fo-mini__author {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	color: var(--wp--preset--color--muted);
}

.fo-mini__price {
	margin-block-start: 0.75rem !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

/* Carousel controls (kit carousel component). */
.fo-new__row .fo-carousel__btn {
	display: none;
	inset-block-start: auto !important;
	inset-block-end: calc(50% - 6.5rem);
	inline-size: 2.75rem;
	block-size: 2.75rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: none;
	cursor: pointer;
}

.fo-new__row.has-overflow > .fo-carousel__btn {
	display: inline-flex;
	position: absolute;
	z-index: 3;
	align-items: center;
	justify-content: center;
}

.fo-new__row .fo-carousel__btn--prev {
	inset-inline-start: -1.375rem;
}

.fo-new__row .fo-carousel__btn--next {
	inset-inline-end: -1.375rem;
}

@media (max-width: 1439px) {

	.fo-new__row .fo-carousel__btn--prev {
		inset-inline-start: 0.5rem;
	}

	.fo-new__row .fo-carousel__btn--next {
		inset-inline-end: 0.5rem;
	}
}

.fo-new__row .fo-carousel__btn:hover:not([disabled]) {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.fo-new__row .fo-carousel__btn[disabled] {
	opacity: 0;
	pointer-events: none;
}

/* 4.6 The literary statement. */
.fo-statement {
	position: relative;
	padding-block: var(--wp--preset--spacing--80);
	background-image:
		linear-gradient(90deg, transparent calc(6% - 0.5px), rgba(255, 253, 248, 0.16) calc(6% - 0.5px), rgba(255, 253, 248, 0.16) calc(6% + 0.5px), transparent calc(6% + 0.5px)),
		linear-gradient(90deg, transparent calc(94% - 0.5px), rgba(255, 253, 248, 0.16) calc(94% - 0.5px), rgba(255, 253, 248, 0.16) calc(94% + 0.5px), transparent calc(94% + 0.5px));
}

.fo-statement__text {
	position: relative;
	max-inline-size: 18ch;
	margin-inline: auto !important;
	margin-block-start: var(--wp--preset--spacing--50) !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--display);
	font-style: italic;
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.fo-statement__text::before {
	content: "“";
	display: block;
	block-size: 0.55em;
	font-size: 2.2em;
	font-style: normal;
	line-height: 1;
	color: var(--wp--preset--color--blush);
}

.fo-statement__eyebrow {
	color: var(--wp--preset--color--blush) !important;
}

.fo-statement .is-style-fo-fleuron {
	margin-block-start: var(--wp--preset--spacing--60) !important;
	color: rgba(255, 253, 248, 0.3);
}

.fo-statement .is-style-fo-fleuron::after {
	color: var(--wp--preset--color--blush);
}

/* 4.7 Reading lists: magazine features. */
.fo-lists__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.fo-list {
	position: relative;
	display: flex;
	border-radius: var(--wp--custom--radius--card);
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	margin: 0 !important;
	padding: var(--wp--preset--spacing--50);
	isolation: isolate;
}

.fo-list:nth-child(1),
.fo-list:nth-child(4) {
	grid-column: span 2;
	flex-direction: row;
	align-items: center;
}

.fo-list:nth-child(1) > *,
.fo-list:nth-child(4) > * {
	flex: 1 1 50%;
}

.fo-list__covers {
	margin: 0 !important;
}

.fo-list__covers .wc-block-product-template {
	display: flex !important;
	justify-content: center;
	align-items: flex-end;
	gap: 0 !important;
	margin: 0;
	padding: 1rem 0 0;
	list-style: none;
}

.fo-list__covers .wc-block-product {
	flex: 0 0 34%;
	max-inline-size: 34%;
	margin: 0 !important;
	transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.fo-list__covers .wc-block-product + .wc-block-product {
	margin-inline-start: -9% !important;
}

.fo-list__covers .wc-block-product:nth-child(1) { transform: rotate(-6deg) translateY(4%); z-index: 1; }
.fo-list__covers .wc-block-product:nth-child(2) { z-index: 3; transform: translateY(-4%); }
.fo-list__covers .wc-block-product:nth-child(3) { transform: rotate(6deg) translateY(4%); z-index: 2; }

.fo-list:hover .fo-list__covers .wc-block-product:nth-child(1) { transform: rotate(-9deg) translate(-6%, 2%); }
.fo-list:hover .fo-list__covers .wc-block-product:nth-child(3) { transform: rotate(9deg) translate(6%, 2%); }

.fo-list__text > * {
	margin: 0;
}

.fo-list__text > * + * {
	margin-block-start: 0.75rem;
}

.fo-list__meta {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.8;
}

.fo-list__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.05;
	color: inherit;
}

.fo-list:nth-child(1) .fo-list__title {
	font-size: var(--wp--preset--font-size--xx-large);
}

.fo-list__title a {
	color: inherit;
	text-decoration: none;
}

.fo-list__title a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 4;
}

.fo-list:has(.fo-list__title a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--terracotta-ink);
	outline-offset: 3px;
}

.fo-list__desc {
	max-inline-size: 26rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	font-weight: 300;
	line-height: 1.5;
}


/* 4.8 Meet the author. */
.fo-author {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 7fr);
	align-items: center;
	gap: var(--wp--preset--spacing--60);
	padding-block: var(--wp--preset--spacing--60);
	border-block: var(--fo-rule);
}

/* A printed bookplate with the author's initials. */
.fo-author__plate {
	display: flex;
	flex-direction: column;
	justify-content: center;
	aspect-ratio: 4 / 5;
	margin: 0 !important;
	padding: 1.5rem;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--accent);
	outline: 1px solid var(--wp--preset--color--accent);
	outline-offset: -10px;
	box-shadow: var(--wp--preset--shadow--md);
	transform: rotate(-2deg);
}

.fo-author__exlibris {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--terracotta-ink);
}

.fo-author__exlibris::before,
.fo-author__exlibris::after {
	content: "✦";
	margin-inline: 0.75em;
	letter-spacing: 0;
}

.fo-author__monogram {
	margin: 0.25rem 0 0 !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(4rem, 3rem + 4vw, 7rem);
	font-style: italic;
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--accent);
}

.fo-author__text > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.fo-author__name {
	margin-block-start: var(--wp--preset--spacing--40) !important;
	line-height: 1;
}

.fo-author__bio {
	font-family: var(--wp--preset--font-family--reading);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}

.fo-author__books {
	margin: 0 !important;
}

.fo-author .fo-author__books .wc-block-product-template {
	--fo-cols: 3;
}

/* 4.9 The journal on the homepage and below articles. */
.fo-journal__list {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	margin: 0;
	padding: 0;
	list-style: none;
}

.fo-journal__list > li {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	align-items: start;
	gap: 1.5rem;
	margin: 0;
	padding-block-end: var(--wp--preset--spacing--40);
	border-block-end: var(--fo-rule);
}

.fo-journal__list {
	align-items: start;
}

.fo-journal__list > li:first-child {
	grid-row: span 3;
	grid-template-columns: minmax(0, 1fr);
	border: 0;
}

.fo-journal__query--even .fo-journal__list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fo-journal__query--even .fo-journal__list > li,
.fo-journal__query--even .fo-journal__list > li:first-child {
	grid-row: auto;
	grid-template-columns: minmax(0, 1fr);
	border: 0;
}

.fo-entry__image {
	margin: 0 !important;
	overflow: hidden;
}

.fo-entry__image img {
	transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

li:hover > .fo-entry__image img {
	transform: scale(1.025);
}

.fo-entry__text > * {
	margin: 0;
}

.fo-entry__text > * + * {
	margin-block-start: 0.6rem;
}

.fo-entry__kicker,
.fo-article__kicker {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--terracotta-ink);
}

.fo-entry__kicker a,
.fo-article__kicker a {
	color: inherit;
	text-decoration: none;
}

.fo-entry__title {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.15;
	text-wrap: balance;
}

.fo-journal__list > li:first-child .fo-entry__title,
.fo-feed__list > li:first-child .fo-entry__title {
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.04;
	letter-spacing: -0.02em;
}

.fo-journal__query--even .fo-journal__list > li:first-child .fo-entry__title {
	font-size: var(--wp--preset--font-size--large);
}

.fo-entry__title a {
	text-decoration: none;
}

.fo-entry__title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--terracotta);
}

.fo-entry__excerpt {
	font-family: var(--wp--preset--font-family--reading);
	color: var(--wp--preset--color--muted);
}

.fo-entry__excerpt p {
	margin: 0;
}

.fo-entry__excerpt .wp-block-post-excerpt__more-text {
	display: none;
}

.fo-journal__list > li:not(:first-child) .fo-entry__excerpt {
	display: none;
}

.fo-entry__meta {
	gap: 0.35rem 1rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.fo-entry__meta > * {
	margin: 0;
	font-size: inherit;
}

.fo-entry__meta > * + *::before {
	content: "·";
	margin-inline-end: 1rem;
}

/* 4.10 Our authors: a wall of bookplates. */
.fo-writers__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
}

.fo-writer {
	position: relative;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--card);
	text-align: center;
	transition: transform var(--wp--custom--transition), box-shadow var(--wp--custom--transition);
}

.fo-writer:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--md);
}

.fo-writer > * {
	margin: 0;
}

.fo-writer > * + * {
	margin-block-start: 0.6rem;
}

/* The monogram sits in a double-ruled oval, like a printer's bookplate. */
.fo-writer__monogram {
	display: grid;
	place-items: center;
	inline-size: 5.5rem;
	aspect-ratio: 4 / 5;
	margin: 0 auto 1rem !important;
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 50%;
	outline: 1px solid var(--wp--preset--color--accent);
	outline-offset: 4px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2rem;
	font-style: italic;
	font-weight: 300;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--accent);
}

.fo-writer__name {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.1;
}

.fo-writer__name a {
	color: inherit;
	text-decoration: none;
}

.fo-writer__name a::before {
	content: "";
	position: absolute;
	inset: 0;
}

.fo-writer:has(a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--terracotta-ink);
	outline-offset: 3px;
}

.fo-writer__count {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--terracotta-ink);
}

.fo-writer__bio {
	font-family: var(--wp--preset--font-family--reading);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}

/* 4.11 Formats: one large tile per format, with a fan of its covers. */
.fo-formats__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
	gap: 1rem;
}

.fo-format {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	margin: 0 !important;
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--custom--radius--card);
	isolation: isolate;
}

.fo-format__text > * {
	margin: 0;
}

.fo-format__text > * + * {
	margin-block-start: 0.75rem;
}

.fo-format__count {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.8;
}

.fo-format__name {
	line-height: 1;
	color: inherit;
}

.fo-format__name a {
	color: inherit;
	text-decoration: none;
}

.fo-format__name a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 4;
}

.fo-format:has(.fo-format__name a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--terracotta-ink);
	outline-offset: 3px;
}

.fo-format__desc {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	font-weight: 300;
	line-height: 1.5;
}

.fo-format:hover .fo-list__covers .wc-block-product:nth-child(1) { transform: rotate(-9deg) translate(-6%, 2%); }
.fo-format:hover .fo-list__covers .wc-block-product:nth-child(3) { transform: rotate(9deg) translate(6%, 2%); }

@media (max-width: 1100px) {
	.fo-writers__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.fo-writer {
		padding: var(--wp--preset--spacing--40) 0.75rem;
	}

	.fo-writer__monogram {
		inline-size: 3.75rem;
		font-size: 1.4rem;
	}

	.fo-writer__name {
		font-size: var(--wp--preset--font-size--medium);
	}

	/* Two bookplates a row; the biography waits on the author's page. */
	.fo-writer__bio {
		display: none;
	}

	.fo-format {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ------------------------------------------------------------------ */
/* 5. Book cards: covers stand on a page rule, text sits beneath       */
/* ------------------------------------------------------------------ */

.fo-products .wc-block-product-template {
	--fo-cols: 5;
	display: grid !important;
	grid-template-columns: repeat(var(--fo-cols), minmax(0, 1fr)) !important;
	gap: var(--wp--preset--spacing--60) var(--fo-gap) !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fo-catalog__grid .wc-block-product-template {
	--fo-cols: 4;
}

.fo-shelf .wc-block-product-template {
	--fo-cols: 4;
}

.fo-products .wc-block-product {
	position: relative;
	display: flex;
	flex-direction: column;
	inline-size: auto !important;
	max-inline-size: none !important;
	margin: 0 !important;
	container-type: inline-size;
}

/* The cover area is always 2:3; covers of any shape stand on its bottom edge. */
.fo-book__cover {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	aspect-ratio: 2 / 3;
	container-type: inline-size;
}

.fo-book__cover a {
	inline-size: fit-content;
	max-inline-size: 100%;
}

.fo-book__cover img {
	inline-size: auto;
	max-inline-size: 100%;
	max-block-size: 150cqw;
}

/* The shelf: a fine rule across the row at the foot of the covers. */
.fo-products .wc-block-product::before {
	content: "";
	position: absolute;
	inset-block-start: 150cqw;
	inset-inline: calc(var(--fo-gap) / -2);
	block-size: 1px;
	background: var(--wp--preset--color--line);
}

.fo-products .wc-block-product:hover .fo-book__cover img,
.fo-products .wc-block-product:focus-within .fo-book__cover img {
	transform: translateY(-6px);
	box-shadow: 0 1px 1px rgba(41, 37, 34, 0.18), 0 14px 18px -8px rgba(41, 37, 34, 0.3), 0 34px 40px -22px rgba(41, 37, 34, 0.5);
}

.fo-book__cover a::after {
	transition: transform var(--fo-ease);
}

.fo-products .wc-block-product:hover .fo-book__cover a::after {
	transform: translateY(-6px);
}

.fo-book__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.35rem;
	padding-block-start: 1.15rem;
}

.fo-book__body > * {
	margin: 0 !important;
}

.fo-book__author {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--wp--preset--color--terracotta-ink);
}

.fo-book__author a {
	color: inherit;
	text-decoration: none;
}

.fo-book__author a:hover {
	text-decoration: underline;
}

.fo-book__title {
	font-size: 1.1875rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: -0.005em;
	text-wrap: balance;
}

.fo-book__title a {
	text-decoration: none;
}

.fo-book__title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--terracotta);
}

.fo-book__rating .wc-block-components-product-rating {
	margin: 0;
}

.fo-book__buy {
	align-items: center;
	gap: 0.25rem 0.75rem;
	margin-block-start: auto !important;
	padding-block-start: 0.5rem;
}

.fo-book__price .wc-block-components-product-price {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

/* Purchase action: an understated text button, always visible. */
.fo-book__button {
	margin: 0 !important;
}

.fo-book__button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-block-size: 2.25rem;
	padding: 0 !important;
	border: 0;
	border-block-end: 1px solid currentColor;
	border-radius: 0;
	background: transparent !important;
	color: var(--wp--preset--color--contrast) !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fo-book__button .wp-block-button__link:hover {
	color: var(--wp--preset--color--terracotta-ink) !important;
}

.fo-book__button .wc-block-components-product-button__button.loading {
	opacity: 0.6;
}

.fo-book__button .added_to_cart,
.fo-book__button .wc-block-components-product-button__added-to-cart {
	font-size: 0.75rem;
}

@media (max-width: 1200px) {

	.fo-products .wc-block-product-template {
		--fo-cols: 4;
	}

	.fo-catalog__grid .wc-block-product-template {
		--fo-cols: 3;
	}
}

@media (max-width: 900px) {

	.fo-products .wc-block-product-template,
	.fo-catalog__grid .wc-block-product-template {
		--fo-cols: 3;
	}
}

@media (max-width: 600px) {

	.fo-products .wc-block-product-template,
	.fo-catalog__grid .wc-block-product-template,
	.fo-author__books .wc-block-product-template {
		--fo-cols: 2;
		row-gap: var(--wp--preset--spacing--50) !important;
	}

	.fo-book__title {
		font-size: 1.0625rem;
	}

	.fo-bookshelf .fo-shelf .wc-block-product:nth-child(n+7) {
		display: none;
	}

	.fo-book__buy {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ------------------------------------------------------------------ */
/* 6. Journal and pages                                                */
/* ------------------------------------------------------------------ */

.fo-masthead {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	margin-block-end: var(--wp--preset--spacing--60);
	border-block-end: var(--fo-rule);
}

.fo-masthead > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.fo-masthead__title {
	margin-block-start: var(--wp--preset--spacing--40) !important;
	font-size: var(--wp--preset--font-size--display) !important;
	line-height: 0.98;
	letter-spacing: -0.035em;
}

.fo-masthead__intro p {
	margin: 0;
}

/* Journal index: the newest post leads, the rest fall into a grid. */
.fo-feed__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--60) var(--fo-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.fo-feed__list > li {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin: 0;
}

.fo-feed__list > li:first-child {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	align-items: center;
	gap: var(--wp--preset--spacing--60);
	padding-block-end: var(--wp--preset--spacing--60);
	border-block-end: var(--fo-rule);
}

.fo-feed__list > li:first-child .fo-entry__excerpt {
	font-size: var(--wp--preset--font-size--medium);
}

.fo-pagination {
	margin-block-start: var(--wp--preset--spacing--70);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: var(--fo-rule);
	font-size: var(--wp--preset--font-size--small);
	gap: 0.5rem;
}

.fo-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-inline-size: 2.5rem;
	min-block-size: 2.5rem;
	text-decoration: none;
}

.fo-pagination .page-numbers.current {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-style: italic;
	border-block-end: 1px solid var(--wp--preset--color--terracotta);
}

.fo-empty {
	padding-block: var(--wp--preset--spacing--60);
	text-align: center;
}

.fo-empty__mark {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 3rem;
	color: var(--wp--preset--color--terracotta);
}

.fo-search-again .wp-block-search__inside-wrapper,
.fo-search-again.wp-block-search .wp-block-search__inside-wrapper {
	border-color: var(--wp--preset--color--line);
}

.wp-block-search__input {
	min-block-size: 2.75rem;
	padding-inline: 1rem;
	border-color: var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--contrast);
}

/* Single article. */
.fo-article__head {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}

.fo-article__head > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.fo-article__title {
	margin-block-start: var(--wp--preset--spacing--40) !important;
	font-size: clamp(2.5rem, 1.5rem + 3.6vw, 4.75rem) !important;
	line-height: 1;
	letter-spacing: -0.03em;
	text-wrap: balance;
}

.fo-article__dek {
	max-inline-size: 38rem;
	margin-inline: auto !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
	font-weight: 300;
	line-height: 1.45;
	color: var(--wp--preset--color--muted);
}

.fo-article__dek p {
	margin: 0;
}

.fo-article__dek .wp-block-post-excerpt__more-text {
	display: none;
}

.fo-byline {
	align-items: center;
	gap: 0.5rem 1.25rem;
	margin-block-start: var(--wp--preset--spacing--50) !important;
	padding-block: 1rem;
	border-block: var(--fo-rule);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.fo-byline > * {
	margin: 0;
	font-size: inherit;
}

.fo-byline > * + *::before {
	content: "·";
	margin-inline-end: 1.25rem;
}

.fo-byline .wp-block-post-author {
	align-items: center;
}

.fo-byline .wp-block-post-author__avatar img {
	border-radius: 50%;
}

.fo-byline .wp-block-post-author__byline {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.fo-byline .wp-block-post-author__name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	font-style: italic;
	color: var(--wp--preset--color--contrast);
}

.fo-article__image {
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60) !important;
}

/* Prose: the reading column used by posts, pages and book descriptions. */
.fo-prose {
	font-family: var(--wp--preset--font-family--reading);
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	line-height: 1.75;
}

.fo-prose > * {
	max-inline-size: var(--wp--style--global--content-size);
}

.fo-prose > p:first-of-type::first-letter,
.fo-product__description > p:first-of-type::first-letter {
	float: inline-start;
	margin: 0.08em 0.12em 0 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 4.1em;
	font-weight: 300;
	line-height: 0.82;
	color: var(--wp--preset--color--accent);
}

.fo-prose h2,
.fo-prose h3 {
	margin-block: 2.2em 0.6em;
	line-height: 1.15;
}

.fo-prose h2 {
	font-size: var(--wp--preset--font-size--x-large);
}

.fo-prose a {
	text-decoration-color: var(--wp--preset--color--terracotta);
}

.fo-prose ul,
.fo-prose ol {
	padding-inline-start: 1.25em;
}

.fo-prose li::marker {
	color: var(--wp--preset--color--terracotta);
}

.fo-prose figcaption,
.wp-block-image figcaption,
.wp-element-caption {
	margin-block-start: 0.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	text-align: center;
	color: var(--wp--preset--color--muted);
}

/* Quotes: large italic serif hung from a terracotta mark. */
.wp-block-quote {
	position: relative;
	margin-block: 2.5em;
	padding-inline-start: 2.25rem !important;
}

.wp-block-quote::before {
	content: "“";
	position: absolute;
	inset-inline-start: -0.25rem;
	inset-block-start: -0.35em;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 4.5rem;
	font-style: normal;
	line-height: 1;
	color: var(--wp--preset--color--terracotta);
}

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

.wp-block-quote cite {
	display: block;
	margin-block-start: 1rem;
	color: var(--wp--preset--color--muted);
}

.wp-block-pullquote {
	margin-block: 2.75em;
	text-align: center;
}

.wp-block-pullquote p {
	font-size: inherit;
	line-height: inherit;
}

.wp-block-quote.is-style-fo-statement {
	padding-inline-start: 0 !important;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.12;
	text-align: center;
}

.wp-block-quote.is-style-fo-statement::before {
	position: static;
	display: block;
	block-size: 0.5em;
}

.fo-article__foot {
	margin-block-start: var(--wp--preset--spacing--60);
}

.fo-article__foot > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

.fo-article__tags {
	text-align: center;
	color: var(--wp--preset--color--muted);
}

.fo-article__bio {
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--reading);
	font-style: italic;
}

.fo-journal--more {
	margin-block-start: var(--wp--preset--spacing--80);
}

/* Pages. */
.fo-page__head {
	padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	border-block-end: var(--fo-rule);
	margin-block-end: var(--wp--preset--spacing--60);
}

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

.fo-page--wide {
	padding-block-start: 0;
}

.fo-lede,
.is-style-fo-lede.fo-lede {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 300;
	line-height: 1.45;
}

/* 404. */
.fo-404__inner {
	padding-block: var(--wp--preset--spacing--70);
}

.fo-404__number {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(5rem, 3rem + 8vw, 10rem);
	font-style: italic;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--sand);
}

.fo-404__inner > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

/* ------------------------------------------------------------------ */
/* 7. Footer                                                           */
/* ------------------------------------------------------------------ */

.fo-footer {
	padding-block: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
}

.fo-footer a {
	color: var(--wp--preset--color--on-accent-muted);
	text-decoration: none;
}

.fo-footer a:hover {
	color: var(--wp--preset--color--on-accent);
	text-decoration: underline;
}

.fo-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 2.2fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.6fr);
	gap: var(--wp--preset--spacing--50);
	padding-block-end: var(--wp--preset--spacing--60);
}

.fo-footer__top > * {
	margin: 0 !important;
}

.fo-footer__brand > * + * {
	margin-block-start: 1.25rem;
}

.fo-footer__wordmark {
	font-size: clamp(2.25rem, 1.5rem + 2vw, 3.25rem);
}

.fo-footer__wordmark a {
	color: var(--wp--preset--color--on-accent);
}

.fo-footer__about {
	max-inline-size: 22rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	font-weight: 300;
	line-height: 1.5;
	color: var(--wp--preset--color--on-accent-muted);
}

.fo-footer__heading {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blush);
}

.fo-footer__nav .wp-block-navigation__container {
	gap: 0.15rem;
}

.fo-footer__nav .wp-block-navigation-item__content {
	padding-block: 0.3rem;
}

.fo-footer__letter p {
	color: var(--wp--preset--color--on-accent-muted);
}

.fo-footer .fo-more a {
	color: var(--wp--preset--color--on-accent);
}

.fo-social {
	gap: 0.5rem;
}

.fo-social .wp-social-link {
	color: var(--wp--preset--color--on-accent);
}

.fo-footer__legal {
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid rgba(255, 253, 248, 0.16);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--on-accent-muted);
}

.fo-footer__legal p {
	margin: 0;
}

/* ------------------------------------------------------------------ */
/* Responsive layout for the homepage and journal                      */
/* ------------------------------------------------------------------ */

@media (max-width: 1100px) {

	.fo-footer__top {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fo-footer__brand,
	.fo-footer__letter {
		grid-column: 1 / -1;
	}

	.fo-author {
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	}

	.fo-author__books {
		grid-column: 1 / -1;
	}
}

@media (max-width: 900px) {

	.fo-hero__grid,
	.fo-pick__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.fo-hero__stage {
		inline-size: min(100%, 36rem);
		margin-inline: auto;
	}

	.fo-genres__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fo-genre:nth-child(1) {
		grid-column: span 2;
		grid-row: span 1;
		min-block-size: 20rem;
	}

		.fo-genre:nth-child(1) .fo-genre__art {
		inline-size: min(70%, 22rem);
	}


	.fo-lists__grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.fo-list:nth-child(1),
	.fo-list:nth-child(4) {
		grid-column: 1 / -1;
	}

	.fo-journal__list,
	.fo-feed__list,
	.fo-journal__query--even .fo-journal__list {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.fo-journal__list > li:first-child {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.fo-journal__list > li {
		grid-template-columns: minmax(0, 1fr);
	}

	.fo-feed__list > li:first-child {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}
}

@media (max-width: 600px) {

	.fo-section-head {
		margin-block-end: var(--wp--preset--spacing--50);
	}

	.fo-hero {
		padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	}

	.fo-hero__grid {
		gap: var(--wp--preset--spacing--50);
	}

	.fo-hero__title {
		font-size: clamp(2.6rem, 11vw, 3.4rem) !important;
	}

	.fo-hero__stage {
		order: -1;
		aspect-ratio: 1 / 0.82;
	}

	.fo-hero__actions .wp-block-button {
		flex: 1 1 100%;
	}

	.fo-hero__actions .wp-block-button__link {
		inline-size: 100%;
	}

	.fo-genres__grid {
		grid-auto-rows: minmax(12rem, auto);
		gap: 0.6rem;
	}

	.fo-genre {
		min-block-size: 12rem;
		padding: 1rem;
	}

	.fo-genre__name {
		font-size: 1.35rem;
	}

	.fo-genre__count {
		inset-block-start: 1rem;
		inset-inline-start: 1rem;
	}

	.fo-genre__art {
		margin: -1.5rem -1rem auto 0 !important;
	}

	.fo-pick__cover {
		inline-size: min(70%, 18rem);
	}

	.fo-new__row .wc-block-product-template {
		grid-auto-columns: 85%;
	}

	.fo-new__row .fo-carousel__btn {
		display: none !important;
	}

	.fo-lists__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.fo-list:nth-child(n) {
		grid-column: auto;
		flex-direction: column;
		align-items: stretch;
	}

	.fo-author {
		grid-template-columns: minmax(0, 1fr);
	}

	.fo-author__plate {
		inline-size: 52%;
		margin-inline: auto !important;
	}

	.fo-journal__list,
	.fo-feed__list,
	.fo-journal__query--even .fo-journal__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.fo-journal__list > li:not(:first-child) {
		grid-template-columns: 7rem minmax(0, 1fr);
		gap: 1rem;
	}

	.fo-footer__top {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.fo-statement {
		background-image: none;
	}

	.fo-byline > * + *::before {
		content: none;
	}
}

/* ------------------------------------------------------------------ */
/* 8. Quiet motion                                                     */
/* ------------------------------------------------------------------ */

/* Sections settle into place like a turned page, only where the browser supports scroll timelines. */
@supports (animation-timeline: view()) {

	@media (prefers-reduced-motion: no-preference) {

		.fo-section,
		.fo-pick__grid,
		.fo-statement__text {
			animation: fo-turn linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 28%;
		}
	}
}

@keyframes fo-turn {

	from {
		opacity: 0.001;
		transform: translateY(2.5rem);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ------------------------------------------------------------------ */
/* 9. Header and footer variations (patterns/header-*.php, footer-*.php) */
/* ------------------------------------------------------------------ */

/* Icon search (library bar, minimal): a round button that opens the field in place. */
.fo-header__tools .fo-header__search {
	margin: 0;
}

.fo-header__tools .fo-header__search .wp-block-search__inside-wrapper {
	padding: 0;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: transparent;
}

.fo-header__tools .fo-header__search .wp-block-search__input {
	min-block-size: 2.5rem;
	padding-inline: 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--paper);
	font-size: var(--wp--preset--font-size--small);
}

.fo-header__tools .fo-header__search .wp-block-search__button {
	display: grid;
	place-items: center;
	min-inline-size: 2.75rem;
	min-block-size: 2.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

.fo-header__tools .fo-header__search .wp-block-search__button:hover {
	background: var(--wp--preset--color--surface);
}

.fo-header__tools .fo-header__search .wp-block-search__button svg {
	inline-size: 1.4rem;
	block-size: 1.4rem;
	fill: currentColor;
}

/* From tablets up, the opened field floats over the row beside its button, so the navigation never reflows. */
@media (min-width: 600px) {

	.fo-header__tools .fo-header__search {
		position: relative;
	}

	.fo-header__tools .fo-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
		position: absolute;
		inset-block-start: 50%;
		inset-inline-end: calc(100% + 0.25rem);
		z-index: 3;
		inline-size: min(20rem, 40vw);
		box-shadow: var(--wp--preset--shadow--md);
		transform: translateY(-50%);
	}
}

/* Library bar: one row. */
.fo-header--bar .fo-header__main {
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "brand nav tools";
	column-gap: clamp(1rem, 3vw, 2.75rem);
}

.fo-header--bar .fo-header__brand {
	justify-content: flex-start;
	padding-block: 1rem;
}

.fo-header--bar .fo-wordmark {
	font-size: clamp(1.5rem, 1.2rem + 0.8vw, 1.95rem);
}

.fo-header--bar .fo-header__main > .fo-header__nav {
	justify-self: start;
	border: 0;
}

.fo-header--bar.is-fo-compact .fo-header__main > .wp-block-navigation,
.fo-header--minimal.is-fo-compact .fo-header__main > .wp-block-navigation {
	visibility: visible;
}

/* Minimal: menu button, wordmark, search and bag. */
.fo-header--minimal .fo-header__main {
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas: "nav brand tools";
}

.fo-header--minimal .fo-header__main > .fo-header__nav {
	justify-self: start;
	padding: 0;
	border: 0;
}

.fo-header--minimal .fo-header__brand {
	padding-block: 1.1rem;
}

/* The always-on menu opens as a quiet page with a reading-width column. */
.fo-header--minimal .is-menu-open .wp-block-navigation__responsive-container-content {
	inline-size: min(100%, 36rem);
	margin-inline: auto;
}

/* Bookplate: a title page. */
.fo-header--bookplate .fo-header__brand {
	gap: 0.35rem;
	padding-block: 2.25rem 1.75rem;
}

.fo-header--bookplate .fo-wordmark {
	font-size: clamp(2.25rem, 1.4rem + 2.6vw, 3.75rem);
	letter-spacing: -0.025em;
}

.fo-header__tagline {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	font-weight: 300;
	color: var(--wp--preset--color--muted);
}

.fo-header--bookplate .fo-header__brand::after {
	content: "❦";
	margin-block-start: 0.35rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	line-height: 1;
	color: var(--wp--preset--color--terracotta);
}

.fo-header--bookplate .fo-header__nav .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.fo-header--bookplate .is-menu-open .wp-block-navigation-item__content {
	letter-spacing: -0.01em;
	text-transform: none;
}

@media (max-width: 599px) {

	.fo-header--bar .fo-header__main,
	.fo-header--minimal .fo-header__main {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas: "nav brand tools";
	}

	.fo-header--bar .fo-header__brand {
		justify-content: center;
	}

	.fo-header--bar .fo-wordmark,
	.fo-header--minimal .fo-wordmark {
		font-size: 1.5rem;
	}

	.fo-header--bookplate .fo-header__brand {
		padding-block: 1rem 0.75rem;
	}

	.fo-header--bookplate .fo-wordmark {
		font-size: 1.75rem;
	}

	.fo-header--bookplate .fo-header__tagline,
	.fo-header--bookplate .fo-header__brand::after {
		display: none;
	}

	/* An opened icon search covers the row instead of squeezing the wordmark. */
	.fo-header__tools .fo-header__search:not(.wp-block-search__searchfield-hidden) {
		position: absolute;
		inset-inline: 0;
		z-index: 3;
		padding-inline: var(--wp--style--root--padding-left);
		background: var(--wp--preset--color--base);
	}

	.fo-header__tools .fo-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
		flex: 1;
	}
}

/* Light footers: colophon and minimal. */
.fo-footer--colophon,
.fo-footer--minimal {
	color: var(--wp--preset--color--contrast);
}

.fo-footer--colophon a,
.fo-footer--minimal a {
	color: var(--wp--preset--color--contrast);
}

.fo-footer--colophon a:hover,
.fo-footer--minimal a:hover {
	color: var(--wp--preset--color--terracotta-ink);
}

.fo-footer--colophon .wp-social-link,
.fo-footer--minimal .wp-social-link {
	color: var(--wp--preset--color--contrast);
}

.fo-footer--colophon .fo-footer__legal,
.fo-footer--minimal .fo-footer__legal {
	border-block-start-color: var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
}

.fo-footer--colophon {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
	text-align: center;
}

.fo-footer--colophon > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.fo-footer--colophon .fo-footer__wordmark {
	margin-block-start: var(--wp--preset--spacing--40);
	font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
}

.fo-footer--colophon .fo-footer__wordmark a {
	color: var(--wp--preset--color--contrast);
}

.fo-footer--colophon .fo-footer__about {
	max-inline-size: none;
	color: var(--wp--preset--color--muted);
}

.fo-footer__line .wp-block-navigation__container {
	justify-content: center;
	gap: 0.25rem 1.75rem;
}

.fo-footer--colophon nav.fo-footer__line {
	justify-content: center;
	margin-block-start: var(--wp--preset--spacing--50);
	padding-block: 1rem;
	border-block: var(--fo-rule);
}

.fo-footer--colophon .fo-social {
	justify-content: center;
}

.fo-footer--colophon .fo-footer__legal {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: 0;
	border: 0;
	gap: 0.5rem 1.5rem;
}

/* Minimal: one ruled line. */
.fo-footer--minimal {
	padding-block: var(--wp--preset--spacing--40);
	border-block-start: var(--fo-rule);
}

.fo-footer--minimal .fo-footer__legal {
	align-items: center;
	gap: 0.75rem 2rem;
	padding: 0;
	border: 0;
}

.fo-footer--minimal .fo-footer__line .wp-block-navigation__container {
	justify-content: flex-start;
	gap: 0.25rem 1.5rem;
}

/* Newsletter-led: a large band over compact links. */
.fo-footer__band {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	align-items: end;
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
	padding-block-end: var(--wp--preset--spacing--60);
	border-block-end: 1px solid rgba(255, 253, 248, 0.16);
}

.fo-footer__band > * {
	margin: 0 !important;
}

.fo-footer__band-text > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.fo-footer__band-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--on-accent);
}

.fo-footer__band-action p {
	max-inline-size: 26rem;
	color: var(--wp--preset--color--on-accent-muted);
}

.fo-footer__links {
	display: grid;
	grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--60);
}

.fo-footer__links > * {
	margin: 0 !important;
}

.fo-footer__links .fo-footer__wordmark {
	font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
}

.fo-footer__links .fo-footer__wordmark a {
	color: var(--wp--preset--color--on-accent);
}

.fo-footer--letter .fo-footer__legal {
	align-items: center;
}

@media (max-width: 900px) {

	.fo-footer__band {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
	}

	.fo-footer__links {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fo-footer__links .fo-footer__wordmark {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {

	.fo-footer__links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fo-footer--minimal .fo-footer__legal {
		flex-direction: column;
		align-items: flex-start;
	}
}
