/**
 * SISt – block styles (front end + editor).
 * Replaces the old shortcodes: [row] [col] [hero] [title] [button] [grid] [item]
 * [accordion] [toggle] [email] [phone] [geo] [fax].
 */

/* ---------- Full-width bands (was [row] / [hero]) ---------- */
.wp-block-group.alignfull.has-background,
.wp-block-cover.alignfull {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}

.wp-block-group.alignfull.has-background + .wp-block-group.alignfull.has-background {
	margin-block-start: 0;
}

/* Centered hero band (was [hero][title]) */
.wp-block-group.is-sist-hero {
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}
.wp-block-group.is-sist-hero > * {
	max-width: 640px;
}

/* ---------- Columns (was [col]) ---------- */
.wp-block-columns {
	gap: clamp(1.5rem, 4vw, 3.5rem);
}

/* ---------- Cards ---------- */
.is-style-sist-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--light);
	border-radius: 6px;
	box-shadow: var(--wp--preset--shadow--soft);
	padding: clamp(1.25rem, 3vw, 2rem);
}
/* Nested constrained groups get "has-global-padding", whose core rule resets the side padding to 0:
   keep the card padding on the public page too (the editor was already fine). */
.wp-block-group.is-style-sist-card.has-global-padding,
.wp-block-column.is-style-sist-card {
	padding: clamp(1.25rem, 3vw, 2rem);
}
.is-style-sist-card > .wp-block-image:first-child {
	margin: calc(-1 * clamp(1.25rem, 3vw, 2rem));
	margin-bottom: 1.25rem;
}
.is-style-sist-card > .wp-block-image:first-child img {
	border-radius: 6px 6px 0 0;
	width: 100%;
	aspect-ratio: 768 / 703;
	object-fit: cover;
}

/* ---------- Headings ---------- */
.is-style-sist-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary) !important;
	margin-bottom: 0.25rem;
}

/* ---------- Buttons (was [button]) ---------- */
.wp-block-button__link {
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.wp-block-button__link:hover {
	transform: translateY(-1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--primary);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
}
.wp-block-button.is-style-sist-light > .wp-block-button__link {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary-dark);
}
.wp-block-button.is-style-sist-light > .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--white);
}

/* ---------- Images ---------- */
.is-style-sist-framed img {
	border-radius: 6px;
	box-shadow: var(--wp--preset--shadow--soft);
}

/* ---------- Gallery (was [grid][item] and [gallery]) ---------- */
.wp-block-gallery.has-nested-images figure.wp-block-image {
	overflow: hidden;
	border-radius: 4px;
}
.wp-block-gallery.has-nested-images figure.wp-block-image img {
	transition: transform .5s ease;
}
.wp-block-gallery.has-nested-images figure.wp-block-image:hover img {
	transform: scale(1.03);
}

/* ---------- Icon paragraphs (was [geo] [phone] [fax] [email]) ---------- */
p[class*="is-style-sist-icon-"] {
	position: relative;
	padding-left: 2.25em;
	margin-top: 0;
	margin-bottom: 0.75em;
}
p[class*="is-style-sist-icon-"]::before {
	font-family: FontAwesome;
	font-style: normal;
	font-weight: normal;
	-webkit-font-smoothing: antialiased;
	position: absolute;
	left: 0;
	top: 0.05em;
	width: 1.6em;
	height: 1.6em;
	line-height: 1.6em;
	text-align: center;
	border-radius: 50%;
	background: var(--wp--preset--color--light);
	color: var(--wp--preset--color--primary);
	font-size: 0.95em;
}
p.is-style-sist-icon-geo::before   { content: "\f041"; }
p.is-style-sist-icon-phone::before { content: "\f10b"; font-size: 1.15em; }
p.is-style-sist-icon-fax::before   { content: "\f1ac"; }
p.is-style-sist-icon-email::before { content: "\f003"; }
p.is-style-sist-icon-pdf::before   { content: "\f1c1"; }

