/*
Theme Name: French Wedding Cakes
Theme URI: https://frenchweddingcakes.com
Author: Dezignza
Author URI: https://dezignza.com
Description: Block theme for French Wedding Cakes. Photos first, edited fully in the block editor.
Version: 2.0.6
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fwc
*/

/* Browser surfaces: themed selection and focus ring, because defaults belong to no design. */
::selection {
	background: var(--wp--preset--color--caramel-light);
	color: var(--wp--preset--color--ink);
}

:where(a, button, input, select, textarea, summary, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--caramel);
	outline-offset: 3px;
}

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

/* Header: a hairline under the bar, as in the reference. */
.fwc-header {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* Short caramel rule used beside script headings (block style "Short line" on separator). */
.wp-block-separator.is-style-fwc-short {
	width: 3.5rem;
	border: 0;
	border-top: 2px solid var(--wp--preset--color--caramel-light);
	margin-left: 0;
	opacity: 1;
}

.has-text-align-center + .wp-block-separator.is-style-fwc-short,
.wp-block-separator.is-style-fwc-short.aligncenter {
	margin-left: auto;
	margin-right: auto;
}

/* Text link style on buttons ("See these cakes"): underline in caramel instead of a filled box. */
.wp-block-button.is-style-fwc-text-link .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	padding: 0 0 0.35rem;
	border-radius: 0;
	border-bottom: 1px solid var(--wp--preset--color--caramel-light);
	letter-spacing: 0.04em;
}

.wp-block-button.is-style-fwc-text-link .wp-block-button__link:hover,
.wp-block-button.is-style-fwc-text-link .wp-block-button__link:focus-visible {
	color: var(--wp--preset--color--caramel);
	border-bottom-color: var(--wp--preset--color--caramel);
}

/* Photos zoom very slightly on hover inside grids; respects reduced motion. */
.fwc-grid .wp-block-post-featured-image img,
.fwc-grid .wc-block-components-product-image img {
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.fwc-grid .wp-block-post-featured-image:hover img,
.fwc-grid .wc-block-components-product-image:hover img {
	transform: scale(1.03);
}

.fwc-grid .wp-block-post-featured-image,
.fwc-grid .wc-block-components-product-image {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.fwc-grid img {
		transition: none !important;
		transform: none !important;
	}
}

/* Prices: tabular figures so columns of prices line up. */
.wc-block-components-product-price,
.wp-block-woocommerce-product-price {
	font-variant-numeric: tabular-nums;
}

/* Details (FAQ): caramel plus marker instead of the browser triangle. */
.wp-block-details summary {
	cursor: pointer;
	list-style: none;
	font-weight: 500;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	color: var(--wp--preset--color--caramel);
	font-weight: 300;
	font-size: 1.4em;
	line-height: 1;
}

.wp-block-details[open] summary::after {
	content: "\2212";
}

/* Script headings must never split a word across lines in narrow columns. */
h1, h2, h3 {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: balance;
}

/* Sections butt together: no white gap between the last section and the footer. */
.wp-site-blocks > footer,
.wp-site-blocks > main {
	margin-block-start: 0;
}


/* Smaller script titles in the 2-up cake grid on phones. */
@media (max-width: 600px) {
	.wp-block-group.is-layout-grid h3.wp-block-heading {
		font-size: 1.75rem;
	}
}

/* Soft corners: Woo product photos and the zoom wrappers clip to the same radius as core images. */
.wc-block-components-product-image,
.wc-block-components-product-image img,
.fwc-grid .wp-block-post-featured-image {
	border-radius: var(--wp--preset--border-radius--medium, 16px);
}

/* Dropdown menu: soft card instead of a square box. */
.wp-block-navigation .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--wp--preset--border-radius--small, 10px);
	overflow: hidden;
	padding-block: 0.4rem;
}

/* "Soft card" group style: white rounded card that floats on a photo (used in the big photo section). */
.wp-block-group.is-style-fwc-card {
	background: rgba(255, 255, 255, 0.94);
	border-radius: var(--wp--preset--border-radius--large, 28px);
	box-shadow: var(--wp--preset--shadow--soft);
	padding: var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--ink);
	backdrop-filter: blur(6px);
}

/* "Wide band" image style: wide strips crop to a taller shape on phones so the cakes stay large. */
@media (max-width: 700px) {
	.wp-block-image.is-style-fwc-band img {
		aspect-ratio: 5 / 4 !important;
	}
}

.wp-block-image.is-style-fwc-band figcaption,
.wp-block-image figcaption {
	text-align: center;
	margin-top: 0.85rem;
	letter-spacing: 0.02em;
}

/* Big photo section: on phones the card sits at the bottom of the photo instead of covering the cake. */
@media (max-width: 700px) {
	.wp-block-cover.is-position-center-left {
		align-items: flex-end;
	}
	.wp-block-group.is-style-fwc-card {
		padding: var(--wp--preset--spacing--40);
	}
}

/* Big photo section: keep the card in line with the page's wide column instead of hugging the screen edge. */
.wp-block-cover.alignfull.is-position-center-left > .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-inline: auto;
}

