/* ==========================================================================
   Orografie Custom — main.css (v2.1)
   Direzione visiva: architettonica, essenziale. Palette dal marchio
   (nero #05070A + giallo #E3D516) su neutri caldi; un solo font sans.
   Regole: spigoli vivi, linee sottili al posto di ombre, giallo solo come
   riempimento (mai come colore del testo su fondo chiaro).
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
	--c-bg:        #f5f4f0;        /* off-white caldo */
	--c-bg-alt:    #ebe9e3;        /* pietra chiara */
	--c-paper:     #fbfaf7;
	--c-ink:       #111214;        /* nero marchio, ammorbidito */
	--c-ink-soft:  #45474b;
	--c-mute:      #6b6d71;
	--c-line:      rgba(17, 18, 20, 0.12);
	--c-line-strong: rgba(17, 18, 20, 0.28);
	--c-accent:    #e3d516;        /* giallo marchio: solo riempimenti */
	--c-on-accent: #111214;
	--c-dark:      #111214;
	--c-on-dark:   #f2f1ec;
	--c-on-dark-soft: rgba(242, 241, 236, 0.66);
	--c-line-dark: rgba(242, 241, 236, 0.16);
	--c-placeholder: #e4e2dc;

	--ff-display:  "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
	--ff-body:     "Instrument Sans", "Helvetica Neue", Arial, sans-serif;

	--fs-xl: clamp(2.08rem, 4.0864vw + 1.1223rem, 4.8rem);
	--fs-lg: clamp(1.6rem, 1.923vw + 1.1493rem, 2.88rem);
	--fs-md: clamp(1.16rem, 0.7812vw + 0.9769rem, 1.68rem);
	--fs-sm: clamp(0.9rem, 0.2704vw + 0.8366rem, 1.08rem);

	--space-1: 0.5rem;
	--space-2: 1rem;
	--space-3: 1.5rem;
	--space-4: 2rem;
	--space-5: 3rem;
	--space-6: 5rem;
	--space-7: 7rem;
	--space-8: 10rem;

	--section-y: clamp(4.5rem, 9vw, 8.5rem);
	--gutter:    clamp(1.25rem, 4vw, 3rem);
	--header-h:  72px;

	--radius:    2px;
	--radius-lg: 2px;

	--ease: cubic-bezier(0.25, 0.1, 0.25, 1);

	--contours: url("../img/contours.svg");
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 1rem);
}
body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-ink);
	font-family: var(--ff-body);
	font-size: clamp(0.9375rem, 0.169vw + 0.8979rem, 1.05rem); /* 15 → 16.8px (Figma v2) */
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01", "tnum" 0;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; transition: color .2s var(--ease), opacity .2s var(--ease); }

h1, h2, h3, h4 { font-weight: 500; }
p { margin: 0 0 1em; }

::selection { background: var(--c-accent); color: var(--c-on-accent); }

:focus-visible {
	outline: 2px solid var(--c-ink);
	outline-offset: 3px;
}

/* Accessibility */
.screen-reader-text {
	position: absolute !important; clip: rect(1px,1px,1px,1px); width:1px; height:1px;
	overflow: hidden; word-wrap: normal !important;
}
.skip-link { position:absolute; top:-40px; left:0; background:var(--c-ink); color:var(--c-on-dark); padding:8px 12px; z-index:9999; }
.skip-link:focus { top:0; }

/* Prose links (contenuti Gutenberg) */
.page-body a:not(.btn),
.article-body a:not(.btn),
.prose a,
.page-block__text a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: var(--c-line-strong);
}
.page-body a:not(.btn):hover,
.article-body a:not(.btn):hover,
.prose a:hover,
.page-block__text a:hover { text-decoration-color: currentColor; }

/* ---------- Layout primitives ---------- */
.container {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.container--narrow { max-width: 820px; }

.eyebrow {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-family: var(--ff-body);
	font-size: 10.4px;
	line-height: 1.3;
	letter-spacing: 0.01em;
	color: var(--c-ink-soft);
	margin: 0 0 1.25rem;
	font-weight: 500;
}
.eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 7px; height: 7px;
	background: var(--c-ink);
}

.display {
	font-family: var(--ff-display);
	font-weight: 500;
	letter-spacing: -0.028em;
	line-height: 1.04;
	color: var(--c-ink);
	margin: 0 0 1.25rem;
	text-wrap: balance;
}
.display--xl { font-size: var(--fs-xl); line-height: 0.98; letter-spacing: -0.04em; }
.display--lg { font-size: var(--fs-lg); letter-spacing: -0.034em; }
.display--md { font-size: var(--fs-md); line-height: 1.12; letter-spacing: -0.02em; }
.display--sm { font-size: var(--fs-sm); line-height: 1.25; letter-spacing: -0.01em; }

.lede {
	font-size: clamp(1rem, 0.3005vw + 0.9296rem, 1.2rem); /* 20 → 24px */
	color: var(--c-ink-soft);
	max-width: 52ch;
	margin: 0 0 1.5rem;
	line-height: 1.5;
	text-wrap: pretty;
}

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	min-height: 3.25rem;
	padding: .85rem 1.4rem;
	border-radius: var(--radius);
	font-size: clamp(0.85rem, 0.1502vw + 0.8148rem, 0.95rem); /* 17 → 19px */
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: 0;
	border: 1px solid transparent;
	transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
	white-space: nowrap;
}
.btn span { display: inline-block; }
.btn__arrow { width: 1.15em; height: 1.15em; flex: 0 0 auto; transition: transform .25s var(--ease); }
.btn:hover .btn__arrow { transform: translateX(3px); }

.btn--primary       { background: var(--c-ink); color: var(--c-on-dark); }
.btn--primary:hover { background: var(--c-accent); color: var(--c-on-accent); }

.btn--primary-light       { background: var(--c-accent); color: var(--c-on-accent); }
.btn--primary-light:hover { background: var(--c-on-dark); color: var(--c-ink); }

.btn--ghost       { background: transparent; border-color: var(--c-line-strong); color: var(--c-ink); }
.btn--ghost:hover { border-color: var(--c-ink); background: var(--c-ink); color: var(--c-on-dark); }

.btn--ghost-light       { background: transparent; border-color: rgba(242, 241, 236, 0.35); color: var(--c-on-dark); }
.btn--ghost-light:hover { border-color: var(--c-on-dark); background: var(--c-on-dark); color: var(--c-ink); }

.btn--underline {
	min-height: 0;
	padding: .25rem 0;
	border-radius: 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	background: transparent;
	color: var(--c-ink);
}
.btn--underline:hover { opacity: .65; }

/* ---------- Header ---------- */
.site-header {
	position: sticky; top: 0; z-index: 100;
	background: var(--c-bg);
	border-bottom: 1px solid transparent;
	transition: border-color .2s var(--ease);
}
.site-header.is-scrolled { border-bottom-color: var(--c-line); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

.site-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	align-items: center;
	gap: 1.5rem;
	max-width: 1440px;
	min-height: var(--header-h);
	margin: 0 auto;
	padding: .5rem var(--gutter);
	position: relative;
	z-index: 95; /* resta sopra il drawer mobile */
}

.site-brand {
	display: inline-flex; align-items: baseline; gap: .3rem;
	font-family: var(--ff-display);
	font-size: 0.96rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1;
}
.site-brand__mark { font-weight: 600; }
.site-brand__suffix { font-weight: 400; color: var(--c-mute); }
.site-brand img, .custom-logo { max-height: 40px; width: auto; }

.site-nav { justify-self: center; }
.site-nav__list {
	list-style: none; padding: 0; margin: 0;
	display: flex; gap: clamp(.85rem, 1.3vw, 1.6rem);
}
.site-nav__list a {
	display: inline-block;
	font-size: clamp(0.85rem, 0.1502vw + 0.8148rem, 0.95rem); /* 17 → 19px */
	color: var(--c-ink-soft);
	padding: .5rem 0;
	position: relative;
}
.site-nav__list a:hover { color: var(--c-ink); }
.site-nav__list a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: .2rem;
	height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: left center;
	transition: transform .25s var(--ease);
}
.site-nav__list a:hover::after { transform: scaleX(1); }
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a,
.site-nav__list .current-menu-ancestor > a { color: var(--c-ink); }
.site-nav__list .current-menu-item > a::after,
.site-nav__list .current_page_item > a::after,
.site-nav__list .current-menu-ancestor > a::after { transform: scaleX(1); height: 2px; }

/* Voce con sottomenu: piccola freccia */
.site-nav__list > .menu-item-has-children > a {
	padding-right: 1rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1.5l4 4 4-4' fill='none' stroke='%2345474b' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right center;
}
.site-nav__list > .menu-item-has-children:hover > a,
.site-nav__list > .menu-item-has-children:focus-within > a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1.5l4 4 4-4' fill='none' stroke='%23111214' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
}
.site-nav__list > .menu-item-has-children > a::after { right: 1rem; }

