/*
Theme Name: Ismael Cassese
Author: Ivan Vega
Description: Block theme for Ismael Cassese's hospitality consulting practice. Dark charcoal with copper and gold accents by default, plus an ivory editorial style variation. Built for the Site Editor, bilingual-ready (Polylang) and paired with the "Ismael Cassese – Site functionality" plugin for the contact form, contact details and case studies.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.34.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cassese
Domain Path: /languages
Tags: block-patterns, full-site-editing, editor-style, translation-ready, accessibility-ready, one-column, wide-blocks
*/

/* -------------------------------------------------------------------------
 * Only what theme.json cannot express lives here. Colours, type and spacing
 * come from theme.json presets (var(--wp--preset--*)).
 * ---------------------------------------------------------------------- */

html {
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
}

body {
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
}

/* Keep running text at a readable measure inside wide layouts. */
.cassese-measure {
	max-width: var(--wp--custom--measure);
}

::selection {
	background: var(--wp--preset--color--linen);
	color: var(--wp--preset--color--charcoal);
}

/* Visible, consistent keyboard focus everywhere. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 3px;
}

.has-charcoal-background-color :where(a, button, input, select, textarea, summary):focus-visible,
.has-olive-deep-background-color :where(a, button, input, select, textarea, summary):focus-visible {
	outline-color: var(--wp--preset--color--brass-light);
}

/* -------------------------------------------------------------------------
 * Header
 * ---------------------------------------------------------------------- */

.cassese-header {
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.cassese-header .wp-block-site-title {
	white-space: nowrap;
}

.cassese-header__tagline {
	color: var(--wp--preset--color--graphite);
}

.cassese-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--ivory);
	padding: var(--wp--preset--spacing--40) clamp(1rem, 4vw, 3rem);
}

.cassese-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	gap: 1rem;
}

.cassese-header .wp-block-navigation .current-menu-item > a,
.cassese-header .wp-block-navigation [aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--brass);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.35em;
}

.cassese-header .wp-block-navigation a:hover {
	text-decoration-color: var(--wp--preset--color--brass);
	text-underline-offset: 0.35em;
}

.cassese-header__cta,
.cassese-header__cta .wp-block-button__link {
	flex-shrink: 0;
	white-space: nowrap;
}

/*
 * Core switches the Navigation block to the overlay at 600px. With seven
 * items, a search box, a language switcher and a button, the centred menu only
 * fits from ~1440px (with icons), so tablets and small laptops also get the overlay.
 */
@media (min-width: 600px) and (max-width: 1439px) {
	.cassese-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

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

/* Small phones: the menu overlay already contains Contact. */
@media (max-width: 479px) {
	.cassese-header .wp-block-buttons.cassese-header__cta {
		display: none;
	}
}

/* Polylang language switcher, rendered as short codes (ES / EN). */
.cassese-lang ul,
.cassese-lang .pll-language-switcher {
	display: flex;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.cassese-lang li {
	margin: 0;
}

.cassese-lang a {
	display: inline-block;
	padding: 0.35rem 0.4rem;
	color: var(--wp--preset--color--graphite);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.cassese-lang .current-lang a,
.cassese-lang a[aria-current],
.cassese-lang a:hover {
	color: var(--wp--preset--color--charcoal);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--brass);
	text-underline-offset: 0.3em;
}

/* -------------------------------------------------------------------------
 * Footer
 * ---------------------------------------------------------------------- */

.cassese-footer a {
	color: var(--wp--preset--color--snow);
	text-decoration-color: var(--wp--preset--color--gold);
	text-underline-offset: 0.3em;
}

.cassese-footer a:hover {
	color: var(--wp--preset--color--gold);
}

.cassese-footer .wp-block-navigation a {
	text-decoration: none;
}

.cassese-footer .wp-block-navigation a:hover {
	text-decoration: underline;
}

/* Thin gold line on top, like the dark home panels. */
.cassese-footer {
	border-top: 1px solid var(--cassese-gold-line, rgb(217 179 108 / 35%));
}

.cassese-footer__title {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cassese-footer__title a {
	text-decoration: none;
}

.cassese-footer__tagline {
	max-width: 22rem;
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
}

.cassese-footer__facts {
	margin: 1.25rem 0 0;
	padding-left: 0;
	list-style: none;
	font-size: 0.8125rem;
}

.cassese-footer__facts li {
	position: relative;
	padding-left: 1rem;
}

.cassese-footer__facts li + li {
	margin-top: 0.35rem;
}

.cassese-footer__facts li::before {
	content: "";
	position: absolute;
	top: 0.6em;
	left: 0;
	width: 0.4rem;
	height: 1px;
	background: var(--wp--preset--color--gold);
}

.cassese-footer__heading {
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--gold) !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cassese-footer__links {
	margin: 0;
	padding-left: 0;
	list-style: none;
	font-size: 0.9375rem;
}

.cassese-footer__links li + li {
	margin-top: 0.6rem;
}

.cassese-footer__links a,
.cassese-footer__nav a,
.cassese-footer__legal-nav a,
.cassese-footer__legal-links a {
	color: var(--wp--preset--color--fog);
	text-decoration: none;
}

.cassese-footer__links a:hover,
.cassese-footer__links a:focus-visible,
.cassese-footer__nav a:hover,
.cassese-footer__nav a:focus-visible,
.cassese-footer__legal-nav a:hover,
.cassese-footer__legal-nav a:focus-visible,
.cassese-footer__legal-links a:hover,
.cassese-footer__legal-links a:focus-visible {
	color: var(--wp--preset--color--gold);
	text-decoration: underline;
}

/* Menus in the footer read like the services list, not like the header. */
.cassese-footer__nav,
.cassese-footer__legal-nav {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
}

.cassese-footer__nav {
	font-size: 0.9375rem;
}

.cassese-footer .wp-block-cassese-contact-details {
	font-size: 0.9375rem;
}

.cassese-footer__bottom {
	border-top: 1px solid var(--wp--preset--color--smoke);
	row-gap: 0.75rem !important;
}

.cassese-footer__copy {
	margin: 0;
	color: var(--wp--preset--color--fog);
	opacity: 0.85;
}

.cassese-footer__legal-nav,
.cassese-footer__legal-links {
	margin: 0;
	font-size: 0.8125rem;
}

.cassese-footer__legal-links {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
}

@media (max-width: 781px) {
	/* Brand and contact full width; Services and Explore side by side. */
	.cassese-footer .cassese-footer__grid {
		flex-wrap: wrap !important;
	}

	.cassese-footer .cassese-footer__grid > .wp-block-column.cassese-footer__brand,
	.cassese-footer .cassese-footer__grid > .wp-block-column.cassese-footer__col:last-child {
		flex-basis: 100% !important;
	}

	.cassese-footer .cassese-footer__grid > .wp-block-column.cassese-footer__col:not(:last-child) {
		flex-basis: calc(50% - 1rem) !important;
		flex-grow: 1;
	}
}

/* -------------------------------------------------------------------------
 * Block style variations (registered in inc/class-theme.php)
 * ---------------------------------------------------------------------- */

/* Price list — the "carta": service name, dotted brass leader, price. */
.is-style-price-list > .wp-block-group + .wp-block-group {
	border-top: 1px solid var(--wp--preset--color--rule);
}

.is-style-price-list > .wp-block-group {
	padding-block: var(--wp--preset--spacing--40);
}

.cassese-price-row__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.75rem;
	row-gap: 0.25rem;
}

.cassese-price-row__head > .wp-block-heading {
	margin: 0;
	flex: 0 1 auto;
}

.cassese-price-row__head > .cassese-price-row__price {
	display: flex;
	flex: 1 1 12rem;
	align-items: baseline;
	justify-content: flex-end;
	gap: 0.75rem;
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	font-variant-numeric: lining-nums tabular-nums;
	white-space: nowrap;
}

.cassese-price-row__head > .cassese-price-row__price::before {
	content: "";
	flex: 1 1 auto;
	min-width: 2rem;
	border-bottom: 1px dotted var(--wp--preset--color--brass);
	transform: translateY(-0.3em);
}

.cassese-price-row__desc {
	max-width: var(--wp--custom--measure);
	color: var(--wp--preset--color--graphite);
}

/* Card — quiet paper panel with a hairline. */
.wp-block-group.is-style-card,
.wp-block-column.is-style-card {
	background-color: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--rule);
	padding: var(--wp--preset--spacing--40);
}

/* Short brass rule. */
.wp-block-separator.is-style-brass {
	width: 4rem;
	max-width: 4rem;
	margin-left: 0;
	border: 0;
	border-top: 1px solid var(--wp--preset--color--brass);
	background: none;
	opacity: 1;
}

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

/* Ruled list — no bullets, hairlines between items. */
.wp-block-list.is-style-ruled {
	list-style: none;
	padding-left: 0;
	border-top: 1px solid var(--wp--preset--color--rule);
}

.wp-block-list.is-style-ruled > li {
	padding-block: 0.85rem;
	margin: 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

/* Kicker — small olive label. Use once per section at most. */
.is-style-kicker {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--olive);
}

/* Outline button. */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--charcoal);
	border-color: currentColor;
}

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

.has-charcoal-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-olive-deep-background-color .wp-block-button.is-style-outline > .wp-block-button__link {
	color: var(--wp--preset--color--paper);
}

.has-charcoal-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-olive-deep-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--charcoal);
}

.has-charcoal-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.has-olive-deep-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	background-color: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--charcoal);
}

.has-charcoal-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
.has-olive-deep-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--brass-light);
	border-color: var(--wp--preset--color--brass-light);
}

/* Buttons on the always-dark surfaces (footer, dark home). */
.has-ink-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-ink-soft-background-color .wp-block-button.is-style-outline > .wp-block-button__link {
	color: var(--wp--preset--color--snow);
}

.has-ink-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-ink-soft-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--snow);
	border-color: var(--wp--preset--color--snow);
	color: var(--wp--preset--color--ink);
}

/* -------------------------------------------------------------------------
 * Section components used by the patterns
 * ---------------------------------------------------------------------- */

/* Hero statement: the headline is the image. */
.cassese-hero__title {
	font-variation-settings: "opsz" 72;
	max-width: 15ch;
	text-wrap: balance;
}

.cassese-hero__lead {
	max-width: 34rem;
}

.cassese-hero__portrait img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
}

/* Process: genuine sequence, so numerals are meaningful. */
.cassese-steps {
	counter-reset: cassese-step;
}

.cassese-steps > .wp-block-column {
	counter-increment: cassese-step;
	border-top: 1px solid var(--wp--preset--color--charcoal);
	padding-top: var(--wp--preset--spacing--30);
}

.cassese-steps > .wp-block-column::before {
	content: counter(cassese-step);
	display: block;
	margin-bottom: 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	font-variant-numeric: lining-nums;
	line-height: 1;
	color: var(--wp--preset--color--brass);
}

/* Experience timeline: years column + role. */
.cassese-timeline > .wp-block-group {
	display: grid;
	grid-template-columns: minmax(7rem, 10rem) 1fr;
	gap: 0.5rem 2rem;
	padding-block: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--rule);
}

.cassese-timeline > .wp-block-group > * {
	margin: 0;
}

.cassese-timeline__years {
	font-family: var(--wp--preset--font-family--serif);
	color: var(--wp--preset--color--graphite);
	font-variant-numeric: lining-nums;
}

@media (max-width: 599px) {
	.cassese-timeline > .wp-block-group {
		grid-template-columns: 1fr;
	}
}

/* Pending content markers — easy to spot, impossible to miss before launch. */
.cassese-pending,
mark.cassese-pending {
	background: rgb(201 168 106 / 22%);
	color: inherit;
	padding: 0 0.2em;
	outline: 1px dashed var(--wp--preset--color--brass);
}

/* Post lists */
.cassese-post-list .wp-block-post {
	padding-block: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--rule);
}

.cassese-post-list .wp-block-post-title a {
	text-decoration: none;
}

.cassese-post-list .wp-block-post-title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--brass);
	text-underline-offset: 0.2em;
}

.wp-block-post-featured-image img {
	object-fit: cover;
}