/* ---------- Accordion (was [accordion][toggle]) ---------- */
.wp-block-details.is-style-sist-accordion {
	border-bottom: 1px solid var(--wp--preset--color--light);
	padding: 0.75rem 0;
}
.wp-block-details.is-style-sist-accordion > summary {
	cursor: pointer;
	font-weight: 700;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.wp-block-details.is-style-sist-accordion > summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-sist-accordion > summary::after {
	font-family: FontAwesome;
	content: "\f107";
	transition: transform .2s ease;
}
.wp-block-details.is-style-sist-accordion[open] > summary::after {
	transform: rotate(180deg);
}

/* ---------- Publications list ---------- */
.wp-block-list.is-sist-publications {
	list-style: none;
	padding-left: 0;
}
.wp-block-list.is-sist-publications > li {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--wp--preset--color--light);
}
.wp-block-list.is-sist-publications > li:last-child {
	border-bottom: 0;
}

/* ---------- Team members list ---------- */
.is-sist-collaborators p {
	margin-bottom: 1rem;
}
.is-sist-collaborators strong {
	color: var(--wp--preset--color--primary-dark);
	font-family: var(--wp--preset--font-family--heading);
	letter-spacing: 0.02em;
}

/* ---------- CV list inside team cards ---------- */
.wp-block-list.is-sist-cv {
	padding-left: 1.1em;
	margin-top: 0;
}
.wp-block-list.is-sist-cv > li {
	margin-bottom: 0.35em;
}
.wp-block-list.is-sist-cv > li::marker {
	color: var(--wp--preset--color--primary);
}

/* ---------- Type width: semi-condensed body, like the original Open Sans Condensed ---------- */
body,
.editor-styles-wrapper {
	font-stretch: 87.5%;
}
h1, h2, h3, h4, h5, h6,
.wp-block-button__link {
	font-stretch: normal;
}

/* =========================================================
   Contemporary homepage styles (also usable on any page)
   ========================================================= */

/* Kicker / eyebrow line above headings */
p.is-style-sist-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-stretch: normal;
}
p.is-style-sist-kicker::before {
	content: "";
	width: 2.25rem;
	height: 2px;
	background: currentColor;
	opacity: .6;
}
p.is-style-sist-kicker:not(.has-text-color) { color: var(--wp--preset--color--primary); }

/* Display headings */
.is-style-sist-display {
	font-size: clamp(2.5rem, 1.4rem + 4.6vw, 5.25rem) !important;
	font-weight: 300 !important;
	line-height: 1.04 !important;
	letter-spacing: -0.025em !important;
	max-width: 17ch;
	margin-top: 0;
}
.is-style-sist-display-2 {
	font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3rem) !important;
	font-weight: 300 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.02em !important;
	margin-top: 0;
}

/* Arrow link */
p.is-style-sist-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--primary);
	font-stretch: normal;
}
p.is-style-sist-arrow-link a::after {
	content: "\2192";
	font-size: 1.15em;
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
p.is-style-sist-arrow-link a:hover::after { transform: translateX(6px); }

p.is-style-sist-muted { color: #66737c; }

/* Stats */
.wp-block-columns.is-style-sist-stats { gap: 0; }
.wp-block-columns.is-style-sist-stats > .wp-block-column {
	padding: 0.5rem 1.5rem;
	border-left: 1px solid var(--wp--preset--color--light);
}
.wp-block-columns.is-style-sist-stats > .wp-block-column:first-child { border-left: 0; padding-left: 0; }
p.is-style-sist-stat {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(2.75rem, 1.8rem + 3.5vw, 4.5rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--primary-dark);
	font-variant-numeric: tabular-nums;
	font-stretch: normal;
}
p.is-style-sist-stat-label {
	margin-top: 0.75rem;
	font-size: 0.9375rem;
	color: #5b6770;
}
@media (max-width: 781px) {
	.wp-block-columns.is-style-sist-stats { display: grid !important; grid-template-columns: 1fr 1fr; row-gap: 2rem; }
	.wp-block-columns.is-style-sist-stats > .wp-block-column { border-left: 0; padding: 0; }
}

/* Numbered cards */
p.is-style-sist-index {
	margin: 0 0 1.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--primary);
	font-stretch: normal;
}
.sist-pillar {
	position: relative;
	overflow: hidden;
	transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s cubic-bezier(.2,.7,.2,1);
}
.sist-pillar::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 3px;
	background: var(--wp--preset--color--primary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.sist-pillar:hover { transform: translateY(-4px); box-shadow: 0 4px 8px rgba(28,53,71,.06), 0 24px 48px rgba(28,53,71,.12); }
.sist-pillar:hover::after { transform: scaleX(1); }
.sist-pillar h3 { margin-top: 0; }

/* Ghost button (on dark backgrounds) */
.wp-block-button.is-style-sist-ghost > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--white);
	box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7);
}
.wp-block-button.is-style-sist-ghost > .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary-dark);
}

