/* ==========================================================================
   Trivellato TT5 — stili del tema
   Caricato sia sul sito sia nell'editor a blocchi.
   ========================================================================== */

:root {
	--trv-ink: var(--wp--preset--color--contrast);
	--trv-paper: var(--wp--preset--color--base);
	--trv-sand: var(--wp--preset--color--accent-2);
	--trv-teal: var(--wp--preset--color--accent-1);
	--trv-teal-deep: var(--wp--preset--color--accent-3);
	--trv-muted: var(--wp--preset--color--accent-4);
	--trv-hair: var(--wp--preset--color--accent-5);
	--trv-ease: cubic-bezier(.2, .7, .1, 1);
	--trv-r-md: 12px;
	--trv-r-lg: 20px;
	--trv-header-h: 76px;
}

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

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01", "cv05";
}

/* Grana di carta, leggerissima, solo sul sito. */
body:not(.block-editor-iframe__body)::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	opacity: .045;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

::selection { background: var(--trv-teal); color: #fff; }

:where(h1, h2, h3, h4, .wp-block-heading) {
	font-stretch: 108%;
	text-wrap: balance;
	font-kerning: normal;
}
:where(p) { text-wrap: pretty; }

/* Testo evidenziato con il colore del tema (Gutenberg: "Evidenzia"). */
mark.has-inline-color { padding: 0; }

a { text-underline-offset: .18em; text-decoration-thickness: 1px; transition: color .2s var(--trv-ease); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
/* Offset per gli elementi "sticky": altezza della barra di amministrazione quando è visibile.
   WordPress definisce --wp-admin--admin-bar--height solo per gli utenti loggati;
   sotto i 600px la barra non è fissa (scorre con la pagina), quindi l'offset torna a zero. */
:root { --trv-sticky-top: var(--wp-admin--admin-bar--height, 0px); }
@media screen and (max-width: 600px) { :root { --trv-sticky-top: 0px; } }
html { scroll-padding-top: calc(var(--trv-sticky-top) + var(--trv-header-h) + 16px); }

.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part:has(> .trv-header) {
	position: sticky;
	top: var(--trv-sticky-top);
	z-index: 100;
}

.trv-header {
	position: relative;
	isolation: isolate;
	border-bottom: 1px solid transparent;
	transition: border-color .3s var(--trv-ease);
}
/* Lo sfondo sfocato sta su uno pseudo-elemento: un backdrop-filter sul contenitore
   intrappolerebbe il menu mobile (position: fixed) dentro l'header. */
.trv-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--trv-paper) 78%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(18px);
	backdrop-filter: saturate(1.4) blur(18px);
	transition: background-color .3s var(--trv-ease);
}
.is-scrolled .trv-header { border-bottom-color: color-mix(in srgb, var(--trv-hair) 80%, transparent); }
.is-scrolled .trv-header::before { background: color-mix(in srgb, var(--trv-paper) 88%, transparent); }
.trv-header > .wp-block-group { min-height: var(--trv-header-h); }

/* Logotipo: titolo del sito + quadratino ottanio */
.trv-brand .wp-block-site-title a,
.trv-wordmark { position: relative; }
.trv-brand .wp-block-site-title a::after,
.trv-wordmark::after {
	content: "";
	display: inline-block;
	width: .3em;
	height: .3em;
	margin-left: .06em;
	background: var(--trv-teal);
	vertical-align: baseline;
	transform: translateY(.02em);
	transition: transform .4s var(--trv-ease);
}
.trv-brand:hover .wp-block-site-title a::after { transform: translateY(.02em) rotate(90deg); }
.trv-brand .wp-block-site-tagline {
	white-space: nowrap;
	line-height: 1;
	margin: 0;
}
.trv-brand .wp-block-site-title { line-height: 1; }

/* Navigazione */
.trv-header .wp-block-navigation .wp-block-navigation-item__content {
	position: relative;
	padding-block: .35em;
}
.trv-header .wp-block-navigation:not(.is-menu-open) .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .35s var(--trv-ease);
}
.trv-header .wp-block-navigation-item__content:hover::after,
.trv-header .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }

/* Menu mobile a tutto schermo */
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--trv-ink) !important;
	color: var(--trv-paper) !important;
	padding: clamp(20px, 5vw, 48px);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-stretch: 108%;
	font-size: clamp(2.25rem, 10vw, 3.5rem);
	letter-spacing: -.04em;
	line-height: 1.05;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .25rem !important; }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border-radius: 999px;
	border: 1px solid var(--trv-hair);
}
.wp-block-navigation__responsive-container-close { border-color: color-mix(in srgb, var(--trv-paper) 30%, transparent); }
/* Header su schermi medi: niente a capo, gap ridotto */
.trv-header .wp-block-button__link { white-space: nowrap; }
.trv-header .wp-block-navigation__container { flex-wrap: nowrap; }
@media (max-width: 1100px) { .trv-header .wp-block-navigation__container { gap: 20px !important; } }

/* Pulsante "Contattaci": sempre visibile (è l'unico accesso ai contatti dall'header) */
.trv-header-cta .wp-block-button__link { border-color: transparent !important; }
.trv-header-cta .wp-block-button__link:hover,
.trv-header-cta .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--accent-3) !important;
	color: var(--wp--preset--color--white) !important;
}
@media (min-width: 600px) and (max-width: 900px) {
	.trv-brand .wp-block-site-tagline { display: none; }
	.trv-header .wp-block-navigation__container { gap: 16px !important; }
	.trv-header-cta .wp-block-button__link { padding: .7rem 1.1rem !important; }
	.trv-header-cta .wp-block-button__link::after { display: none; }
}
@media (max-width: 599px) {
	.trv-header > .wp-block-group { gap: 10px !important; }
	.trv-header-cta { margin-left: auto; order: 2; }
	.trv-header .wp-block-navigation { order: 3; }
	.trv-header-cta .wp-block-button__link { padding: .55rem .9rem !important; font-size: .8125rem !important; }
	.trv-header-cta .wp-block-button__link::after { display: none; }
	.trv-brand .wp-block-site-tagline { font-size: .5625rem !important; letter-spacing: .07em !important; }
}

/* --------------------------------------------------------------------------
   Pulsanti
   -------------------------------------------------------------------------- */
.wp-element-button,
.wp-block-button__link {
	transition: background-color .25s var(--trv-ease), color .25s var(--trv-ease), border-color .25s var(--trv-ease), transform .25s var(--trv-ease);
	display: inline-flex;
	align-items: center;
	gap: .6em;
}
.wp-block-button__link:active { transform: scale(.97); }

.wp-block-button.is-style-arrow .wp-block-button__link::after,
.wp-block-button.is-style-ghost-arrow .wp-block-button__link::after {
	content: "";
	width: 1.05em;
	height: 1.05em;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M13 6l6 6-6 6'/></svg>") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M13 6l6 6-6 6'/></svg>") center / contain no-repeat;
	transition: transform .3s var(--trv-ease);
}
.wp-block-button.is-style-arrow .wp-block-button__link:hover::after,
.wp-block-button.is-style-ghost-arrow .wp-block-button__link:hover::after { transform: translateX(4px); }

.wp-block-button.is-style-ghost-arrow .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: currentColor !important;
	border: 1px solid color-mix(in srgb, currentColor 35%, transparent) !important;
}
.wp-block-button.is-style-ghost-arrow .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--trv-ink) !important;
	color: var(--trv-paper) !important;
	border-color: var(--trv-ink) !important;
}
.is-style-section-ink .wp-block-button.is-style-ghost-arrow .wp-block-button__link:hover,
.is-style-section-teal .wp-block-button.is-style-ghost-arrow .wp-block-button__link:hover,
.is-style-section-ink .wp-block-button.is-style-outline .wp-block-button__link:hover,
.is-style-section-teal .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--trv-paper) !important;
	color: var(--trv-ink) !important;
	border-color: var(--trv-paper) !important;
}

/* --------------------------------------------------------------------------
   Tipografia: stili di paragrafo e titolo
   -------------------------------------------------------------------------- */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--mono) !important;
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.4;
	color: color-mix(in srgb, currentColor 62%, transparent);
	display: flex;
	align-items: center;
	gap: .7em;
}
.is-style-eyebrow::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--trv-teal);
	flex: none;
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--trv-teal) 50%, transparent);
	animation: trv-pulse 2.6s var(--trv-ease) infinite;
}
.is-style-eyebrow.has-text-align-right { justify-content: flex-end; }
.is-style-eyebrow.has-text-align-center { justify-content: center; }
@keyframes trv-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--trv-teal) 55%, transparent); }
	70%, 100% { box-shadow: 0 0 0 9px transparent; }
}

