/*
 * Bettinetti — supplemental stylesheet.
 * Design tokens (colour, type, spacing) live in theme.json. This file adds the
 * art direction: editorial rhythm, the section-index system, industrial hairline
 * details, and restrained micro-interactions.
 */

:root {
	--font-mono: ui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;
	--rule: var(--wp--preset--color--border);
	--rule-strong: #cdc6b9;
	/* Dark-section tones — neutral warm charcoal family (was navy-tinted). */
	--on-dark: #f2f0ed;
	--on-dark-dim: #b6b4b0;
	--on-dark-rule: #3a3936;
	--accent-on-dark: #6fd3bd;
}

/* -------------------------------------------------------------------------
 * 1. Base
 * ---------------------------------------------------------------------- */

html {
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip; /* safety net for offset decorative frames */
}

body {
	font-synthesis: none;
	background-color: var(--wp--preset--color--base);
}

::selection {
	background: var(--wp--preset--color--accent);
	color: #fff;
}

h1, h2, h3,
.wp-block-heading {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

/* -------------------------------------------------------------------------
 * 2. Accessibility — focus + skip link
 * ---------------------------------------------------------------------- */

:where(a, button, input, select, textarea, summary, .wp-block-navigation-item__content):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 1px;
}

.has-deep-background-color :focus-visible,
.has-petrol-background-color :focus-visible,
.has-deep-2-background-color :focus-visible {
	outline-color: var(--accent-on-dark);
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 9999;
	background: var(--wp--preset--color--deep);
	color: #fff;
	padding: 0.75rem 1.25rem;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
}

.skip-link:focus {
	left: 1rem;
	top: 1rem;
}

/* -------------------------------------------------------------------------
 * 3. Editorial primitives
 * ---------------------------------------------------------------------- */

/* Eyebrow / section-index label. Optionally starts with a mono number:
   <p class="is-style-eyebrow"><span class="e-num">03</span> Italia ↔ UK</p>  */
.is-style-eyebrow {
	font-size: 0.72rem !important;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.9rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem 0.85rem;
	line-height: 1.5;
}

.is-style-eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 1.75rem;
	height: 1px;
	background: var(--wp--preset--color--accent);
}

.is-style-eyebrow .e-num {
	font-family: var(--font-mono);
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

.has-deep-background-color .is-style-eyebrow,
.has-petrol-background-color .is-style-eyebrow,
.has-deep-2-background-color .is-style-eyebrow {
	color: var(--on-dark-dim);
}

.has-deep-background-color .is-style-eyebrow::before,
.has-petrol-background-color .is-style-eyebrow::before,
.has-deep-2-background-color .is-style-eyebrow::before,
.has-deep-background-color .is-style-eyebrow .e-num,
.has-petrol-background-color .is-style-eyebrow .e-num,
.has-deep-2-background-color .is-style-eyebrow .e-num {
	background: var(--accent-on-dark);
	color: var(--accent-on-dark);
}

/* Checklist */
.is-style-checked {
	list-style: none;
	padding-left: 0;
}

.is-style-checked li {
	position: relative;
	padding-left: 1.9rem;
	margin-bottom: 0.7rem;
}

.is-style-checked li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 0.75rem;
	height: 0.42rem;
	border-left: 2px solid var(--wp--preset--color--accent);
	border-bottom: 2px solid var(--wp--preset--color--accent);
	transform: rotate(-45deg);
}

.has-deep-background-color .is-style-checked li::before,
.has-petrol-background-color .is-style-checked li::before,
.has-deep-2-background-color .is-style-checked li::before {
	border-color: var(--accent-on-dark);
}

/* Card */
.is-style-card {
	position: relative;
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--paper);
	padding: var(--wp--preset--spacing--40);
	height: 100%;
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.is-style-card:hover {
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-2px);
	box-shadow: 0 14px 40px -24px rgba(20, 27, 56, 0.35);
}

a.is-style-card:hover,
.is-style-card a:hover {
	text-decoration: none;
}