/* Project grid (Query Loop) */
.is-style-sist-project-grid .wp-block-post-template { gap: clamp(1rem, 2.5vw, 2rem); }
.is-style-sist-project-grid .wp-block-post {
	position: relative;
	margin: 0;
}
.is-style-sist-project-grid .wp-block-post-featured-image {
	margin: 0 0 1rem;
	overflow: hidden;
	border-radius: 6px;
	background: var(--wp--preset--color--surface);
}
.is-style-sist-project-grid .wp-block-post-featured-image img {
	transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .8s ease;
}
.is-style-sist-project-grid .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.06); }
.is-style-sist-project-grid .wp-block-post-title {
	margin: 0;
	font-weight: 700;
	line-height: 1.35;
}
.is-style-sist-project-grid .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.is-style-sist-project-grid .wp-block-post-title a::before { content: ""; position: absolute; inset: 0; }
.is-style-sist-project-grid .wp-block-post:hover .wp-block-post-title a { color: var(--wp--preset--color--primary); }

/* Portraits */
.is-style-sist-portrait { margin-bottom: 1rem; overflow: hidden; border-radius: 6px; }
.is-style-sist-portrait img { transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .6s ease; filter: grayscale(.35); }
.sist-person:hover .is-style-sist-portrait img { transform: scale(1.04); filter: none; }
.sist-person h3 { margin: 0; }
.sist-person p { margin-top: 0.25rem; }

/* Marquee band */
.sist-marquee {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	font-weight: 300;
	letter-spacing: 0.04em;
	font-stretch: normal;
}
.sist-marquee p { margin: 0; }
.sist-marquee p::after,
.sist-marquee__item::after {
	content: "\2022";
	margin-left: 3rem;
	opacity: .35;
}