.is-style-mono {
	font-family: var(--wp--preset--font-family--mono) !important;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: .08em;
	text-transform: uppercase;
}

.is-style-lead {
	font-size: var(--wp--preset--font-size--large) !important;
	line-height: 1.45 !important;
	letter-spacing: -.012em;
	color: color-mix(in srgb, currentColor 78%, transparent);
	max-width: 40ch;
}
.has-text-align-center.is-style-lead { margin-inline: auto; }

.is-style-stat {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 500 !important;
	font-stretch: 100%;
	font-size: clamp(3.5rem, 7vw, 6.5rem) !important;
	line-height: .9 !important;
	letter-spacing: -.055em !important;
	font-variant-numeric: tabular-nums;
	margin-block: 0;
}
.is-style-stat sup,
.is-style-stat .trv-unit {
	font-size: .3em;
	letter-spacing: -.01em;
	color: var(--trv-teal);
	vertical-align: top;
	position: relative;
	top: .35em;
	margin-left: .12em;
	font-weight: 500;
}
.is-style-section-ink .is-style-stat sup,
.is-style-section-teal .is-style-stat sup { color: var(--wp--preset--color--accent-6); }

.wp-block-heading.is-style-display,
.wp-block-heading.is-style-mega { overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (max-width: 600px) {
	.wp-block-heading.is-style-display,
	.wp-block-heading.is-style-mega { hyphens: auto; overflow-wrap: break-word; }
}
.wp-block-heading.is-style-display {
	font-size: clamp(2.6rem, 2rem + 5vw, 7.25rem) !important;
	line-height: .88 !important;
	letter-spacing: -.05em !important;
	font-weight: 800;
	font-stretch: 110%;
}
.wp-block-heading.is-style-mega {
	font-size: clamp(3.5rem, 3rem + 7.5vw, 11rem) !important;
	line-height: .82 !important;
	letter-spacing: -.06em !important;
	font-weight: 800;
	font-stretch: 112%;
}
.wp-block-heading.is-style-outlined {
	color: transparent !important;
	-webkit-text-stroke: 1.5px currentColor;
	-webkit-text-stroke-color: var(--trv-ink);
}
.is-style-section-ink .wp-block-heading.is-style-outlined { -webkit-text-stroke-color: var(--trv-paper); }

/* --------------------------------------------------------------------------
   Gruppi
   -------------------------------------------------------------------------- */
.wp-block-group.is-style-card {
	background: color-mix(in srgb, var(--wp--preset--color--white) 70%, transparent);
	border: 1px solid var(--trv-hair);
	border-radius: var(--trv-r-lg);
	padding: clamp(22px, 2.6vw, 36px);
}
.is-style-section-ink .wp-block-group.is-style-card,
.is-style-section-teal .wp-block-group.is-style-card {
	background: color-mix(in srgb, var(--trv-paper) 6%, transparent);
	border-color: color-mix(in srgb, var(--trv-paper) 14%, transparent);
}

.wp-block-group.is-style-glass {
	background: color-mix(in srgb, var(--trv-paper) 70%, transparent);
	-webkit-backdrop-filter: blur(16px) saturate(1.3);
	backdrop-filter: blur(16px) saturate(1.3);
	border: 1px solid color-mix(in srgb, #fff 45%, transparent);
	border-radius: var(--trv-r-lg);
	padding: clamp(20px, 2.4vw, 32px);
}

.wp-block-group.is-style-hairline {
	border-top: 1px solid var(--trv-hair);
	padding-top: var(--wp--preset--spacing--40);
}
.is-style-section-ink .wp-block-group.is-style-hairline,
.is-style-section-teal .wp-block-group.is-style-hairline { border-top-color: color-mix(in srgb, var(--trv-paper) 18%, transparent); }

/* Etichetta mono scura, da sovrapporre alle immagini */
.wp-block-group.is-style-chip {
	display: inline-flex !important;
	width: fit-content;
	align-items: center;
	gap: .6em;
	padding: .45em .8em !important;
	border-radius: 6px;
	background: color-mix(in srgb, #16130e 72%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #f7f4ec;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .6875rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.wp-block-group.is-style-chip > * { margin: 0 !important; }

/* Nastro scorrevole */
.wp-block-group.is-style-marquee {
	overflow: hidden;
	border-block: 1px solid var(--trv-hair);
	padding-block: clamp(18px, 2.4vw, 30px) !important;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.wp-block-group.is-style-marquee > * {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.6vw, 3.25rem) !important;
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.1;
	white-space: nowrap;
	margin: 0 !important;
}
.wp-block-group.is-style-marquee > *:not(:last-child)::after,
.trv-marquee__track > *::after {
	content: "";
	display: inline-block;
	width: .22em;
	height: .22em;
	border-radius: 50%;
	background: var(--trv-teal);
	margin-inline: .9em;
	vertical-align: middle;
}
.trv-marquee__track {
	display: flex;
	flex-wrap: nowrap;
	width: max-content;
	animation: trv-marquee var(--trv-marquee-speed, 40s) linear infinite;
}
.wp-block-group.is-style-marquee:hover .trv-marquee__track { animation-play-state: paused; }
.wp-block-group.is-style-marquee.is-js { display: block !important; }
@keyframes trv-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .trv-marquee__track { animation: none; } }

/* --------------------------------------------------------------------------
   Immagini
   -------------------------------------------------------------------------- */
.wp-block-image img { border-radius: inherit; }
.wp-block-image img[style*="aspect-ratio"] { width: 100%; height: auto; }
.wp-block-image { border-radius: var(--trv-r-lg); }
.wp-block-image.is-style-chip-caption,
.wp-block-image.is-style-zoom { position: relative; overflow: hidden; }
.wp-block-image.is-style-chip-caption figcaption {
	position: absolute;
	left: 14px;
	bottom: 14px;
	margin: 0;
	padding: .5em .8em;
	border-radius: 6px;
	background: color-mix(in srgb, #16130e 72%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #f7f4ec;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .6875rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	display: flex;
	align-items: center;
	gap: .6em;
	max-width: calc(100% - 28px);
}
.wp-block-image.is-style-chip-caption figcaption::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 50%;
	background: #7fb6bc;
	flex: none;
}
.wp-block-image.is-style-chip-caption img,
.wp-block-image.is-style-zoom img,
.wp-block-cover.is-style-zoom .wp-block-cover__image-background {
	transition: transform 1.2s var(--trv-ease), filter .8s var(--trv-ease);
}
.wp-block-image.is-style-zoom:hover img,
.wp-block-cover.is-style-zoom:hover .wp-block-cover__image-background { transform: scale(1.045); }

.wp-block-cover { overflow: hidden; }

/* Card servizio: immagine + numero + titolo */
.trv-service .wp-block-image { margin-bottom: 1.1rem; }
.trv-service .trv-num {
	font-family: var(--wp--preset--font-family--mono);
	font-size: .75rem;
	color: var(--trv-muted);
	letter-spacing: .06em;
}

/* --------------------------------------------------------------------------
   Elenchi
   -------------------------------------------------------------------------- */
/* Elenco in linea (stile "pills"): etichette informative, NON pulsanti.
   Nessun bordo, nessun hover: solo testo con un piccolo quadrato ottanio. */
ul.is-style-pills,
ol.is-style-pills {
	list-style: none;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: .7rem 1.6rem;
}
.is-style-pills > li {
	margin: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: .6em;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.35;
	cursor: default;
}
.is-style-pills > li::before {
	content: "";
	flex: none;
	width: 6px;
	height: 6px;
	background: var(--trv-teal);
	transform: translateY(-.15em);
}
.is-style-pills > li.trv-accent { color: var(--trv-teal); font-weight: 500; }
.is-style-section-ink .is-style-pills > li::before,
.is-style-section-teal .is-style-pills > li::before { background: var(--wp--preset--color--accent-6); }

ul.is-style-lines,
ol.is-style-lines {
	list-style: none;
	padding: 0 !important;
	border-top: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}
.is-style-lines > li {
	position: relative;
	padding: .95rem 0 .95rem 1.4rem;
	margin: 0 !important;
	border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}
.is-style-lines > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(.95rem + .62em);
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--trv-teal);
}

ol.is-style-steps,
ul.is-style-steps {
	list-style: none;
	padding: 0 !important;
	counter-reset: trv-step;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
	gap: 0;
	border: 1px solid var(--trv-hair);
	border-radius: var(--trv-r-lg);
	overflow: hidden;
}
.is-style-steps > li {
	counter-increment: trv-step;
	margin: 0 !important;
	background: var(--trv-paper);
	box-shadow: 1px 0 0 var(--trv-hair), 0 1px 0 var(--trv-hair);
	padding: 1.6rem 1.4rem 1.5rem;
	min-height: 150px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.3rem;
	letter-spacing: -.025em;
	line-height: 1.1;
	transition: background-color .3s var(--trv-ease), color .3s var(--trv-ease);
}
.is-style-steps > li::before {
	content: counter(trv-step, decimal-leading-zero);
	font-family: var(--wp--preset--font-family--mono);
	font-size: .75rem;
	font-weight: 400;
	letter-spacing: .08em;
	color: var(--trv-teal);
}
.is-style-section-sand .is-style-steps > li { background: var(--trv-sand); }

/* --------------------------------------------------------------------------
   Colonne con divisori
   -------------------------------------------------------------------------- */
.wp-block-columns.is-style-hairline { gap: 0 !important; }
.wp-block-columns.is-style-hairline > .wp-block-column {
	padding: 1.75rem clamp(16px, 2vw, 28px) 1.75rem 0;
	border-top: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}
@media (min-width: 782px) {
	.wp-block-columns.is-style-hairline > .wp-block-column + .wp-block-column {
		padding-left: clamp(16px, 2vw, 28px);
		border-left: 1px solid color-mix(in srgb, currentColor 16%, transparent);
	}
}

/* --------------------------------------------------------------------------
   Accordion (blocco Dettagli)
   -------------------------------------------------------------------------- */
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: -.025em;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	flex: none;
	width: 36px; height: 36px;
	display: grid; place-items: center;
	border: 1px solid var(--trv-hair);
	border-radius: 50%;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 300;
	font-size: 1.4rem;
	transition: transform .35s var(--trv-ease), background-color .3s, color .3s;
}
.wp-block-details[open] summary::after { transform: rotate(45deg); background: var(--trv-ink); color: var(--trv-paper); border-color: var(--trv-ink); }
.wp-block-details > :not(summary) { color: color-mix(in srgb, currentColor 80%, transparent); max-width: 70ch; }
.wp-block-details:last-child { border-bottom: 1px solid var(--trv-hair); }