/* Wide rule — an engineering-style hairline with end nodes. */
.is-style-wide-rule {
	position: relative;
	border: none;
	border-top: 1px solid var(--wp--preset--color--border);
	max-width: none;
	width: 100%;
	opacity: 1;
	overflow: visible;
}

.is-style-wide-rule::before,
.is-style-wide-rule::after {
	content: "";
	position: absolute;
	top: -2px;
	width: 3px;
	height: 3px;
	background: var(--rule-strong);
}

.is-style-wide-rule::before { left: 0; }
.is-style-wide-rule::after { right: 0; }

.has-deep-background-color .is-style-wide-rule,
.has-petrol-background-color .is-style-wide-rule,
.has-deep-2-background-color .is-style-wide-rule {
	border-top-color: var(--on-dark-rule);
}

.has-deep-background-color .is-style-wide-rule::before,
.has-petrol-background-color .is-style-wide-rule::before,
.has-deep-background-color .is-style-wide-rule::after,
.has-petrol-background-color .is-style-wide-rule::after,
.has-deep-2-background-color .is-style-wide-rule::before,
.has-deep-2-background-color .is-style-wide-rule::after {
	background: var(--on-dark-rule);
}

/* Quote — large editorial, no left bar. */
.is-style-plain.wp-block-quote,
.wp-block-quote.is-style-plain {
	border: 0;
	padding: 0;
}

.section-quote {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 550;
	font-size: clamp(1.5rem, 1.15rem + 1.6vw, 2.15rem);
	line-height: 1.32;
	letter-spacing: -0.01em;
	max-width: 22ch;
	text-wrap: balance;
}

/* Small technical / coordinate label. */
.tech-label {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.has-deep-background-color .tech-label,
.has-petrol-background-color .tech-label,
.has-deep-2-background-color .tech-label {
	color: var(--on-dark-dim);
}

.tech-label b {
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

.has-deep-background-color .tech-label b,
.has-petrol-background-color .tech-label b,
.has-deep-2-background-color .tech-label b {
	color: var(--accent-on-dark);
}

/* Arrow link (Approfondisci → / Read more →) */
.arrow-link a,
a.arrow-link {
	text-decoration: none;
	font-weight: 600;
}

.arrow-link a::after,
a.arrow-link::after {
	content: " →";
	display: inline-block;
	transition: transform 0.25s ease;
}

.arrow-link a:hover::after,
a.arrow-link:hover::after {
	transform: translateX(4px);
}

/* -------------------------------------------------------------------------
 * 4. Dark sections — make any content legible on charcoal
 * ---------------------------------------------------------------------- */

.has-deep-background-color,
.has-petrol-background-color,
.has-deep-2-background-color {
	color: var(--on-dark);
}

.has-deep-background-color :is(h1, h2, h3, h4, h5, h6, .wp-block-heading),
.has-petrol-background-color :is(h1, h2, h3, h4, h5, h6, .wp-block-heading),
.has-deep-2-background-color :is(h1, h2, h3, h4, h5, h6, .wp-block-heading) {
	color: #fff;
}

.has-deep-background-color p:not([class*="has-"]),
.has-petrol-background-color p:not([class*="has-"]),
.has-deep-2-background-color p:not([class*="has-"]),
.has-deep-background-color li,
.has-petrol-background-color li,
.has-deep-2-background-color li {
	color: var(--on-dark-dim);
}

.has-deep-background-color a:not(.wp-block-button__link),
.has-petrol-background-color a:not(.wp-block-button__link),
.has-deep-2-background-color a:not(.wp-block-button__link) {
	color: #fff;
}

/* -------------------------------------------------------------------------
 * 5. Header
 * ---------------------------------------------------------------------- */

.site-header .wp-block-site-title {
	line-height: 1;
	margin: 0;
}

.site-header .wp-block-group.is-nowrap {
	gap: clamp(0.9rem, 2.4vw, 1.6rem);
}

.bettinetti-langswitch {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.bettinetti-langswitch a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	padding: 0.15rem 0.1rem;
	transition: color 0.15s ease;
}

.bettinetti-langswitch a:hover {
	color: var(--wp--preset--color--accent);
}

.bettinetti-langswitch [aria-current="true"] {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

.bettinetti-langswitch__sep {
	color: var(--wp--preset--color--border);
}

.site-header .header-cta {
	margin: 0;
}

@media (max-width: 479px) {
	.site-header .header-cta {
		display: none;
	}
}

/* -------------------------------------------------------------------------
 * 6. Navigation
 * ---------------------------------------------------------------------- */

.wp-block-navigation {
	--navigation-layout-gap: 1.75rem;
}

.wp-block-navigation .wp-block-navigation-item__content {
	text-decoration: none;
	padding-block: 0.35rem;
	background-image: linear-gradient(var(--wp--preset--color--accent), var(--wp--preset--color--accent));
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 1px;
	transition: background-size 0.28s ease, color 0.15s ease;
}

.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .current-menu-item .wp-block-navigation-item__content {
	background-size: 100% 1px;
}

.wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1.5rem, 5vw, 3rem);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	margin-top: 3rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.4rem;
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 650;
	background-image: none;
}

/* -------------------------------------------------------------------------
 * 7. Links & buttons — micro-interactions
 * ---------------------------------------------------------------------- */

/* Animated underline for prose links. */
.wp-block-post-content a:not(.wp-block-button__link),
.prose a,
.entry-content a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 1px;
	padding-bottom: 0.06em;
	transition: background-size 0.3s ease, opacity 0.2s ease;
}