/* Single post: reading comfort. */
.cassese-article .wp-block-post-content {
	font-size: var(--wp--preset--font-size--base);
}

.cassese-article .wp-block-post-content > h2 {
	font-size: var(--wp--preset--font-size--large);
	margin-top: var(--wp--preset--spacing--50);
}

/* Skip link is provided by core for block themes; keep it on-brand. */
.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--sans);
}

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

@media print {
	.cassese-header,
	.cassese-footer,
	.wp-block-buttons {
		display: none;
	}

	body {
		background: #fff;
	}
}

/* =========================================================================
 * Dark home ("Home: dark hero" template)
 * Display type: Montserrat, uppercase. Accents: copper (actions), gold
 * (emphasis), glow (decorative data panels only).
 * ====================================================================== */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.cassese-dark {
	position: relative;
	--cassese-glass: rgb(22 21 20 / 80%);
	--cassese-glow-line: rgb(127 227 236 / 42%);
	--cassese-gold-line: rgb(217 179 108 / 38%);
}

/* Buttons --------------------------------------------------------------- */

.wp-block-button.is-style-copper > .wp-block-button__link {
	background-color: var(--wp--preset--color--copper);
	border-color: var(--wp--preset--color--copper);
	border-radius: 3px;
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.95em 1.5em;
}

.wp-block-button.is-style-copper > .wp-block-button__link:hover,
.wp-block-button.is-style-copper > .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--copper-deep);
	border-color: var(--wp--preset--color--copper-deep);
	color: #fff;
}

.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 3px;
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

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

/* Header over the hero -------------------------------------------------- */

.cassese-header--overlay {
	position: absolute;
	inset: 0 0 auto;
	z-index: 20;
	border-bottom: 0;
	background: linear-gradient(180deg, rgb(22 21 20 / 75%) 0%, rgb(22 21 20 / 0%) 100%);
}

.cassese-header--overlay .cassese-brand {
	align-items: center;
}

.cassese-header--overlay .wp-block-site-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cassese-header--overlay .wp-block-site-title a {
	color: var(--wp--preset--color--snow);
}

.cassese-header--overlay .wp-block-navigation {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cassese-header--overlay .wp-block-navigation a,
.cassese-header--overlay .wp-block-navigation__responsive-container-open,
.cassese-header--overlay .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--snow);
}

.cassese-header--overlay .wp-block-navigation .current-menu-item > a,
.cassese-header--overlay .wp-block-navigation a:hover {
	text-decoration-color: var(--wp--preset--color--copper);
	text-decoration-thickness: 2px;
}

.cassese-header.cassese-header--overlay .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--snow);
}

.cassese-lang--dark a {
	color: var(--wp--preset--color--fog);
}

.cassese-lang--dark .current-lang a,
.cassese-lang--dark a:hover {
	color: var(--wp--preset--color--snow);
	text-decoration-color: var(--wp--preset--color--copper);
}

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

.wp-block-cover.cassese-hero-dark {
	overflow: visible;
	align-items: stretch;
	z-index: 2;
}

.cassese-hero-dark > .wp-block-cover__background {
	background: linear-gradient(90deg, rgb(22 21 20 / 92%) 0%, rgb(22 21 20 / 70%) 34%, rgb(22 21 20 / 22%) 62%, rgb(22 21 20 / 45%) 100%) !important;
	opacity: 1 !important;
}

.wp-block-cover.cassese-hero-dark > .wp-block-cover__inner-container {
	position: relative;
	box-sizing: border-box;
	width: 100% !important;
	max-width: none;
	margin: 0;
	padding-inline: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 3rem));
}

.cassese-hero-dark .cassese-hero-dark__grid {
	margin-block: 0;
}

.cassese-hero-dark__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, min(35%, 30rem));
	grid-template-rows: 1fr auto;
	column-gap: var(--wp--preset--spacing--50);
	min-height: 100vh;
}

.cassese-hero-dark__intro {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	padding-top: clamp(8rem, 6rem + 6vh, 11rem);
	max-width: 52rem;
}

.cassese-hero-dark__lead {
	max-width: 38rem;
}

.cassese-hero-dark__title {
	margin: 0;
	color: var(--wp--preset--color--snow);
	font-size: clamp(2rem, 1rem + 1.85vw, 2.875rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.14;
	text-transform: uppercase;
	text-wrap: balance;
}

.cassese-hero-dark__title mark {
	font-weight: 700;
}

.cassese-hero-dark__lead {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.55;
	opacity: 0.92;
}

.cassese-hero-dark__intro .wp-block-buttons {
	margin-top: 2rem;
}

/* Key figures */
.cassese-stats {
	grid-column: 1;
	grid-row: 2;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 14.5rem));
	align-items: stretch;
	gap: 1rem;
	padding-bottom: clamp(2rem, 6vh, 4rem);
}

/* Same size for every card: the flow layout's top margin would push all but the first one down. */
.cassese-stats > .cassese-stat {
	box-sizing: border-box;
	min-height: 4.25rem;
	margin: 0 !important;
}

.cassese-stat {
	gap: 0.75rem !important;
	padding: 0.7rem 1.1rem;
	border: 1px solid var(--cassese-glow-line);
	border-radius: 6px;
	background: var(--cassese-glass);
	box-shadow: 0 0 22px rgb(127 227 236 / 12%), inset 0 0 12px rgb(127 227 236 / 8%);
}

.cassese-stat > p {
	margin: 0;
}

.cassese-stat__value {
	flex: 0 0 auto;
	min-width: 2.2em;
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 1rem + 1vw, 2rem);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: lining-nums;
}

.cassese-stat__label {
	flex: 1 1 auto;
	min-width: 0;
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.25;
	text-transform: uppercase;
}

/* Decorative data panels */
.cassese-holo {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.cassese-holo__panel {
	position: absolute;
	padding: 0.5rem 0.6rem 0.6rem;
	border: 1px solid var(--cassese-glow-line);
	border-radius: 6px;
	background: rgb(14 28 30 / 55%);
	box-shadow: 0 0 28px rgb(127 227 236 / 16%), inset 0 0 18px rgb(127 227 236 / 8%);
	transform: perspective(900px) rotateY(-10deg);
}

.cassese-holo__panel svg {
	display: block;
	width: 100%;
	height: auto;
}

.cassese-holo__heat {
	margin-top: 0.4rem;
	border-radius: 3px;
}

.cassese-holo__label {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--wp--preset--color--glow);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.5625rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.85;
}

.cassese-holo__panel--kpi {
	top: 15%;
	left: 40%;
	width: 12.5%;
}

.cassese-holo__panel--line {
	top: 54%;
	left: 40%;
	width: 13%;
	transform: perspective(900px) rotateY(10deg);
}

.cassese-holo__panel--bars {
	top: 47%;
	left: 44%;
	width: 11%;
}

.cassese-holo__wave {
	position: absolute;
	left: 0;
	bottom: 3%;
	width: 62%;
	height: 7rem;
}

/* Overlapping systems panel */
.cassese-hero-dark .cassese-hero-dark__grid > .cassese-systems {
	margin-block: 0 -13rem;
}

.cassese-systems {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: end;
	padding: 1.25rem 1.25rem 1.1rem;
	border: 1px solid var(--cassese-gold-line);
	border-radius: 6px;
	background: rgb(26 25 24 / 94%);
	box-shadow: 0 30px 60px rgb(0 0 0 / 45%);
	color: var(--wp--preset--color--fog);
}

.cassese-systems__head {
	gap: 0.9rem !important;
	margin-bottom: 1rem;
}

.cassese-systems__icon {
	flex: 0 0 auto;
	margin: 0;
}

.cassese-systems__title {
	margin: 0;
	color: var(--wp--preset--color--gold) !important;
	font-size: clamp(1rem, 0.7rem + 0.7vw, 1.3rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: uppercase;
}

.cassese-systems__cards {
	gap: 0.75rem !important;
	margin-bottom: 1.25rem;
}

.cassese-systems__card {
	padding: 0.5rem;
	border: 1px solid var(--cassese-gold-line);
	border-radius: 4px;
	background: rgb(255 255 255 / 3%);
}

.cassese-systems__card-title {
	margin: 0 0 0.45rem;
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 500;
}

.cassese-systems__card .wp-block-image {
	margin: 0;
}

.cassese-systems__card img {
	border-radius: 2px;
}

.cassese-systems .wp-block-cassese-testimonials .cassese-testimonials__heading {
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	flex: 1;
	text-align: center;
}

.cassese-systems .cassese-testimonials__item {
	background: rgb(255 255 255 / 3%);
	color: var(--wp--preset--color--fog);
	font-size: 0.75rem;
}

/* Sections after the hero ------------------------------------------------ */

.cassese-dark + .wp-block-template-part {
	margin-block-start: 0;
}

.cassese-lang ul,
.cassese-lang .pll-language-switcher {
	flex-wrap: nowrap;
	white-space: nowrap;
}

.cassese-stat__value .cassese-pending {
	padding: 0 0.15em;
}

.cassese-dark .has-graphite-color {
	color: var(--wp--preset--color--fog) !important;
}

.cassese-dark .wp-block-post-date,
.cassese-dark .wp-block-post-date a {
	color: var(--wp--preset--color--fog);
}

.cassese-dark .wp-block-post-title a {
	color: var(--wp--preset--color--snow);
}

.cassese-dark .cassese-steps > .wp-block-column {
	border-top-color: var(--wp--preset--color--smoke);
}

.cassese-dark .cassese-steps > .wp-block-column::before {
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
}

.cassese-dark [style*="border-top-color:var(--wp--preset--color--charcoal)"] {
	border-top-color: var(--wp--preset--color--smoke) !important;
}

.cassese-dark h2.wp-block-heading:not(.cassese-systems__title, .cassese-cred__title) {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	letter-spacing: -0.01em;
	text-transform: none;
	font-size: clamp(1.5rem, 1rem + 1.4vw, 2.25rem);
}

.cassese-eyebrow-dark {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cassese-dark-intro > * {
	max-width: 36rem;
}

.cassese-dark-intro p:not(.cassese-eyebrow-dark) {
	font-size: 1.0625rem;
}

.cassese-dark-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--smoke);
	border-radius: 6px;
	background: var(--wp--preset--color--ink-soft);
	/* Fixed tones: the card stays dark in the Ivory variation too. */
	color: var(--wp--preset--color--fog);
}

.cassese-dark-card > * {
	margin-inline: 1.25rem;
}

.cassese-dark-card > :last-child {
	margin-bottom: 1.25rem;
}

.cassese-dark-card > .wp-block-image {
	margin: 0 0 1rem;
}

.cassese-dark-card__title {
	margin-top: 0;
	margin-bottom: 0.5rem;
	color: var(--wp--preset--color--snow);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	line-height: 1.3;
	text-transform: uppercase;
}

.cassese-dark-card__text {
	margin-top: 0;
	font-size: 0.9375rem;
	line-height: 1.55;
}

.cassese-dark-card__fee {
	margin-top: auto;
	padding-top: 0.75rem;
	color: var(--wp--preset--color--gold);
	font-size: 0.875rem;
}

.cassese-dark-card__link {
	margin-top: 0.25rem;
	margin-bottom: 1.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cassese-dark-card__link a {
	color: var(--wp--preset--color--gold);
	text-underline-offset: 0.35em;
}

.cassese-dark-portrait img {
	border-radius: 6px;
}

.cassese-milestones {
	padding-left: 0;
	list-style: none;
	border-top: 1px solid var(--wp--preset--color--smoke);
}

.cassese-milestones li {
	padding-block: 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--smoke);
}

.cassese-milestones li strong {
	display: block;
	margin-bottom: 0.15rem;
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
}

.cassese-dark-cta__box {
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
	border: 1px solid var(--cassese-gold-line);
	border-radius: 6px;
	background: var(--wp--preset--color--ink-soft);
}

.cassese-dark-cta__box h2 {
	margin-top: 0;
}

/* Responsive ------------------------------------------------------------- */

@media (min-width: 1024px) {
	/* Leave room on the right for the overlapping panel. */
	.cassese-dark-services .cassese-dark-intro > * {
		max-width: min(36rem, 55%);
	}
}