/* Sottomenu desktop */
.site-nav__list > li { position: relative; }
.site-nav__list > .menu-item-has-children { padding-bottom: .25rem; }
.site-nav .sub-menu {
	position: absolute; top: calc(100% - .25rem); left: -1rem;
	min-width: 220px;
	list-style: none; margin: 0; padding: .5rem 0;
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	opacity: 0; visibility: hidden;
	transform: translateY(4px);
	transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.site-nav li:hover > .sub-menu,
.site-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .sub-menu a { display: block; padding: .5rem 1rem; font-size: clamp(0.8rem, 0.0751vw + 0.7824rem, 0.85rem); white-space: nowrap; }
.site-nav .sub-menu .current-menu-item > a { color: var(--c-ink); text-decoration: underline; text-underline-offset: 4px; }
.site-nav .sub-menu a::after { display: none; }

.site-header__cta { justify-self: end; }
.site-header__cta .btn { min-height: 2.75rem; padding: .6rem 1.1rem; font-size: clamp(0.8rem, 0.0751vw + 0.7824rem, 0.85rem); }

.hamburger {
	display: none;
	position: relative;
	z-index: 140;
	background: transparent;
	border: 0;
	width: 44px; height: 44px;
	padding: 0;
}
.hamburger__line {
	position: absolute; left: 10px; right: 10px;
	height: 1.5px; background: var(--c-ink);
	transition: transform .3s var(--ease), top .3s var(--ease);
}
.hamburger__line:nth-child(1) { top: 17px; }
.hamburger__line:nth-child(2) { top: 26px; }
body.menu-open .hamburger__line:nth-child(1) { top: 21.5px; transform: rotate(45deg); }
body.menu-open .hamburger__line:nth-child(2) { top: 21.5px; transform: rotate(-45deg); }

/* Mobile menu drawer */
.mobile-menu {
	position: fixed; inset: 0;
	background: var(--c-bg);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s var(--ease), visibility .3s;
	z-index: 90;
	padding-top: calc(var(--header-h) + env(safe-area-inset-top));
	overflow-y: auto;
}
body.menu-open .mobile-menu { opacity: 1; visibility: visible; }
body.menu-open .site-header { border-bottom-color: var(--c-line); }
.mobile-menu__inner {
	min-height: calc(100dvh - var(--header-h) - env(safe-area-inset-top));
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--c-line);
}
.mobile-menu__list {
	list-style: none;
	padding: .5rem var(--gutter) 2rem;
	margin: 0;
	flex: 1 1 auto;
}
.mobile-menu__list li { border-bottom: 1px solid var(--c-line); }
.mobile-menu__list a {
	display: block;
	font-family: var(--ff-display);
	font-size: clamp(1.6rem, 6vw, 2.2rem);
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.1;
	padding: .85rem 0;
}
.mobile-menu__list .current-menu-item > a,
.mobile-menu__list .current_page_item > a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.mobile-menu__cta {
	position: sticky;
	bottom: 0;
	padding: 1rem var(--gutter) calc(1rem + env(safe-area-inset-bottom));
	background: var(--c-bg);
	border-top: 1px solid var(--c-line);
}
.mobile-menu__cta .btn { width: 100%; }
.mobile-menu__cta .btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-menu .sub-menu {
	list-style: none;
	padding: 0 0 .85rem 0;
	margin: 0;
	display: grid;
	gap: .1rem;
}
.mobile-menu .sub-menu li { border: 0; }
.mobile-menu .sub-menu a {
	font-family: var(--ff-body);
	font-size: 1.05rem;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--c-ink-soft);
	padding: .35rem 0;
}

@media (max-width: 1200px) {
	.site-nav, .site-header__cta { display: none; }
	.site-header__inner { grid-template-columns: auto 1fr auto; }
	.hamburger { display: block; justify-self: end; }
}

/* ---------- Hero ---------- */
.hero {
	position: relative;
	padding: clamp(3.5rem, 8vw, 7rem) 0 0;
}
.hero__inner {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: clamp(1.75rem, 3vw, 2.5rem);
}
.hero .display { max-width: 16ch; margin: 0; }
.hero .lede { margin: 0; }
.hero__foot {
	display: grid;
	gap: 1.5rem;
	padding-top: clamp(1.5rem, 3vw, 2rem);
	border-top: 1px solid var(--c-line);
}
.hero__actions {
	display: flex; flex-wrap: wrap; gap: .75rem;
}
.hero__meta { display: none; }

.hero__media {
	position: relative;
	margin-top: clamp(2.5rem, 5vw, 4.5rem);
	aspect-ratio: 21 / 9;
	background-color: var(--c-placeholder);
	background-image: var(--contours);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}
@media (max-width: 719px) { .hero__media { aspect-ratio: 4 / 3; } }

.hero__caption {
	display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
	font-size: 10.4px;
	color: var(--c-ink-soft);
}
.hero__index { font-variant-numeric: tabular-nums; }

@media (min-width: 960px) {
	.hero__foot {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
		column-gap: 4rem;
	}
	.hero__actions { justify-content: flex-end; }
}

/* Hero con immagine di sfondo */
.hero--bg {
	display: flex;
	align-items: flex-end;
	min-height: clamp(560px, calc(100svh - var(--header-h)), 960px);
	padding: clamp(6rem, 12vw, 10rem) 0 clamp(2rem, 4vw, 3rem);
	background-color: var(--c-dark);
	background-image: var(--hero-bg-desktop);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--c-on-dark);
}
.hero--bg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 11, 12, 0.15) 0%, rgba(10, 11, 12, 0.25) 45%, rgba(10, 11, 12, 0.72) 100%);
}
.hero--bg .hero__inner { position: relative; z-index: 1; width: 100%; }
.hero--bg .display,
.hero--bg .lede,
.hero--bg .hero__caption { color: var(--c-on-dark); }
.hero--bg .lede { color: rgba(242, 241, 236, 0.82); }
.hero--bg .eyebrow { color: rgba(242, 241, 236, 0.82); }
.hero--bg .eyebrow::before { background: var(--c-accent); }
.hero--bg .hero__foot { border-top-color: rgba(242, 241, 236, 0.28); }
.hero--bg .btn--primary       { background: var(--c-accent); color: var(--c-on-accent); }
.hero--bg .btn--primary:hover { background: var(--c-on-dark); color: var(--c-ink); }
.hero--bg .btn--ghost       { color: var(--c-on-dark); border-color: rgba(242, 241, 236, 0.4); }
.hero--bg .btn--ghost:hover { background: var(--c-on-dark); color: var(--c-ink); border-color: var(--c-on-dark); }
.hero--bg .hero__meta { display: block; }
.hero--bg .hero__caption { color: rgba(242, 241, 236, 0.7); }

@media (max-width: 959px) {
	.hero--bg { background-image: var(--hero-bg-mobile); }
}

/* ---------- Section heading ---------- */
.section-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: .25rem 2rem;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.section-head .display { max-width: 22ch; margin-bottom: 0; }
.section-head--split { align-items: end; }
.section-head--split > div { min-width: 0; }
@media (min-width: 900px) {
	.section-head--split { grid-template-columns: minmax(0, 1fr) auto; }
}

/* ---------- Paragrafo introduttivo (home) ---------- */
.home-intro {
	padding: clamp(3.5rem, 7vw, 6.5rem) 0 clamp(1rem, 2vw, 2rem);
}
.home-intro__text {
	margin: 0;
	max-width: none;
	font-size: clamp(1.08rem, 0.9014vw + 0.8687rem, 1.68rem);
	line-height: 1.3;
	letter-spacing: -0.018em;
	color: var(--c-ink);
	text-wrap: pretty;
}

/* ---------- Contesti (3 card) ---------- */
.contesti { padding: var(--section-y) 0; }
.contesti__grid {
	display: grid; gap: clamp(2.5rem, 3vw, 2rem);
	grid-template-columns: 1fr;
}
@media (min-width: 760px) { .contesti__grid { grid-template-columns: repeat(3, 1fr); } }

.card-contesto {
	display: flex; flex-direction: column;
	position: relative;
}
.card-contesto__media {
	aspect-ratio: 4 / 5;
	position: relative;
	overflow: hidden;
	background-color: var(--c-placeholder);
	background-image: var(--contours);
	background-size: cover;
}
.card-contesto__media { background-size: 260%; background-position: 0% 20%; }
.card-contesto--residenziale .card-contesto__media { background-position: 55% 0%; }
.card-contesto--special      .card-contesto__media { background-position: 100% 90%; }
.card-contesto__media img,
.card-contesto__img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .8s var(--ease);
}
.card-contesto:hover .card-contesto__media img { transform: scale(1.03); }

.card-contesto__body { padding-top: 1.25rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.card-contesto__index {
	margin: 0;
	font-size: 10.4px;
	color: var(--c-mute);
	font-variant-numeric: tabular-nums;
}
.card-contesto__title {
	font-family: var(--ff-display);
	font-size: clamp(1.2rem, 0.4808vw + 1.0873rem, 1.52rem);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0;
}
.card-contesto__text  { color: var(--c-ink-soft); margin: 0; max-width: 40ch; }
.card-contesto__cta {
	margin-top: auto;
	padding-top: 1rem;
	display: inline-flex; align-items: center; gap: .5rem;
	font-size: 12px; font-weight: 500;
	align-self: flex-start;
}
@media (max-width: 759px) {
	.card-contesto__media { aspect-ratio: 4 / 3; }
}
/* tutta la card è cliccabile */
.card-contesto__cta::after { content: ""; position: absolute; inset: 0; }
.card-contesto__cta span { border-bottom: 1px solid var(--c-line-strong); transition: border-color .2s var(--ease); }
.card-contesto:hover .card-contesto__cta span { border-color: var(--c-ink); }
.card-contesto__cta svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.card-contesto:hover .card-contesto__cta svg { transform: translateX(3px); }

/* ---------- Proof points ---------- */
.proof { padding: var(--section-y) 0; background: var(--c-bg-alt); }
.proof__claim {
	font-size: clamp(0.84rem, 0.2404vw + 0.7837rem, 1rem);
	color: var(--c-ink-soft);
	max-width: 26ch;
	margin: 1rem 0 0;
}
@media (min-width: 900px) { .proof__claim { margin: 0; text-align: right; } }
.proof__list {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr;
	border-top: 1px solid var(--c-line-strong);
}
@media (min-width: 720px) { .proof__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px){ .proof__list { grid-template-columns: repeat(4, 1fr); } }

.proof__item {
	padding: 1.5rem 0 2rem;
	border-bottom: 1px solid var(--c-line);
}
@media (min-width: 720px) {
	.proof__item { padding: 1.5rem 1.75rem 2.25rem 0; }
	.proof__item + .proof__item { padding-left: 1.75rem; border-left: 1px solid var(--c-line); }
	.proof__item:nth-child(2n+1) { padding-left: 0; border-left: 0; }
}
@media (min-width: 1080px) {
	.proof__item { border-bottom: 0; }
	.proof__item:nth-child(2n+1) { padding-left: 1.75rem; border-left: 1px solid var(--c-line); }
	.proof__item:first-child { padding-left: 0; border-left: 0; }
}
.proof__num {
	display: block;
	font-size: 10.4px;
	color: var(--c-mute);
	font-variant-numeric: tabular-nums;
	margin-bottom: 1.5rem;
}
.proof__item h3 { font-size: 1.04rem; letter-spacing: -0.015em; line-height: 1.2; margin: 0 0 .6rem; }
.proof__item p  { color: var(--c-ink-soft); margin: 0; font-size: clamp(0.8rem, 0.1502vw + 0.7648rem, 0.9rem); }

/* ---------- Metodo (home) ---------- */
.metodo { padding: var(--section-y) 0; }
.metodo__steps {
	display: grid; grid-template-columns: 1fr;
	gap: 0 clamp(1.5rem, 2.5vw, 2.5rem);
	counter-reset: step;
}
@media (min-width: 720px) { .metodo__steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px){ .metodo__steps { grid-template-columns: repeat(4, 1fr); } }

.step {
	position: relative;
	display: flex; flex-direction: column; gap: .6rem;
	padding: 1.25rem 0 2.5rem;
	border-top: 1px solid var(--c-line-strong);
}
.step::before {
	content: "";
	position: absolute; top: -1px; left: 0;
	width: 40px; height: 3px;
	background: var(--c-ink);
	transition: width .4s var(--ease);
}
.step:hover::before { width: 100%; }
.step__num {
	font-size: 10.4px;
	color: var(--c-mute);
	font-variant-numeric: tabular-nums;
	margin-bottom: 1.75rem;
}
.step__title { font-size: 1.04rem; letter-spacing: -0.015em; line-height: 1.2; margin: 0; }
.step p { color: var(--c-ink-soft); margin: 0; font-size: clamp(0.8rem, 0.1502vw + 0.7648rem, 0.9rem); max-width: 36ch; }

.metodo__cta { margin-top: 1rem; }

/* ---------- Cases ---------- */
.cases { padding: var(--section-y) 0; border-top: 1px solid var(--c-line); }
.cases__grid {
	display: grid;
	gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: 1fr;
}
@media (min-width: 720px) { .cases__grid { grid-template-columns: repeat(2, 1fr); } }

.case { display: block; position: relative; }
.case__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background-color: var(--c-placeholder);
	background-image: var(--contours);
	background-size: cover;
	margin-bottom: 1rem;
	position: relative;
}
.case__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
a.case:hover .case__media img { transform: scale(1.03); }
.case--placeholder .case__media { background-size: 180%; }
.case__media--placeholder-01 { background-position: 0% 30%; }
.case__media--placeholder-02 { background-position: 100% 0%; }
.case__media--placeholder-03 { background-position: 30% 100%; }
.case__media--placeholder-04 { background-position: 80% 70%; }