/* Prices page filters: quiet labels, caramel slider, pill chips in the site palette. */
.fwc-filter-title {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
}

.fwc-filters {
	--wc-product-filter-price-slider: var(--wp--preset--color--caramel);
	--wc-product-filter-price-slider-handle: var(--wp--preset--color--caramel);
	--wc-product-filter-price-slider-handle-border: var(--wp--preset--color--base);
	--wc-product-filter-chips-text: var(--wp--preset--color--ink);
	--wc-product-filter-chips-background: var(--wp--preset--color--base);
	--wc-product-filter-chips-border: var(--wp--preset--color--line);
	--wc-product-filter-chips-selected-text: var(--wp--preset--color--base);
	--wc-product-filter-chips-selected-background: var(--wp--preset--color--caramel);
	--wc-product-filter-chips-selected-border: var(--wp--preset--color--caramel);
}

@media (min-width: 782px) {
	.fwc-filters-col .fwc-filters {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 2rem);
	}
}

.fwc-filters input[type="text"],
.fwc-filters input[type="number"] {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--small, 10px);
	padding: 0.45rem 0.6rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	max-width: 6.5rem;
}

.fwc-filters .wc-block-product-filter-chips__item {
	border-radius: 999px;
	padding: 0.4rem 0.95rem;
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-woocommerce-catalog-sorting select {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	padding: 0.5rem 2.25rem 0.5rem 1rem;
	font: inherit;
	background-color: var(--wp--preset--color--base);
}

/* Single cake page with several photos: big first photo, the rest as a tidy rounded grid with gutters. */
.woocommerce-product-gallery {
	opacity: 1 !important; /* Woo hides it until its slider script runs; there is no slider here. */
}

.woocommerce-product-gallery__wrapper {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 0;
}

.woocommerce-product-gallery__image:first-child {
	grid-column: 1 / -1;
}

.woocommerce-product-gallery__image a {
	display: block;
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--medium, 16px);
	cursor: zoom-in;
}

.woocommerce-product-gallery__image:not(:first-child) a {
	border-radius: var(--wp--preset--border-radius--small, 10px);
}

.woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
}

.woocommerce-product-gallery__image a:hover img {
	transform: scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-product-gallery__image img {
		transition: none;
	}
	.woocommerce-product-gallery__image a:hover img {
		transform: none;
	}
}

/* "Cut-out (no frame)" image style: for photos with a transparent background, like Julien's portrait. No corners, no shadow. */
.wp-block-image.is-style-fwc-cutout img {
	border-radius: 0 !important;
	box-shadow: none !important;
}

.wp-block-column.is-vertically-aligned-bottom > .wp-block-image.is-style-fwc-cutout {
	margin-bottom: 0;
}

.wp-block-column.is-vertically-aligned-bottom > .wp-block-image.is-style-fwc-cutout img {
	display: block;
	margin-inline: auto;
}

/* Photo grids: the same warm lifted shadow as single images. Sits on the frame, which clips the hover zoom. */
.fwc-grid .wp-block-post-featured-image,
.fwc-grid .wc-block-components-product-image,
.woocommerce-product-gallery__image a {
	box-shadow: var(--wp--preset--shadow--lifted);
}

/* Prices filters: soft rounded price boxes and a pill "Filter" button on phones. */
.wc-block-product-filter-price-slider input:not([type="range"]) {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--wp--preset--border-radius--small, 10px);
	padding: 0.5rem 0.75rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}

.wc-block-product-filters__open-overlay {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 999px !important;
	padding: 0.55rem 1.1rem !important;
	font: inherit !important;
	font-size: var(--wp--preset--font-size--small) !important;
	letter-spacing: 0.04em;
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--ink) !important;
}

.wc-block-product-filters__apply {
	border-radius: 999px !important;
	background: var(--wp--preset--color--caramel) !important;
	color: var(--wp--preset--color--base) !important;
}

.fwc-filter-title + * {
	margin-top: 0.25rem;
}

/* Logo (header and footer): the full SVG lock-up; slightly smaller on phones. */
.wp-block-image.fwc-logo {
	margin: 0;
	flex-shrink: 0;
}

.wp-block-image.fwc-logo,
.wp-block-image.fwc-logo a {
	display: block;
	line-height: 0;
	margin-block: 0 !important;
}

.wp-block-image.fwc-logo img {
	display: block;
}

@media (max-width: 781px) {
	.fwc-header .wp-block-image.fwc-logo img {
		width: 150px !important;
	}
}

.fwc-header__phone a {
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
}

.fwc-header__phone a:hover {
	color: var(--wp--preset--color--caramel);
}

.fwc-header__phone,
.fwc-header__book {
	margin: 0;
}

.fwc-header .wp-block-button__link:hover,
.fwc-header .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--caramel) !important;
}

/* Header: phone and button only on wide screens; the menu opens from the burger on phones. */
@media (max-width: 1080px) {
	.fwc-header__phone {
		display: none;
	}
}

@media (max-width: 781px) {
	.fwc-header__actions {
		display: none !important;
	}
}

/* Footer (cocoa): gold labels, airy lists, a faint rule above the small print. */
.fwc-footer__label {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
}