.wp-block-post-content a:not(.wp-block-button__link):hover,
.prose a:hover {
	background-size: 0% 1px;
	opacity: 0.75;
}

.wp-block-button__link {
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent);
	color: #fff;
}

/* -------------------------------------------------------------------------
 * 8. Editorial content (posts / pages)
 * ---------------------------------------------------------------------- */

.wp-block-post-content {
	font-size: 1.1rem;
	line-height: 1.72;
}

.wp-block-post-content > * {
	margin-block: 1.5rem;
}

.wp-block-post-content > h2 {
	margin-top: 3rem;
}

.wp-block-post-content > h3 {
	margin-top: 2.25rem;
}

figure figcaption {
	margin-top: 0.6rem;
}

.post-meta {
	font-family: var(--font-mono);
	font-size: 0.82rem;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.02em;
}

/* Breadcrumbs */
.bettinetti-breadcrumbs {
	font-family: var(--font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--muted);
	margin-bottom: var(--wp--preset--spacing--30);
}

.bettinetti-breadcrumbs a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.bettinetti-breadcrumbs a:hover {
	color: var(--wp--preset--color--accent);
}

.bettinetti-breadcrumbs__sep {
	color: var(--wp--preset--color--border);
	padding: 0 0.15em;
}

.bettinetti-breadcrumbs [aria-current="page"] {
	color: var(--wp--preset--color--contrast);
}

/* -------------------------------------------------------------------------
 * 9. Homepage — hero
 * ---------------------------------------------------------------------- */

.hero .wp-block-columns {
	align-items: center;
}

/* Hero type is sized here (not inline) so WordPress fluid-typography does not
   shrink the lead/body too far on small screens. */
.hero__title {
	max-width: 26ch;
	font-size: clamp(1.95rem, 1.4rem + 2.4vw, 2.8rem);
	line-height: 1.11;
	letter-spacing: -0.018em;
}

.hero__lead {
	max-width: 40ch;
	font-size: clamp(1.12rem, 1.02rem + 0.5vw, 1.28rem);
	font-weight: 500;
	line-height: 1.4;
	color: var(--wp--preset--color--contrast);
}

.hero__text {
	max-width: 46ch;
	font-size: 1.02rem;
	line-height: 1.62;
}

/* Portrait — sized so it never dominates the copy. No decorative frame/caption. */
.hero__portrait {
	margin: 0 0 0 auto;
	max-width: 400px;
}

.hero__portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: var(--wp--preset--color--surface);
}