@media (max-width: 1023px) {
	.cassese-hero-dark__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		min-height: 0;
		row-gap: 2rem;
	}

	.cassese-hero-dark__intro,
	.cassese-stats,
	.cassese-systems {
		grid-column: 1;
		grid-row: auto;
	}

	.cassese-stats {
		padding-bottom: 0;
	}

	.cassese-hero-dark .cassese-hero-dark__grid > .cassese-systems {
		margin-block: 0 -6rem;
	}

	.cassese-systems {
		max-width: 34rem;
	}

	.cassese-dark-services {
		padding-top: calc(6rem + var(--wp--preset--spacing--60)) !important;
	}

	.cassese-holo__panel {
		display: none;
	}

	.cassese-holo__wave {
		width: 100%;
		bottom: 30%;
	}

	.cassese-hero-dark > .wp-block-cover__background {
		background: linear-gradient(180deg, rgb(22 21 20 / 70%) 0%, rgb(22 21 20 / 85%) 60%, rgb(22 21 20 / 96%) 100%) !important;
	}
}

@media (max-width: 599px) {
	.cassese-stats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.5rem;
	}

	.cassese-stat {
		padding: 0.6rem 0.7rem;
	}

	.cassese-stat__label {
		font-size: 0.625rem;
	}

	.cassese-header--overlay .wp-block-site-logo img {
		width: 44px !important;
	}

	.cassese-systems__cards {
		flex-wrap: nowrap !important;
	}
}

@media (prefers-reduced-transparency: reduce) {
	.cassese-stat,
	.cassese-holo__panel,
	.cassese-systems {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--wp--preset--color--ink-soft);
	}
}

/* Submenus (e.g. Services) */
.cassese-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 15rem;
	padding: 0.4rem 0;
	border: 1px solid var(--wp--preset--color--rule);
	background-color: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--charcoal);
}

.cassese-header .wp-block-navigation .wp-block-navigation__submenu-container a {
	padding: 0.5rem 1rem;
	color: var(--wp--preset--color--charcoal);
}

.cassese-header--overlay .wp-block-navigation .wp-block-navigation__submenu-container {
	border-color: var(--wp--preset--color--smoke);
	background-color: var(--wp--preset--color--ink-soft);
}

.cassese-header--overlay .wp-block-navigation .wp-block-navigation__submenu-container a {
	color: var(--wp--preset--color--snow);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
}

.cassese-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border: 0;
	background: transparent;
}

/* Dark home: additional sections ---------------------------------------- */

.cassese-proof {
	border-block: 1px solid var(--wp--preset--color--smoke);
}

.cassese-proof__row {
	row-gap: 0.25rem !important;
	column-gap: clamp(1rem, 0.5rem + 2vw, 2.5rem) !important;
}

.cassese-proof__label {
	flex-basis: 100%;
}

.cassese-proof__label {
	margin: 0;
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cassese-proof__logo {
	display: grid;
	place-items: center;
	min-width: 8.5rem;
	height: 3rem;
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
}

.cassese-proof__logo img {
	max-height: 2.5rem;
	width: auto;
	filter: grayscale(1) brightness(1.6);
	opacity: 0.75;
}

/* A checklist, not cards: rules between items, the copper ring as the "tick". */
.cassese-signs-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 2.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--wp--preset--color--smoke);
}

.cassese-signs-grid > li {
	position: relative;
	margin: 0;
	padding: 1.1rem 0 1.1rem 2rem;
	border-bottom: 1px solid var(--wp--preset--color--smoke);
	color: var(--wp--preset--color--snow);
	font-size: 1.0625rem;
	line-height: 1.45;
}

.cassese-signs-grid > li::before {
	content: "";
	position: absolute;
	top: 1.4rem;
	left: 0;
	width: 0.8rem;
	height: 0.8rem;
	border: 2px solid var(--wp--preset--color--copper);
	border-radius: 50%;
}

.cassese-featured-case .wp-block-post-featured-image img {
	border-radius: 6px;
}

.cassese-featured-case .wp-block-post-excerpt {
	color: var(--wp--preset--color--fog);
}

.cassese-featured-case .wp-block-read-more {
	color: var(--wp--preset--color--gold);
}

.cassese-dark-calc__box {
	padding: clamp(1.5rem, 1rem + 2.5vw, 3.5rem);
	border: 1px solid var(--cassese-gold-line);
	border-radius: 8px;
	background:
		radial-gradient(120% 140% at 100% 0%, rgb(127 227 236 / 7%) 0%, transparent 55%),
		var(--wp--preset--color--ink-soft);
}

.cassese-dark-calc .wp-block-cassese-food-cost-calculator {
	color: var(--wp--preset--color--snow);
}

.cassese-dark-calc .cassese-calc__result {
	background: rgb(255 255 255 / 3%);
}

.cassese-dark-calc__cta {
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--smoke);
}

.cassese-dark-calc__cta a {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
}

.cassese-mosaic {
	grid-auto-rows: clamp(9rem, 14vw, 13rem);
	gap: 0.75rem !important;
}

.cassese-mosaic > .wp-block-image {
	margin: 0;
	overflow: hidden;
	border-radius: 6px;
}

.cassese-mosaic > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cassese-mosaic > .wp-block-image:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

.cassese-dark-faq .cassese-faq-item {
	border-bottom: 1px solid var(--wp--preset--color--smoke);
	padding-block: 1.1rem;
}