.fwc-footer p,
.fwc-footer li {
	line-height: 1.8;
}

.fwc-footer a {
	text-decoration: none;
}

.fwc-footer__intro {
	opacity: 0.8;
	max-width: 22rem;
}

/* Social links as quiet outlined pills under the intro. */
.fwc-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--40);
}

.fwc-footer__social a {
	padding: 0.3rem 0.95rem;
	border: 1px solid rgba(251, 248, 243, 0.28);
	border-radius: 999px;
	line-height: 1.6;
	transition: border-color 0.3s ease, color 0.3s ease;
}

.fwc-footer__social a:hover,
.fwc-footer__social a:focus-visible {
	border-color: var(--wp--preset--color--caramel-light);
}

/* Phone in the serif, larger; the email never breaks mid-word. */
.fwc-footer__phone {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.45rem;
	line-height: 1.3 !important;
	margin-bottom: 0.35rem;
}

.fwc-footer__email a {
	white-space: nowrap;
}

.fwc-footer__note {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 1.15rem;
}

.fwc-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.fwc-footer__bottom {
	border-top: 1px solid rgba(251, 248, 243, 0.18);
}

.fwc-footer__bottom p {
	margin: 0;
	opacity: 0.6;
}

/* Reviews as love notes: Garamond italic, a large gold opening mark, names in small tracked caps. */
.wp-block-quote.is-style-fwc-note,
.wp-block-quote.is-style-fwc-note-large {
	position: relative;
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-weight: 400;
}

.wp-block-quote.is-style-fwc-note-large {
	font-size: clamp(1.75rem, 3.2vw, 2.6rem);
	line-height: 1.25;
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 3.25rem;
}

.wp-block-quote.is-style-fwc-note {
	font-size: 1.35rem;
	line-height: 1.5;
	padding-top: 2.25rem;
}

.wp-block-quote.is-style-fwc-note::before,
.wp-block-quote.is-style-fwc-note-large::before {
	content: "\201C";
	position: absolute;
	top: -0.15em;
	left: -0.04em;
	font-family: var(--wp--preset--font-family--serif);
	font-style: normal;
	color: var(--wp--preset--color--gold);
	font-size: 4.5rem;
	line-height: 1;
}

.wp-block-quote.is-style-fwc-note-large::before {
	font-size: 7rem;
}

.wp-block-quote.is-style-fwc-note cite,
.wp-block-quote.is-style-fwc-note-large cite {
	display: block;
	margin-top: 1.25rem;
	font-family: var(--wp--preset--font-family--body);
	font-style: normal;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}

/* The two smaller notes sit lower and are split by a hairline, like letters laid on a table. */
@media (min-width: 782px) {
	.fwc-notes {
		padding-top: var(--wp--preset--spacing--60);
	}
}

.fwc-notes > .wp-block-quote + .wp-block-quote {
	margin-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: calc(var(--wp--preset--spacing--50) + 2.25rem);
}

.fwc-notes > .wp-block-quote + .wp-block-quote::before {
	top: calc(var(--wp--preset--spacing--50) - 0.15em);
}

/* Prices filter bar: chips on the left, price slider, count and sort on the right, hairlines above and below. */
@media (min-width: 782px) {
	.fwc-filter-row .fwc-filters .wc-block-product-filters__overlay-content {
		flex-direction: row !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 1.5rem 2.5rem;
	}
	.fwc-filter-row .fwc-filter-title {
		position: absolute !important;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	.fwc-filter-row .wp-block-woocommerce-product-filter-price {
		min-width: 13rem;
	}
}

.fwc-filters .wc-block-product-filter-chips__items {
	gap: 0.6rem;
}

.fwc-filters .wc-block-product-filter-chips__item {
	border: 1px solid var(--wp--preset--color--line) !important;
	background: transparent !important;
	color: var(--wp--preset--color--cocoa) !important;
	padding: 0.6rem 1.25rem !important;
}

.fwc-filters .wc-block-product-filter-chips__item[aria-checked="true"] {
	background: var(--wp--preset--color--cocoa) !important;
	border-color: var(--wp--preset--color--cocoa) !important;
	color: var(--wp--preset--color--cream) !important;
}

.fwc-sort p,
.fwc-sort .woocommerce-result-count {
	margin: 0;
}

.fwc-sort .wp-block-woocommerce-catalog-sorting select {
	border: 0;
	background-color: transparent;
	color: var(--wp--preset--color--cocoa);
	padding-left: 0.25rem;
	cursor: pointer;
}

/* Cake page: category as a small eyebrow, and the key facts as lined rows. */
.fwc-eyebrow,
.fwc-eyebrow a {
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 500;
	text-decoration: none;
}

.fwc-specs {
	border-top: 1px solid var(--wp--preset--color--line);
}

.fwc-spec {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: 0.95rem;
	gap: 1.5rem;
}

.fwc-spec p {
	margin: 0;
}

.fwc-spec__label {
	flex: 0 0 8rem;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding-top: 0.2rem;
}

.fwc-spec__value {
	color: var(--wp--preset--color--muted);
}

/* Woo sizes extra photos at 25% for its own layout; in our grid each cell sets the size. */
.woocommerce-product-gallery .woocommerce-product-gallery__image {
	width: auto !important;
	display: block !important;
	margin: 0 !important;
}

/* Designer credit, bottom right of the footer. */
.fwc-credit {
	align-items: center;
}

.fwc-credit .wp-block-image {
	margin: 0;
	opacity: 0.9;
	transition: opacity 0.2s ease;
}

.fwc-credit .wp-block-image:hover {
	opacity: 1;
}

/* Contact page: soft form card and a gently framed map that opens Google Maps. */
.fwc-form-card {
	border-radius: var(--wp--preset--border-radius--large, 28px);
	border: 1px solid var(--wp--preset--color--line);
}

.fwc-contact-list .fwc-spec__label {
	flex-basis: 6.5rem;
}

.fwc-contact-list a {
	color: var(--wp--preset--color--ink);
	text-decoration-color: var(--wp--preset--color--caramel-light);
}

.fwc-map a {
	display: block;
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--medium, 16px);
	cursor: pointer;
}