/* --------------------------------------------------------------------------
   Sezioni particolari
   -------------------------------------------------------------------------- */
.trv-hero-title { margin-block: 0; }
.trv-hero-media { position: relative; }
.trv-hero-media .wp-block-image { margin: 0; }
.trv-hero-media .wp-block-image img { box-shadow: var(--wp--preset--shadow--lifted); }

/* Timeline (anni) */
.trv-timeline > .wp-block-columns {
	border-top: 1px solid var(--trv-hair);
	padding-block: clamp(20px, 3vw, 40px);
	margin: 0 !important;
}
.trv-timeline > .wp-block-columns:last-child { border-bottom: 1px solid var(--trv-hair); }
.trv-timeline .trv-year {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	line-height: .9;
	letter-spacing: -.05em;
	color: var(--trv-teal);
	margin: 0;
	transition: color .3s var(--trv-ease);
}

/* Griglia materiali */
.trv-material {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 210px;
}
.trv-material .trv-num {
	font-family: var(--wp--preset--font-family--mono);
	font-size: .75rem;
	letter-spacing: .08em;
	color: var(--trv-teal);
}

/* Footer */
.trv-footer .trv-footer-wordmark {
	font-size: clamp(4.5rem, 23.5vw, 22rem) !important;
	line-height: .78 !important;
	letter-spacing: -.065em !important;
	font-weight: 600;
	font-stretch: 100%;
	margin: 0;
	white-space: nowrap;
	user-select: none;
}
.trv-footer .trv-footer-wordmark::after {
	content: "";
	display: inline-block;
	width: .14em;
	height: .14em;
	background: var(--trv-teal);
	margin-left: .03em;
}
.trv-footer a { text-decoration: none; }
.trv-footer a:hover { text-decoration: underline; }
.trv-footer .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent-6); }
.trv-psc img { border-radius: 8px; background: #fff; }

/* Pagine standard (privacy, articoli...) */
.trv-page-header { border-bottom: 1px solid var(--trv-hair); }
.entry-content > .wp-block-heading:not(.is-style-display):not(.is-style-mega) { margin-top: 2.2em; }
body:not(.page-template-page-landing) .wp-block-post-content > h2:not([class*="is-style"]) { font-size: var(--wp--preset--font-size--x-large); }

/* 404 */
.trv-404 .wp-block-heading.is-style-mega { color: var(--trv-teal); }

/* --------------------------------------------------------------------------
   Animazioni di comparsa (attivate solo con JS e se l'utente non riduce il movimento)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.trv-js [data-reveal] {
		opacity: 0;
		transform: translateY(28px);
		transition: opacity 1s var(--trv-ease), transform 1.1s var(--trv-ease);
		transition-delay: var(--trv-delay, 0s);
	}
	.trv-js [data-reveal].is-visible { opacity: 1; transform: none; }

	.trv-js .trv-hero-title[data-reveal] { transform: translateY(60px); }
	.trv-js .trv-hero-media[data-reveal] { transform: translateY(40px) scale(.98); }
	.trv-js [data-reveal].is-visible,
	.trv-js .trv-hero-title[data-reveal].is-visible,
	.trv-js .trv-hero-media[data-reveal].is-visible { opacity: 1; transform: none; }
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.trv-stack-reverse { flex-direction: column-reverse; }
	.wp-block-columns.is-style-hairline > .wp-block-column { padding-right: 0; }
	.trv-hide-mobile { display: none !important; }
	.trv-material { min-height: 0; gap: 1.5rem; }
}
@media (min-width: 782px) {
	.trv-sticky { position: sticky; top: calc(var(--trv-sticky-top) + var(--trv-header-h) + 32px); }
}

/* Editor: rende il nastro leggibile e il gruppo con stile "etichetta" non a tutta larghezza */
.editor-styles-wrapper .wp-block-group.is-style-marquee { flex-wrap: nowrap; }
.editor-styles-wrapper .wp-block-group.is-style-chip { max-width: max-content; }

/* Striscia immagini a filo */
.trv-strip .wp-block-image,
.trv-strip .wp-block-image img { border-radius: 0; margin: 0; }
.trv-strip { gap: 0 !important; }

/* Menu mobile: allineato a sinistra, voce corrente in ottanio */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: flex-start !important;
	justify-content: flex-start !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 6rem; }
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: #7fb6bc; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { outline: 2px solid #7fb6bc; outline-offset: 4px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus:not(:focus-visible) { outline: none; }

/* Pagine standard: introduzione a tutta colonna */
body:not(.page-template-page-landing) .wp-block-post-content .is-style-lead { max-width: none; }

/* Titolo hero della home: dimensionato per stare su ~3 righe accanto all'immagine */
.wp-block-heading.is-style-mega.trv-hero-title {
	font-size: clamp(3.25rem, 7.6vw, 7.5rem) !important;
	line-height: .86 !important;
}

/* Contatti: numeri ed email su una riga sola nelle schede.
   Il testo si ridimensiona sulla larghezza della scheda (container query), così l'email non va mai a capo. */
.trv-contact-cards > .is-style-card { container-type: inline-size; }
.trv-contact-cards .has-display-font-family {
	font-size: clamp(1rem, 9.6cqi, 1.6rem) !important;
	white-space: nowrap;
	letter-spacing: -0.02em !important;
}

/* Titoli adattati via JS: le parole non vengono mai spezzate */
.wp-block-heading.trv-fit { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important; }

/* Telefoni molto piccoli (< 360px): il motto lascia spazio a logo, "Contattaci" e menu */
@media (max-width: 359px) { .trv-brand .wp-block-site-tagline { display: none; } }