.case__meta { display: grid; gap: .2rem; }
.case__settori { font-size: 10.4px; color: var(--c-mute); display: block; }
.case__title   {
	font-family: var(--ff-display);
	font-size: clamp(1rem, 0.4207vw + 0.9014rem, 1.28rem);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0;
}
a.case .case__title { transition: opacity .2s var(--ease); }
a.case:hover .case__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.case__loc     { font-size: 0.76rem; color: var(--c-ink-soft); }
.case-card__cta { display: none; }

/* ---------- Lead CTA section ---------- */
.lead-cta {
	background: var(--c-dark);
	color: var(--c-on-dark);
	padding: var(--section-y) 0;
}
.lead-cta__inner { display: flex; flex-direction: column; gap: 0; }
.lead-cta .display { color: var(--c-on-dark); max-width: 18ch; }
.lead-cta .eyebrow { color: var(--c-on-dark-soft); }
.lead-cta .eyebrow::before { background: var(--c-accent); }
.lead-cta .lede { color: var(--c-on-dark-soft); }
.lead-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.lead-cta .btn--ghost { color: var(--c-on-dark); border-color: rgba(242, 241, 236, 0.35); }
.lead-cta .btn--ghost:hover { background: var(--c-on-dark); color: var(--c-ink); border-color: var(--c-on-dark); }
.lead-cta .btn--primary { background: var(--c-accent); color: var(--c-on-accent); }
.lead-cta .btn--primary:hover { background: var(--c-on-dark); color: var(--c-ink); }

.lead-cta--inline { background: var(--c-bg-alt); color: var(--c-ink); }
.lead-cta--inline .display { color: var(--c-ink); }
.lead-cta--inline .eyebrow { color: var(--c-ink-soft); }
.lead-cta--inline .eyebrow::before { background: var(--c-ink); }
.lead-cta--inline .lede { color: var(--c-ink-soft); }
.lead-cta--inline .btn--primary { background: var(--c-ink); color: var(--c-on-dark); }
.lead-cta--inline .btn--primary:hover { background: var(--c-accent); color: var(--c-on-accent); }
.lead-cta--inline .btn--ghost { color: var(--c-ink); border-color: var(--c-line-strong); }
.lead-cta--inline .btn--ghost:hover { background: var(--c-ink); color: var(--c-on-dark); border-color: var(--c-ink); }

/* In settore-body i bottoni stanno in un contenitore lead-cta__actions su fondo chiaro */
.settore-body .lead-cta__actions { margin-top: 2rem; }

/* ---------- CTA strip (sopra il footer) ---------- */
.cta-strip {
	background: var(--c-bg-alt);
	color: var(--c-ink);
	padding: clamp(3.5rem, 6vw, 5rem) 0;
}
.cta-strip__grid {
	display: grid; gap: 2rem; grid-template-columns: 1fr;
	align-items: end;
}
@media (min-width: 900px) { .cta-strip__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 4rem; } }
.cta-strip .display { max-width: 22ch; margin: 0; }
.cta-strip__action { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
.cta-strip__note { font-size: 0.8rem; color: var(--c-ink-soft); margin: 0; max-width: 40ch; }

/* ---------- Footer ---------- */
.site-footer {
	background: var(--c-dark);
	color: var(--c-on-dark);
	padding: clamp(3.5rem, 6vw, 5rem) 0 1.5rem;
	font-size: clamp(0.8rem, 0.0751vw + 0.7824rem, 0.85rem);
}
.site-footer .site-brand__suffix { color: var(--c-on-dark-soft); }
.site-footer__inner {
	display: grid; gap: clamp(2.5rem, 4vw, 4rem);
	grid-template-columns: 1fr;
}
@media (min-width: 900px) { .site-footer__inner { grid-template-columns: 1fr 2fr; } }

.site-footer__brand { font-family: var(--ff-display); font-size: 1.5rem; font-weight: 600; letter-spacing: -0.02em; }
.site-footer__brand .site-brand__mark { font-weight: 600; }
.site-footer__claim {
	font-family: var(--ff-body);
	font-size: 0.8rem;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--c-on-dark-soft);
	margin-top: 1rem;
	max-width: 34ch;
}

.site-footer__cols { display: grid; gap: 2rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 720px) { .site-footer__cols { grid-template-columns: repeat(3, 1fr); } }
.footer-col__title {
	font-size: 10.4px;
	color: var(--c-on-dark-soft);
	margin: 0 0 1rem;
	font-weight: 500;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--c-line-dark);
}
.footer-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.footer-col a { color: var(--c-on-dark); }
.footer-col a:hover { opacity: .6; }
.footer-contacts li { color: var(--c-on-dark-soft); }
.footer-contacts a { color: var(--c-on-dark); }
.footer-cta { margin-top: 1.5rem; }
.footer-cta .btn--underline { color: var(--c-on-dark); }

.site-footer__legal {
	margin-top: clamp(3rem, 5vw, 4rem);
	padding-top: 1.25rem;
	border-top: 1px solid var(--c-line-dark);
	font-size: 10.4px;
	color: var(--c-on-dark-soft);
}
.site-footer__legal p { margin: 0; }
.site-footer__legal-inner { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; }
.legal-menu { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.25rem; }
.legal-menu a:hover { color: var(--c-on-dark); }

/* ---------- Page heads ---------- */
.page-head {
	padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(2rem, 4vw, 3.5rem);
	border-bottom: 1px solid var(--c-line);
}
.page-head--xl { padding: clamp(4rem, 9vw, 7.5rem) 0 clamp(2.5rem, 5vw, 4rem); }
.page-head .display { max-width: 20ch; }
.page-head .lede { margin-bottom: 0; }
.page-head .hero__actions { margin-top: 2rem; }

.error-404 .display { max-width: 16ch; }

/* ---------- Page head con lede a destra ---------- */
@media (min-width: 1080px) {
	.page-head__split {
		display: grid;
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
		gap: 4rem;
		align-items: end;
	}
	.page-head__split .display { margin-bottom: 0; }
	.page-head__split .lede { margin: 0; padding-bottom: .5rem; }
}

/* ---------- Servizi: indice ---------- */
.servizi-index { border-bottom: 1px solid var(--c-line); }
.servizi-index__list {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: 1fr;
}
@media (min-width: 900px) { .servizi-index__list { grid-template-columns: repeat(3, 1fr); } }
.servizi-index__list li + li { border-top: 1px solid var(--c-line); }
@media (min-width: 900px) {
	.servizi-index__list li + li { border-top: 0; border-left: 1px solid var(--c-line); }
}
.servizi-index__link {
	display: grid;
	grid-template-columns: 1fr;
	gap: .25rem 1rem;
	padding: 1.5rem 0;
	height: 100%;
	transition: background-color .2s var(--ease);
}
@media (min-width: 900px) {
	.servizi-index__link { padding: 1.75rem 1.5rem; }
	.servizi-index__list li:first-child .servizi-index__link { padding-left: 0; }
}
.servizi-index__num { font-size: 10.4px; color: var(--c-mute); font-variant-numeric: tabular-nums; padding-top: .25rem; grid-row: span 2; }
.servizi-index__title { font-size: 0.92rem; font-weight: 500; letter-spacing: -0.015em; }
.servizi-index__short { font-size: 0.752rem; color: var(--c-ink-soft); }
.servizi-index__link:hover .servizi-index__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* ---------- Servizi: blocchi ---------- */
.servizi { padding: clamp(1rem, 3vw, 2rem) 0 var(--section-y); }
.servizio {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding: clamp(3rem, 6vw, 6rem) 0;
}
.servizio + .servizio { border-top: 1px solid var(--c-line); }
@media (min-width: 960px) {
	.servizio { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 6vw, 7rem); align-items: center; }
	.servizio--reverse .servizio__media { order: 2; }
}
.servizio__media {
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background-color: var(--c-placeholder);
	background-image: var(--contours);
	background-size: 240%;
	background-position: 10% 30%;
}
.servizio:nth-child(2) .servizio__media { background-position: 90% 10%; }
.servizio:nth-child(3) .servizio__media { background-position: 50% 90%; }
@media (max-width: 959px) { .servizio__media { aspect-ratio: 4 / 3; } }
.servizio__media img { width: 100%; height: 100%; object-fit: cover; }
.servizio__content { max-width: 560px; }
.servizio__num {
	font-size: 10.4px;
	color: var(--c-mute);
	font-variant-numeric: tabular-nums;
	margin: 0 0 1.25rem;
}
.servizio__content .display { margin-bottom: 1.25rem; }
.servizio__lead { font-size: clamp(1rem, 0.3005vw + 0.9296rem, 1.2rem); line-height: 1.45; color: var(--c-ink); margin-bottom: 1rem; }
.servizio__body { color: var(--c-ink-soft); margin-bottom: 2rem; }
.servizio__label {
	display: block;
	font-size: 10.4px;
	font-weight: 500;
	color: var(--c-mute);
	margin: 0 0 .5rem;
}
.servizio__deliverables {
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	border-top: 1px solid var(--c-line-strong);
	counter-reset: deliv;
}
@media (min-width: 560px) { .servizio__deliverables { grid-template-columns: 1fr 1fr; column-gap: 1.5rem; } }
.servizio__deliverables li {
	position: relative;
	padding: .7rem 0 .7rem 1.1rem;
	border-bottom: 1px solid var(--c-line);
	font-size: 0.768rem;
}
.servizio__deliverables li::before {
	content: "";
	position: absolute; left: 0; top: 1.35em;
	width: 6px; height: 6px;
	background: var(--c-ink);
	transform: translateY(-50%);
}
.servizio__when {
	padding: 1rem 1.25rem;
	background: var(--c-bg-alt);
	border-left: 3px solid var(--c-accent);
}
.servizio__when p { margin: 0; color: var(--c-ink); }