.fwc-map img {
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.fwc-map a:hover img {
	transform: scale(1.03);
}

.fwc-map figcaption {
	font-size: 0.8125rem;
}

@media (prefers-reduced-motion: reduce) {
	.fwc-map img {
		transition: none;
	}
	.fwc-map a:hover img {
		transform: none;
	}
}

/* "Filter pill" button style: the same pills as the prices filter; the current page shows filled cocoa. */
.wp-block-button.is-style-fwc-chip .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--cocoa);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	padding: 0.6rem 1.25rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.wp-block-button.is-style-fwc-chip .wp-block-button__link:hover {
	background: transparent;
	color: var(--wp--preset--color--cocoa);
	border-color: var(--wp--preset--color--caramel-light);
}

.wp-block-button.is-style-fwc-chip .wp-block-button__link[aria-current="page"] {
	background: var(--wp--preset--color--cocoa);
	border-color: var(--wp--preset--color--cocoa);
	color: var(--wp--preset--color--cream);
}

/* Enquiry form: plain-weight text for the consent line. */
.fwc-enquiry .fwc-enquiry__consent label {
	font-weight: 400;
}

/* Sticky header: stays at the top while scrolling and gains a soft shadow once the page moves.
   No blur or transform here: they would trap the phone menu overlay inside the header. */
.wp-site-blocks > header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}

.fwc-header {
	transition: box-shadow 0.3s ease, padding 0.3s ease, background-color 0.3s ease;
}

.fwc-scrolled .fwc-header {
	box-shadow: 0 10px 30px -22px rgba(46, 33, 28, 0.45);
	padding-top: 0.6rem !important;
	padding-bottom: 0.6rem !important;
}

@media (max-width: 600px) {
	.wp-site-blocks > header {
		top: 0;
	}
}

/* Phone quick bar: a floating rounded bar with Home, Gallery, Book tasting and Menu. Hidden on wider screens. */
.fwc-mobile-bar {
	display: none !important;
}

@media (max-width: 781px) {
	.fwc-mobile-bar {
		display: flex !important;
		position: fixed;
		left: 0.75rem;
		right: 0.75rem;
		bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
		z-index: 60;
		align-items: stretch;
		gap: 0;
		padding: 0.4rem;
		background: rgba(251, 248, 243, 0.96);
		backdrop-filter: blur(12px);
		border: 1px solid var(--wp--preset--color--line);
		border-radius: 22px;
		box-shadow: 0 18px 40px -18px rgba(46, 33, 28, 0.45);
	}

	body {
		padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
	}

	.fwc-mobile-bar__item {
		flex: 1 1 0;
		margin: 0 !important;
		text-align: center;
	}

	.fwc-mobile-bar__item a {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.3rem;
		padding: 0.5rem 0.25rem 0.45rem;
		border-radius: 16px;
		font-size: 0.6875rem;
		font-weight: 500;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		text-decoration: none;
		color: var(--wp--preset--color--cocoa);
		white-space: nowrap;
	}

	.fwc-mobile-bar__item a::before {
		content: "";
		width: 22px;
		height: 22px;
		background: currentColor;
		-webkit-mask: var(--fwc-icon) center / contain no-repeat;
		mask: var(--fwc-icon) center / contain no-repeat;
	}

	.fwc-mobile-bar__item a:active {
		background: rgba(46, 33, 28, 0.06);
	}

	/* The tasting button is the one action that matters most, so it sits in cocoa. */
	.fwc-mobile-bar__book a {
		background: var(--wp--preset--color--cocoa);
		color: var(--wp--preset--color--cream);
	}

	.fwc-mobile-bar__book a:active {
		background: var(--wp--preset--color--caramel);
	}

	.fwc-mobile-bar__home {
		--fwc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V20h5v-6h4v6h5V9.5'/%3E%3C/svg%3E");
	}

	.fwc-mobile-bar__gallery {
		--fwc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='7' height='9' rx='2'/%3E%3Crect x='13.5' y='3.5' width='7' height='6' rx='2'/%3E%3Crect x='3.5' y='15.5' width='7' height='5' rx='2'/%3E%3Crect x='13.5' y='12.5' width='7' height='8' rx='2'/%3E%3C/svg%3E");
	}

	.fwc-mobile-bar__book {
		--fwc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M5 20v-6h14v6'/%3E%3Cpath d='M7 14v-4h10v4'/%3E%3Cpath d='M12 10V7'/%3E%3Cpath d='M12 4.5c.6.7.6 1.3 0 2'/%3E%3C/svg%3E");
	}

	.fwc-mobile-bar__menu {
		--fwc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h10'/%3E%3C/svg%3E");
	}
}