/* -------------------------------------------------------------------------
 * 10. Homepage — credibility band (navy)
 * ---------------------------------------------------------------------- */

.credibility-strip .wp-block-group {
	align-items: baseline;
	row-gap: 0.75rem;
}

.credibility-strip__years {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1.55rem !important;
	font-weight: 700;
	color: #fff !important;
	white-space: nowrap;
}

.credibility-strip__years span {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--on-dark-dim);
	margin-left: 0.6rem;
}

.credibility-strip__sectors {
	font-family: var(--font-mono) !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--on-dark-dim) !important;
}

.credibility-strip__sectors .sep {
	color: var(--on-dark-rule);
	padding: 0 0.55em;
}

.credibility-strip__route {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	color: var(--accent-on-dark);
	white-space: nowrap;
}

/* -------------------------------------------------------------------------
 * 11. Homepage — Italy ↔ UK connector
 * ---------------------------------------------------------------------- */

.route-label {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.connector {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--on-dark-dim);
	margin-top: var(--wp--preset--spacing--30);
}

.connector__line {
	flex: 1 1 auto;
	height: 1px;
	background: linear-gradient(to right, var(--accent-on-dark), var(--on-dark-rule));
	position: relative;
}

.connector__line::before,
.connector__line::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	transform: translateY(-50%);
	background: var(--accent-on-dark);
}

.connector__line::before { left: 0; }
.connector__line::after { right: 0; background: var(--on-dark-dim); }

/* -------------------------------------------------------------------------
 * 11b. Insights — Knowledge Hub
 * ---------------------------------------------------------------------- */

/* Filter bar */
.insight-filters {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	border-top: 1px solid var(--wp--preset--color--border);
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding-block: 1.1rem;
}

.insight-filters__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.6rem;
	align-items: baseline;
}

.insight-filters__tab {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	padding-bottom: 0.15rem;
	border-bottom: 1px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.insight-filters__tab:hover {
	color: var(--wp--preset--color--contrast);
}

.insight-filters__tab.is-active {
	color: var(--wp--preset--color--contrast);
	border-bottom-color: var(--wp--preset--color--accent);
}

.insight-filters__chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.6rem;
}

.insight-filters__chips-label {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-right: 0.4rem;
}

.insight-filters__chip {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	border: 1px solid var(--wp--preset--color--border);
	padding: 0.3rem 0.7rem;
	transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.insight-filters__chip:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.insight-filters__chip.is-active {
	background: var(--wp--preset--color--deep);
	border-color: var(--wp--preset--color--deep);
	color: #fff;
}

/* Featured card */
.insight-featured {
	margin-block: var(--wp--preset--spacing--40);
}

.insight-featured__link {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(1.5rem, 4vw, 3.25rem);
	align-items: center;
	text-decoration: none;
	color: inherit;
	border-top: 1px solid var(--wp--preset--color--border);
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding-block: var(--wp--preset--spacing--40);
}

.insight-featured__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--wp--preset--color--surface);
}

.insight-featured__kicker {
	font-family: var(--font-mono);
	font-size: 0.74rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.6rem;
}

.insight-featured__kicker .e-num { color: var(--wp--preset--color--accent); }
.insight-featured__kicker a { color: inherit; text-decoration: none; }

.insight-featured__title {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 650;
	font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.15rem);
	line-height: 1.18;
	margin: 0 0 0.6rem;
	text-wrap: balance;
}

.insight-featured__excerpt {
	color: var(--wp--preset--color--muted);
	max-width: 52ch;
	margin: 0 0 0.9rem;
}

.insight-featured__more {
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--wp--preset--color--accent);
}

.insight-featured__more::after {
	content: " →";
	display: inline-block;
	transition: transform 0.25s ease;
}

.insight-featured__link:hover .insight-featured__more::after {
	transform: translateX(4px);
}

.insight-featured__link:hover .insight-featured__title {
	text-decoration: underline;
	text-underline-offset: 0.12em;
	text-decoration-thickness: 1px;
}