/* Dark CTA */
.sist-cta p[class*="is-style-sist-icon-"]::before {
	background: rgba(255,255,255,.1);
	color: #fff;
}
.sist-cta a { color: #fff; }
.sist-cta .sist-cta-contacts p { font-size: 1.0625rem; margin-bottom: 1rem; }

/* Cover hero text */
.wp-block-cover.sist-hero-intro > .wp-block-cover__inner-container { width: 100% !important; max-width: none; }
.wp-block-cover.sist-hero-intro p.has-large-font-size { max-width: 38rem; opacity: .92; }

/* =========================================================
   Inner pages (Chi siamo, Download)
   ========================================================= */

/* Technical-drawing grid on dark sections */
.sist-blueprint {
	position: relative;
	background-image:
		radial-gradient(120% 90% at 85% 10%, rgba(44, 80, 106, .55) 0%, rgba(28, 53, 71, 0) 60%),
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 100% 100%, 48px 48px, 48px 48px;
}
.sist-page-hero { display: flex; flex-direction: column; justify-content: flex-end; }
.sist-page-hero > * { width: 100%; }
.sist-page-hero .sist-hero-content > .wp-block-heading { margin-bottom: 0; }

/* Section links under the page title */
p.sist-chips { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: var(--wp--preset--spacing--50); }
p.sist-chips a {
	display: inline-flex;
	align-items: center;
	padding: 0.55em 1.2em;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	font-stretch: normal;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
p.sist-chips a:hover { background: #fff; border-color: #fff; color: var(--wp--preset--color--primary-dark); }

/* Anchored sections: leave room for the fixed header */
.sist-section { scroll-margin-top: calc(90px + var(--sist-admin-bar, 0px)); }

/* Partner rows */
.sist-person-row { padding-top: var(--wp--preset--spacing--50); margin-top: var(--wp--preset--spacing--50) !important; border-top: 1px solid var(--wp--preset--color--light); }
.sist-person-row .is-style-sist-portrait { margin: 0; }
.sist-person-row .is-style-sist-portrait img { filter: none; }
@media (min-width: 782px) {
	.sist-person-row > .wp-block-column:first-child { position: sticky; top: calc(110px + var(--sist-admin-bar, 0px)); align-self: flex-start; }
}
.sist-person-row h3.is-style-sist-display-2 { margin-bottom: 0.5rem; }
.sist-person-row p.is-style-sist-muted { margin-top: 0; }

/* CV timeline */
.wp-block-list.is-style-sist-timeline {
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0 0 0 1.75rem;
	border-left: 1px solid var(--wp--preset--color--light);
}
.wp-block-list.is-style-sist-timeline > li {
	position: relative;
	padding: 0 0 1.1rem;
	font-size: 0.9875rem;
	line-height: 1.6;
}
.wp-block-list.is-style-sist-timeline > li::before {
	content: "";
	position: absolute;
	left: calc(-1.75rem - 5px);
	top: 0.5em;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--wp--preset--color--primary);
}
.wp-block-list.is-style-sist-timeline > li strong {
	display: block;
	margin-bottom: 0.1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	font-stretch: normal;
}

/* Photo strip */
.wp-block-gallery.is-style-sist-strip.has-nested-images figure.wp-block-image img { aspect-ratio: 4 / 3; }

/* Collaborator cards */
.sist-collab { border-top: 3px solid var(--wp--preset--color--primary); }
.sist-collab h3 { margin-top: 0; margin-bottom: 0.5rem; }
.sist-collab p { margin: 0; color: #56626b; }

/* Sticky section title */
@media (min-width: 782px) {
	.sist-sticky-col { position: sticky; top: calc(110px + var(--sist-admin-bar, 0px)); align-self: flex-start; }
}

/* Publications: authors as a small label above the title */
.wp-block-list.is-sist-publications > li { padding: 1.1rem 0; line-height: 1.6; }
.wp-block-list.is-sist-publications > li strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	font-stretch: normal;
}

/* Download: document preview – straight, grounded, with a thin technical frame */
.sist-doc-preview { margin: 0; }
.sist-doc-preview > a,
.sist-doc-preview > img { position: relative; display: block; width: min(100%, 360px); margin-inline: auto; }
.sist-doc-preview > a::before {
	content: "";
	position: absolute;
	inset: -14px;
	border: 1px solid rgba(255, 255, 255, .22);
	pointer-events: none;
}
.sist-doc-preview img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px;
	box-shadow: 0 24px 48px rgba(0, 0, 0, .32), 0 4px 10px rgba(0, 0, 0, .18);
	transition: box-shadow .4s ease;
}
.sist-doc-preview a:hover img { box-shadow: 0 30px 60px rgba(0, 0, 0, .4), 0 6px 14px rgba(0, 0, 0, .22); }
.sist-btn-download .wp-block-button__link::before {
	content: "\f019";
	font-family: FontAwesome;
	font-weight: normal;
	margin-right: 0.6em;
}
@media (max-width: 781px) {
	.sist-person-row .is-style-sist-portrait { max-width: 300px; }
	.sist-doc-preview > a, .sist-doc-preview > img { width: min(72%, 280px); }
	.sist-page-hero .wp-block-columns { row-gap: var(--wp--preset--spacing--50); }
}

/* Publication titles (bold italic, as in the studio CV) */
.wp-block-list.is-sist-publications > li em {
	font-style: italic;
	font-weight: 600;
	color: var(--wp--preset--color--primary-dark);
}

/* Team: role line under the name */
p.sist-role {
	margin: 0 0 1.25rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	font-stretch: normal;
}
.sist-person-row p.sist-role + p { font-size: 1.0625rem; line-height: 1.75; max-width: 70ch; }

/* Monogram tile when a portrait is not available yet */
.sist-monogram {
	display: flex !important;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	border-radius: 6px;
	background-color: var(--wp--preset--color--primary-dark);
	background-image:
		linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 32px 32px;
}
.sist-monogram p {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(3rem, 2rem + 4vw, 5rem);
	font-weight: 300;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, .9);
	font-stretch: normal;
}
@media (max-width: 781px) { .sist-person-row .sist-monogram { max-width: 300px; } }

/* Collaborator cards: longer bios */
.sist-collab p { line-height: 1.65; }