/* ---------- Servizi: fascia immagine ---------- */
.servizi-band {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(460px, 70vh, 760px);
	padding: clamp(2rem, 5vw, 4rem) 0;
	background-color: var(--c-placeholder);
	background-image: var(--contours);
	background-size: cover;
	overflow: hidden;
}
.servizi-band__media { position: absolute; inset: 0; }
.servizi-band__media img { width: 100%; height: 100%; object-fit: cover; }
.servizi-band__inner { position: relative; }
.servizi-band__card {
	max-width: 520px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: var(--c-bg);
}
.servizi-band__card p:not(.eyebrow) { color: var(--c-ink-soft); }
.servizi-band__card .display { max-width: 18ch; }

.lead-cta__inner--split { gap: 1rem; }
@media (min-width: 960px) {
	.lead-cta__inner--split { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 4rem; }
	.lead-cta__inner--split .lead-cta__actions { flex: 0 0 auto; margin: 0 0 1.5rem; }
	.lead-cta__inner--split .lede { margin-bottom: 1.5rem; }
}

/* ---------- Settori: mosaico ---------- */
.mosaico-wrap { padding: clamp(2rem, 4vw, 3rem) 0 0; }
.mosaico {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 44vw;
	gap: clamp(.5rem, 1vw, .875rem);
}
.mosaico__item {
	position: relative;
	display: block;
	overflow: hidden;
	background-color: var(--c-placeholder);
	background-image: var(--contours);
	background-size: 300%;
	cursor: zoom-in;
}
.mosaico--empty .mosaico__item { cursor: default; }
.mosaico__item:nth-child(1) { background-position: 0% 30%; }
.mosaico__item:nth-child(2) { background-position: 60% 0%; }
.mosaico__item:nth-child(3) { background-position: 100% 50%; }
.mosaico__item:nth-child(4) { background-position: 30% 100%; }
.mosaico__item:nth-child(5) { background-position: 80% 80%; }
.mosaico__item:nth-child(6) { background-position: 20% 60%; }
.mosaico__img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .9s var(--ease);
}
a.mosaico__item:hover .mosaico__img { transform: scale(1.03); }
a.mosaico__item:focus-visible { outline-offset: -3px; }

/* mobile: prima immagine larga, poi a coppie */
.mosaico__item:first-child { grid-column: 1 / -1; }
.mosaico[data-count="2"] .mosaico__item:last-child,
.mosaico[data-count="4"] .mosaico__item:last-child,
.mosaico[data-count="6"] .mosaico__item:last-child { grid-column: 1 / -1; }

@media (min-width: 760px) {
	.mosaico {
		grid-template-columns: repeat(12, 1fr);
		grid-auto-rows: clamp(90px, 9.5vw, 150px);
	}
	.mosaico .mosaico__item { grid-column: auto; }
	.mosaico[data-count="1"] .mosaico__item:nth-child(1) { grid-column: 1 / 13; grid-row: 1 / 5; }

	.mosaico[data-count="2"] .mosaico__item:nth-child(1) { grid-column: 1 / 8;  grid-row: 1 / 5; }
	.mosaico[data-count="2"] .mosaico__item:nth-child(2) { grid-column: 8 / 13; grid-row: 1 / 5; }

	.mosaico[data-count="3"] .mosaico__item:nth-child(1),
	.mosaico[data-count="4"] .mosaico__item:nth-child(1),
	.mosaico[data-count="5"] .mosaico__item:nth-child(1),
	.mosaico[data-count="6"] .mosaico__item:nth-child(1) { grid-column: 1 / 8; grid-row: 1 / 5; }

	.mosaico[data-count="3"] .mosaico__item:nth-child(2),
	.mosaico[data-count="4"] .mosaico__item:nth-child(2),
	.mosaico[data-count="5"] .mosaico__item:nth-child(2),
	.mosaico[data-count="6"] .mosaico__item:nth-child(2) { grid-column: 8 / 13; grid-row: 1 / 3; }

	.mosaico[data-count="3"] .mosaico__item:nth-child(3),
	.mosaico[data-count="4"] .mosaico__item:nth-child(3) { grid-column: 8 / 13; grid-row: 3 / 5; }

	.mosaico[data-count="4"] .mosaico__item:nth-child(4) { grid-column: 1 / 13; grid-row: 5 / 8; }

	.mosaico[data-count="5"] .mosaico__item:nth-child(3),
	.mosaico[data-count="6"] .mosaico__item:nth-child(3) { grid-column: 8 / 11;  grid-row: 3 / 5; }
	.mosaico[data-count="5"] .mosaico__item:nth-child(4),
	.mosaico[data-count="6"] .mosaico__item:nth-child(4) { grid-column: 11 / 13; grid-row: 3 / 5; }

	.mosaico[data-count="5"] .mosaico__item:nth-child(5) { grid-column: 1 / 13; grid-row: 5 / 8; }

	.mosaico[data-count="6"] .mosaico__item:nth-child(5) { grid-column: 1 / 5;  grid-row: 5 / 8; }
	.mosaico[data-count="6"] .mosaico__item:nth-child(6) { grid-column: 5 / 13; grid-row: 5 / 8; }
}
.mosaico__hint {
	margin: .75rem 0 0;
	font-size: 10.4px;
	color: var(--c-mute);
}

/* ---------- Settori: corpo pagina ---------- */
.settore-body { padding: clamp(3rem, 6vw, 5.5rem) 0 var(--section-y); }
.settore-body__grid {
	display: grid; grid-template-columns: 1fr;
	gap: 3rem;
}
@media (min-width: 960px) {
	.settore-body__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(4rem, 8vw, 8rem); align-items: start; }
}
.settore-body__statement {
	font-size: clamp(1.12rem, 0.7211vw + 0.951rem, 1.6rem);
	line-height: 1.25;
	letter-spacing: -0.02em;
	font-weight: 500;
	max-width: 26ch;
	margin: 0 0 2rem;
	text-wrap: balance;
}
.settore-body .lead-cta__actions { margin-top: 0; }
.settore-body__list-title {
	font-size: 10.4px;
	font-weight: 500;
	color: var(--c-mute);
	margin: .5rem 0 .75rem;
	letter-spacing: 0;
}
.settore-body .checklist { margin: 0; font-size: 0.84rem; }
.checklist {
	list-style: none; padding: 0; margin: 1rem 0 2rem;
	display: grid;
	border-top: 1px solid var(--c-line);
}
.checklist li {
	padding: .75rem 0 .75rem 1.5rem;
	position: relative;
	border-bottom: 1px solid var(--c-line);
}
.checklist li::before {
	content: ""; position: absolute; left: 0; top: 1.4em;
	width: 7px; height: 7px; background: var(--c-ink);
	transform: translateY(-50%);
}

/* ---------- Settori: altri settori ---------- */
.settori-nav {
	padding: clamp(2.5rem, 5vw, 4rem) 0;
	border-top: 1px solid var(--c-line);
}
.settori-nav__list {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: 1fr;
	border-top: 1px solid var(--c-line-strong);
}
@media (min-width: 760px) { .settori-nav__list { grid-template-columns: 1fr 1fr; column-gap: 2rem; } }
.settori-nav__link {
	display: flex; align-items: baseline; gap: 1rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--c-line);
}
.settori-nav__num { font-size: 10.4px; color: var(--c-mute); font-variant-numeric: tabular-nums; }
.settori-nav__title {
	flex: 1;
	font-size: clamp(1.2rem, 1.0817vw + 0.9465rem, 1.92rem);
	font-weight: 500;
	letter-spacing: -0.03em;
	line-height: 1.1;
}
.settori-nav__link svg { width: 22px; height: 22px; align-self: center; transition: transform .25s var(--ease); }
.settori-nav__link:hover svg { transform: translateX(4px); }
.settori-nav__link:hover .settori-nav__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }

/* ---------- Metodo page ---------- */
.metodo-page { padding: 0 0 var(--section-y); }
.metodo-block {
	display: grid; grid-template-columns: 1fr; gap: 1rem;
	padding: clamp(2.5rem, 4vw, 3.5rem) 0;
	border-bottom: 1px solid var(--c-line);
}
@media (min-width: 900px) { .metodo-block { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; } }
.metodo-block__head { display: flex; gap: 1.25rem; align-items: baseline; }
.metodo-block__head .display { margin: 0; }
.metodo-block__num {
	flex: 0 0 auto;
	display: inline-grid; place-items: center;
	width: 28px; height: 28px;
	font-size: 10.4px; font-weight: 600;
	background: var(--c-accent);
	color: var(--c-on-accent);
	transform: translateY(-.2em);
}
.metodo-block__body p { color: var(--c-ink-soft); }
.metodo-block__body .checklist { margin-bottom: 0; }
.metodo-page__cta { margin-top: 2.5rem; display: flex; gap: .75rem; flex-wrap: wrap; }