/* Grid */
.insight-grid.is-layout-grid {
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}

.insight-grid > li {
	position: relative;
	border-top: 1px solid var(--wp--preset--color--contrast);
	padding-top: 1rem;
}

.insight-card__format,
.insight-card__format a {
	font-family: var(--font-mono);
	font-size: 0.72rem !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.insight-grid .wp-block-post-title a {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 1px;
	transition: background-size 0.3s ease;
}

.insight-grid .wp-block-post-title a:hover {
	background-size: 100% 1px;
}

.insight-grid .wp-block-post-excerpt {
	color: var(--wp--preset--color--muted);
}

/* Share row */
.insight-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.9rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.insight-share__label {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-right: 0.3rem;
}

.insight-share__links {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.insight-share__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--muted);
	background: transparent;
	cursor: pointer;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.insight-share__link:hover,
.insight-share__link:focus-visible {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.insight-share__copy.is-copied {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: #fff;
}

.insight-share__feedback {
	font-size: 0.82rem;
	color: var(--wp--preset--color--accent);
}

/* Empty state */
.insight-empty {
	text-align: left;
}

.insight-empty__text {
	max-width: 54ch;
}

@media (max-width: 781px) {
	.insight-featured__link {
		grid-template-columns: 1fr;
	}

	.insight-filters__tab {
		font-size: 1.05rem;
	}
}

/* -------------------------------------------------------------------------
 * 12. Section utilities
 * ---------------------------------------------------------------------- */

.has-border-top {
	border-top: 1px solid var(--wp--preset--color--border);
}

.has-deep-background-color.has-border-top,
.has-petrol-background-color.has-border-top,
.has-deep-2-background-color.has-border-top {
	border-top-color: var(--on-dark-rule);
}

/* Numbered principle (Come lavoro) */
.principle__num {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	color: var(--wp--preset--color--accent);
	letter-spacing: 0.05em;
	display: block;
	margin-bottom: 0.5rem;
}

/* -------------------------------------------------------------------------
 * 13. Footer — signature
 * ---------------------------------------------------------------------- */

.site-footer .footer-signature {
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: clamp(1.6rem, 1.25rem + 1.2vw, 2rem) !important;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #fff;
	line-height: 1.1;
}

/* -------------------------------------------------------------------------
 * 14. Motion — restrained scroll reveal
 * ---------------------------------------------------------------------- */

[data-reveal] {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

[data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

.js-reveal main > .wp-block-group > section,
.js-reveal main > section {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.js-reveal main > .wp-block-group > section.is-visible,
.js-reveal main > section.is-visible {
	opacity: 1;
	transform: none;
}

/* The hero must never be hidden — it is above the fold. */
.js-reveal main > .wp-block-group > section.hero {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}

	[data-reveal],
	.js-reveal main > .wp-block-group > section,
	.js-reveal main > section {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* -------------------------------------------------------------------------
 * 15. Homepage — Explore rows
 * ---------------------------------------------------------------------- */

.explore-rows {
	border-top: 1px solid var(--wp--preset--color--contrast);
}

.explore-row {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 3vw, 2.5rem);
	padding-block: clamp(1.25rem, 3vw, 2rem);
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-decoration: none;
	color: inherit;
	transition: background-color 0.2s ease, border-color 0.2s ease, padding-left 0.2s ease;
}

.explore-row:hover,
.explore-row:focus-visible {
	background-color: var(--wp--preset--color--surface);
	border-bottom-color: var(--wp--preset--color--accent);
	padding-left: 0.6rem;
}

.explore-row__num {
	flex: 0 0 auto;
	width: clamp(3rem, 6vw, 4.5rem);
	font-family: var(--font-mono);
	font-size: 1rem;
	color: var(--wp--preset--color--accent);
	letter-spacing: 0.04em;
}

.explore-row__body {
	flex: 1 1 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: clamp(1rem, 3vw, 2.5rem);
	row-gap: 0.25rem;
	min-width: 0;
}

.explore-row__title {
	font-weight: 700;
	font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.75rem);
	letter-spacing: -0.01em;
	flex: 1 1 260px;
}

.explore-row__desc {
	color: var(--wp--preset--color--muted);
	font-size: 0.98rem;
	flex: 1 1 260px;
}

.explore-row__arrow {
	flex: 0 0 auto;
	font-size: 1.3rem;
	color: var(--wp--preset--color--accent);
	transition: transform 0.2s ease;
}

.explore-row:hover .explore-row__arrow,
.explore-row:focus-visible .explore-row__arrow {
	transform: translateX(6px);
}

/* -------------------------------------------------------------------------
 * 16. Homepage — Experience figure ("25+")
 * ---------------------------------------------------------------------- */

.experience-figure {
	display: flex;
	align-items: baseline;
	gap: 0.85rem;
	margin: 0.75rem 0 1.25rem;
	line-height: 1;
}

.experience-figure__num {
	font-size: clamp(4rem, 3rem + 4vw, 6.5rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--contrast);
}

.experience-figure__label {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	max-width: 8ch;
	line-height: 1.25;
}

/* -------------------------------------------------------------------------
 * 17. Homepage — Featured Insight spotlight
 * ---------------------------------------------------------------------- */

.featured-insight__link {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(1.5rem, 4vw, 3.25rem);
	align-items: center;
	text-decoration: none;
	color: inherit;
	border: 1px solid var(--wp--preset--color--border);
	padding: clamp(1.25rem, 3vw, 2rem);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.featured-insight__link:hover,
.featured-insight__link:focus-visible {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 14px 40px -28px rgba(17, 17, 17, 0.35);
}

.featured-insight__media {
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--surface);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.featured-insight__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.featured-insight__link:hover .featured-insight__media img,
.featured-insight__link:focus-visible .featured-insight__media img {
	transform: scale(1.03);
}

.featured-insight__media-mark {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 2.5rem;
	color: var(--wp--preset--color--border);
}

.featured-insight__kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--font-mono);
	font-size: 0.74rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin: 0 0 0.6rem;
}

.featured-insight__kicker .e-num {
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

.featured-insight__title {
	font-weight: 700;
	font-size: clamp(1.4rem, 1.15rem + 1.2vw, 2rem);
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 0.6rem;
	text-wrap: balance;
}

.featured-insight__excerpt {
	color: var(--wp--preset--color--muted);
	max-width: 52ch;
	margin: 0 0 0.9rem;
}

.featured-insight__cta {
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--wp--preset--color--accent);
}

.featured-insight__cta::after {
	content: " →";
	display: inline-block;
	transition: transform 0.2s ease;
}

.featured-insight__link:hover .featured-insight__cta::after,
.featured-insight__link:focus-visible .featured-insight__cta::after {
	transform: translateX(4px);
}

.featured-insight__empty {
	border: 1px dashed var(--wp--preset--color--border);
	padding: clamp(2rem, 5vw, 3.5rem);
	text-align: left;
}

.featured-insight__empty-title {
	font-weight: 700;
	font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.6rem);
	margin: 0 0 0.6rem;
}

.featured-insight__empty-text {
	color: var(--wp--preset--color--muted);
	max-width: 56ch;
	margin: 0 0 1rem;
}

/* -------------------------------------------------------------------------
 * 18. Italy ↔ UK connector — subtle left-to-right travel
 * ---------------------------------------------------------------------- */

.connector__pulse {
	position: absolute;
	top: 50%;
	left: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #fff;
	transform: translate(-50%, -50%);
	animation: connector-travel 3.6s ease-in-out infinite;
}

@keyframes connector-travel {
	0%, 8% { left: 0%; opacity: 0; }
	18% { opacity: 1; }
	85% { opacity: 1; }
	100% { left: 100%; opacity: 0; }
}

/* -------------------------------------------------------------------------
 * 19. Responsive
 * ---------------------------------------------------------------------- */

@media (max-width: 781px) {
	.hero__title,
	.hero__lead,
	.hero__text {
		max-width: 34ch;
	}

	.hero__portrait {
		max-width: 300px;
		margin-inline: 0;
	}

	.credibility-strip .wp-block-group {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.9rem;
	}

	.credibility-strip__sectors .sep {
		padding: 0 0.4em;
	}

	.featured-insight__link {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 599px) {
	.wp-block-post-content {
		font-size: 1.05rem;
	}

	.is-style-eyebrow::before {
		width: 1.25rem;
	}

	.explore-row {
		flex-wrap: wrap;
		gap: 0.5rem 1rem;
	}

	.explore-row__num {
		width: auto;
		order: 1;
	}

	.explore-row__arrow {
		order: 2;
		margin-left: auto;
	}

	.explore-row__body {
		order: 3;
		flex-basis: 100%;
	}

	.explore-row__title,
	.explore-row__desc {
		flex-basis: 100%;
	}

	.experience-figure {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.35rem;
	}

	.experience-figure__label {
		max-width: none;
	}
}

/* -------------------------------------------------------------------------
 * 20. Homepage — Strategic partnerships
 *     Editorial rows, not SaaS cards: a small partner logo (swap-in from the
 *     Media Library via the image block's "Replace"), strong title, discreet
 *     mono tags, arrow link, restrained hover.
 * ---------------------------------------------------------------------- */

/* Native group/image blocks are used here so the logo is editor-replaceable;
   neutralise the editor's inherited vertical block-gap and rely on the
   explicit margins below. */
.partners__list,
.partner,
.partner__aside,
.partner__main {
	--wp--style--block-gap: 0px;
}

.partners__list {
	border-top: 1px solid var(--rule-strong);
}

.partner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 33%) minmax(0, 1fr);
	gap: clamp(1.5rem, 5vw, 5rem);
	align-items: start;
	padding-block: clamp(2rem, 4.5vw, 3.5rem);
	border-bottom: 1px solid var(--wp--preset--color--border);
	transition: border-color 0.2s ease;
}

.partner::before {
	content: "";
	position: absolute;
	left: calc(-1 * clamp(0.6rem, 2vw, 1.1rem));
	top: clamp(2rem, 4.5vw, 3.5rem);
	bottom: clamp(2rem, 4.5vw, 3.5rem);
	width: 2px;
	background: var(--wp--preset--color--accent);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 0.28s ease;
}

.partner:hover,
.partner:focus-within {
	border-bottom-color: var(--wp--preset--color--accent);
}

.partner:hover::before,
.partner:focus-within::before {
	transform: scaleY(1);
}

.partner__aside {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

/* Partner logo. A neutral labelled placeholder ships in the Media Library;
   replace it per partner via the image block ("Replace"). A fixed render
   height keeps every partner logo the same visual size and deliberately
   small, so it never dominates the row. Official colours are preserved —
   no filter is applied. */
.partners .partner__logo {
	margin: 0;
	align-self: flex-start;
	max-width: 100%;
}

.partners .partner__logo img {
	display: block;
	height: 30px;
	width: auto;
	max-width: 220px;
	object-fit: contain;
	object-position: left center;
}

.partner__tags {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.7;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.partner__index {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--accent);
	margin-bottom: 0.75rem;
}

.partner__title {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 700;
	font-size: clamp(1.3rem, 1.05rem + 1vw, 1.9rem);
	letter-spacing: -0.01em;
	line-height: 1.2;
	margin: 0 0 0.6rem;
}

.partner__text {
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 46ch;
	margin: 0 0 1rem;
}

.partner__cta {
	font-size: 0.95rem;
	margin: 0;
}

/* Discreet partnership call-out reused on the Business Development /
   Experience / Innovation & AI pages. */
.partner-note {
	margin-top: 1.5rem;
	padding-left: 0.9rem;
	border-left: 2px solid var(--wp--preset--color--border);
	max-width: 58ch;
}

@media (max-width: 781px) {
	.partner {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.partner::before {
		left: calc(-1 * clamp(0.5rem, 4vw, 1rem));
	}

	.partner__aside {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.75rem 1.5rem;
	}
}