/* =========================================================
   Contatti
   ========================================================= */
.sist-contact-tiles { display: grid; gap: 0.75rem; }
.sist-contact-tiles > * { margin-block-start: 0 !important; }
.sist-contact-tile {
	position: relative;
	display: grid;
	grid-template-columns: 3rem 1fr auto;
	grid-template-rows: auto auto;
	column-gap: 1.1rem;
	align-items: center;
	padding: 1.15rem 1.25rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--light);
	border-radius: 8px;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s cubic-bezier(.2, .7, .2, 1), border-color .35s ease;
}
.sist-contact-tile > * { margin: 0 !important; grid-column: 2; }
/* Icon badge */
.sist-contact-tile::before {
	grid-column: 1;
	grid-row: 1 / span 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
	font-family: FontAwesome;
	font-size: 1.15rem;
	line-height: 1;
	transition: background-color .35s ease, color .35s ease, transform .5s cubic-bezier(.34, 1.56, .64, 1);
}
.sist-contact-tile--geo::before   { content: "\f041"; }
.sist-contact-tile--phone::before { content: "\f095"; }
.sist-contact-tile--fax::before   { content: "\f1ac"; }
.sist-contact-tile--email::before { content: "\f0e0"; }
/* Arrow on actionable tiles */
.sist-contact-tile:has(a)::after {
	content: "\2192";
	grid-column: 3;
	grid-row: 1 / span 2;
	color: var(--wp--preset--color--primary);
	font-size: 1.1rem;
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity .3s ease, transform .35s cubic-bezier(.2, .7, .2, 1);
}
.sist-contact-label {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #6b7780;
	font-stretch: normal;
}
.sist-contact-value { font-size: 1.0625rem; line-height: 1.45; color: var(--wp--preset--color--primary-dark); }
.sist-contact-value a { color: inherit; text-decoration: none; }
.sist-contact-value a::after { content: ""; position: absolute; inset: 0; border-radius: 8px; } /* whole tile clickable */
.sist-contact-value a:focus-visible { outline: none; }
.sist-contact-tile:has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }

.sist-contact-tile:hover {
	transform: translateY(-3px);
	border-color: transparent;
	box-shadow: 0 2px 4px rgba(28, 53, 71, .05), 0 16px 36px rgba(28, 53, 71, .12);
}
.sist-contact-tile:hover::before {
	background: var(--wp--preset--color--primary);
	color: #fff;
	transform: scale(1.08) rotate(-8deg);
}
.sist-contact-tile--phone:hover::before { animation: sist-ring .6s ease-in-out; }
.sist-contact-tile:has(a):hover::after { opacity: 1; transform: none; }
@keyframes sist-ring {
	0%, 100% { transform: scale(1.08) rotate(0); }
	20% { transform: scale(1.08) rotate(-14deg); }
	40% { transform: scale(1.08) rotate(12deg); }
	60% { transform: scale(1.08) rotate(-8deg); }
	80% { transform: scale(1.08) rotate(5deg); }
}
@media (prefers-reduced-motion: reduce) {
	.sist-contact-tile, .sist-contact-tile::before, .sist-contact-tile::after { transition: none; animation: none !important; }
}

/* Form card overlapping the header band on desktop */
.sist-form-card {
	position: relative;
	z-index: 2;
	padding: clamp(1.5rem, 4vw, 3rem) !important;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 2px 6px rgba(28, 53, 71, .06), 0 30px 60px rgba(28, 53, 71, .14);
}
@media (min-width: 782px) {
	.sist-contact-layout { align-items: flex-start !important; }
	.sist-form-card { margin-top: -200px !important; }
	.sist-contact-tiles { margin-top: 0.5rem; }
}

/* =========================================================
   Homepage v2 (Presentazione)
   ========================================================= */