/* ---------- Filiera ---------- */
.filiera { padding: 0 0 var(--section-y); }
.filiera__block {
	display: grid; grid-template-columns: 1fr; gap: 0 3rem;
	padding: clamp(2.5rem, 4vw, 3.5rem) 0;
	border-bottom: 1px solid var(--c-line);
}
@media (min-width: 900px) {
	.filiera__block { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.filiera__block .display { margin-bottom: .5rem; }
.filiera__block p { color: var(--c-ink-soft); }
.materiali {
	list-style: none; padding: 0; margin: .5rem 0 0;
	display: grid; grid-template-columns: 1fr;
	border-top: 1px solid var(--c-line);
}
.materiali li { padding: .6rem 0; border-bottom: 1px solid var(--c-line); }

.filiera__media,
.metodo-block__media {
	margin: 1.5rem 0 0;
	overflow: hidden;
	background: var(--c-placeholder);
}
.filiera__media img,
.metodo-block__media img { width: 100%; }

.contatti__media { margin: 1.5rem 0 0; overflow: hidden; background: var(--c-placeholder); }
.contatti__media img { width: 100%; }

.cases__empty { grid-column: 1 / -1; margin: 0; }

/* ---------- Progetti archive ---------- */
.progetti-filters { padding: 2rem 0 0; }
.filter-bar { display: flex; gap: .75rem; flex-wrap: wrap; padding-bottom: 2rem; }
.filter-bar select {
	appearance: none;
	-webkit-appearance: none;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23111214' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 1rem center;
	border: 1px solid var(--c-line-strong);
	border-radius: var(--radius);
	padding: .7rem 2.5rem .7rem 1rem;
	font: inherit; font-size: clamp(0.8rem, 0.0751vw + 0.7824rem, 0.85rem); color: inherit;
	min-width: 200px;
}
.filter-bar select:hover { border-color: var(--c-ink); }
.progetti-grid { padding: 1rem 0 var(--section-y); }

/* Pagination */
.pagination { display: flex; justify-content: center; padding: 4rem 0 0; }
.pagination .nav-links { display: flex; gap: .25rem; flex-wrap: wrap; }
.pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 .75rem;
	border: 1px solid transparent;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}
.pagination .page-numbers:hover { border-color: var(--c-line-strong); }
.pagination .page-numbers.current { background: var(--c-ink); color: var(--c-on-dark); }

/* ---------- Journal (index) ---------- */
.archive { padding: clamp(2.5rem, 5vw, 4rem) 0 var(--section-y); }
.archive__grid { display: grid; gap: 3rem 2rem; grid-template-columns: 1fr; }
@media (min-width: 720px)  { .archive__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .archive__grid { grid-template-columns: repeat(3, 1fr); } }
.post-card__link { display: block; }
.post-card__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--c-placeholder); margin-bottom: 1rem; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.post-card__link:hover .post-card__media img { transform: scale(1.03); }
.post-card .eyebrow { margin-bottom: .5rem; color: var(--c-mute); }
.post-card .eyebrow::before { display: none; }
.post-card__title { font-size: 1.08rem; letter-spacing: -0.02em; line-height: 1.2; margin: 0 0 .5rem; }
.post-card__link:hover .post-card__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.post-card__excerpt { color: var(--c-ink-soft); margin: 0; font-size: 0.768rem; }

/* ---------- Case study (single progetto) ---------- */
.case-study__head { padding: clamp(3.5rem, 8vw, 6.5rem) 0 0; }
.case-study__head .display { max-width: 18ch; }
.case-study__facts {
	display: grid; gap: 0; margin: 2.5rem 0 0;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	border-top: 1px solid var(--c-line-strong);
}
.case-study__facts > div { padding: 1rem 1.5rem 1rem 0; }
.case-study__facts dt { font-size: 10.4px; color: var(--c-mute); }
.case-study__facts dd { margin: .25rem 0 0; font-size: 0.88rem; font-weight: 500; }

.case-study__hero {
	max-width: 1440px;
	margin: clamp(2rem, 4vw, 3rem) auto 0;
	padding: 0 var(--gutter);
	overflow: hidden;
}
.case-study__hero img { width: 100%; height: auto; }

.case-study__body { padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: var(--section-y); }
.case-study__section { padding: clamp(2rem, 3vw, 2.75rem) 0; border-top: 1px solid var(--c-line); }
.case-study__section h2 { font-size: clamp(1.04rem, 0.3606vw + 0.9555rem, 1.28rem); letter-spacing: -0.02em; margin: 0 0 .75rem; }
.prose-meta { color: var(--c-mute); margin: -.25rem 0 1rem; font-size: 0.76rem; }
.prose p { color: var(--c-ink-soft); margin: 0 0 1em; }
.case-study__gallery { padding-bottom: var(--section-y); }

/* ---------- Page body / generic ---------- */
.page-body { padding: clamp(2.5rem, 5vw, 4rem) 0 var(--section-y); }
.page-body h2, .article-body h2 { font-size: clamp(1.2rem, 0.6009vw + 1.0592rem, 1.6rem); letter-spacing: -0.025em; line-height: 1.15; margin: 2.5rem 0 1rem; }
.page-body h3, .article-body h3 { font-size: 1.04rem; letter-spacing: -0.015em; margin: 2rem 0 .75rem; }

/* ---------- Blocchi liberi (ACF) ---------- */
.page-blocks { padding: 0 0 var(--section-y); }
.page-block {
	display: grid; grid-template-columns: 1fr; gap: 1.5rem 4rem;
	align-items: center;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
	border-top: 1px solid var(--c-line);
}
.page-block__media { margin: 0; overflow: hidden; background: var(--c-placeholder); }
.page-block__media img { width: 100%; height: 100%; object-fit: cover; }
.page-block__body .display { max-width: 20ch; }
.page-block__text { color: var(--c-ink-soft); max-width: 60ch; }
@media (min-width: 900px) {
	.page-block--text-image,
	.page-block--image-text { grid-template-columns: 1fr 1fr; }
	.page-block--text-image .page-block__media { order: 2; }
	.page-block--image-text .page-block__media { order: 0; }
	.page-block--text-only .page-block__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 4rem; }
	.page-block--text-only .page-block__body .eyebrow { grid-column: 1 / -1; }
}
.page-block--full-image .page-block__media { aspect-ratio: 21 / 9; }

/* ---------- Contatti / brief form ---------- */
.contatti { padding: clamp(2.5rem, 5vw, 4rem) 0 var(--section-y); }
.contatti__grid {
	display: grid; gap: clamp(2.5rem, 5vw, 5rem);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 960px) { .contatti__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); } }
@media (min-width: 960px) { .contatti__side { position: sticky; top: calc(var(--header-h) + 2rem); } }

.contatti__list { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: grid; border-top: 1px solid var(--c-line); }
.contatti__list li { display: grid; gap: .1rem; padding: .9rem 0; border-bottom: 1px solid var(--c-line); }
.contatti__list .eyebrow { margin: 0; font-size: 10.4px; color: var(--c-mute); font-weight: 400; }
.contatti__list .eyebrow::before { display: none; }
.contatti__list a { font-size: 1rem; font-weight: 500; letter-spacing: -0.01em; }
.contatti__list a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.contatti__hint {
	padding: 1.25rem 1.25rem 1.25rem 1.25rem;
	background: var(--c-bg-alt);
	border-left: 3px solid var(--c-accent);
	color: var(--c-ink-soft);
	font-size: 0.76rem;
}
.contatti__hint p { margin: 0; }
.contatti__note { font-size: 11.2px; color: var(--c-mute); margin-top: 1rem; }

.brief-form {
	background: var(--c-paper);
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border: 1px solid var(--c-line);
}
.brief-form__row { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin-bottom: 1.25rem; }
@media (min-width: 720px) { .brief-form__row { grid-template-columns: 1fr 1fr; } }

.field { display: grid; gap: .4rem; }
.field--block { margin-bottom: 1.25rem; }
.field__label { font-size: 11.2px; color: var(--c-ink-soft); font-weight: 500; }
.field input, .field select, .field textarea {
	width: 100%;
	min-height: 3.25rem;
	padding: .8rem .95rem;
	background: var(--c-bg);
	border: 1px solid var(--c-line-strong);
	border-radius: var(--radius);
	font: inherit;
	font-size: clamp(0.8rem, 0.0751vw + 0.7824rem, 0.85rem);
	color: var(--c-ink);
	transition: border-color .2s var(--ease), background-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23111214' stroke-width='1.3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .9rem center;
}
.field textarea { min-height: 140px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--c-ink-soft); }
.field input:focus, .field select:focus, .field textarea:focus {
	outline: none; border-color: var(--c-ink); background-color: #fff;
	box-shadow: 0 0 0 3px rgba(227, 213, 22, 0.55);
}
.field input::placeholder, .field textarea::placeholder { color: #9a9ca0; }
.field__hint { color: var(--c-mute); font-size: 10.4px; }

.brief-form__honeypot { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }
.brief-form__submit { margin-top: 1.75rem; padding-top: 1.75rem; border-top: 1px solid var(--c-line); display: grid; gap: 1rem; justify-items: start; }
.brief-form__privacy { font-size: 10.4px; color: var(--c-mute); margin: 0; }
.brief-form__privacy a { text-decoration: underline; text-underline-offset: 2px; }

.brief-form__feedback { margin-top: 1rem; min-height: 1.2em; font-size: 11.2px; }
.brief-form__feedback.is-error { color: #a3382c; }
.brief-form__feedback.is-success { color: #2f5f3f; }

/* ---------- Thank you ---------- */
.thank-you__list {
	list-style: none; padding: 0; margin: 1.5rem 0 2rem;
	display: grid; max-width: 52ch;
	border-top: 1px solid var(--c-line);
}
.thank-you__list li {
	padding: .65rem 0 .65rem 1.5rem; position: relative;
	color: var(--c-ink-soft);
	border-bottom: 1px solid var(--c-line);
}
.thank-you__list li::before {
	content: "";
	position: absolute; left: 0; top: 1.3em;
	width: 7px; height: 7px;
	background: var(--c-accent);
	transform: translateY(-50%);
}

/* ---------- Article (single post) ---------- */
.article-head { padding: clamp(3.5rem, 8vw, 6rem) 0 0; }
.article-head__media { max-width: 1440px; margin: clamp(2rem, 4vw, 3rem) auto 0; padding: 0 var(--gutter); }
.article-head__media img { width: 100%; }
.article-body { padding: clamp(2.5rem, 5vw, 4rem) 0 var(--section-y); font-size: clamp(0.92rem, 0.1953vw + 0.8742rem, 1.05rem); line-height: 1.7; }
.article-body img { margin: 2rem 0; }
.article-body blockquote {
	margin: 2rem 0; padding: 0 0 0 1.25rem;
	border-left: 3px solid var(--c-accent);
	font-size: 1rem; line-height: 1.45; color: var(--c-ink);
}

/* ---------- Search form ---------- */
.search-form { display: flex; gap: .5rem; }
.search-form input { flex: 1; min-height: 44px; padding: .6rem .9rem; border: 1px solid var(--c-line-strong); border-radius: var(--radius); background: transparent; color: inherit; font: inherit; }
.search-form button { min-height: 44px; padding: .6rem 1.1rem; border: 0; border-radius: var(--radius); background: var(--c-ink); color: var(--c-on-dark); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}

/* Pagine settore: il mosaico segue subito l'intestazione */
.page-head--settore { border-bottom: 0; padding-bottom: 0; }

/* ---------- Aziende (brand per categoria) — v4 ---------- */
.aziende { padding: clamp(2.5rem, 5vw, 4rem) 0 var(--section-y); }
.aziende__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 3rem);
}
.aziende__layout > * { min-width: 0; } /* l'indice scorrevole non allarga la pagina */
@media (min-width: 960px) {
	.aziende__layout {
		grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
		gap: clamp(3rem, 5vw, 5rem);
		align-items: start;
	}
	.aziende__aside {
		position: sticky;
		top: calc(var(--header-h) + 1.5rem);
		max-height: calc(100vh - var(--header-h) - 3rem);
		overflow-y: auto;
		scrollbar-width: thin;
	}
}

/* Indice laterale */
.aziende-nav__title {
	font-size: 10.4px;
	font-weight: 500;
	color: var(--c-mute);
	margin: 0 0 .75rem;
}
.aziende-nav__list {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--c-line-strong);
}
.aziende-nav__list li { border-bottom: 1px solid var(--c-line); }
.aziende-nav__list a {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding: .6rem 0;
	font-size: clamp(0.8rem, 0.0751vw + 0.7824rem, 0.85rem);
	line-height: 1.3;
	color: var(--c-ink-soft);
	transition: color .2s var(--ease), padding .2s var(--ease);
}
.aziende-nav__list a:hover { color: var(--c-ink); }
.aziende-nav__list a.is-active {
	color: var(--c-ink);
	font-weight: 500;
	padding-left: .9rem;
	position: relative;
}
.aziende-nav__list a.is-active::before {
	content: "";
	position: absolute;
	left: 0; top: 50%;
	width: 7px; height: 7px;
	margin-top: -3.5px;
	background: var(--c-accent);
	outline: 1px solid var(--c-ink);
	outline-offset: -1px;
}
.aziende-nav__count {
	font-size: 10.4px;
	color: var(--c-mute);
	font-variant-numeric: tabular-nums;
}