.cassese-dark-faq .cassese-faq-item summary {
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.cassese-dark-faq .cassese-faq-item summary::marker {
	color: var(--wp--preset--color--copper);
}

.cassese-dark-faq .cassese-faq-item p {
	margin-top: 0.75rem;
}

@media (max-width: 781px) {
	.cassese-signs-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.cassese-mosaic {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.cassese-proof__logo {
		min-width: 6.5rem;
	}
}

/* A case study without a main image: let the text take the full width. */
.cassese-featured-case .wp-block-column:not(:has(*)) {
	display: none;
}

/* Form error colour follows the active style (readable on dark and light). */
body .wp-block-cassese-contact-form {
	--cassese-form-error: var(--wp--custom--error, #9b2c1f);
}

/* Content created before the dark default stored "paper" as the light text
 * colour on accent bands; keep it readable. */
.has-olive-deep-background-color.has-paper-color,
.has-olive-deep-background-color.has-paper-color :is(h1, h2, h3, p, a) {
	color: var(--wp--preset--color--snow) !important;
}

.cassese-dark .cassese-testimonials__track {
	scrollbar-color: var(--wp--preset--color--smoke) transparent;
}

/* Repertoire of dishes ---------------------------------------------------- */

.cassese-dishes__kicker {
	margin-bottom: 0.75rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--brass);
	color: var(--wp--preset--color--brass);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.cassese-dishes__list {
	margin: 0;
	padding-left: 0;
	list-style: none;
}

.cassese-dishes__list li {
	padding-block: 0.7rem;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	color: var(--wp--preset--color--graphite);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.cassese-dishes__list strong {
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.125rem;
	font-weight: 500;
}

/* =========================================================================
 * Sticky header
 * Inner pages: the header stays at the top while scrolling (CSS sticky) and
 * gets a shadow once it leaves its place (`is-stuck`, see sticky-header.js).
 * Dark home: the overlay header is transparent over the hero and becomes a
 * solid, compact bar fixed to the top after scrolling; back at the top it
 * returns to its original state.
 * ====================================================================== */

html {
	scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 5.5rem);
}

.cassese-sticky-sentinel {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 80px;
	pointer-events: none;
	opacity: 0;
}

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}

.wp-site-blocks > header .cassese-header {
	background-color: var(--wp--preset--color--ivory);
	transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.wp-site-blocks > header .cassese-header.is-stuck {
	border-bottom-color: var(--cassese-gold-line, rgb(217 179 108 / 38%));
	box-shadow: 0 10px 28px rgb(0 0 0 / 28%);
}

/* The admin bar is not fixed on small screens: stick to the very top. */
@media screen and (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part,
	.cassese-header--overlay.is-stuck {
		top: 0;
	}
}

.cassese-header--overlay {
	transition: background-color 0.25s ease, box-shadow 0.25s ease;
}

.cassese-header--overlay.is-stuck {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	padding-top: 0.65rem !important;
	padding-bottom: 0.65rem !important;
	border-bottom: 1px solid var(--cassese-gold-line, rgb(217 179 108 / 38%));
	background: rgb(22 21 20 / 96%);
	box-shadow: 0 12px 32px rgb(0 0 0 / 45%);
	/* Opacity and clip-path only: a transform would trap the full-screen mobile menu. */
	animation: cassese-header-in 0.3s ease;
}

.cassese-header--overlay.is-stuck .wp-block-site-logo img {
	width: 40px !important;
	height: auto;
}

@keyframes cassese-header-in {
	from {
		opacity: 0;
		clip-path: inset(0 0 100% 0);
	}

	to {
		opacity: 1;
		clip-path: inset(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cassese-header--overlay.is-stuck {
		animation: none;
	}
}

/* Legal pages -------------------------------------------------------------- */

/* Reading column of ~70 characters; headings in sentence case, quieter than the marketing pages. */
.cassese-legal__body > * {
	max-width: 42rem;
}

.cassese-legal__body h2 {
	margin-top: var(--wp--preset--spacing--50);
	margin-bottom: 0.75rem;
	font-size: 1.375rem;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: none;
}

.cassese-legal__body p,
.cassese-legal__body li {
	line-height: 1.7;
}

.cassese-legal__body ul {
	padding-left: 1.1rem;
}

.cassese-legal__body li + li {
	margin-top: 0.35rem;
}

/* "In short": the one element that stands out. */
.cassese-legal__summary {
	margin-bottom: var(--wp--preset--spacing--40);
	padding: 1.25rem 1.5rem 1.4rem;
	border-left: 2px solid var(--wp--preset--color--brass);
	background: var(--wp--preset--color--paper);
}

.cassese-legal__body .cassese-legal__summary-title {
	margin: 0 0 0.6rem;
	color: var(--wp--preset--color--brass);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.375rem;
	font-style: italic;
	font-weight: 400;
}

.cassese-legal__summary ul {
	margin: 0;
	padding-left: 1.1rem;
	color: var(--wp--preset--color--charcoal);
	font-size: 1.0625rem;
}

/* Table of contents. */
.cassese-legal__toc {
	font-size: 0.9375rem;
}

.cassese-legal__toc-title {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--graphite);
	font-size: 0.875rem;
}

.cassese-legal__toc-list {
	margin: 0;
	padding: 0 0 0 0.9rem;
	border-left: 1px solid var(--wp--preset--color--rule);
	list-style: none;
}

.cassese-legal__toc-list li + li {
	margin-top: 0.55rem;
}

.cassese-legal__toc-list a {
	color: var(--wp--preset--color--graphite);
	text-decoration: none;
}

.cassese-legal__toc-list a:hover,
.cassese-legal__toc-list a:focus-visible {
	color: var(--wp--preset--color--charcoal);
	text-decoration: underline;
}

@media (min-width: 782px) {
	.cassese-legal__toc {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 6.5rem);
	}
}

@media (max-width: 781px) {
	.cassese-legal__toc {
		padding: 1rem 1.25rem;
		border: 1px solid var(--wp--preset--color--rule);
		border-radius: 6px;
	}
}

.cassese-legal__table {
	overflow-x: visible;
	font-size: 0.875rem;
}

.cassese-legal__table th,
.cassese-legal__table td {
	padding: 0.6rem 0.5rem;
	border-color: var(--wp--preset--color--rule);
	text-align: left;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.cassese-legal__table th {
	overflow-wrap: normal;
	white-space: nowrap;
	color: var(--wp--preset--color--brass);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cassese-legal__table code {
	font-size: 0.8125rem;
	word-break: break-all;
}

/* Narrow cards: number above the label, so long words never overflow. */
@media (max-width: 1180px) {
	.cassese-stats > .cassese-stat {
		flex-direction: column;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		gap: 0.45rem !important;
	}
}

/* Hero panel: real photo and the kitchens Ismael has worked in. */
.cassese-systems__photo {
	margin: 0.25rem 0 0;
}

.cassese-systems__photo img {
	width: 100%;
	border-radius: 4px;
}

.cassese-systems .cassese-systems__subtitle {
	margin: 1.1rem 0 0.4rem;
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.cassese-systems__venues {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
}

.cassese-systems__venues li {
	padding: 0.4rem 0;
	border-top: 1px solid var(--wp--preset--color--smoke);
	color: var(--wp--preset--color--fog);
}

/* Repertoire as the second half of the craft section. */
.cassese-dishes--compact .cassese-dishes__title {
	margin-bottom: 0;
	font-size: 1.25rem;
}

/* Hero photo (pre-mirrored file, see helpers.php): shade only where the text sits,
   so the kitchen stays warm and visible on the right, like the approved mockup. */
@media (min-width: 1024px) {
	.cassese-hero-dark > .wp-block-cover__background {
		background:
			linear-gradient(180deg, rgb(22 21 20 / 55%) 0%, rgb(22 21 20 / 0%) 18%, rgb(22 21 20 / 0%) 72%, rgb(22 21 20 / 92%) 100%),
			linear-gradient(90deg, rgb(22 21 20 / 90%) 0%, rgb(22 21 20 / 70%) 34%, rgb(22 21 20 / 18%) 62%, rgb(22 21 20 / 5%) 100%) !important;
		opacity: 1 !important;
	}
}

/* Article titles below the section title, not competing with it. */
.cassese-dark .wp-block-post-template .wp-block-post-title {
	font-size: clamp(1.2rem, 1rem + 0.5vw, 1.45rem) !important;
	line-height: 1.25;
}

/* Repertoire menu names read as captions, not as shouted labels. */
.cassese-dishes__kicker {
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Header: full width, with the same 2 cm side margin as the root padding. */
.cassese-header > .wp-block-group.alignwide {
	max-width: none !important;
}

/* Hero: one path per kind of visitor, filling the space under the call to action. */
.cassese-paths {
	max-width: 38rem;
	margin-top: clamp(1.75rem, 1rem + 2vh, 2.75rem);
}

.cassese-paths__title {
	margin: 0 0 0.6rem;
	color: var(--wp--preset--color--fog);
	font-size: 0.9375rem;
}

.cassese-paths__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cassese-paths__list li {
	border-top: 1px solid rgb(244 239 228 / 18%);
}

.cassese-paths__list li:nth-last-child(-n+2) {
	border-bottom: 1px solid rgb(244 239 228 / 18%);
}

.cassese-paths__list li {
	display: flex;
}

/* Same marker on every item: a small gold chevron, vertically centred. */
.cassese-paths__list a {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 3.1rem;
	padding: 0.6rem 1.75rem 0.6rem 0;
	color: var(--wp--preset--color--snow);
	font-size: 0.9375rem;
	line-height: 1.35;
	text-decoration: none;
}

.cassese-paths__list a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0.35rem;
	width: 0.45rem;
	height: 0.45rem;
	border-top: 1.5px solid var(--wp--preset--color--gold);
	border-right: 1.5px solid var(--wp--preset--color--gold);
	transform: translateY(-50%) rotate(45deg);
	transition: right 0.2s ease;
}

.cassese-paths__list a:hover,
.cassese-paths__list a:focus-visible {
	color: var(--wp--preset--color--gold);
}

.cassese-paths__list a:hover::after,
.cassese-paths__list a:focus-visible::after {
	right: 0.1rem;
}

@media (max-width: 599px) {
	.cassese-paths__list {
		grid-template-columns: 1fr;
	}
}

/* Decorative data panels removed from the hero (also hides them in homes saved earlier). */
.cassese-holo__panel {
	display: none !important;
}

/* Key figures as tall cards that fill the space between the call to action and
   the bottom of the hero (desktop). Number at the top, label at the bottom. */
@media (min-width: 1024px) {
	.cassese-hero-dark__grid {
		grid-template-rows: auto 1fr;
	}

	.cassese-hero-dark__grid > .cassese-stats {
		align-self: stretch;
		align-items: stretch;
		grid-template-columns: repeat(3, minmax(0, 12rem));
		padding-top: clamp(1.25rem, 2.5vh, 2rem);
		padding-bottom: clamp(1.25rem, 3vh, 2.5rem);
	}

	.cassese-stats > .cassese-stat {
		flex-direction: column;
		align-items: flex-start !important;
		justify-content: space-between !important;
		min-height: 9rem;
		padding: 1.25rem 1.2rem 1.3rem;
	}

	.cassese-stats > .cassese-stat .cassese-stat__value {
		font-size: clamp(2.25rem, 1.4rem + 1.5vw, 3.25rem);
	}

	.cassese-stats > .cassese-stat .cassese-stat__label {
		width: 100%;
		max-width: none;
		padding-top: 0.75rem;
		border-top: 1px solid var(--cassese-glow-line);
		font-size: 0.75rem;
	}
}

/* Language dropdown (header) ------------------------------------------------ */

.cassese-langdd {
	position: relative;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.cassese-langdd summary {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.6rem;
	border: 1px solid rgb(244 239 228 / 28%);
	border-radius: 4px;
	color: var(--wp--preset--color--snow);
	cursor: pointer;
	list-style: none;
}

.cassese-langdd summary::-webkit-details-marker {
	display: none;
}

.cassese-langdd summary::after {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	margin-top: -0.2rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.cassese-langdd[open] summary::after {
	margin-top: 0.15rem;
	transform: rotate(-135deg);
}

.cassese-langdd summary:hover,
.cassese-langdd summary:focus-visible {
	border-color: var(--wp--preset--color--gold);
}

.cassese-langdd ul {
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	z-index: 120;
	min-width: 11rem;
	margin: 0;
	padding: 0.35rem 0;
	border: 1px solid var(--cassese-gold-line, rgb(217 179 108 / 38%));
	border-radius: 6px;
	background: var(--wp--preset--color--ink);
	box-shadow: 0 16px 32px rgb(0 0 0 / 45%);
	list-style: none;
	text-transform: none;
	letter-spacing: 0;
}

.cassese-flag {
	display: block;
	flex: none;
	width: 24px;
	height: 16px;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgb(255 255 255 / 18%);
}

.cassese-langdd summary .cassese-flag {
	width: 27px;
	height: 18px;
}

.cassese-langdd li a,
.cassese-langdd__soon {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.55rem 0.9rem;
	color: var(--wp--preset--color--fog);
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 500;
	text-decoration: none;
}

.cassese-langdd li a:hover,
.cassese-langdd li a:focus-visible {
	color: var(--wp--preset--color--gold);
}

.cassese-langdd li a[aria-current] {
	color: var(--wp--preset--color--snow);
}

.cassese-langdd__soon {
	opacity: 0.6;
	cursor: default;
}

.cassese-langdd__soon small {
	margin-left: auto;
	padding-left: 0.5rem;
	font-size: 0.75em;
}

.cassese-langdd__soon .cassese-flag {
	filter: grayscale(0.6);
}

/* Inner pages: header on the palette background. */
.cassese-header:not(.cassese-header--overlay) .cassese-langdd summary {
	border-color: var(--wp--preset--color--rule);
	color: var(--wp--preset--color--charcoal);
}

/* Key figures as photo cards (home) ----------------------------------------- */

.cassese-creds__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

.cassese-creds__grid > .wp-block-cover {
	margin: 0 !important;
}

.cassese-cred {
	overflow: hidden;
	align-items: flex-start !important;
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem) !important;
	border-radius: 8px;
	box-shadow: 0 24px 48px rgb(0 0 0 / 35%);
}

/* The photo sits on the right; the left side stays dark for the text. */
.cassese-cred > .wp-block-cover__background {
	background: linear-gradient(90deg, #161514 0%, rgb(22 21 20 / 96%) 34%, rgb(22 21 20 / 55%) 62%, rgb(22 21 20 / 10%) 100%) !important;
	opacity: 1 !important;
}

.cassese-cred > .wp-block-cover__inner-container {
	max-width: 60%;
	color: var(--wp--preset--color--fog);
}

.cassese-cred__icon {
	display: block;
	color: var(--wp--preset--color--gold);
}

.cassese-cred .cassese-cred__figure {
	margin: 1.25rem 0 0;
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(3.5rem, 2.4rem + 2.6vw, 5.25rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 0.95;
}

.cassese-cred .cassese-cred__figure::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 2px;
	margin-top: 1.1rem;
	background: linear-gradient(90deg, var(--wp--preset--color--gold), rgb(217 179 108 / 30%));
}

.cassese-cred .cassese-cred__title {
	margin: 1.1rem 0 0;
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.4rem, 1.1rem + 0.8vw, 1.9rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.15;
	text-transform: none;
}

.cassese-cred .cassese-cred__text {
	margin: 0.9rem 0 0;
	color: var(--wp--preset--color--fog);
	font-size: 0.9375rem;
	line-height: 1.55;
}

@media (max-width: 1023px) {
	.cassese-creds__grid {
		grid-template-columns: 1fr;
	}

	.cassese-cred {
		min-height: 20rem !important;
	}

	.cassese-cred > .wp-block-cover__inner-container {
		max-width: 68%;
	}
}

@media (max-width: 599px) {
	.cassese-cred > .wp-block-cover__inner-container {
		max-width: 82%;
	}
}

/* Small key-figure cards under the hero button. */
.cassese-creds--hero {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	max-width: 38rem; /* Same width as the visitor paths above. */
	margin-top: clamp(1.5rem, 3vh, 2.25rem);
}

.cassese-creds--hero > .wp-block-cover {
	margin: 0 !important;
}

.cassese-cred.cassese-cred--small {
	min-height: 11rem !important;
	padding: 1.1rem 1.15rem 1.2rem !important;
	border: 1px solid rgb(217 179 108 / 22%);
	border-radius: 6px;
	box-shadow: 0 16px 32px rgb(0 0 0 / 35%);
}

.cassese-cred--small > .wp-block-cover__background {
	background: linear-gradient(100deg, #161514 0%, rgb(22 21 20 / 92%) 45%, rgb(22 21 20 / 55%) 100%) !important;
}

.cassese-cred--small > .wp-block-cover__inner-container {
	max-width: 100%;
}

.cassese-cred--small .cassese-cred__icon {
	width: 28px;
	height: 28px;
}

.cassese-cred.cassese-cred--small .cassese-cred__figure {
	margin-top: 0.6rem;
	font-size: clamp(2rem, 1.6rem + 0.9vw, 2.6rem);
}

.cassese-cred.cassese-cred--small .cassese-cred__figure::after {
	width: 2.75rem;
	margin-top: 0.6rem;
}

.cassese-cred.cassese-cred--small .cassese-cred__title {
	margin-top: 0.6rem;
	font-size: 1.0625rem;
	line-height: 1.2;
	text-wrap: balance;
}

@media (max-width: 599px) {
	.cassese-creds--hero {
		gap: 0.5rem;
	}

	.cassese-cred.cassese-cred--small {
		min-height: 9rem !important;
		padding: 0.75rem !important;
	}

	.cassese-cred.cassese-cred--small .cassese-cred__figure {
		font-size: 1.75rem;
	}

	.cassese-cred.cassese-cred--small .cassese-cred__title {
		font-size: 0.8125rem;
		hyphens: auto;
	}
}

/* Hero panel no longer overlaps the next section: the cards come right after the hero. */
.cassese-hero-dark .cassese-hero-dark__grid > .cassese-systems {
	margin-block: 0 clamp(1.5rem, 4vh, 3rem) !important;
}

.cassese-dark-services {
	padding-top: var(--wp--preset--spacing--60) !important;
}

@media (min-width: 1024px) {
	.cassese-dark-services .cassese-dark-intro > * {
		max-width: 46rem;
	}
}

/* Gallery and photo strips --------------------------------------------------- */

.cassese-gallery.wp-block-gallery {
	gap: 0.75rem !important;
}

/* Keep every tile the same size: the last row must not stretch to fill the line. */
.cassese-gallery.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) {
	flex-grow: 0;
	width: calc((100% - 3 * 0.75rem) / 4);
}

.cassese-gallery.wp-block-gallery .wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 4px;
}

.cassese-photo-strip {
	gap: 0.75rem !important;
}

.cassese-photo-strip .wp-block-image {
	margin: 0;
}

.cassese-photo-strip img,
.cassese-dishes__photo img {
	border-radius: 4px;
}

.cassese-dishes__photo {
	margin: 0 0 1rem;
}

@media (max-width: 781px) {
	.cassese-gallery.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) {
		width: calc(50% - 0.375rem);
	}
}

/* Blog ("journal"): article previews with photos ---------------------------- */
/* Semantic palette slugs (charcoal = text, graphite = muted, rule = lines, olive = accent)
   so the page also works with the ivory style variation. */

.cassese-journal-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 34rem);
	gap: 1rem var(--wp--preset--spacing--50);
	align-items: end;
	margin-bottom: var(--wp--preset--spacing--40) !important;
	padding-bottom: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.cassese-journal-head .cassese-journal-head__title {
	margin: 0;
}

.cassese-journal-head__intro,
.cassese-journal-head__intro p {
	max-width: 34rem;
	margin: 0;
	color: var(--wp--preset--color--graphite);
	font-size: 1.0625rem;
	line-height: 1.6;
}

/* Topics (only when there are two or more categories). */
.cassese-topics ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 var(--wp--preset--spacing--40);
	padding: 0;
	list-style: none;
}

.cassese-topics a {
	display: inline-block;
	padding: 0.4rem 0.95rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 999px;
	color: var(--wp--preset--color--graphite);
	font-size: 0.875rem;
	text-decoration: none;
}

.cassese-topics a:hover,
.cassese-topics a:focus-visible,
.cassese-topics a[aria-current] {
	border-color: var(--wp--preset--color--olive);
	color: var(--wp--preset--color--charcoal);
}

/* Grid of previews. */
.cassese-journal .cassese-journal__grid.is-layout-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}

.cassese-journal__grid > .wp-block-post {
	margin: 0;
}

/* The whole preview is clickable through the title link (one link per article). */
.cassese-journal__card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.cassese-journal__card:focus-within {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 6px;
	border-radius: 4px;
}

.cassese-journal .cassese-journal__photo {
	margin: 0 0 1.1rem;
	overflow: hidden;
	border-radius: 4px;
	background: var(--wp--preset--color--linen);
}

.cassese-journal .cassese-journal__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.cassese-journal__card:hover .cassese-journal__photo img {
	transform: scale(1.03);
}

.cassese-journal__body {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.cassese-journal .cassese-journal__topic {
	position: relative;
	z-index: 2; /* Category links stay clickable above the card link. */
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
}

.cassese-journal .cassese-journal__topic a {
	color: var(--wp--preset--color--olive);
	text-decoration: none;
}

.cassese-journal .cassese-journal__topic a:hover {
	text-decoration: underline;
}

.cassese-journal .cassese-journal__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.6rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
	text-transform: none;
	text-wrap: balance;
}

.cassese-journal .cassese-journal__title a {
	color: var(--wp--preset--color--charcoal);
	text-decoration: none;
}

.cassese-journal .cassese-journal__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.cassese-journal .cassese-journal__title a:focus-visible {
	outline: none;
}

.cassese-journal__card:hover .cassese-journal__title a {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--olive);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.cassese-journal .cassese-journal__excerpt {
	margin: 0.75rem 0 0;
	color: var(--wp--preset--color--graphite);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.cassese-journal .cassese-journal__excerpt p {
	margin: 0;
}

.cassese-journal .cassese-journal__excerpt .wp-block-post-excerpt__more-text {
	display: none;
}

.cassese-journal .cassese-journal__meta {
	gap: 0.4rem 1.25rem;
	margin-top: auto;
	padding-top: 1rem;
	color: var(--wp--preset--color--graphite);
	font-size: 0.8125rem;
	opacity: 0.85;
}

.cassese-journal__meta > * {
	margin: 0;
}

/* First page of the blog: the latest article leads, photo and text side by side. */
.blog:not(.paged) .cassese-journal-page .cassese-journal__grid > .wp-block-post:first-child {
	grid-column: 1 / -1;
	padding-bottom: var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__card {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--wp--preset--spacing--50);
	align-items: center;
}

.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__photo {
	margin: 0;
}

.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__title {
	font-size: clamp(1.9rem, 1.3rem + 1.5vw, 2.9rem);
	line-height: 1.12;
}

.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__excerpt {
	margin-top: 1.1rem;
	font-size: 1.0625rem;
}

.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__meta {
	margin-top: 1.5rem;
}

.cassese-journal__pages {
	margin-top: var(--wp--preset--spacing--50);
}

@media (max-width: 1023px) {
	.cassese-journal .cassese-journal__grid.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.cassese-journal-head {
		grid-template-columns: 1fr;
	}

	.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__card {
		grid-template-columns: 1fr;
		gap: 1.1rem;
	}
}

@media (max-width: 599px) {
	.cassese-journal .cassese-journal__grid.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cassese-journal .cassese-journal__photo img {
		transition: none;
	}

	.cassese-journal__card:hover .cassese-journal__photo img {
		transform: none;
	}
}

.cassese-journal__card > *,
.cassese-journal__body > * {
	margin-block-start: 0;
}

@media (max-width: 781px) {
	.blog:not(.paged) .cassese-journal-page .wp-block-post:first-child .cassese-journal__meta {
		margin-top: 0;
	}
}

/* =========================================================================
   Service pages
   One bold moment per page: the self-diagnosis printed as a kitchen order
   ticket. Around it: a photo that bleeds off the edge, a menu-card offer and
   quiet, readable sections.
   ========================================================================= */

.cassese-svc-hero,
.cassese-svc-ticket,
.cassese-svc-causes,
.cassese-svc-menu,
.cassese-svc-person,
.cassese-svc-steps,
.cassese-svc-faq {
	--svc-paper: #f3eee3;
	--svc-paper-ink: #1c1a18;
	padding-block: var(--wp--preset--spacing--60);
}

.cassese-svc-ticket,
.cassese-svc-menu,
.cassese-svc-steps {
	background: var(--wp--preset--color--paper);
}

.cassese-svc-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 34rem);
	gap: 1rem var(--wp--preset--spacing--50);
	align-items: end;
	margin-bottom: var(--wp--preset--spacing--50) !important;
}

.cassese-svc-head > * {
	margin: 0 !important;
}

.cassese-svc-h2.wp-block-heading {
	margin: 0;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.75rem);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.12;
	text-transform: none;
	text-wrap: balance;
}

.cassese-svc-text {
	max-width: 36rem;
	color: var(--wp--preset--color--graphite);
	font-size: 1.0625rem;
	line-height: 1.6;
}

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

.cassese-svc-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 46vw);
	min-height: min(88vh, 56rem);
	padding: 0;
	overflow: hidden;
}