/* Presentazione: founding year + text */
.sist-presentazione p.sist-founded {
	margin-top: var(--wp--preset--spacing--40);
	font-size: clamp(4.5rem, 3rem + 6vw, 8rem);
	color: var(--wp--preset--color--primary);
}
.sist-presentazione .is-style-sist-stat-label {
	padding-top: 0.9rem;
	border-top: 1px solid var(--wp--preset--color--light);
	max-width: 14rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-stretch: normal;
}
.sist-presentazione p.sist-lead {
	margin-top: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.7rem);
	font-weight: 300;
	line-height: 1.5;
	color: var(--wp--preset--color--primary-dark);
	font-stretch: normal;
}
.sist-presentazione p:not(.sist-lead):not([class*="is-style"]) { color: #4a5660; line-height: 1.8; }

/* Statement band */
.sist-statement-band { overflow: hidden; }
p.sist-statement {
	position: relative;
	margin: 0;
	padding-left: clamp(1.25rem, 3vw, 2.5rem);
	border-left: 2px solid rgba(255, 255, 255, .35);
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.45rem, 1.1rem + 1.5vw, 2.35rem);
	font-weight: 300;
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: #fff;
	font-stretch: normal;
}
.sist-facets .sist-facet {
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, .2);
	transition: border-color .4s ease;
}
.sist-facets .sist-facet:hover { border-top-color: #fff; }
.sist-facets .is-style-sist-index { margin-bottom: 0.6rem; color: #9fc0d8; }
.sist-facets .sist-facet__text {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem;
	line-height: 1.4;
	color: #fff;
	font-stretch: normal;
}

/* Ambiti di progettazione: typographic index tiles (no photos, unlike project cards) */
.sist-ambiti {
	align-items: stretch;
	gap: 0 !important;
	border-top: 1px solid rgba(28, 53, 71, .18);
	border-left: 1px solid rgba(28, 53, 71, .18);
}
.sist-ambito {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 17rem;
	padding: 2rem 2rem 1.75rem;
	border-right: 1px solid rgba(28, 53, 71, .18);
	border-bottom: 1px solid rgba(28, 53, 71, .18);
	background: transparent;
	isolation: isolate;
	transition: color .35s ease;
}
.sist-ambito::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--wp--preset--color--primary-dark);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
.sist-ambito:hover::before,
.sist-ambito:focus-within::before { transform: scaleY(1); }
.sist-ambito > * { margin-top: 0; margin-bottom: 0; }
.sist-ambito .is-style-sist-index {
	margin-bottom: 1.5rem;
	font-size: clamp(2.5rem, 2rem + 1.5vw, 3.25rem);
	font-weight: 300;
	letter-spacing: -0.02em;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px var(--wp--preset--color--primary);
	transition: -webkit-text-stroke-color .35s ease;
}
.sist-ambito__count {
	position: absolute;
	top: 2.1rem;
	right: 2rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6b7883;
	font-stretch: normal;
	transition: color .35s ease;
}
.sist-ambito h3.sist-ambito__title {
	margin-bottom: 1.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1875rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--wp--preset--color--primary-dark);
	transition: color .35s ease;
}
.sist-ambito .sist-ambito__link { margin-top: auto; }
.sist-ambito .sist-ambito__link a { transition: color .35s ease; }
.sist-ambito .sist-ambito__link a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.sist-ambito:hover .is-style-sist-index,
.sist-ambito:focus-within .is-style-sist-index { -webkit-text-stroke-color: #9fc0d8; }
.sist-ambito:hover h3.sist-ambito__title,
.sist-ambito:hover .sist-ambito__link a,
.sist-ambito:focus-within h3.sist-ambito__title,
.sist-ambito:focus-within .sist-ambito__link a { color: #fff; }
.sist-ambito:hover .sist-ambito__count,
.sist-ambito:focus-within .sist-ambito__count { color: #9fc0d8; }
@media (max-width: 781px) {
	.sist-ambito { min-height: 0; padding: 1.5rem 1.25rem; }
	.sist-ambito__count { top: 1.6rem; right: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { .sist-ambito::before { transition: none; } }

/* Recent projects on the homepage */
ul.sist-cards.sist-cards--home { margin-top: var(--wp--preset--spacing--50) !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { ul.sist-cards.sist-cards--home { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); } }

/* Homepage hero title: wider measure, two balanced lines on desktop */
.wp-block-cover.sist-hero-intro h1.is-style-sist-display {
	max-width: 1080px;
	font-size: clamp(2.3rem, 1.3rem + 3.6vw, 4.5rem) !important;
	line-height: 1.08 !important;
	text-wrap: balance;
}