/* Su schermi piccoli l'indice diventa una fila scorrevole fissa sotto l'header */
@media (max-width: 959px) {
	.aziende__aside {
		position: sticky;
		top: var(--header-h);
		z-index: 5;
		margin: 0 calc(var(--gutter) * -1);
		padding: 0 var(--gutter);
		background: var(--c-bg);
		border-bottom: 1px solid var(--c-line);
	}
	.aziende-nav__title { display: none; }
	.aziende-nav__list {
		display: flex;
		gap: .5rem;
		overflow-x: auto;
		border: 0;
		padding: .75rem 0;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.aziende-nav__list::-webkit-scrollbar { display: none; }
	.aziende-nav__list li { border: 0; flex: 0 0 auto; }
	.aziende-nav__list a {
		padding: .45rem .8rem;
		border: 1px solid var(--c-line-strong);
		border-radius: var(--radius);
		font-size: 15px;
		white-space: nowrap;
	}
	.aziende-nav__list a.is-active {
		padding-left: .8rem;
		background: var(--c-ink);
		border-color: var(--c-ink);
		color: var(--c-on-dark);
	}
	.aziende-nav__list a.is-active::before { display: none; }
	.aziende-nav__count { display: none; }
}

/* Categoria */
.aziende-cat { scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.aziende-cat + .aziende-cat { margin-top: clamp(3rem, 6vw, 5rem); }
@media (max-width: 959px) {
	.aziende-cat { scroll-margin-top: calc(var(--header-h) + 4.5rem); }
}
.aziende-cat__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--c-line-strong);
}
.aziende-cat__head .display { margin: 0; }
.aziende-cat__count {
	font-size: 10.4px;
	color: var(--c-mute);
	font-variant-numeric: tabular-nums;
}

/* Griglia loghi: linee sottili, spigoli vivi */
.aziende-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-left: 1px solid var(--c-line);
}
@media (min-width: 600px)  { .aziende-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .aziende-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.aziende-grid__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	padding: clamp(1rem, 2vw, 1.75rem);
	background: var(--c-paper);
	border-right: 1px solid var(--c-line);
	border-bottom: 1px solid var(--c-line);
	transition: background-color .25s var(--ease);
}
.aziende-grid__item img {
	width: 100%;
	height: 100%;
	max-width: 190px;
	object-fit: contain;
	mix-blend-mode: multiply; /* fondi bianchi dei JPG spariscono sulla carta */
	transition: transform .35s var(--ease);
}
.aziende-grid__item:hover { background: #fff; }
.aziende-grid__item:hover img { transform: scale(1.04); }
.aziende-grid__item--text span {
	font-size: var(--fs-sm);
	font-weight: 500;
	letter-spacing: -0.01em;
	text-align: center;
	line-height: 1.2;
}

@media (prefers-reduced-motion: reduce) {
	.aziende-grid__item img,
	.aziende-nav__list a { transition: none; }
	.aziende-grid__item:hover img { transform: none; }
}
@media (min-width: 960px) {
	.admin-bar .aziende__aside { top: calc(var(--header-h) + 32px + 1.5rem); }
}

/* Link al sito dell'azienda (v4.2) */
.aziende-grid__link {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 2vw, 1.75rem);
	color: var(--c-ink);
}
.aziende-grid__link:focus-visible { outline: 2px solid var(--c-ink); outline-offset: -2px; }
.aziende-grid__arrow {
	position: absolute;
	top: .6rem;
	right: .6rem;
	width: 18px;
	height: 18px;
	opacity: 0;
	transform: translate(-3px, 3px);
	transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.aziende-grid__item.has-link:hover .aziende-grid__arrow,
.aziende-grid__link:focus-visible .aziende-grid__arrow { opacity: .7; transform: none; }
@media (hover: none) { .aziende-grid__arrow { opacity: .35; transform: none; } }

/* Misure tipografiche dal Figma "Orografie Custom v2" (v4.4).
   Su telefono i campi dei form restano a 16px: sotto quella misura iOS
   ingrandisce la pagina quando tocchi un campo. */
@media (max-width: 759px) {
	.field input, .field select, .field textarea, .filter-bar select { font-size: 16px; }
}

/* ==========================================================================
   v4.5 — Misure dal Figma "Orografie Custom v2 (Copy)" (schermo 1920px).
   Valori massimi = Figma; sotto i 1920px scalano in proporzione.
   Font invariato (Instrument Sans).
   ========================================================================== */
:root {
	--fs-xl: clamp(2.4rem, 3.4366vw + 1.5945rem, 4.6875rem);   /* 75px */
	--fs-lg: clamp(1.9rem, 2.3099vw + 1.3586rem, 3.4375rem);    /* 55px */
}
.display--xl { line-height: 1; }                       /* 75 / 75 */
.display--lg { line-height: 1.09; }                    /* 55 / 60 */

/* Sopra-titoli */
.eyebrow,
.settore-body__list-title { font-size: 11px; line-height: 1.54; }   /* 11 / 16.9 */

/* Home: paragrafo introduttivo */
.home-intro__text {
	font-size: clamp(1.25rem, 1.4085vw + 0.9199rem, 2.1875rem);   /* 35px */
	line-height: 1.714;                                    /* 35 / 60 */
}

/* Home: proof point e step del metodo */
.proof__claim { font-size: clamp(1rem, 0.2817vw + 0.934rem, 1.1875rem); line-height: 1.63; }   /* 19 / 31 */
.proof__item h3,
.step__title { font-size: clamp(1.125rem, 0.1878vw + 1.081rem, 1.25rem); line-height: 1.25; }    /* 20 / 25 */
.proof__item p,
.step p { font-size: 0.9375rem; line-height: 1.333; }                                       /* 15 / 20 */

/* Home: card dei settori */
.card-contesto__text { font-size: 1rem; line-height: 1.5625; }                              /* 16 / 25 */

/* Intro delle pagine */
.page-head .lede { line-height: 1.57; }                /* 19 / 30 */
.page-head--settore .lede { line-height: 1.31; }       /* 19 / 25 */

/* Servizi */
.servizio__lead { font-size: clamp(1rem, 0.2704vw + 0.9366rem, 1.18rem); line-height: 1.375; }  /* 18.9 / 26 */
.servizio__body { line-height: 1.43; }                                                      /* 16.8 / 24 */
.servizio__when p { line-height: 1.32; }                                                    /* 16.7 / 22 */
.servizi-band__card .display { font-size: clamp(1.25rem, 0.6009vw + 1.1092rem, 1.65rem); line-height: 1.065; }  /* 26.3 / 28 */
.servizi-band__card p:not(.eyebrow) { line-height: 1.18; }                                  /* 16.9 / 20 */

/* Filiera e Metodo */
.filiera__block p { line-height: 1.8; }                /* 16.7 / 30 */
.metodo-block__body p { line-height: 1.5; }            /* 16.7 / 25 */

/* Pagine settore */
.settore-body__statement { font-size: clamp(1.25rem, 0.4695vw + 1.14rem, 1.5625rem); line-height: 1.28; }  /* 25 / 32 */

/* Contatti */
.contatti__hint p { line-height: 1.32; }               /* 12.1 / 16 */

/* v4.6 — Paragrafo introduttivo home: più paragrafi, peso leggero, niente corsivo.
   Instrument Sans non ha il Light (300): il peso più leggero disponibile è il Regular (400). */
.home-intro__text { font-weight: 400; font-style: normal; }
.home-intro__text p { margin: 0 0 0.6em; }
.home-intro__text p:last-child { margin-bottom: 0; }

/* ==========================================================================
   v4.7 — Corsivo / tondo come nel Figma "Orografie Custom v2 (Copy)".
   Nel Figma: 46 Light Italic per titoli, sopra-titoli, numeri ed etichette;
   45 Light (tondo) per paragrafi, menu, pulsanti, link del footer e form.
   Il font resta Instrument Sans (peso più leggero disponibile: 400).
   ========================================================================== */

/* Corsivo */
.display,
.eyebrow,
.proof__num, .proof__item h3,
.step__num, .step__title,
.card-contesto__index, .card-contesto__title, .card-contesto__cta,
.btn--underline,
.case__settori,
.servizi-index__num, .servizi-index__title,
.servizio__num, .servizio__label,
.metodo-block__num,
.settore-body__list-title,
.settori-nav__num, .settori-nav__title,
.footer-col__title, .site-footer__claim, .site-footer__legal,
.site-brand__mark, .site-brand__suffix,
.field__hint, .brief-form__privacy,
.field input::placeholder, .field textarea::placeholder,
.site-nav__list .current-menu-item > a,
.mobile-menu__list .current-menu-item > a {
	font-style: italic;
}

/* Tondo (anche dentro blocchi con titoli in corsivo) */
body,
.lede, .home-intro__text, .proof__claim, .proof__item p, .step p,
.card-contesto__text, .servizio__lead, .servizio__body, .servizio__when p,
.settore-body__statement, .case__title,
.btn:not(.btn--underline), .site-nav__list a, .site-footer a,
.field__label, .field input, .field select, .field textarea,
.cta-strip .display {
	font-style: normal;
}

/* Spaziatura tra le lettere: 0 sui titoli, come nel Figma */
.display--xl, .display--lg, .display--md,
.proof__item h3, .step__title, .card-contesto__title {
	letter-spacing: 0;
}

/* Fascia CTA sopra il footer: titolo in tondo 26,5 / 30px, nota 12,8 / 17px */
.cta-strip .display { line-height: 1.13; }
.cta-strip__note { line-height: 1.33; }

/* ==========================================================================
   v4.8
   - Le misure dei testi sono quelle del Figma (1920px) su ogni schermo
     da 1440px in su: il contenuto è largo 1344px sia a 1440 sia a 1920,
     quindi i testi restano identici. Sotto i 1440px scalano fino al telefono.
   - Corsivo tolto dove nel Figma non c'è.
   - Titolo hero: l'ultima parte dopo la virgola resta su una riga.
   ========================================================================== */
.site-footer .site-brand__mark,
.site-footer .site-brand__suffix,
.contatti__list .eyebrow { font-style: normal; }

.hero .display { max-width: none; }
@media (min-width: 768px) {
	.nowrap-desk { white-space: nowrap; }
}

/* ==========================================================================
   v4.9 — Regola unica per il corsivo:
   Light Italic SOLO per titoli e sopra-titoli (eyebrow);
   tutto il resto (paragrafi, CTA, link, numeri, menu, footer, form) in tondo.
   ========================================================================== */

/* Tondo: annulla il corsivo della v4.7 su tutto ciò che non è titolo/eyebrow */
.proof__num, .step__num,
.card-contesto__index, .card-contesto__cta,
.btn, .btn--underline,
.case__settori,
.servizi-index__num, .servizio__num,
.metodo-block__num, .settori-nav__num,
.site-footer__claim, .site-footer__legal,
.field__hint, .brief-form__privacy,
.field input::placeholder, .field textarea::placeholder,
.site-nav__list .current-menu-item > a,
.mobile-menu__list .current-menu-item > a,
.contatti__list .eyebrow {
	font-style: normal;
}

/* Corsivo: titoli e sopra-titoli */
.display,
.cta-strip .display,
.eyebrow,
.proof__item h3, .step__title,
.card-contesto__title,
.servizi-index__title,
.settori-nav__title,
.case__title,
.servizio__label,
.settore-body__list-title,
.footer-col__title,
.aziende-nav__title,
.page-body h2, .page-body h3,
.article-body h2, .article-body h3,
.post-card__title,
.case-study__section h2 {
	font-style: italic;
}
.contatti__list .eyebrow { font-style: normal; } /* etichette Email/Telefono: tondo come nel Figma */
.site-brand__mark, .site-brand__suffix { font-style: normal; } /* nome nell'header: tondo come nel footer */

/* v4.12 — sotto-footer con dati aziendali + casella privacy del form */
.site-footer__legal-inner { align-items: baseline; row-gap: .5rem; }
.site-footer__company { flex: 1 1 100%; }
@media (min-width: 900px) { .site-footer__company { flex: 0 1 auto; } }
.legal-menu a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(242, 241, 236, 0.35); }