.cassese-svc-hero__text {
	align-self: center;
	max-width: 48rem;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50) var(--wp--preset--spacing--60) var(--wp--style--root--padding-left, 2rem);
}

.cassese-svc-hero__text > * {
	margin-block: 0;
}

.cassese-svc-hero .cassese-svc-hero__title {
	color: var(--wp--preset--color--charcoal);
	font-size: clamp(2.2rem, 1.3rem + 2.6vw, 3.75rem);
	line-height: 1.04;
	text-wrap: balance;
}

.cassese-svc-hero .cassese-svc-hero__promise {
	max-width: 34ch;
	margin-top: 1.5rem;
	color: var(--wp--preset--color--olive);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.45rem, 1.1rem + 1vw, 2.05rem);
	font-weight: 400;
	line-height: 1.25;
	text-wrap: balance;
}

.cassese-svc-hero .cassese-svc-hero__lead {
	max-width: 36rem;
	margin-top: 1.25rem;
	color: var(--wp--preset--color--graphite);
	font-size: 1.0625rem;
	line-height: 1.6;
}

.cassese-svc-hero .cassese-svc-hero__actions {
	gap: 0.75rem 1rem;
	margin-top: 2rem;
}

.cassese-svc-hero__second .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--rule);
	background: transparent;
	color: var(--wp--preset--color--charcoal);
}

.cassese-svc-hero__second .wp-block-button__link:hover,
.cassese-svc-hero__second .wp-block-button__link:focus-visible {
	border-color: var(--wp--preset--color--olive);
}

.cassese-svc-hero .cassese-svc-hero__creds {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--50);
	padding: 0;
	list-style: none;
}

.cassese-svc-hero__creds li {
	padding-top: 0.75rem;
	border-top: 1px solid var(--wp--preset--color--olive);
	color: var(--wp--preset--color--charcoal);
	font-size: 0.875rem;
	line-height: 1.4;
}

/* The photo fills its column to the screen edge and fades into the text side. */
.cassese-svc-hero .cassese-svc-hero__photo {
	position: relative;
	height: 100%;
	margin: 0;
}

.cassese-svc-hero .cassese-svc-hero__photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22%);
	mask-image: linear-gradient(90deg, transparent 0, #000 22%);
}

/* Self-diagnosis ticket ---------------------------------------------------- */

.cassese-svc-ticket__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	align-items: start;
}

.cassese-svc-ticket__intro {
	position: sticky;
	top: 7rem;
}

.cassese-svc-ticket__intro > * {
	margin-block: 0 1rem;
}

.cassese-svc-ticket__note {
	color: var(--wp--preset--color--graphite);
	font-size: 0.875rem;
}

.cassese-ticket {
	--tooth: 10px;
	position: relative;
	max-width: 36rem;
	margin: var(--tooth) 0;
	padding: 2rem clamp(1.25rem, 3vw, 2.25rem) 2.25rem;
	background: var(--svc-paper);
	box-shadow: 0 30px 60px rgb(0 0 0 / 45%);
	color: var(--svc-paper-ink);
	font-family: ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;
	font-size: 0.9375rem;
	line-height: 1.5;
	transform: rotate(-1deg);
}

/* Serrated edges, like a ticket torn from the printer. */
.cassese-ticket::before,
.cassese-ticket::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: var(--tooth);
	background:
		linear-gradient(135deg, var(--svc-paper) calc(var(--tooth) / 2), transparent 0) 0 0 / var(--tooth) var(--tooth) repeat-x,
		linear-gradient(-135deg, var(--svc-paper) calc(var(--tooth) / 2), transparent 0) 0 0 / var(--tooth) var(--tooth) repeat-x;
}

.cassese-ticket::after {
	bottom: calc(var(--tooth) * -1);
}

.cassese-ticket::before {
	top: calc(var(--tooth) * -1);
	transform: scaleY(-1);
}

.cassese-ticket > * {
	margin-block: 0;
}

.cassese-ticket .cassese-ticket__head {
	padding-bottom: 0.9rem;
	border-bottom: 2px dashed rgb(28 26 24 / 55%);
	font-weight: 700;
	text-align: center;
}

.cassese-ticket .cassese-ticket__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cassese-ticket .cassese-ticket__list > li {
	position: relative;
	margin: 0;
	padding: 0.7rem 0 0.7rem 2.6rem;
	border-bottom: 1px dashed rgb(28 26 24 / 25%);
}

.cassese-ticket .cassese-ticket__list > li::before {
	content: "[ ]";
	position: absolute;
	left: 0;
	font-weight: 700;
}

/* With the script: each line is a checkbox button. */
.cassese-ticket.is-interactive .cassese-ticket__list > li {
	padding: 0;
}

.cassese-ticket.is-interactive .cassese-ticket__list > li::before {
	content: none;
}