@media (prefers-reduced-motion: reduce) {
	.fwc-header {
		transition: none;
	}
}

/* Cakes mega menu (desktop): the dropdown opens as a soft panel of four photo cards.
   Photos follow each link's address, so Julien can rename the links freely. */
@media (min-width: 782px) {
	.fwc-header .fwc-mega > .wp-block-navigation__submenu-container {
		display: grid !important;
		grid-template-columns: repeat(4, 11rem);
		gap: 1.25rem;
		padding: 1.5rem !important;
		left: 50% !important;
		top: calc(100% + 0.85rem) !important;
		transform: translate(-50%, 8px);
		background: var(--wp--preset--color--base) !important;
		border: 1px solid var(--wp--preset--color--line) !important;
		border-radius: var(--wp--preset--border-radius--large, 28px);
		box-shadow: 0 30px 60px -30px rgba(46, 33, 28, 0.35);
		transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.25s;
	}

	/* Invisible bridge so the panel stays open while the pointer crosses the gap. */
	.fwc-header .fwc-mega > .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -1rem;
		height: 1rem;
	}

	.fwc-header .fwc-mega:hover > .wp-block-navigation__submenu-container,
	.fwc-header .fwc-mega:focus-within > .wp-block-navigation__submenu-container,
	.fwc-header .fwc-mega > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
		transform: translate(-50%, 0);
	}

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item {
		display: block;
	}

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: flex !important;
		flex-direction: column;
		gap: 0.2rem;
		padding: 0 !important;
		white-space: normal;
		color: var(--wp--preset--color--ink);
	}

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
		content: "";
		display: block;
		aspect-ratio: 3 / 4;
		margin-bottom: 0.65rem;
		border-radius: var(--wp--preset--border-radius--medium, 16px);
		background: var(--wp--preset--color--panel) center / cover no-repeat;
		box-shadow: var(--wp--preset--shadow--lifted);
		transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
	}

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover::before,
	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible::before {
		transform: translateY(-4px);
	}

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container a[href*="fondant"]::before { background-image: url("assets/images/fondant.webp"); }
	.fwc-header .fwc-mega .wp-block-navigation__submenu-container a[href*="buttercream"]::before { background-image: url("assets/images/buttercream.webp"); }
	.fwc-header .fwc-mega .wp-block-navigation__submenu-container a[href*="croquembouche"]::before { background-image: url("assets/images/croquembouche.webp"); }
	.fwc-header .fwc-mega .wp-block-navigation__submenu-container a[href*="macaron"]::before { background-image: url("assets/images/macarons.webp"); }

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__label {
		font-family: var(--wp--preset--font-family--script);
		font-size: 1.65rem;
		line-height: 1.05;
		letter-spacing: 0;
	}

	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__description {
		display: block;
		font-size: 0.8125rem;
		line-height: 1.45;
		letter-spacing: 0;
		color: var(--wp--preset--color--muted);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fwc-header .fwc-mega > .wp-block-navigation__submenu-container,
	.fwc-header .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
		transition: none;
	}
}

/* Phone menu overlay: a structured, left-aligned sheet. Garamond links on hairlines with arrows,
   and the cake types as a 2 by 2 grid of photo cards (photos follow each link's address). */
.fwc-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--cream) !important;
	color: var(--wp--preset--color--cocoa) !important;
	padding: 1.25rem 1.5rem calc(7rem + env(safe-area-inset-bottom, 0px)) !important;
}

.fwc-header .is-menu-open .wp-block-navigation__responsive-close {
	max-width: none;
}

.fwc-header .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 0 !important;
	right: 0 !important;
	width: 2.75rem;
	height: 2.75rem;
	display: grid;
	place-items: center;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
}

.fwc-header .is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch !important;
	padding-top: 4rem !important;
}

.fwc-header .is-menu-open .wp-block-navigation__container {
	width: 100%;
	gap: 0 !important;
	align-items: stretch !important;
}

.fwc-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	align-items: stretch !important;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.fwc-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 1rem 0 !important;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.75rem;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--cocoa);
}

.fwc-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	width: 18px;
	height: 18px;
	background: var(--wp--preset--color--caramel);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%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='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fwc-header .is-menu-open .wp-block-navigation-submenu__toggle {
	display: none !important;
}

.fwc-header .is-menu-open .fwc-mega > .wp-block-navigation__submenu-container {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	padding: 0 0 1.25rem !important;
	border: 0 !important;
	background: transparent !important;
}

.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex !important;
	flex-direction: column;
	gap: 0.45rem;
	padding: 0 !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--cocoa);
}