.brief-form__consent {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	margin: 1.5rem 0 0;
	font-size: 11.2px;
	line-height: 1.5;
	color: var(--c-ink-soft);
	cursor: pointer;
}
.brief-form__consent input {
	flex: 0 0 auto;
	width: 16px; height: 16px;
	margin: .1rem 0 0;
	accent-color: var(--c-ink);
	cursor: pointer;
}
.brief-form__consent a { text-decoration: underline; text-underline-offset: 3px; }
.brief-form__consent a:hover { color: var(--c-ink); }
@media (max-width: 759px) { .brief-form__consent { font-size: 13px; } }

/* v4.14 — logo grafico: nero nell'header, bianco nel footer */
.site-brand { align-items: center; }
.site-brand__logo { display: block; height: 26px; width: auto; max-width: none; }
@media (max-width: 600px) { .site-brand__logo { height: 21px; } }
.site-footer__logo { display: inline-block; margin-bottom: 1.25rem; }
.site-footer__logo img { display: block; width: clamp(220px, 22vw, 300px); height: auto; }

/* v4.17 — eyebrow 16px (v4.16: 14px) e hero senza linea orizzontale */
.eyebrow,
.settore-body__list-title { font-size: 16px; }
.contatti__list .eyebrow { font-size: 15.4px; }
.hero__foot,
.hero--bg .hero__foot { border-top: 0; }

/* v4.18 — Metodo: blocchi con la stessa struttura di Servizi (immagini speculari) */
.metodo-page.servizi { padding-top: clamp(1rem, 3vw, 2rem); }
.metodo-page .servizio.metodo-block { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: clamp(3rem, 6vw, 6rem) 0; border-top: 0; border-bottom: 0; }
.metodo-page .servizio + .servizio { border-top: 1px solid var(--c-line); }
@media (min-width: 960px) {
	.metodo-page .servizio.metodo-block { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 6vw, 7rem); align-items: center; }
}
.metodo-page .servizio__lead { margin-bottom: 2rem; }
.metodo-page .servizio__content > :last-child { margin-bottom: 0; }
.metodo-page .metodo-page__cta { margin-top: 0; padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--c-line); }

/* v4.19 — voce "Settori" senza link + menu in tondo (regular, non corsivo) */
.menu-link--empty { cursor: default; }
.site-nav a, .site-nav .sub-menu a,
.mobile-menu__list a, .mobile-menu__list .sub-menu a,
.site-nav__list .current-menu-item > a,
.site-nav__list .current-menu-ancestor > a,
.site-nav__list .current-menu-parent > a,
.mobile-menu__list .current-menu-item > a,
.mobile-menu__list .current-menu-ancestor > a { font-style: normal !important; font-weight: 400; }

/* ==========================================================================
   v4.20 — Tipografia unificata
   Titoli: solo tre livelli (H1, H2, H3), stessa misura ovunque.
   Paragrafi: due misure — "grande" nelle sezioni, "piccolo" in elenchi e card.
   Misure massime a 1920px, scalano in proporzione fino a 360px.
   ========================================================================== */
:root {
	--t-h1:   var(--fs-xl);                                          /* 75px */
	--t-h2:   var(--fs-lg);                                          /* 55px */
	--t-h3:   clamp(1.25rem, 0.3846vw + 1.1635rem, 1.625rem);        /* 20 → 26px */
	--t-p-lg: clamp(1.0625rem, 0.1923vw + 1.0192rem, 1.25rem);       /* 17 → 20px */
	--t-p-sm: clamp(0.875rem, 0.0641vw + 0.8606rem, 0.9375rem);      /* 14 → 15px */
}

/* H1 — titolo della pagina (uno per pagina) */
body h1.display,
body .page-body h1, body .article-body h1 {
	font-size: var(--t-h1);
	line-height: 1;
	letter-spacing: 0;
}

/* H2 — titolo di sezione */
body h2.display,
body .servizi-band__card h2.display,
body .cta-strip h2.display,
body .lead-cta h2.display,
body .page-body h2, body .article-body h2 {
	font-size: var(--t-h2);
	line-height: 1.09;
	letter-spacing: 0;
}

/* H3 — titolo di card, step, voci e sotto-sezioni */
body h3,
body .proof__item h3, body .step__title,
body .card-contesto__title, body .case__title, body .post-card__title,
body .settore-body__list-title,
body .case-study__section h3,
body .page-body h3, body .article-body h3,
body .servizi-index__title, body .settori-nav__title {
	font-family: var(--ff-display);
	font-size: var(--t-h3);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
}
body .settore-body__list-title { margin: 0 0 1rem; color: var(--c-ink); }
body .case-study__section h3 { margin: 0 0 .75rem; }

/* Paragrafo grande — testi delle sezioni */
body .lede,
body .proof__claim,
body .servizio__lead, body .servizio__body,
body .servizi-band__card p:not(.eyebrow),
body .filiera__block p, body .filiera__body p,
body .page-block__text p,
body .settore-body__statement,
body .page-body p, body .page-body li,
body .article-body, body .article-body p, body .article-body li,
body .prose p {
	font-size: var(--t-p-lg);
	line-height: 1.5;
}

/* Paragrafo piccolo — elenchi, card, note */
body .proof__item p, body .step p,
body .card-contesto__text,
body .checklist li, body .settore-body .checklist,
body .servizio__deliverables li,
body .materiali li,
body .servizio__when p,
body .servizi-index__short,
body .post-card__excerpt,
body .case__loc,
body .thank-you__list li,
body .contatti__hint, body .contatti__hint p,
body .cta-strip__note,
body .prose-meta,
body .case-study__facts dd,
body .site-footer__claim, body .site-footer__company,
body .footer-contacts li, body .footer-col li, body .footer-col a {
	font-size: var(--t-p-sm);
	line-height: 1.5;
}

/* v4.21 — Testo introduttivo della home: 25px (da 35px), interlinea 40px */
body .home-intro__text {
	font-size: clamp(1.125rem, 0.4487vw + 1.024rem, 1.5625rem);   /* 18 → 25px */
	line-height: 1.6;                                             /* 25 / 40 */
}

/* v4.22 — Testo introduttivo della home: interlinea 1.8 (25 → 45px), spaziatura lettere 0 */
body .home-intro__text,
body .home-intro__text p {
	line-height: 1.8;
	letter-spacing: 0;
}

/* v4.23 — Testo introduttivo della home: padding a destra per righe più corte e uniformi */
@media (min-width: 900px) {
	body .home-intro__text { padding-right: 25%; }
}
@media (min-width: 600px) and (max-width: 899px) {
	body .home-intro__text { padding-right: 10%; }
}

/* v4.24 — Testo introduttivo della home: 20 / 30px (Figma) */
body .home-intro__text,
body .home-intro__text p {
	font-size: clamp(1.0625rem, 0.1923vw + 1.0192rem, 1.25rem);   /* 17 → 20px */
	line-height: 1.5;                                             /* 20 / 30 */
}

/* v4.25 — Testo introduttivo della home: 25px, interlinea proporzionale al Figma (20/30 = 1.5 → 37.5px) */
body .home-intro__text,
body .home-intro__text p {
	font-size: clamp(1.125rem, 0.4487vw + 1.024rem, 1.5625rem);   /* 18 → 25px */
	line-height: 1.5;                                             /* 25 / 37.5 */
}