.cassese-ticket__line {
	position: relative;
	display: block;
	width: 100%;
	padding: 0.7rem 0 0.7rem 2.6rem;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.cassese-ticket__line::before {
	content: "[ ]";
	position: absolute;
	left: 0;
	font-weight: 700;
}

.cassese-ticket__line[aria-checked="true"] {
	font-weight: 700;
}

.cassese-ticket__line[aria-checked="true"]::before {
	content: "[x]";
	color: var(--wp--preset--color--copper-deep);
}

.cassese-ticket__line:hover {
	background: rgb(28 26 24 / 5%);
}

.cassese-ticket__line:focus-visible {
	outline: 2px solid var(--wp--preset--color--copper-deep);
	outline-offset: 2px;
}

.cassese-ticket:not(.cassese-ticket--static):not(.is-interactive) .cassese-ticket__total {
	display: none;
}

.cassese-ticket.is-interactive .cassese-ticket__total,
.cassese-ticket--static .cassese-ticket__total {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 0.9rem;
	border-top: 2px dashed rgb(28 26 24 / 55%);
	font-weight: 700;
}

.cassese-ticket .cassese-ticket__msg {
	min-height: 3em;
	margin-top: 1rem;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.125rem;
	line-height: 1.4;
}

.cassese-ticket:not(.is-interactive) .cassese-ticket__msg--1,
.cassese-ticket:not(.is-interactive) .cassese-ticket__msg--2 {
	display: none;
}

.cassese-ticket[data-level="2"] .cassese-ticket__msg--2 {
	color: var(--wp--preset--color--copper-deep);
}

.cassese-ticket .cassese-ticket__actions {
	margin-top: 1.25rem;
}

.cassese-ticket--static {
	transform: rotate(1deg);
}

/* Where the margin goes --------------------------------------------------- */

.cassese-causes__head,
.cassese-causes__row {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 5fr);
	gap: var(--wp--preset--spacing--40);
}

.cassese-causes__head {
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--olive);
}

.cassese-causes__head p {
	margin: 0;
	color: var(--wp--preset--color--olive);
	font-size: 0.875rem;
	font-weight: 600;
}

.cassese-causes__row {
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.cassese-causes__row > *,
.cassese-causes__cell > * {
	margin: 0 !important;
}

.cassese-causes .cassese-causes__see {
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.55rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
	text-transform: none;
}

.cassese-causes__cause {
	color: var(--wp--preset--color--graphite);
}

.cassese-causes__fix {
	color: var(--wp--preset--color--charcoal);
}

/* Column names: visible on phones, read by screen readers everywhere. */
.cassese-causes__label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Services menu card ------------------------------------------------------ */

.cassese-svc-menu .cassese-menu {
	max-width: 64rem;
	margin-inline: auto;
	padding: clamp(1.75rem, 5vw, 4.5rem);
	border: 1px solid rgb(217 179 108 / 45%);
	outline: 1px solid rgb(217 179 108 / 18%);
	outline-offset: -12px;
	background: var(--wp--preset--color--ivory);
}

.cassese-menu__head {
	max-width: 40rem;
	margin: 0 auto var(--wp--preset--spacing--50);
	text-align: center;
}

.cassese-menu__head > * {
	margin-block: 0;
}

.cassese-menu .cassese-menu__title {
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2rem, 1.4rem + 1.8vw, 3.1rem);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.1;
	text-transform: none;
}

.cassese-menu__intro {
	margin-top: 1rem !important;
	color: var(--wp--preset--color--graphite);
}

.cassese-menu__item {
	position: relative;
	padding: 1.75rem 0;
	border-top: 1px dotted rgb(217 179 108 / 40%);
}

.cassese-menu__item > * {
	margin-block: 0;
}

.cassese-menu__item.is-start {
	margin-inline: calc(clamp(1rem, 2.5vw, 1.75rem) * -1);
	padding-inline: clamp(1rem, 2.5vw, 1.75rem);
	border: 1px solid rgb(217 179 108 / 55%);
	border-radius: 4px;
	background: rgb(217 179 108 / 6%);
}

.cassese-menu__item.is-start + .cassese-menu__item {
	border-top: 0;
}

.cassese-menu .cassese-menu__start {
	margin-bottom: 0.5rem;
	color: var(--wp--preset--color--olive);
	font-size: 0.875rem;
	font-weight: 600;
}

.cassese-menu__start::before {
	content: "★ ";
}

.cassese-menu__line {
	display: flex;
	align-items: baseline;
	gap: 1rem;
}

.cassese-menu__line > * {
	margin: 0 !important;
}

.cassese-menu .cassese-menu__name {
	flex: none;
	max-width: 70%;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.35rem, 1.15rem + 0.6vw, 1.75rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
	text-transform: none;
}

/* Dotted leader between the dish and its price, as on a printed menu. */
.cassese-menu__line::after {
	content: "";
	order: 1;
	flex: 1;
	min-width: 2rem;
	border-bottom: 2px dotted rgb(201 195 184 / 35%);
	transform: translateY(-0.35em);
}

.cassese-menu__fee {
	order: 2;
	flex: none;
	color: var(--wp--preset--color--olive);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.125rem;
}

.cassese-menu .cassese-menu__text {
	max-width: 44rem;
	margin-top: 0.6rem;
	color: var(--wp--preset--color--graphite);
}

.cassese-menu .cassese-menu__receive {
	margin-top: 1rem;
	color: var(--wp--preset--color--olive);
	font-size: 0.8125rem;
	font-weight: 600;
}

.cassese-menu .cassese-menu__gets {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
}

.cassese-menu__gets li {
	padding: 0.35rem 0.8rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 1.1rem;
	color: var(--wp--preset--color--charcoal);
	font-size: 0.875rem;
}

.cassese-menu .cassese-menu__note {
	margin: var(--wp--preset--spacing--40) auto 0;
	color: var(--wp--preset--color--graphite);
	font-size: 0.875rem;
	text-align: center;
}

/* Who walks into your kitchen --------------------------------------------- */

.cassese-svc-person__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--wp--preset--spacing--60);
	align-items: center;
}

.cassese-svc-person__grid > * {
	margin: 0 !important;
}

.cassese-svc-person__photo img {
	border-radius: 4px;
}

.cassese-svc-person__text > * {
	margin-block: 0;
}

.cassese-svc-person .cassese-svc-person__statement {
	margin-top: 1.5rem;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.85rem);
	line-height: 1.35;
}

.cassese-svc-person .cassese-svc-person__facts {
	margin-top: var(--wp--preset--spacing--40);
	padding: 0;
	list-style: none;
}

.cassese-svc-person__facts li {
	padding: 0.65rem 0 0.65rem 1rem;
	border-left: 2px solid var(--wp--preset--color--olive);
	color: var(--wp--preset--color--graphite);
}

.cassese-svc-person__facts li + li {
	margin-top: 0.5rem;
}

.cassese-svc-person .cassese-svc-person__link {
	margin-top: 1.5rem;
}

/* Steps (a real sequence, so it is numbered) ------------------------------ */

.cassese-svc-steps__list > *,
.cassese-svc-cards__grid > *,
.cassese-svc-ticket__grid > * {
	margin: 0 !important;
}

.cassese-svc-steps__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: var(--wp--preset--spacing--40);
	counter-reset: svc-step;
}

.cassese-svc-steps__step {
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--olive);
	counter-increment: svc-step;
}

.cassese-svc-steps__step > * {
	margin-block: 0;
}

.cassese-svc-steps__step::before {
	content: counter(svc-step);
	display: block;
	margin-bottom: 0.75rem;
	color: var(--wp--preset--color--olive);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2.5rem;
	line-height: 1;
}

.cassese-svc-steps .cassese-svc-steps__name {
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.cassese-svc-steps .cassese-svc-steps__text {
	margin-top: 0.6rem;
	color: var(--wp--preset--color--graphite);
	font-size: 0.9375rem;
	line-height: 1.6;
}

/* Questions ---------------------------------------------------------------- */

.cassese-svc-faq__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}

.cassese-svc-faq__grid > * {
	margin: 0 !important;
}

.cassese-svc-faq__item {
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.cassese-svc-faq__item summary {
	position: relative;
	padding: 1.25rem 2.5rem 1.25rem 0;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.15rem, 1rem + 0.4vw, 1.35rem);
	cursor: pointer;
	list-style: none;
}

.cassese-svc-faq__item summary::-webkit-details-marker {
	display: none;
}

.cassese-svc-faq__item summary::after {
	content: "+";
	position: absolute;
	top: 1.1rem;
	right: 0.25rem;
	color: var(--wp--preset--color--olive);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1.5rem;
	line-height: 1;
}

.cassese-svc-faq__item[open] summary::after {
	content: "−";
}

.cassese-svc-faq__item > p {
	max-width: 44rem;
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--graphite);
}

/* Responsive --------------------------------------------------------------- */

@media (max-width: 1023px) {
	.cassese-svc-hero {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.cassese-svc-hero .cassese-svc-hero__photo {
		order: -1;
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.cassese-svc-hero .cassese-svc-hero__photo img {
		-webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
	}

	.cassese-svc-hero__text {
		padding: var(--wp--preset--spacing--40) var(--wp--style--root--padding-right, 1rem) var(--wp--preset--spacing--60) var(--wp--style--root--padding-left, 1rem);
	}

	.cassese-svc-ticket__grid,
	.cassese-svc-person__grid,
	.cassese-svc-faq__grid,
	.cassese-svc-head {
		grid-template-columns: 1fr;
	}

	.cassese-svc-ticket__intro {
		position: static;
	}

	.cassese-ticket {
		transform: none;
	}

	.cassese-causes__head {
		display: none;
	}

	.cassese-causes__row {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}

	.cassese-causes__label {
		position: static !important;
		width: auto;
		height: auto;
		overflow: visible;
		clip-path: none;
		white-space: normal;
		color: var(--wp--preset--color--olive);
		font-size: 0.8125rem;
		font-weight: 600;
	}
}

@media (max-width: 599px) {
	.cassese-svc-hero .cassese-svc-hero__creds {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}

	.cassese-menu__line {
		flex-wrap: wrap;
	}

	.cassese-menu .cassese-menu__name {
		max-width: 100%;
	}

	.cassese-menu__line::after {
		display: none;
	}

	.cassese-menu__item.is-start {
		margin-inline: 0;
	}
}

/* Photo cards (occasions, hotel areas) */
.cassese-svc-cards__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
}

.cassese-svc-cards__card > * {
	margin-block: 0;
}

.cassese-svc-cards__card .wp-block-image img {
	border-radius: 4px;
}

.cassese-svc-cards .cassese-svc-cards__title {
	margin-top: 1.1rem;
	color: var(--wp--preset--color--charcoal);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.6rem);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.cassese-svc-cards .cassese-svc-cards__text {
	margin-top: 0.6rem;
	color: var(--wp--preset--color--graphite);
}

.cassese-svc-ticket__intro .cassese-svc-text {
	margin-top: 1.25rem;
}

@media (max-width: 781px) {
	.cassese-svc-cards__grid {
		grid-template-columns: 1fr;
	}
}

/* Temporary logo: signature (until a logo is uploaded in Site Identity). */
.cassese-logo-signature a {
	display: flex;
	align-items: center;
	gap: clamp(0.6rem, 0.4rem + 0.6vw, 1rem);
	color: inherit;
	line-height: 0;
}

.cassese-logo-signature__img {
	display: block;
	width: clamp(150px, 7rem + 6vw, 230px);
	aspect-ratio: 1959 / 471;
	background-color: currentColor;
	-webkit-mask: var(--cassese-logo) center / contain no-repeat;
	mask: var(--cassese-logo) center / contain no-repeat;
}

.cassese-header .cassese-logo-signature {
	color: var(--wp--preset--color--charcoal);
}

.cassese-header--overlay .cassese-logo-signature {
	color: var(--wp--preset--color--snow);
}

.cassese-header .wp-block-group:has(> .cassese-logo-signature) > .wp-block-site-title {
	display: none;
}

.cassese-header .cassese-logo-signature a:focus-visible {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 6px;
}

.cassese-header--overlay.is-stuck .cassese-logo-signature__img {
	width: clamp(130px, 6rem + 5vw, 190px);
}

@media (forced-colors: active) {
	.cassese-logo-signature__img {
		background-color: CanvasText;
	}
}

/* Photos added across the site -------------------------------------------- */

.cassese-svc-hero--compact {
	min-height: min(62vh, 34rem);
}

.cassese-svc-hero--compact .cassese-svc-hero__lead {
	margin-top: 1.5rem;
	font-size: clamp(1.05rem, 1rem + 0.3vw, 1.25rem);
}

.cassese-strip-section {
	padding-block: 0 var(--wp--preset--spacing--60);
}

.cassese-strip-section .cassese-svc-h2 {
	margin-bottom: var(--wp--preset--spacing--40);
}

.cassese-photo-strip figure {
	margin: 0;
}

.cassese-photo-strip img {
	border-radius: 4px;
}

.cassese-photo-strip figcaption {
	margin-top: 0.6rem;
	color: var(--wp--preset--color--graphite);
	font-size: 0.875rem;
	text-align: left;
}

.cassese-dark-signs__photo {
	margin-top: var(--wp--preset--spacing--40) !important;
}

.cassese-dark-signs__photo img,
.cassese-notfound__photo img {
	border-radius: 4px;
}

.cassese-dark-cta__box.wp-block-cover {
	padding: clamp(1.75rem, 4vw, 3.5rem);
	border-radius: 6px;
	overflow: hidden;
}

.cassese-dark-cta__row {
	gap: 1.5rem 2rem;
}

.cassese-cta-band .wp-block-cover__inner-container {
	color: var(--wp--preset--color--snow);
}

.cassese-cta-band h2 {
	color: var(--wp--preset--color--snow);
}

.cassese-notfound__photo {
	max-width: 48rem;
	margin-top: var(--wp--preset--spacing--50) !important;
}

@media (max-width: 781px) {
	.cassese-photo-strip.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

.cassese-cta-band.wp-block-cover {
	padding-right: var(--wp--style--root--padding-right, 1.5rem) !important;
	padding-left: var(--wp--style--root--padding-left, 1.5rem) !important;
}

.cassese-cta-band > .wp-block-cover__background {
	opacity: 0.93 !important;
}

.cassese-cta-band > .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

.cassese-cta-band > .wp-block-cover__image-background {
	filter: grayscale(1) brightness(0.55);
}

.cassese-cta-band .wp-block-button__link {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--snow);
}

.cassese-cta-band .wp-block-button__link:hover,
.cassese-cta-band .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--snow);
	color: var(--wp--preset--color--ink);
}