.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
	content: "";
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 14px;
	background-color: var(--wp--preset--color--panel);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container > .wp-block-navigation-item {
	width: 100%;
	align-items: stretch !important;
}

.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container a[href*="fondant"]::before { background-image: url("assets/images/fondant.webp"); }
.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container a[href*="buttercream"]::before { background-image: url("assets/images/buttercream.webp"); }
.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container a[href*="croquembouche"]::before { background-image: url("assets/images/croquembouche.webp"); }
.fwc-header .is-menu-open .fwc-mega .wp-block-navigation__submenu-container a[href*="macaron"]::before { background-image: url("assets/images/macarons.webp"); }

.fwc-header .is-menu-open .wp-block-navigation-item__description {
	display: none;
}

/* Cake type pages: eyebrow, "From" price, small tracked labels and lined flavour rows, matching the cake pages. */
.fwc-from {
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	margin-top: 0.25rem;
}

.fwc-from strong {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.85rem;
	font-weight: 500;
	color: var(--wp--preset--color--caramel);
	margin-left: 0.3rem;
}

.fwc-label {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 0.25rem;
}

.wp-block-list.is-style-fwc-lined {
	list-style: none;
	padding: 0;
	border-top: 1px solid var(--wp--preset--color--line);
}

.wp-block-list.is-style-fwc-lined li {
	padding: 0.65rem 0 0.65rem 1.4rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	position: relative;
}

.wp-block-list.is-style-fwc-lined li::before {
	content: "";
	position: absolute;
	left: 0.1rem;
	top: 1.35rem;
	width: 0.55rem;
	height: 1px;
	background: var(--wp--preset--color--caramel-light);
}

/* WhatsApp: a quiet round button bottom right on wider screens (phones use the quick bar). */
.fwc-wa-float {
	display: none;
}

@media (min-width: 782px) {
	.fwc-wa-float {
		display: block;
		position: fixed;
		right: 1.5rem;
		bottom: 1.5rem;
		z-index: 60;
		margin: 0 !important;
	}

	.fwc-wa-float a {
		display: grid;
		place-items: center;
		width: 3.5rem;
		height: 3.5rem;
		border-radius: 999px;
		background: var(--wp--preset--color--cocoa);
		box-shadow: 0 14px 30px -14px rgba(46, 33, 28, 0.6);
		font-size: 0;
		color: transparent;
		transition: transform 0.25s ease, background-color 0.25s ease;
	}

	.fwc-wa-float a::before {
		content: "";
		width: 26px;
		height: 26px;
		background: var(--wp--preset--color--cream);
		-webkit-mask: var(--fwc-wa-icon) center / contain no-repeat;
		mask: var(--fwc-wa-icon) center / contain no-repeat;
	}

	.fwc-wa-float a:hover,
	.fwc-wa-float a:focus-visible {
		transform: translateY(-2px);
		background: #25d366;
	}
}

:root {
	--fwc-wa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2a9.8 9.8 0 0 0-8.4 14.8L2.2 21.8l4.9-1.3A9.8 9.8 0 1 0 12 2.2Zm0 17.9a8.1 8.1 0 0 1-4.1-1.1l-.3-.2-2.9.8.8-2.8-.2-.3A8.1 8.1 0 1 1 12 20.1Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.4.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.8 11.9 11.9 0 0 0 4.6 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.2 2.2 2.2 0 0 0 .2-1.2c-.1-.1-.2-.2-.4-.3Z'/%3E%3C/svg%3E");
}

@media (max-width: 781px) {
	.fwc-mobile-bar__wa {
		--fwc-icon: var(--fwc-wa-icon);
	}
}

/* Favourites link in the header: a heart with a small count. */
.fwc-header__fav {
	margin: 0;
}

.fwc-header__fav a {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	font-size: 0;
	color: var(--wp--preset--color--cocoa);
}

.fwc-header__fav a::before {
	content: "";
	width: 22px;
	height: 22px;
	background: currentColor;
	-webkit-mask: var(--fwc-heart-icon) center / contain no-repeat;
	mask: var(--fwc-heart-icon) center / contain no-repeat;
}

.fwc-header__fav a:hover {
	color: var(--wp--preset--color--caramel);
}

.fwc-header__fav .fwc-fav-count.has-favs::after {
	top: 0;
	right: -0.1rem;
}

:root {
	--fwc-heart-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 20.3s-7.6-4.6-9.2-9.4C1.7 7.6 3.9 4.5 7.2 4.5c2 0 3.6 1.1 4.8 2.8 1.2-1.7 2.8-2.8 4.8-2.8 3.3 0 5.5 3.1 4.4 6.4-1.6 4.8-9.2 9.4-9.2 9.4Z'/%3E%3C/svg%3E");
}

@media (max-width: 781px) {
	.fwc-mobile-bar__fav {
		--fwc-icon: var(--fwc-heart-icon);
	}
	.fwc-mobile-bar__item a {
		font-size: 0.625rem;
		letter-spacing: 0.04em;
	}
	.fwc-mobile-bar__fav .fwc-fav-count.has-favs::after {
		top: 0.15rem;
		right: calc(50% - 1.35rem);
	}
}