/* v4.26 — Testo introduttivo della home: centrato, stesso sfondo della sezione proof */
body .home-intro {
	background: var(--c-bg-alt);
	padding: var(--section-y) 0;
}
body .home-intro__text,
body .home-intro__text p { text-align: center; }
body .home-intro__text {
	padding-right: 0;
	max-width: 75%;
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 899px) { body .home-intro__text { max-width: 90%; } }
@media (max-width: 599px) { body .home-intro__text { max-width: none; } }

/* v4.27 — Testo introduttivo della home: allineato a sinistra, senza padding/margini laterali (sfondo invariato) */
body .home-intro__text,
body .home-intro__text p { text-align: left; }
body .home-intro__text,
body .home-intro__text p {
	padding-left: 0;
	padding-right: 0;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
@media (min-width: 600px) {
	body .home-intro__text { padding-right: 0; max-width: none; }
}

/* v4.28 — Testo introduttivo della home: padding a destra leggerissimo (solo da tablet in su) */
@media (min-width: 600px) {
	body .home-intro__text { padding-right: 5%; }
}

/* v4.29 — Voci del menu sempre in tondo (header, sottomenu, mobile) */
html body header.site-header .site-nav,
html body header.site-header .site-nav *,
html body header.site-header .mobile-menu,
html body header.site-header .mobile-menu * {
	font-style: normal !important;
	font-synthesis: none;
}

/* v4.30 — Pagina Aziende (/fornitura/): paragrafo introduttivo + modulo fornitura */
.aziende-intro { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.text-link {
	display: inline;
	padding: 0; margin: 0;
	border: 0; background: none;
	font: inherit; color: inherit; letter-spacing: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	cursor: pointer;
}
.text-link:hover { text-decoration-thickness: 2px; }
.text-link:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 3px; }

.modal {
	width: min(760px, calc(100vw - 2 * var(--gutter)));
	max-height: calc(100dvh - 2rem);
	padding: 0;
	border: 0;
	background: var(--c-paper);
	color: var(--c-ink);
	overflow: auto;
}
.modal::backdrop { background: rgba(17, 18, 20, .55); }
.modal__box { position: relative; padding: clamp(1.75rem, 4vw, 3rem); }
.modal__close {
	position: absolute; top: .75rem; right: .75rem;
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border: 0; background: none; color: var(--c-ink); cursor: pointer;
}
.modal__close svg { width: 22px; height: 22px; }
.modal .display { padding-right: 2.5rem; margin-bottom: .75rem; }
.modal__lede { color: var(--c-ink-soft); margin: 0 0 1.75rem; font-size: var(--t-p-lg); line-height: 1.5; }
.brief-form--modal { background: none; border: 0; padding: 0; }

/* v4.31 — Testo introduttivo della HOME: padding a destra leggermente maggiore (5% → 8%) */
@media (min-width: 600px) {
	body .home-intro:not(.aziende-intro) .home-intro__text { padding-right: 8%; }
}

/* v4.32 — Home, card dei settori: testo +1 punto (15 → 16px), "Scopri" +2 punti (12 → 14px) */
body .card-contesto__text {
	font-size: clamp(0.9375rem, 0.0641vw + 0.9231rem, 1rem);   /* 15 → 16px */
}
body .card-contesto__cta { font-size: 14px; }

/* v4.34 — Servizi: frase sotto il titolo di ogni servizio in H4,
   stesso stile di prima ma grande quanto il paragrafo sotto (20px) */
body h4.servizio__lead {
	font-family: var(--ff-display);
	font-size: var(--t-p-lg);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
	color: var(--c-ink);
	font-style: italic; /* come gli altri H3 del sito */
	margin: 0 0 1.25rem;
}

/* v4.37 — Fasce CTA (Servizi + fascia sopra il footer): pulsante sotto il paragrafo */
.lead-cta__inner--split > div > .lead-cta__actions { margin: 0; }
.lead-cta__inner--split > div > .lede { margin-bottom: 1.5rem; }

/* v4.38 — Intro Servizi: testo a destra del titolo (come le pagine settore) */
.page-head--split .page-head__media { margin-top: clamp(2rem, 4vw, 3rem); }

/* v4.39 — Pagine settore (Privati, Aziende, Progetti speciali): testo principale più largo
   (prima era limitato a 26 caratteri per riga), occupa tutta la sua colonna */
body .settore-body__statement {
	max-width: none;
	text-wrap: pretty;
}

/* v4.41 — Home: paragrafi di proof point e step del metodo grandi come quelli delle card dei settori */
body .proof__item p,
body .step p {
	font-size: clamp(0.9375rem, 0.0641vw + 0.9231rem, 1rem);   /* 15 → 16px, come .card-contesto__text */
	line-height: 1.5;
}

/* v4.42 — Spaziatura tra le lettere a 0 ovunque */
html body *,
html body *::before,
html body *::after {
	letter-spacing: 0 !important;
}

/* v4.42 — Pagine settore: testo principale un po' più piccolo (20 → 18px) */
body .settore-body__statement {
	font-size: clamp(1rem, 0.1282vw + 0.9712rem, 1.125rem);   /* 16 → 18px */
	line-height: 1.5;
}

/* v4.43 — Pagine settore: il testo principale (e il suo pulsante) scende sotto la linea
   dell'elenco a destra. Spazio = altezza del titolo dell'elenco (H3) + suo margine + respiro. */
@media (min-width: 960px) {
	body .settore-body__grid:has(.settore-body__list) .settore-body__text {
		padding-top: calc(var(--t-h3) * 1.2 + 1rem + .75rem);
	}
	body .settore-body__grid:has(.settore-body__list):not(:has(.settore-body__list-title)) .settore-body__text {
		padding-top: .75rem;
	}
}

/* v4.45 — Pagina Aziende: menu laterale delle categorie +1px (titolo "Categorie", voci e numeri) */
body .aziende-nav__title { font-size: 11.4px; }
body .aziende-nav__list a { font-size: clamp(0.8625rem, 0.0751vw + 0.8449rem, 0.9125rem); }   /* 13.8 → 14.6px */
body .aziende-nav__count { font-size: 11.4px; }
@media (max-width: 959px) {
	body .aziende-nav__list a { font-size: 16px; }
}

/* v4.48 — Pagina Aziende: menu laterale senza barra di scorrimento verticale
   (se le voci non entrano nello schermo si scorre comunque con rotella / trackpad) */
@media (min-width: 960px) {
	body .aziende__aside { scrollbar-width: none; -ms-overflow-style: none; }
	body .aziende__aside::-webkit-scrollbar { display: none; width: 0; height: 0; }
}

/* v4.49 — Pagina Aziende: titolo "Categorie" del menu laterale più grande; titoli delle categorie in H3 */
body .aziende-nav__title { font-size: 14px; }
body h3.aziende-cat__title {
	font-size: var(--t-h3);
	line-height: 1.2;
	font-weight: 500;
	margin: 0;
}

/* v4.50 — #menu-menu (menu di WordPress) e tutte le voci di menu: niente corsivo */
html body #menu-menu li a,
html body #menu-menu li a *,
html body [id^="menu-menu"] li a,
html body [id^="menu-menu"] li a *,
html body .menu-item > a,
html body .menu-item > a * {
	font-style: normal !important;
	font-synthesis: none;
}

/* v4.51 — Voci di menu: font del corpo testo (tondo) */
html body #menu-menu li a,
html body #menu-menu li a *,
html body [id^="menu-menu"] li a,
html body [id^="menu-menu"] li a *,
html body .menu-item > a,
html body .menu-item > a * {
	font-family: var(--ff-body) !important;
	font-style: normal !important;
}

/* v4.52 — Thank you: nota finale con l'email per inviare foto e planimetrie */
.thank-you__note {
	margin: 2.5rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--c-line);
	max-width: 60ch;
	color: var(--c-ink-soft);
	font-size: var(--t-p-lg);
	line-height: 1.5;
}
.thank-you__note a { color: var(--c-ink); text-decoration: underline; text-underline-offset: .18em; }

/* v4.53 — Servizi: testo di ogni servizio grande come i paragrafi delle card dei settori in home (16px).
   La frase H4 sopra resta allineata alla stessa misura (come richiesto in v4.34). */
body .servizio__body,
body h4.servizio__lead {
	font-size: clamp(0.9375rem, 0.0641vw + 0.9231rem, 1rem);   /* 15 → 16px, come .card-contesto__text */
}
body .servizio__body { line-height: 1.5; }

/* v4.54 — Niente icone a freccia (pulsanti, "Scopri", altri settori, loghi, voce con sottomenu) */
.btn__arrow, .aziende-grid__arrow,
.card-contesto__cta svg, .settori-nav__link svg { display: none !important; }
.site-nav__list > .menu-item-has-children > a { padding-right: 0; background-image: none !important; }
.site-nav__list > .menu-item-has-children > a::after { right: 0; }

/* v4.55 — Servizi: testo del servizio grande come p.servizio__lead (paragrafo grande, 20px);
   la frase H4 sopra segue la stessa misura. Indice servizi: testo breve come le card dei settori. */
body .servizio__body,
body h4.servizio__lead,
body p.servizio__lead {
	font-size: var(--t-p-lg);   /* 17 → 20px */
}
body .servizi-index__short {
	font-size: clamp(0.9375rem, 0.0641vw + 0.9231rem, 1rem);   /* 15 → 16px, come .card-contesto__text */
	line-height: 1.5;
}

/* v4.57 — Form: campo da correggere evidenziato dopo un errore */
.field [aria-invalid="true"] { border-color: #b3261e; }

/* v4.56 — Pagine settore: testo principale grande come p.lede (paragrafo grande, 20px) */
body .settore-body__statement {
	font-size: var(--t-p-lg);   /* 17 → 20px, come .lede */
	line-height: 1.5;
}
@media (min-width: 960px) {
	/* allineamento sotto la linea dell'elenco (v4.43) invariato */
}

/* v4.61 — Mobile/tablet: immagini di Home (card settori), Metodo e Servizi più verticali,
   come su desktop (4:5) invece di 4:3. Tetto in altezza per non farle diventare "lenzuola"
   sui tablet in verticale. */
@media (max-width: 759px) {
	.card-contesto__media { aspect-ratio: 4 / 5; max-height: 75svh; }
}
@media (max-width: 959px) {
	.servizio__media { aspect-ratio: 4 / 5; max-height: 75svh; }
}