/* IC monogram to the left of the signature, same height as the signature. */
.cassese-logo-ic {
	position: relative;
	display: block;
	flex: none;
	height: calc(clamp(150px, 7rem + 6vw, 230px) * 471 / 1959);
	aspect-ratio: 760 / 900;
}

.cassese-logo-ic__ink,
.cassese-logo-ic__gold {
	position: absolute;
	inset: 0;
	-webkit-mask: var(--cassese-logo) center / contain no-repeat;
	mask: var(--cassese-logo) center / contain no-repeat;
}

.cassese-logo-ic__ink {
	background-color: currentColor;
}

.cassese-logo-ic__gold {
	background-color: #c2955a;
}

.cassese-header--overlay.is-stuck .cassese-logo-ic {
	height: calc(clamp(130px, 6rem + 5vw, 190px) * 471 / 1959);
}

@media (forced-colors: active) {
	.cassese-logo-ic__ink,
	.cassese-logo-ic__gold {
		background-color: CanvasText;
	}
}

/* Prices: "Ask about the fee" leads to the form and contact details. */
.cassese-fee-link {
	color: var(--wp--preset--color--olive);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	white-space: nowrap;
}

.cassese-fee-link:hover,
.cassese-fee-link:focus-visible {
	color: var(--wp--preset--color--charcoal);
}

.cassese-menu .cassese-menu__fee {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.9375rem;
}

#contact {
	scroll-margin-top: 6rem;
}

@media (prefers-reduced-motion: no-preference) {
	html:has(#contact) {
		scroll-behavior: smooth;
	}
}

/* Arriving from a fee link: a short glow on the form so the eye lands there. */
#contact:target .wp-block-cassese-contact-form,
#contact:target form {
	animation: cassese-contact-glow 1.6s ease-out 1;
}

@keyframes cassese-contact-glow {
	0% {
		box-shadow: 0 0 0 0 rgb(217 179 108 / 55%);
	}
	100% {
		box-shadow: 0 0 0 18px rgb(217 179 108 / 0%);
	}
}

@media (prefers-reduced-motion: reduce) {
	#contact:target .wp-block-cassese-contact-form,
	#contact:target form {
		animation: none;
	}
}

/* On the paper ticket the gold is too light: use the printer's ink. */
.cassese-ticket .cassese-fee-link {
	color: var(--wp--preset--color--copper-deep);
}

.cassese-ticket .cassese-fee-link:hover,
.cassese-ticket .cassese-fee-link:focus-visible {
	color: var(--svc-paper-ink);
}

/* "What is included" ticket: each line is one item of the order. */
.cassese-ticket--static .cassese-ticket__list > li::before {
	content: "1x";
}

/* Header bar: logo left, menu centred, search + language + button right. */
.cassese-header .cassese-header__bar.is-layout-flex {
	display: grid;
	grid-template-columns: 1fr auto 1fr; /* Side tracks never shrink below their content. */
	align-items: center;
	gap: 1rem;
}

@media (max-width: 1599px) {
	.cassese-header__bar > .wp-block-navigation .wp-block-navigation__container {
		gap: 0.75rem;
	}

	.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		gap: 0.35em;
	}

	/* Room for a desktop scrollbar (about 17px on Windows) at 1440px. */
	.cassese-header .cassese-header__bar > .wp-block-navigation .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		letter-spacing: 0.02em;
	}

	.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
		width: 1.05em;
		height: 1.05em;
	}
}

.cassese-header__bar > .wp-block-navigation .wp-block-navigation__container {
	flex-wrap: nowrap;
}

.cassese-header__bar > :first-child {
	justify-self: start;
}

.cassese-header__bar > .wp-block-navigation {
	justify-self: center;
}

.cassese-header__bar > .cassese-header__actions {
	justify-self: end;
	margin: 0;
}

/* Search: a magnifier button; tapping it opens the field to its left (core "button only" search). */
.cassese-header-search.wp-block-search {
	position: relative;
	z-index: 30; /* The open field sits above the menu. */
	margin: 0;
}

.cassese-header-search .wp-block-search__inside-wrapper {
	position: relative;
	width: auto !important;
	padding: 0;
	border: 0;
	background: transparent;
}

.cassese-header-search .wp-block-search__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	margin: 0;
	padding: 0;
	border: 1px solid rgb(244 239 228 / 28%);
	border-radius: 4px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.cassese-header:not(.cassese-header--overlay) .cassese-header-search .wp-block-search__button {
	border-color: var(--wp--preset--color--rule);
	color: var(--wp--preset--color--charcoal);
}

.cassese-header-search .wp-block-search__button:hover,
.cassese-header-search .wp-block-search__button:focus-visible {
	border-color: var(--wp--preset--color--olive);
}

.cassese-header-search .wp-block-search__button:focus-visible {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 2px;
}

.cassese-header-search .wp-block-search__button svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentColor;
}

/* The field opens over the menu, to the left of the button, without moving anything. */
.cassese-header-search .wp-block-search__input {
	position: absolute;
	top: 0;
	right: calc(100% + 0.4rem);
	z-index: 2;
	width: min(16rem, 60vw);
	height: 2.4rem;
	padding: 0 0.8rem;
	border: 1px solid var(--wp--preset--color--olive);
	border-radius: 4px;
	background: var(--wp--preset--color--ink);
	box-shadow: 0 10px 24px rgb(0 0 0 / 30%);
	color: var(--wp--preset--color--snow);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.9375rem;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.cassese-header-search .wp-block-search__input::placeholder {
	color: currentColor;
	opacity: 0.6;
}

.cassese-header-search .wp-block-search__input:focus-visible {
	outline: none;
}

.cassese-header-search.wp-block-search__searchfield-hidden .wp-block-search__input {
	width: min(16rem, 60vw) !important;
	padding: 0 0.8rem !important;
	border-width: 1px !important;
	opacity: 0;
	pointer-events: none;
	transform: translateX(0.5rem);
}

@media (prefers-reduced-motion: reduce) {
	.cassese-header-search .wp-block-search__input {
		transition: none;
	}
}

/* Below the full menu width: menu becomes the overlay button, next to the actions. */
@media (max-width: 1439px) {
	.cassese-header .cassese-header__bar.is-layout-flex {
		grid-template-columns: minmax(0, 1fr) auto auto;
	}

	.cassese-header__bar > .wp-block-navigation {
		justify-self: end;
		order: 2;
	}

	.cassese-header__bar > .cassese-header__actions {
		order: 3;
	}
}

@media (max-width: 479px) {
	.cassese-header-search.wp-block-search {
		display: none;
	}
}

/* =========================================================================
   Light mode (header switch). The site is dark by default; light mode swaps
   the palette. Photos with text on top (covers), the home header over the
   hero photo and the footer keep the dark palette.
   ========================================================================= */

:root {
	color-scheme: dark;
}

html[data-theme="light"] {
	--wp--preset--color--ivory: #f4efe4;
	--wp--preset--color--paper: #faf7f0;
	--wp--preset--color--linen: #e9e1cf;
	--wp--preset--color--charcoal: #25231f;
	--wp--preset--color--graphite: #57524a;
	--wp--preset--color--olive: #85652b;
	--wp--preset--color--olive-deep: #a85d37;
	--wp--preset--color--brass: #85652b;
	--wp--preset--color--brass-light: #c9a86a;
	--wp--preset--color--rule: #d6cbb5;
	--wp--preset--color--ink: #f4efe4;
	--wp--preset--color--ink-soft: #faf7f0;
	--wp--preset--color--smoke: #d6cbb5;
	--wp--preset--color--fog: #57524a;
	--wp--preset--color--gold: #85652b;
	--wp--preset--color--snow: #25231f;
	color-scheme: light;
}

/* Areas that stay dark in light mode. */
html[data-theme="light"] .wp-block-cover,
html[data-theme="light"] .cassese-header--overlay:not(.is-stuck),
html[data-theme="light"] .wp-site-blocks > footer {
	--wp--preset--color--ivory: #161514;
	--wp--preset--color--paper: #1f1d1b;
	--wp--preset--color--linen: #2a2826;
	--wp--preset--color--charcoal: #f4efe4;
	--wp--preset--color--graphite: #c9c3b8;
	--wp--preset--color--olive: #d9b36c;
	--wp--preset--color--brass: #c9a86a;
	--wp--preset--color--brass-light: #e3c58b;
	--wp--preset--color--rule: #34312d;
	--wp--preset--color--ink: #161514;
	--wp--preset--color--ink-soft: #1f1d1b;
	--wp--preset--color--smoke: #34312d;
	--wp--preset--color--fog: #c9c3b8;
	--wp--preset--color--gold: #d9b36c;
	--wp--preset--color--snow: #faf7f0;
	color-scheme: dark;
}

html[data-theme="light"] .wp-site-blocks > footer {
	background-color: #161514;
	color: #f4efe4;
}

/* Copper buttons keep light text in both modes. */
html[data-theme="light"] .is-style-copper .wp-block-button__link,
html[data-theme="light"] .wp-block-button:not(.is-style-outline):not(.is-style-outline-light) .wp-block-button__link {
	color: #faf7f0;
}

/* Home header once it sticks: a light bar in light mode. */
html[data-theme="light"] .cassese-header--overlay.is-stuck {
	background: rgb(244 239 228 / 96%);
	color: var(--wp--preset--color--charcoal);
}

html[data-theme="light"] .cassese-header--overlay.is-stuck a,
html[data-theme="light"] .cassese-header--overlay.is-stuck .wp-block-navigation-item__content {
	color: var(--wp--preset--color--charcoal);
}

html[data-theme="light"] .cassese-header--overlay.is-stuck .cassese-logo-signature {
	color: var(--wp--preset--color--charcoal);
}

html[data-theme="light"] .cassese-header-search .wp-block-search__button,
html[data-theme="light"] .cassese-langdd summary,
html[data-theme="light"] .cassese-mode {
	border-color: var(--wp--preset--color--rule);
}

/* The switch ----------------------------------------------------------------- */

.cassese-mode {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	padding: 0;
	border: 1px solid rgb(244 239 228 / 28%);
	border-radius: 4px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.cassese-mode[hidden] {
	display: none;
}

.cassese-header:not(.cassese-header--overlay) .cassese-mode {
	border-color: var(--wp--preset--color--rule);
	color: var(--wp--preset--color--charcoal);
}

.cassese-mode:hover,
.cassese-mode:focus-visible {
	border-color: var(--wp--preset--color--olive);
}

.cassese-mode:focus-visible {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 2px;
}

/* Dark mode shows the sun (switch to light); light mode shows the moon. */
.cassese-mode__moon,
.cassese-mode[aria-pressed="true"] .cassese-mode__sun {
	display: none;
}

.cassese-mode[aria-pressed="true"] .cassese-mode__moon {
	display: block;
}

/* Menu icons: line icons in the same colour as the text (currentColor via mask). */
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
}

.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
	content: none;
	flex: none;
	width: 1.15em;
	height: 1.15em;
	background-color: currentColor;
	-webkit-mask: var(--cassese-menu-icon) center / contain no-repeat;
	mask: var(--cassese-menu-icon) center / contain no-repeat;
}
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation-item__content,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="#services"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="#servicios"] {
	--cassese-menu-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.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18h18'/%3E%3Cpath d='M5 18a7 7 0 0 1 14 0'/%3E%3Cpath d='M12 11V9'/%3E%3Ccircle cx='12' cy='7.5' r='1.5'/%3E%3Cpath d='M2 21h20'/%3E%3C/svg%3E");
}