/* Home intro: italic Garamond promise, three quiet facts, and a layered collage of three photos. */
.fwc-hero__promise {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: clamp(1.4rem, 2.2vw, 1.85rem);
	line-height: 1.35;
	color: var(--wp--preset--color--ink);
	margin-top: 0.75rem;
}

.fwc-hero__facts {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: var(--wp--preset--spacing--40);
}

.fwc-hero__facts p {
	margin: 0;
}

.fwc-fact__num {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.6rem, 2.4vw, 2.1rem);
	line-height: 1.1;
	color: var(--wp--preset--color--caramel);
}

.fwc-fact__label {
	margin-top: 0.3rem !important;
	font-size: 0.75rem;
	line-height: 1.45;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.fwc-hero-stack {
	position: relative;
}

.fwc-hero-stack .wp-block-image {
	margin: 0;
}

@media (min-width: 782px) {
	.fwc-hero-stack {
		padding: 2.5rem 0 3.5rem 22%;
	}

	.fwc-hero-stack__top,
	.fwc-hero-stack__bottom {
		position: absolute;
		z-index: 2;
	}

	.fwc-hero-stack__top {
		left: 0;
		top: 0;
		width: 34%;
		transform: rotate(-3deg);
	}

	.fwc-hero-stack__bottom {
		left: 4%;
		bottom: 0;
		width: 44%;
		transform: rotate(2deg);
	}

	/* A cream edge makes the smaller photos read like prints laid on the main one. */
	.fwc-hero-stack__top img,
	.fwc-hero-stack__bottom img {
		border: 6px solid var(--wp--preset--color--cream);
	}
}

/* Phones: photos first. The main photo with the two prints tucked over its lower corners,
   then a compact title, buttons side by side and the three facts in a tight row. */
@media (max-width: 781px) {
	.fwc-hero {
		padding-top: var(--wp--preset--spacing--40) !important;
	}

	.fwc-hero > .wp-block-columns {
		flex-direction: column-reverse;
		gap: var(--wp--preset--spacing--50) !important;
	}

	.fwc-hero-stack {
		padding-bottom: 3.25rem;
	}

	.fwc-hero-stack__main img {
		aspect-ratio: 4 / 5 !important;
	}

	.fwc-hero-stack__top,
	.fwc-hero-stack__bottom {
		position: absolute;
		bottom: 0;
		z-index: 2;
	}

	.fwc-hero-stack__top {
		left: 0.75rem;
		width: 32%;
		transform: rotate(-4deg);
	}

	.fwc-hero-stack__bottom {
		right: 0.75rem;
		width: 40%;
		transform: rotate(3deg);
	}

	.fwc-hero-stack__top img,
	.fwc-hero-stack__bottom img {
		border: 4px solid var(--wp--preset--color--cream);
	}

	.fwc-hero h1 {
		font-size: clamp(2.9rem, 13vw, 3.6rem) !important;
	}

	.fwc-hero__text > p:first-child {
		font-size: 0.6875rem !important;
		letter-spacing: 0.14em !important;
	}

	.fwc-hero__promise {
		font-size: 1.35rem;
	}

	.fwc-hero .wp-block-buttons {
		gap: 1.25rem !important;
		align-items: center;
	}

	.fwc-hero__facts {
		gap: 0.75rem !important;
	}

	.fwc-hero__facts .wp-block-column {
		flex-basis: 0 !important;
	}

	.fwc-fact__num {
		font-size: 1.5rem;
	}

	.fwc-fact__label {
		font-size: 0.625rem;
		letter-spacing: 0.08em;
	}
}


/* Google rating: a cream card over the main photo on the home intro, and inline in the reviews section. */
.fwc-rating {
	gap: 0.75rem !important;
	padding: 0.7rem 1.1rem 0.7rem 0.9rem;
	border-radius: 18px;
	background: var(--wp--preset--color--cream);
	box-shadow: 0 18px 40px -20px rgba(46, 33, 28, 0.45);
	width: max-content;
}

.fwc-rating p {
	margin: 0;
}

.fwc-rating__score {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2.1rem;
	line-height: 1;
	color: var(--wp--preset--color--cocoa);
}

.fwc-rating__text {
	font-size: 0.8125rem;
	line-height: 1.35;
}

.fwc-rating__stars {
	color: var(--wp--preset--color--gold);
	letter-spacing: 0.12em;
	font-size: 0.9375rem;
}

.fwc-rating__text a {
	color: var(--wp--preset--color--muted);
	text-decoration-color: var(--wp--preset--color--caramel-light);
}

.fwc-hero-stack .fwc-rating {
	position: absolute;
	z-index: 3;
}

@media (min-width: 782px) {
	.fwc-hero-stack .fwc-rating {
		right: -1.25rem;
		top: 14%;
	}
}

@media (max-width: 781px) {
	.fwc-hero-stack .fwc-rating {
		left: 0.75rem;
		top: 0.75rem;
		padding: 0.5rem 0.85rem 0.5rem 0.7rem;
	}
	.fwc-hero-stack .fwc-rating__score {
		font-size: 1.6rem;
	}
}

.fwc-rating.is-inline {
	box-shadow: none;
	background: transparent;
	padding: 0;
	margin-top: 0.75rem;
}

/* ---------- Scroll reveal ----------
   Calm and patisserie-like: slow ease-out, no bounce. Only opacity, transform and clip-path move.
   Targets are hidden only under html.motion (set in <head> when reduced motion is off, removed after
   3 s if the main script never runs). The same selector lists live in assets/js/site.js; keep them in step.
   Rows: docs/motion.md. */
:root {
	--fwc-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Text and cards: a soft fade with a tiny lift. */
.motion :is(main :is(h3, h4, p, .wp-block-buttons, .wp-block-quote, .wp-block-details, .wp-block-list, .fwc-spec, .fwc-rating, .fwc-favs__bar, .fwc-enquiry, .wp-block-woocommerce-product-price, .wp-block-post-terms, .wp-block-query-pagination):not(.fwc-enquiry *, .fwc-filter-row *, figure *),
	main .fwc-filter-row,
	main .fwc-grid li,
	main .fwc-hero__facts > .wp-block-column,
	.fwc-footer .wp-block-columns > .wp-block-column,
	.fwc-footer__bottom) {
	transition: opacity 1.2s var(--fwc-ease), transform 1.2s var(--fwc-ease);
	transition-delay: var(--r-delay, 0ms);
}

.motion :is(main :is(h3, h4, p, .wp-block-buttons, .wp-block-quote, .wp-block-details, .wp-block-list, .fwc-spec, .fwc-rating, .fwc-favs__bar, .fwc-enquiry, .wp-block-woocommerce-product-price, .wp-block-post-terms, .wp-block-query-pagination):not(.fwc-enquiry *, .fwc-filter-row *, figure *),
	main .fwc-filter-row,
	main .fwc-grid li,
	main .fwc-hero__facts > .wp-block-column,
	.fwc-footer .wp-block-columns > .wp-block-column,
	.fwc-footer__bottom):not(.in) {
	opacity: 0;
	transform: translate3d(0, 8px, 0);
}

/* Script headings: a slow, gentle fade in. */
.motion main :is(h1, h2.wp-block-heading:not(.has-body-font-family, .fwc-filter-title)) {
	transition: opacity 1.6s var(--fwc-ease);
	transition-delay: var(--r-delay, 0ms);
}

.motion main :is(h1, h2.wp-block-heading:not(.has-body-font-family, .fwc-filter-title)):not(.in) {
	opacity: 0;
}

/* Photos: fade in while settling from the faintest zoom. */
.motion main :is(.wp-block-image, .wp-block-post-featured-image, .wc-block-components-product-image, .woocommerce-product-gallery__image) img:not(.r-done) {
	transition: opacity 1.4s var(--fwc-ease), transform 1.8s var(--fwc-ease);
	transition-delay: var(--r-delay, 0ms);
}

.motion main :is(.wp-block-image, .wp-block-post-featured-image, .wc-block-components-product-image, .woocommerce-product-gallery__image) img:not(.r-done):not(.in) {
	opacity: 0;
	transform: scale(1.02);
}

/* The short caramel line draws itself, a beat after its heading. */
.motion main .wp-block-separator.is-style-fwc-short {
	transform-origin: left center;
	transition: transform 0.9s var(--fwc-ease);
	transition-delay: calc(var(--r-delay, 0ms) + 250ms);
}

.motion :is(.aligncenter, .has-text-align-center + *).wp-block-separator.is-style-fwc-short {
	transform-origin: center;
}

.motion main .wp-block-separator.is-style-fwc-short:not(.in) {
	transform: scaleX(0);
}

/* Home collage: the two small prints are laid down on the big photo, keeping their tilt. */
.motion main :is(.fwc-hero-stack__top, .fwc-hero-stack__bottom) {
	transition: opacity 1.4s var(--fwc-ease), translate 1.4s var(--fwc-ease);
	transition-delay: calc(var(--r-delay, 0ms) + 300ms);
}

.motion main :is(.fwc-hero-stack__top, .fwc-hero-stack__bottom):not(.in) {
	opacity: 0;
	translate: 0 -6px;
}

@media (prefers-reduced-motion: reduce) {
	.motion * {
		opacity: 1 !important;
		transform: none !important;
		translate: none !important;
		clip-path: none !important;
	}
}

/* About, "Recognised" row: three equal cards; the press note fills its column like the photos beside it. */
.fwc-press > .wp-block-column {
	display: flex;
	flex-direction: column;
}

.fwc-press .wp-block-image img {
	border-radius: var(--wp--preset--border-radius--medium, 16px);
}

.fwc-press h3 {
	margin-block: var(--wp--preset--spacing--30) 0.4rem;
}

.fwc-press .fwc-press__note {
	flex: 1;
	border-radius: var(--wp--preset--border-radius--medium, 16px);
}

.fwc-press .fwc-press__note h3 {
	margin-top: auto;
	color: inherit;
}

/* About, career rows: wider label for "1998 to 2002". */
.fwc-career .fwc-spec__label {
	flex-basis: 9rem;
	color: var(--wp--preset--color--caramel);
}

.fwc-career .fwc-spec__value strong {
	color: var(--wp--preset--color--ink);
	font-weight: 500;
}