.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="casos-de-estudio"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="case-studies"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="proyectos"] {
	--cassese-menu-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.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V3h6v1'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3Cpath d='M9 17h6'/%3E%3C/svg%3E");
}

.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="sobre-ismael"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="about-ismael"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="trayectoria"] {
	--cassese-menu-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.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='5' cy='18' r='2'/%3E%3Ccircle cx='19' cy='6' r='2'/%3E%3Cpath d='M7 18h6a3 3 0 0 0 0-6h-2a3 3 0 0 1 0-6h6'/%3E%3C/svg%3E");
}

.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="articulos"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="insights"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="/blog"] {
	--cassese-menu-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.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9a2.8 2.8 0 0 0-4-4L4 16v4z'/%3E%3Cpath d='M13.5 6.5l4 4'/%3E%3C/svg%3E");
}

.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="contacto"],
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="/contact"] {
	--cassese-menu-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.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9l-5 4v-4H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z'/%3E%3Cpath d='M8 10h8M8 13h5'/%3E%3C/svg%3E");
}

.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[style*="--cassese-menu-icon"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation-item__content::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="#services"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="#servicios"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="casos-de-estudio"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="case-studies"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="proyectos"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="sobre-ismael"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="about-ismael"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="trayectoria"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="articulos"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="insights"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="/blog"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="contacto"]::before,
.cassese-menu-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[href*="/contact"]::before {
	content: "";
}

@media (forced-colors: active) {
	.cassese-menu-primary .wp-block-navigation-item__content::before {
		background-color: LinkText;
	}
}

/* Top banner --------------------------------------------------------------- */

:root {
	--cassese-topbar-h: 2.25rem;
}

.cassese-topbar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--cassese-topbar-h);
	padding-inline: 2.75rem;
	overflow: hidden;
	border-bottom: 1px solid rgb(217 179 108 / 30%);
	background: #0e0d0c;
	color: #e9e3d6;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	letter-spacing: 0.01em;
}

.cassese-topbar__list {
	position: relative;
	width: 100%;
	max-width: 46rem;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cassese-topbar__list > li {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	margin: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	opacity: 0;
	transition: opacity 0.6s ease;
}

/* Without JavaScript, only the first statement shows. */
.cassese-topbar:not(.is-ready) .cassese-topbar__list > li:first-child,
.cassese-topbar__list > li.is-active {
	opacity: 1;
}

.cassese-topbar__list > li::before {
	content: "";
	flex: none;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: #c2955a;
}

.cassese-topbar__pause {
	position: absolute;
	top: 50%;
	right: var(--wp--style--root--padding-right, 1rem);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	opacity: 0.7;
	transform: translateY(-50%);
	cursor: pointer;
}

.cassese-topbar__pause[hidden] {
	display: none;
}

.cassese-topbar__pause:hover,
.cassese-topbar__pause:focus-visible {
	opacity: 1;
}

.cassese-topbar__pause:focus-visible {
	outline: 2px solid #d9b36c;
	outline-offset: 1px;
}

.cassese-topbar__icon-play,
.cassese-topbar__pause[aria-pressed="true"] .cassese-topbar__icon-pause {
	display: none;
}

.cassese-topbar__pause[aria-pressed="true"] .cassese-topbar__icon-play {
	display: block;
}

/* The banner scrolls away; the header below it stays. */
.wp-site-blocks > header.wp-block-template-part {
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--cassese-topbar-h));
}

/* Home: the header over the photo starts under the banner. */
.cassese-header--overlay:not(.is-stuck) {
	top: var(--cassese-topbar-h);
}

/* Wide screens: the three statements side by side, nothing moves. */
@media (min-width: 900px) {
	.cassese-topbar__list {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: clamp(1.5rem, 3vw, 3.5rem);
		max-width: none;
	}

	.cassese-topbar__list > li,
	.cassese-topbar.is-ready .cassese-topbar__list > li {
		position: static;
		opacity: 1;
	}
}

@media screen and (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part {
		top: calc(0px - var(--cassese-topbar-h));
	}

	.cassese-topbar {
		padding-inline: 1rem 2.5rem;
		font-size: 0.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cassese-topbar__list > li {
		transition: none;
	}
}

/* 404: useful destinations */
.cassese-notfound__title.wp-block-heading {
	margin-top: var(--wp--preset--spacing--50);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	text-transform: none;
}

.cassese-notfound__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.cassese-notfound__links a {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 999px;
	color: var(--wp--preset--color--charcoal);
	text-decoration: none;
}

.cassese-notfound__links a:hover,
.cassese-notfound__links a:focus-visible {
	border-color: var(--wp--preset--color--olive);
	color: var(--wp--preset--color--olive);
}

.error404 main .cassese-measure,
.error404 main .cassese-notfound__photo {
	max-width: 56rem !important; /* Same width as the rest of the 404 content, so everything lines up. */
}

/* Back to top ---------------------------------------------------------------- */
.cassese-to-top {
	position: fixed;
	right: clamp(1rem, 2.5vw, 2rem);
	bottom: clamp(1rem, 2.5vw, 2rem);
	z-index: 90;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.9rem;
	height: 2.9rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #a85d37; /* Copper, fixed: 3:1 or more against both the dark and the light backgrounds. */
	box-shadow: 0 8px 20px rgb(0 0 0 / 28%);
	color: #faf7f0;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.5rem);
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s, background-color 0.2s ease, color 0.2s ease;
}

.cassese-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.cassese-to-top:hover,
.cassese-to-top:focus-visible {
	background: #8c4a2a;
}

.cassese-to-top:focus-visible {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.cassese-to-top {
		transition: none;
	}
}

@media print {
	.cassese-to-top {
		display: none;
	}
}

/* Signs of a business losing margin (home) -------------------------------------
 * The text runs in one column (title, intro, the checklist, the count and the
 * button) and the photo becomes a panel that fills the full height of the
 * section, flush with its top, bottom and right edges: no empty column.
 * The first column is flattened (display: contents) so the layout works with
 * the markup saved by any version of the theme.
 */
.cassese-dark-signs {
	--cassese-signs-pad: var(--wp--preset--spacing--60);
	--cassese-signs-bleed: max(var(--wp--style--root--padding-right, 1.5rem), calc((100vw - var(--wp--style--global--wide-size, 110rem)) / 2));
	overflow: clip;
}

.cassese-dark-signs > .wp-block-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "title" "intro" "list" "tally" "cta" "photo";
	gap: 0;
}

.cassese-dark-signs > .wp-block-columns > .wp-block-column:first-child {
	display: contents;
}

.cassese-dark-signs > .wp-block-columns > .wp-block-column {
	min-width: 0;
	margin: 0;
}

.cassese-dark-signs .cassese-dark-title {
	grid-area: title;
	max-width: 22ch;
	margin: 0;
}

.cassese-dark-signs .wp-block-column > p:not(.cassese-signs-tally) {
	grid-area: intro;
	max-width: 46ch;
	margin: 1rem 0 0;
}

.cassese-dark-signs > .wp-block-columns > .wp-block-column:last-child {
	grid-area: list;
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.cassese-dark-signs .cassese-signs-tally {
	grid-area: tally;
	min-height: 1.5em;
	margin: 1.25rem 0 0;
	color: var(--wp--preset--color--graphite);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.cassese-dark-signs .wp-block-column > .wp-block-buttons {
	grid-area: cta;
	margin: 1.25rem 0 0;
}

.cassese-dark-signs figure.cassese-dark-signs__photo {
	grid-area: photo;
	margin: clamp(2rem, 6vw, 3rem) calc(-1 * var(--wp--style--root--padding-right, 1.5rem)) calc(-1 * var(--cassese-signs-pad)) calc(-1 * var(--wp--style--root--padding-left, 1.5rem)) !important;
}

.cassese-dark-signs figure.cassese-dark-signs__photo img {
	display: block;
	width: 100%;
	height: 100% !important;
	aspect-ratio: 3 / 2 !important;
	object-fit: cover;
	object-position: 70% 55%;
	border-radius: 0;
}

@media (min-width: 900px) {
	.cassese-dark-signs > .wp-block-columns {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		grid-template-rows: auto auto auto auto 1fr;
		grid-template-areas:
			"title photo"
			"intro photo"
			"list  photo"
			"tally photo"
			"cta   photo";
		column-gap: clamp(2.5rem, 5vw, 5.5rem);
	}

	/* The panel runs past the section padding and to the right edge of the screen. */
	.cassese-dark-signs figure.cassese-dark-signs__photo {
		align-self: stretch;
		min-height: 30rem;
		margin: calc(-1 * var(--cassese-signs-pad)) calc(-1 * var(--cassese-signs-bleed)) calc(-1 * var(--cassese-signs-pad)) 0 !important;
	}

	.cassese-dark-signs figure.cassese-dark-signs__photo img {
		position: absolute;
		inset: 0;
		aspect-ratio: auto !important;
	}

	.cassese-dark-signs figure.cassese-dark-signs__photo {
		position: relative;
	}
}

/* The checklist works: each sign is a toggle, the copper ring fills when ticked. */
.cassese-signs-grid.is-interactive > li {
	padding: 0;
}

.cassese-signs-grid.is-interactive > li::before {
	pointer-events: none;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.cassese-signs-grid.is-interactive > li::after {
	content: "";
	position: absolute;
	top: calc(1.4rem + 0.22rem);
	left: 0.3rem;
	width: 0.22rem;
	height: 0.42rem;
	border: solid #faf7f0;
	border-width: 0 2px 2px 0;
	opacity: 0;
	transform: rotate(45deg);
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.cassese-sign {
	display: block;
	width: 100%;
	margin: 0;
	padding: 1.1rem 0 1.1rem 2rem;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	line-height: inherit;
	text-align: left;
	cursor: pointer;
}

.cassese-sign:focus-visible {
	outline: 2px solid var(--wp--preset--color--olive);
	outline-offset: 2px;
}

@media (hover: hover) {
	.cassese-signs-grid.is-interactive > li:hover::before {
		border-color: var(--wp--preset--color--olive);
	}
}

.cassese-signs-grid.is-interactive > li.is-checked::before {
	border-color: #a85d37;
	background: #a85d37;
}

.cassese-signs-grid.is-interactive > li.is-checked::after {
	opacity: 1;
}

/* Two or more ticked: the button turns solid copper. */
.cassese-dark-signs.is-flagged .wp-block-button .wp-block-button__link {
	border-color: #a85d37;
	background: #a85d37;
	color: #faf7f0;
}

.cassese-dark-signs.is-flagged .cassese-signs-tally {
	color: var(--wp--preset--color--charcoal);
}

@media (prefers-reduced-motion: reduce) {
	.cassese-signs-grid.is-interactive > li::before,
	.cassese-signs-grid.is-interactive > li::after {
		transition: none;
	}
}
