/* =========================================================
   Costruzioni Dallapè — theme.css
   Global styles + custom-block styles. Design tokens come
   from theme.json (--wp--preset--color--*, --wp--preset--font-*).
   ========================================================= */

/* --- Layout constants (not exposed via theme.json) --- */
:root {
	--cdlp-header-height: 120px;
	--cdlp-radius-pill: 999px;
	--cdlp-radius-md: 1rem;
	--cdlp-radius-hero: 40px;
}

html { scroll-behavior: smooth; }

body {
	-webkit-font-smoothing: antialiased;
}

/* Buttons: shared button preset lands via theme.json; add height + hover on the
   "accent" style (default). */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	height: 60px;
	white-space: nowrap;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* Outline button style variant */
.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent !important;
	color: var(--wp--preset--color--accent);
	border: 2px solid var(--wp--preset--color--accent);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--white) !important;
}

/* Eyebrow label helper (used above section headings) */
.cdlp-eyebrow {
	display: block;
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--eyebrow);
	margin-bottom: 0.5rem;
}

/* Section lead paragraph */
.cdlp-lead {
	color: var(--wp--preset--color--muted);
	font-size: 1.5rem;
	line-height: 1.333;
	max-width: 66%;
}

/* =========================================================
   Header (rendered via /parts/header.html)
   ========================================================= */
.wp-site-blocks > header.wp-block-template-part {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 1.2rem 1rem;
	transition: transform 0.35s ease;
	will-change: transform;
}

/* Auto-hide: slid out of view while scrolling down (toggled by header.js) */
.wp-site-blocks > header.wp-block-template-part.is-hidden {
	transform: translateY(-130%);
}

@media (prefers-reduced-motion: reduce) {
	.wp-site-blocks > header.wp-block-template-part {
		transition: none;
	}
}

.cdlp-navbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	height: 80px;
	/* Constrain the floating pill to the content width (like the reference
	   .site-header .container) instead of stretching to the wide alignment. */
	max-width: var(--wp--style--global--content-size, 1280px);
	margin-inline: auto;
	background-color: var(--wp--preset--color--white);
	border-radius: var(--cdlp-radius-pill);
	padding: 0 0.5rem 0 1.75rem;
	box-shadow: 0 8px 20px rgba(0, 25, 64, 0.12);
}
.cdlp-navbar .wp-block-site-logo img {
	height: 56px;
	width: auto;
}
.cdlp-navbar .wp-block-navigation {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 600;
	color: var(--wp--preset--color--muted);
}
.cdlp-navbar .wp-block-navigation a:hover,
.cdlp-navbar .wp-block-navigation .current-menu-item a,
.cdlp-navbar .wp-block-navigation a[aria-current="page"] {
	color: var(--wp--preset--color--primary);
}

/* Header offsets main so fixed pill doesn't overlap non-hero content */
.wp-site-blocks main {
	padding-top: var(--cdlp-header-height);
}

/* Homepage: the hero runs full-bleed to the top, under the floating header.
   Cancel main's header-clearance spacing here; the hero supplies its own
   top padding so its content still clears the floating menu. */
.home .wp-site-blocks main {
	padding-top: 0;
	margin-top: 0;
}

/* =========================================================
   Hero (custom block: costruzioni-dallape/hero)
   ========================================================= */
.cdlp-hero {
	position: relative;
	/* border-box so min-height:100vh includes the header-clearance padding,
	   making the hero exactly one viewport tall. */
	box-sizing: border-box;
	/* Break out of the constrained page layout: the hero runs the full
	   viewport width leaving a left/right margin (3rem each side), no cap. */
	width: calc(100vw - 6rem);
	max-width: none;
	margin-inline: auto;
	left: 50%;
	transform: translateX(-50%);
	/* Leave a small gap below so the rounded bottom corners sit inside the
	   viewport (matches the ~1rem side insets) instead of at the fold.
	   Subtract the admin-bar height too so the gap holds when logged in. */
	min-height: calc(100vh - 3rem - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100svh - 3rem - var(--wp-admin--admin-bar--height, 0px));
	margin-top: 0;
	/* Bottom margin matches the 3rem left/right side insets. */
	margin-bottom: 3rem;
	padding-top: var(--cdlp-header-height);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	color: var(--wp--preset--color--white);
	border-radius: 0 0 var(--cdlp-radius-hero) var(--cdlp-radius-hero);
}

@media (max-width: 860px) {
	.cdlp-hero { min-height: calc(100svh - 3rem - var(--wp-admin--admin-bar--height, 0px)); border-radius: 0 0 24px 24px; }
}

.cdlp-hero__slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 0.8s ease;
}
.cdlp-hero__slide.is-active { opacity: 1; }
.cdlp-hero__slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top,  rgba(0, 15, 40, 0.85) 0%, rgba(0, 15, 40, 0.40) 38%, transparent 58%),
		linear-gradient(to right, rgba(0, 15, 40, 0.55) 0%, rgba(0, 15, 40, 0.10) 45%, transparent 68%);
}
@media (max-width: 860px) {
	.cdlp-hero__slide::after { background: rgba(0, 15, 40, 0.52); }
}

.cdlp-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--wp--style--global--content-size, 1280px);
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-hero__content { max-width: 680px; padding-bottom: 5.5rem; }
.cdlp-hero__title {
	font-family: var(--wp--preset--font-family--sora);
	font-size: clamp(2.25rem, 2vw + 2rem, 3.4375rem);
	line-height: 1.2;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	margin: 0 0 1rem;
}
.cdlp-hero__subtitle {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.1667;
	margin: 0 0 2rem;
	color: rgba(255, 255, 255, 0.92);
}
.cdlp-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 60px;
	padding-inline: 1.75rem;
	text-decoration: none;
	border-radius: var(--cdlp-radius-pill);
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1;
	border: 2px solid var(--wp--preset--color--accent);
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.cdlp-hero__cta:hover {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--primary);
}
/* Exception: the hero slider CTA keeps its original white hover. */
.cdlp-hero .cdlp-hero__cta:hover {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--white);
}
.cdlp-hero__dots { display: flex; gap: 0.6rem; margin-top: 2rem; }
.cdlp-hero__dots button {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.45);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.cdlp-hero__dots button.is-active {
	background-color: var(--wp--preset--color--white);
	transform: scale(1.2);
}

/* =========================================================
   Stat counter (custom block)
   ========================================================= */
.cdlp-stat__number {
	font-family: var(--wp--preset--font-family--sora);
	font-size: clamp(2.75rem, 2.5vw + 2rem, 4.375rem);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	line-height: 1;
}
.cdlp-stat__label {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
	font-size: 1.125rem; /* 18px — leggermente più grande del riferimento (1rem) */
	margin-top: 0.4rem;
}
/* (Odometer/rullo styles removed — stat-counter now uses a numeric count-up
   that renders whole integers, so no digit-strip clipping.) */

/* =========================================================
   Progetti carousel (custom block)
   ========================================================= */
.cdlp-progetti {
	background-color: var(--wp--preset--color--section);
	/* Full-bleed background: break out of the constrained content container
	   (align:full is capped at content-size in this theme) so the section BG
	   spans the whole viewport. __inner keeps the content centred at 1280px. */
	width: auto;
	/* !important beats WP's `.has-global-padding > .alignfull` layout rule
	   which otherwise resets these margins to 0. */
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	/* Respiro maggiore, identico sopra e sotto. */
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-progetti__inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-progetti__head { margin-bottom: 4rem; }
/* Tighten the eyebrow → title → lead spacing (default h2 margins are too loose). */
.cdlp-progetti__head .cdlp-section-heading { margin: 0.25rem 0 1rem; }
.cdlp-progetti__lead-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 6rem;
	margin-top: 0;
}
.cdlp-progetti__lead-row .cdlp-lead {
	max-width: none;
	/* Bottom flush con le frecce (align-items: flex-end): senza questo,
	   il margine inferiore del paragrafo alza il testo di 24px. */
	margin-block: 0;
}

.cdlp-progetti__nav {
	display: flex;
	gap: 0.75rem;
	flex-shrink: 0;
}
.cdlp-progetti__nav button {
	width: 68px;
	height: 68px;
	border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	background: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.cdlp-progetti__nav button:hover {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}
.cdlp-progetti__nav svg { width: 28px; height: 28px; }

.cdlp-progetti__track {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 0.5rem;
	padding-left: max(1rem, calc((100% - 1280px) / 2));
	padding-right: 1rem;
	scroll-padding-left: max(1rem, calc((100% - 1280px) / 2));
}
.cdlp-progetti__track::-webkit-scrollbar { display: none; }

.cdlp-card {
	flex: 0 0 380px;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	background-color: var(--wp--preset--color--white);
	border-radius: var(--cdlp-radius-md);
	overflow: hidden;
	display: block;
	color: inherit;
	text-decoration: none;
}
.cdlp-card__media {
	position: relative;
	aspect-ratio: 440 / 480;
	overflow: hidden;
}
.cdlp-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease, opacity 0.25s ease;
	display: block;
}
.cdlp-card:hover .cdlp-card__media img { transform: scale(1.05); opacity: 0.85; }
.cdlp-card__arrow {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0.8);
	width: 75px;
	height: 75px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.25s ease, transform 0.25s ease;
}
.cdlp-card:hover .cdlp-card__arrow { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.cdlp-card__arrow svg { width: 52px; height: 52px; }

.cdlp-card__body { padding: 1.1rem 1rem 1rem; } /* top +10% */
.cdlp-card__title {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.3;
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--text);
}
.cdlp-card__meta {
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
}
.cdlp-card__meta .cdlp-dot {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent);
	display: inline-block;
}
.cdlp-card__meta .cdlp-status { font-weight: 600; }

.cdlp-progetti__cta { display: flex; justify-content: center; margin-top: 4rem; }

@media (max-width: 1024px) {
	.cdlp-card { flex: 0 0 min(440px, 45%); }
}
@media (max-width: 640px) {
	.cdlp-card { flex: 0 0 78%; }
}

/* =========================================================
   Ambiti list (custom block)
   ========================================================= */
.cdlp-ambiti { padding-top: 3.326rem; padding-bottom: 4.8rem; }
.cdlp-ambiti__inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-ambiti__head {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--wp--preset--color--section);
	margin-bottom: 4rem;
}
/* Tighten the gap between the title and the lead paragraph. */
.cdlp-ambiti__head .cdlp-section-heading { margin: 0.25rem 0 1rem; }
.cdlp-ambiti__head .cdlp-lead { margin-top: 0; }
.cdlp-ambiti__list {
	display: flex;
	flex-direction: column;
	gap: 4.5rem;
	/* Bottom divider closing the list, mirroring the head divider. */
	padding-bottom: 4.8rem;
	border-bottom: 1px solid var(--wp--preset--color--section);
}

.cdlp-ambiti-row {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 2rem;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	transition: background-color 0.3s ease, color 0.3s ease;
	overflow: visible;
}
.cdlp-ambiti-row__left { display: flex; align-items: center; gap: 4.5rem; }
.cdlp-ambiti-row__index {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 400;
	font-size: 1.25rem;
	color: var(--wp--preset--color--muted);
}
.cdlp-ambiti-row__title {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: clamp(2rem, 2vw + 1.5rem, 3.4375rem);
	margin: 0;
}
.cdlp-ambiti-row__arrow {
	width: 75px;
	height: 75px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--accent);
	flex-shrink: 0;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.cdlp-ambiti-row__arrow svg { width: 32px; height: 32px; }
.cdlp-ambiti-row__image {
	position: absolute;
	right: 12%;
	top: 50%;
	width: 360px;
	height: 240px;
	overflow: hidden;
	opacity: 0;
	transform: translateY(-50%) scale(0.9);
	transition: opacity 0.3s ease, transform 0.3s ease;
	pointer-events: none;
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
}
.cdlp-ambiti-row__image img { width: 100%; height: 100%; object-fit: cover; }

.cdlp-ambiti-row:hover,
.cdlp-ambiti-row.is-active {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}
.cdlp-ambiti-row:hover .cdlp-ambiti-row__index,
.cdlp-ambiti-row.is-active .cdlp-ambiti-row__index { color: rgba(255, 255, 255, 0.75); }
.cdlp-ambiti-row:hover .cdlp-ambiti-row__title,
.cdlp-ambiti-row.is-active .cdlp-ambiti-row__title { color: var(--wp--preset--color--white); }
.cdlp-ambiti-row:hover .cdlp-ambiti-row__arrow,
.cdlp-ambiti-row.is-active .cdlp-ambiti-row__arrow {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--accent);
}
.cdlp-ambiti-row:hover .cdlp-ambiti-row__image,
.cdlp-ambiti-row.is-active .cdlp-ambiti-row__image {
	opacity: 1;
	transform: translateY(-50%) scale(1);
}

@media (max-width: 640px) {
	.cdlp-ambiti-row { padding: 1.5rem; }
	.cdlp-ambiti-row__image { display: none; }
}

/* =========================================================
   Certificazioni grid (custom block)
   ========================================================= */
.cdlp-certificazioni {
	padding-top: 0.43008rem;
	padding-bottom: 6rem;
	/* Full-bleed so the blue __band spans the viewport; inners keep content at 1280. */
	width: auto;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}
.cdlp-certificazioni__inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-certificazioni__head { margin-bottom: 4rem; }
/* Lead più largo del default .cdlp-lead (66%), ma non a tutta larghezza. */
.cdlp-certificazioni__head .cdlp-lead { max-width: 831.6px; }
/* Tighten eyebrow → title → lead (default h2 margins too loose). */
.cdlp-certificazioni__head .cdlp-section-heading { margin: 0.25rem 0 1rem; }
.cdlp-certificazioni__head .cdlp-lead { margin-top: 0; }
.cdlp-certificazioni__band {
	background-color: var(--wp--preset--color--eyebrow);
	width: 100%;
	padding-block: 2rem;
	margin-top: 4rem;
}
.cdlp-certificazioni__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}

.cdlp-cert-card {
	position: relative;
	background-color: var(--wp--preset--color--section);
	border-radius: var(--cdlp-radius-md);
	aspect-ratio: 4 / 5;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	overflow: hidden;
}
.cdlp-cert-card img {
	max-height: 85%;
	max-width: 92%;
	width: auto;
	object-fit: contain;
}
.cdlp-cert-card__info {
	position: absolute;
	inset: auto 0 0 0;
	background-color: var(--wp--preset--color--white);
	padding: 1rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	transform: translateY(100%);
	transition: transform 0.3s ease;
}
.cdlp-cert-card:hover .cdlp-cert-card__info { transform: translateY(0); }
.cdlp-cert-card__title {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: 1.1rem;
	line-height: 1.3;
	color: var(--wp--preset--color--text);
}
.cdlp-cert-card__year {
	color: var(--wp--preset--color--muted);
	font-size: 0.95rem;
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.2rem;
}
.cdlp-cert-card__year .cdlp-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent);
	display: inline-block;
}
.cdlp-cert-card__arrow {
	width: 75px;
	height: 75px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.cdlp-cert-card__arrow svg { width: 52px; height: 52px; }

.cdlp-certificazioni__cta { display: flex; justify-content: center; margin-top: 4rem; }

@media (max-width: 1024px) {
	.cdlp-certificazioni__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
	.cdlp-certificazioni__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   Azienda-stats layout helper (composed with core blocks)
   ========================================================= */
.cdlp-azienda-stats { padding-block: 6rem; }
.cdlp-azienda-stats__head {
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	margin-bottom: 2rem;
}
.cdlp-azienda-stats__body {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 4rem;
	align-items: start;
}
/* Left column CTA sits at the bottom, aligned with the numbers row. Covers both
   the azienda-stats custom block (.cdlp-azienda-stats__col-left) and the older
   composed version (a first-child wp-block-group in the body). */
.cdlp-azienda-stats__col-left {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	align-self: stretch;
}
.cdlp-azienda-stats__body > .wp-block-group:first-child {
	align-self: stretch;
	/* One child (the CTA) → push it to the bottom, aligned with the numbers row. */
	justify-content: flex-end;
}
.cdlp-azienda-stats__text > p {
	color: var(--wp--preset--color--body);
	font-size: 1.5rem;
	line-height: 1.333;
}
.cdlp-azienda-stats__text > p:first-child { font-weight: 600; }
.cdlp-azienda-stats__numbers {
	display: flex;
	gap: 4rem;
	margin-top: 4rem;
}
.cdlp-azienda-stats__logos {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 4rem;
	margin-top: 6rem;
	flex-wrap: wrap;
}
/* Logos are core image blocks: zero the figure margin so the flex row aligns. */
.cdlp-azienda-stats__logos .wp-block-image { margin: 0; }
.cdlp-azienda-stats__logos img {
	height: auto;
	width: auto;
	max-height: 120px;
	max-width: 220px;
	object-fit: contain;
}
/* is-large may sit on the <img> (legacy) or on the <figure> (image block). */
.cdlp-azienda-stats__logos img.is-large,
.cdlp-azienda-stats__logos .is-large img { max-height: 174px; }

@media (max-width: 860px) {
	.cdlp-azienda-stats__body { grid-template-columns: 1fr; }
	.cdlp-azienda-stats__numbers { flex-wrap: wrap; gap: 2rem; justify-content: center; }
}

/* =========================================================
   Marquee (custom block)
   ========================================================= */
.cdlp-marquee {
	overflow: hidden;
	white-space: nowrap;
	padding-block: 2.6rem 1.6rem; /* top +30%, bottom -20% */
	background-color: var(--wp--preset--color--white);
}
.cdlp-marquee__track {
	display: flex;
	width: max-content;
	animation: cdlp-marquee-scroll 22s linear infinite;
}
.cdlp-marquee__item {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: 5.625rem;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--white);
	text-shadow:
		-2px -2px 0 var(--wp--preset--color--section),
		 2px -2px 0 var(--wp--preset--color--section),
		-2px  2px 0 var(--wp--preset--color--section),
		 2px  2px 0 var(--wp--preset--color--section),
		 0   -2px 0 var(--wp--preset--color--section),
		 0    2px 0 var(--wp--preset--color--section),
		-2px  0   0 var(--wp--preset--color--section),
		 2px  0   0 var(--wp--preset--color--section);
	padding-inline: 1.5rem;
}
@keyframes cdlp-marquee-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* =========================================================
   CTA banner (composed with core Cover)
   ========================================================= */
.cdlp-cta-banner {
	position: relative;
	/* Full viewport width with a 3rem left/right margin, like the hero.
	   !important overrides the align:wide max-width cap. */
	width: calc(100vw - 6rem) !important;
	max-width: none !important;
	margin-inline: auto;
	left: 50%;
	transform: translateX(-50%);
	border-radius: var(--cdlp-radius-hero) var(--cdlp-radius-hero) 0 0;
	overflow: hidden;
	min-height: 600px !important;
	display: flex;
	align-items: center;
}
@media (max-width: 860px) {
	.cdlp-cta-banner { min-height: 480px !important; border-radius: 24px 24px 0 0; }
}
/* Lighten the dark photo overlay on this banner (saved dimRatio is stronger). */
.cdlp-cta-banner .wp-block-cover__background.has-background-dim {
	opacity: 0.1 !important;
}
/* Keep the card within the 1280 container even though the banner is full-bleed. */
.cdlp-cta-banner .wp-block-cover__inner-container {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-cta-card {
	position: relative;
	z-index: 2;
	background-color: var(--wp--preset--color--white);
	border-radius: 1.5rem;
	padding: 4rem 2rem;
	max-width: 576px;
	text-align: center;
}
.cdlp-cta-card__title {
	font-size: clamp(1.85rem, 2vw + 1.2rem, 2.5rem);
	margin: 0.5rem auto 2rem !important;
}
/* Keep the eyebrow blue even on copied CTA instances (e.g. in the homepage
   page content) that still carry the has-text-color class — WP's global
   .has-text-color !important rule would otherwise force it to the text color. */
.cdlp-cta-card .cdlp-eyebrow {
	color: var(--wp--preset--color--eyebrow) !important;
}

/* =========================================================
   Footer (rendered via /parts/footer.html)
   ========================================================= */
.wp-site-blocks > footer.wp-block-template-part {
	background-color: var(--wp--preset--color--section);
	padding: 4rem 0;
}
.cdlp-footer-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1fr;
	gap: 4rem;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-footer-grid p,
.cdlp-footer-grid address,
.cdlp-footer-grid a {
	color: var(--wp--preset--color--body);
	font-weight: 400;
	font-style: normal;
}
.cdlp-footer-grid a {
	text-decoration: none;
}
/* Ritmo compatto come il riferimento: niente blockGap tra i paragrafi,
   solo il piccolo margine del design. */
.cdlp-footer-brand > *,
.cdlp-footer-col > * {
	margin-block-start: 0;
}
.cdlp-footer-grid p {
	margin-bottom: 0.3rem;
}
.cdlp-footer-col p {
	margin-bottom: 0;
}
.cdlp-footer-logo img { height: 46px; width: auto; margin-bottom: 1rem; }
/* Align the menu columns with the company-name line (one logo block down:
   46px logo + 16px gap), instead of the default 24px blockGap. */
.cdlp-footer-grid .cdlp-footer-col {
	margin-block-start: 62px;
}
.cdlp-footer-grid .cdlp-footer-company {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	color: var(--wp--preset--color--body);
	margin-bottom: 0.5rem;
}
.cdlp-footer-col a {
	display: inline-block;
	padding-block: 0.4rem;
	position: relative;
}
/* Hover: fade in a 1px accent (brown) underline — text colour stays unchanged. */
.cdlp-footer-col a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.25rem;
	height: 1px;
	background-color: var(--wp--preset--color--accent);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.cdlp-footer-col a:hover::after { opacity: 1; }
.cdlp-footer-legal {
	margin-top: 0.75rem;
	font-size: 0.9rem;
}
.cdlp-footer-legal a { text-decoration: underline; }

.cdlp-footer-download {
	display: block;
	background-color: var(--wp--preset--color--white);
	border-radius: var(--cdlp-radius-md);
	padding: 0.75rem;
}
.cdlp-footer-download__media {
	background-color: var(--wp--preset--color--eyebrow);
	border-radius: calc(var(--cdlp-radius-md) - 0.25rem);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 0.5rem;
	overflow: hidden;
}
.cdlp-footer-download__media img {
	height: 110%;
	width: auto;
	max-width: 100%;
	height: 110%;
	width: auto;
	object-fit: contain;
	transition: transform 0.25s ease;
}
.cdlp-footer-download:hover .cdlp-footer-download__media img { transform: scale(1.05); }
.cdlp-footer-download__info {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	padding: 1rem 0.5rem 0.5rem;
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 600;
	font-size: 0.9375rem;
}
.cdlp-footer-download__info svg {
	width: 18px;
	height: 18px;
	color: var(--wp--preset--color--primary);
	stroke-width: 2.5;
	flex-shrink: 0;
	transition: transform 0.25s ease;
}
.cdlp-footer-download:hover .cdlp-footer-download__info svg { transform: translateX(-4px); }
.cdlp-footer-download__info span {
	transition: transform 0.25s ease;
}
.cdlp-footer-download:hover .cdlp-footer-download__info span { transform: translateX(4px); }

@media (max-width: 900px) {
	.cdlp-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.cdlp-footer-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   Shared: inline arrow icon defaults
   ========================================================= */
.cdlp-icon-arrow { width: 18px; height: 18px; }

/* =========================================================
   Pagina Azienda — hero testuale (custom block)
   ========================================================= */
.cdlp-azienda-hero {
	padding-block: var(--wp--preset--spacing--xl);
	text-align: center;
}

.cdlp-azienda-hero__title {
	font-family: var(--wp--preset--font-family--sora);
	font-size: clamp(2.25rem, 2vw + 1.7rem, 3.4375rem); /* 55px @ desktop */
	line-height: 1.2;
	font-weight: 700;
	color: var(--wp--preset--color--text);
	margin-bottom: var(--wp--preset--spacing--sm);
}

.cdlp-azienda-hero__subtitle {
	color: var(--wp--preset--color--muted);
	font-size: 1.5rem; /* 24px — design */
	line-height: 1.333; /* 32px @ 24px */
	max-width: 760px;
	margin-inline: auto;
	margin-bottom: var(--wp--preset--spacing--xl);
}

.cdlp-azienda-hero__stats {
	background-color: var(--wp--preset--color--section);
	border-radius: 1.5rem;
	padding: 2.4rem var(--wp--preset--spacing--xl); /* block padding: lg 4rem -50% then +20% */
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--md);
	text-align: center;
}

@media (max-width: 640px) {
	.cdlp-azienda-hero__title {
		font-size: 2.2rem;
	}
	.cdlp-azienda-hero__subtitle {
		margin-bottom: var(--wp--preset--spacing--lg);
	}
	.cdlp-azienda-hero__stats {
		grid-template-columns: 1fr;
		padding: var(--wp--preset--spacing--md);
		gap: var(--wp--preset--spacing--sm);
	}
}

/* Pattern variant: neutralize core flow-layout auto margins inside the hero
   so spacing comes only from the explicit margins above. */
.cdlp-azienda-hero > * {
	margin-block-start: 0;
}
.cdlp-azienda-hero__stats > * {
	margin: 0;
}

/* Stats band split out of the hero into its own block (page Azienda):
   il blocco intro (cdlp-page-intro) fornisce già il padding superiore. */
.cdlp-azienda-stats-band {
	padding-block: 0;
}

/* =========================================================
   Pagina Azienda — La nostra storia (pattern)
   ========================================================= */
.cdlp-azienda-storia {
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-azienda-storia__body {
	gap: var(--wp--preset--spacing--xl);
	align-items: flex-start;
	margin-bottom: var(--wp--preset--spacing--xl);
}
.cdlp-azienda-storia__text h2 {
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-azienda-storia__text p:not(.cdlp-eyebrow) {
	color: var(--wp--preset--color--body);
	font-size: 1.125rem;
	line-height: 1.55;
	margin-block: 0 var(--wp--preset--spacing--sm);
}
.cdlp-azienda-storia__text p:last-child {
	margin-bottom: 0;
}
.cdlp-azienda-storia__media .wp-block-image {
	margin: 0;
}
.cdlp-azienda-storia__media img {
	width: 100%;
	aspect-ratio: 9 / 10; /* altezza ridotta ~12% (crop via object-fit) */
	height: auto;
	border-radius: var(--cdlp-radius-md);
	object-fit: cover;
}
.cdlp-azienda-storia__logos {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--lg);
	flex-wrap: wrap;
}
.cdlp-azienda-storia__logos .wp-block-image {
	margin: 0;
}
.cdlp-azienda-storia__logos img {
	height: auto;
	width: auto;
	max-height: 120px;
	max-width: 220px;
	object-fit: contain;
}
.cdlp-azienda-storia__logos .wp-block-image:first-child img {
	max-height: 174px;
}

/* =========================================================
   Pagina Azienda — Cosa facciamo oggi (pattern)
   ========================================================= */
.cdlp-azienda-servizi {
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-azienda-servizi__body {
	gap: var(--wp--preset--spacing--xl);
	align-items: stretch;
}
/* Immagine sinistra ~10% più larga (colonne 55/45 invece di 50/50).
   Specificità alzata per battere .wp-block-columns .wp-block-column di core. */
.wp-block-columns.cdlp-azienda-servizi__body .cdlp-azienda-servizi__media {
	flex-grow: 0;
	flex-basis: 55%;
}
.wp-block-columns.cdlp-azienda-servizi__body .cdlp-azienda-servizi__text {
	flex-grow: 0;
	flex-basis: 45%;
	/* Colonna destra centrata verticalmente rispetto all'immagine più alta. */
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.cdlp-azienda-servizi__media .wp-block-image {
	margin: 0;
	height: 100%;
}
.cdlp-azienda-servizi__media img {
	width: 100%;
	height: 100%;
	min-height: 754px; /* ~10% + ~10% più alta */
	object-fit: cover;
	border-radius: var(--cdlp-radius-md);
}
.cdlp-azienda-servizi__text .cdlp-eyebrow {
	margin-bottom: 1.5rem; /* eyebrow "Servizi": stesso gap (24px) degli altri titoli;
	                          la colonna è flex quindi i margini non collassano. */
}
.cdlp-azienda-servizi__text h2 {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-azienda-servizi__lead {
	color: var(--wp--preset--color--body);
	font-size: 1.0625rem;
	line-height: 1.5;
	margin-block: 0 var(--wp--preset--spacing--md);
}
.cdlp-azienda-servizi__list {
	list-style: none;
	padding-left: 0;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin-block: 0 var(--wp--preset--spacing--lg);
}
.cdlp-azienda-servizi__list li {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	font-size: 1.3125rem;
	color: var(--wp--preset--color--body);
	margin: 0;
}
.cdlp-azienda-servizi__list li::before {
	content: "";
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"%3E%3Ccircle cx="11" cy="11" r="11" fill="%2300408f"/%3E%3Cpolyline points="6,11.5 9.5,15 16,8" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E') no-repeat center / contain;
}
@media (max-width: 781px) {
	.cdlp-azienda-servizi__media {
		min-height: 320px;
	}
}

/* =========================================================
   Pagina Azienda — La nostra evoluzione / timeline (pattern)
   ========================================================= */
.cdlp-azienda-evoluzione {
	background-color: var(--wp--preset--color--section);
	/* Full-bleed background: break out of the constrained content container
	   (same technique as .cdlp-progetti). Children stay constrained (1100px)
	   by the group's own layout rules. */
	width: auto;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-block: var(--wp--preset--spacing--xl);
	padding-inline: var(--wp--preset--spacing--sm);
}
.cdlp-azienda-evoluzione__head {
	text-align: center;
	max-width: 902px; /* 820px +10% */
	margin-inline: auto;
	margin-bottom: var(--wp--preset--spacing--xl);
}
.cdlp-azienda-evoluzione__title {
	font-size: clamp(2.25rem, 2vw + 1.7rem, 3.4375rem);
	line-height: 1.2;
	font-weight: 700;
	color: var(--wp--preset--color--text);
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-azienda-evoluzione__lead {
	color: var(--wp--preset--color--body);
	font-size: 1.25rem;
	line-height: 1.55;
	margin-block-start: 0;
}

/* Timeline: linea verticale terracotta al centro */
.cdlp-azienda-evoluzione__timeline {
	position: relative;
}
.cdlp-azienda-evoluzione__timeline::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 1.5px;
	background: linear-gradient(
		to bottom,
		transparent 0%,
		var(--wp--preset--color--accent) 8%,
		var(--wp--preset--color--accent) 92%,
		transparent 100%
	);
	transform: translateX(-50%);
}

/* Ogni riga: anno | dot | contenuto */
.cdlp-evoluzione-item {
	display: grid;
	grid-template-columns: 1fr 20px 1fr;
	column-gap: var(--wp--preset--spacing--lg);
	align-items: start;
	padding-block: 3.36rem;
}
.cdlp-evoluzione-item > * {
	margin-block-start: 0;
}
.cdlp-evoluzione-item__year {
	text-align: right;
	font-family: var(--wp--preset--font-family--sora);
	font-size: 2.5rem;
	font-weight: 600;
	color: var(--wp--preset--color--text);
	line-height: 1;
}
/* Dot: core separator ristilizzato */
hr.cdlp-evoluzione-item__dot {
	border: 0;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent);
	position: relative;
	z-index: 1;
	justify-self: center;
	margin: 0.25em 0 0;
	box-shadow: 0 0 0 5px rgba(178, 105, 45, 0.22);
}
.cdlp-evoluzione-item__content > * {
	margin-block-start: 0;
}
.cdlp-evoluzione-item__title {
	font-family: var(--wp--preset--font-family--sora);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--text);
	line-height: 1.3;
	margin-bottom: 0.5rem;
}
.cdlp-evoluzione-item__text {
	color: var(--wp--preset--color--body);
	font-size: 1.1rem;
	line-height: 1.5;
	margin-bottom: var(--wp--preset--spacing--md);
}
.cdlp-evoluzione-item__img {
	margin: 0;
}
.cdlp-evoluzione-item__img img {
	width: 100%;
	max-width: 430px;
	height: 215px;
	object-fit: cover;
	border-radius: var(--cdlp-radius-md);
	display: block;
}

@media (max-width: 768px) {
	.cdlp-azienda-evoluzione__timeline::before {
		left: 10px;
	}
	.cdlp-evoluzione-item {
		grid-template-columns: 20px 1fr;
		column-gap: var(--wp--preset--spacing--sm);
		padding-block: var(--wp--preset--spacing--lg);
	}
	.cdlp-evoluzione-item__year {
		grid-column: 1 / -1;
		text-align: left;
		padding-left: 2.5rem;
		margin-bottom: var(--wp--preset--spacing--xs);
		font-size: clamp(1.75rem, 5vw, 2.5rem);
	}
	hr.cdlp-evoluzione-item__dot {
		grid-column: 1;
		grid-row: 2;
		margin-top: 0.3rem;
	}
	.cdlp-evoluzione-item__content {
		grid-column: 2;
		grid-row: 2;
	}
}

/* =========================================================
   Intro pagina interna (pattern) — H1 + sottotitolo centrati
   ========================================================= */
.cdlp-page-intro {
	/* Consistent internal-page intro across pages (reference: /progetti/):
	   tight top, moderate bottom. is-flush still overrides the bottom to 0. */
	padding-block-start: 2.24rem;
	padding-block-end: 4.8rem;
	text-align: center;
}
.cdlp-page-intro > * {
	margin-block-start: 0;
}
.cdlp-page-intro__title {
	font-size: clamp(2.25rem, 2vw + 1.7rem, 3.4375rem); /* 55px @ desktop */
	line-height: 1.2;
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-page-intro__subtitle {
	color: var(--wp--preset--color--muted);
	font-size: 1.5rem; /* 24px — design */
	line-height: 1.333;
	max-width: 864px;
	margin-inline: auto;
}
@media (max-width: 640px) {
	.cdlp-page-intro__title {
		font-size: 2.2rem;
	}
}

/* Certificazioni grid — variante "is-plain" (pagina Certificazioni):
   niente intestazione né banda colorata, griglia su fondo bianco. */
.cdlp-certificazioni.is-plain { padding-block: 0 var(--wp--preset--spacing--xl); }
.cdlp-certificazioni.is-plain .cdlp-certificazioni__head { display: none; }
.cdlp-certificazioni.is-plain .cdlp-certificazioni__band {
	background-color: transparent;
	margin-top: 0;
	padding-block: 0;
}

/* Marquee in blocchi core (pattern "Testo scorrevole"): reset dei margini dei
   paragrafi-item e breakout full-bleed quando usato nel contenuto pagina. */
.cdlp-marquee__track > * {
	margin: 0;
}
.cdlp-marquee.is-bleed {
	width: auto;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* Card CTA: il Cover core forza color:inherit (bianco) sui titoli interni —
   dentro la card bianca il titolo deve restare scuro. */
.cdlp-cta-card,
.wp-block-cover .cdlp-cta-card__title:not(.has-text-color) {
	color: var(--wp--preset--color--heading);
}

/* Marquee full-bleed: annulla anche il max-width del layout constrained
   (i gruppi senza alignfull restano altrimenti a 1280px). */
.cdlp-marquee.is-bleed {
	max-width: none !important;
}

/* Il contenuto pagina termina spesso con sezioni full-bleed (CTA banner,
   marquee): il footer deve attaccarsi senza il blockGap di wp-site-blocks. */
.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}

/* =========================================================
   Single Progetto (templates/single-progetto.html)
   ========================================================= */
.cdlp-progetto-head {
	padding-block: 2.24rem 1.25rem;
}
.cdlp-progetto-head .wp-block-post-title,
.cdlp-progetto__title {
	font-family: var(--wp--preset--font-family--sora);
	font-size: clamp(2rem, 2vw + 1.5rem, 3.125rem);
	line-height: 1.15;
	margin: 0;
}
/* Project image gallery (block: costruzioni-dallape/progetto-gallery) */
.cdlp-progetto-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
	margin-block: 2.5rem 3rem;
}
.cdlp-progetto-gallery__item {
	margin: 0;
}
.cdlp-progetto-gallery__img {
	display: block;
	width: 100%;
	/* height:auto overrides the img width/height attribute presentation hint,
	   so aspect-ratio drives the tile height (not the intrinsic ratio). */
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--cdlp-radius-md);
}

/* =========================================================
   Pagina Contatti (pattern) — hero: varianti dell'intro pagina
   ========================================================= */
.cdlp-page-intro.is-flush {
	padding-block-end: 0;
}
/* The reference intro spacing (formerly progetti-only "is-tight-top") and the
   864px subtitle are now the base defaults, so every page's intro matches.
   is-tight-top / is-wide remain as no-ops for existing page markup; is-flush
   still zeroes the bottom padding (e.g. Contatti). */

/* =========================================================
   Pagina Contatti — card info + form (pattern)
   ========================================================= */
.cdlp-contatti-info {
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-contatti-info > *,
.cdlp-contatti-info__top > *,
.cdlp-contatti-card > *,
.cdlp-contatti-form-card > * {
	margin-block-start: 0;
}
.cdlp-contatti-info__top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}
.cdlp-contatti-card {
	background-color: var(--wp--preset--color--section);
	border-radius: var(--cdlp-radius-md);
	padding: 2rem var(--wp--preset--spacing--md);
	text-align: center;
}
.cdlp-contatti-card__icon,
.cdlp-contatti-form-card__icon {
	width: 40px;
	height: 40px;
	color: var(--wp--preset--color--accent);
	margin-inline: auto;
	margin-bottom: var(--wp--preset--spacing--sm);
	display: block;
}
.cdlp-contatti-card__label {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--wp--preset--color--text);
	margin-bottom: 0.4rem;
}
.cdlp-contatti-card__value {
	color: var(--wp--preset--color--muted);
	font-size: 1rem;
	line-height: 1.4;
}
.cdlp-contatti-card__value a {
	color: inherit;
}
.cdlp-contatti-card__value a:hover {
	color: var(--wp--preset--color--accent);
}

/* Card form */
.cdlp-contatti-form-card {
	background-color: var(--wp--preset--color--section);
	border-radius: var(--cdlp-radius-md);
	padding: 2rem var(--wp--preset--spacing--md);
	text-align: center;
}
.cdlp-contatti-form-card__title {
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--wp--preset--color--text);
	margin-bottom: 3rem;
}

/* Fluent Forms dentro la card: allineato al design del form statico */
.cdlp-contatti-form-card .fluentform {
	max-width: 640px;
	margin-inline: auto;
	text-align: left;
}
.cdlp-contatti-form-card .ff-el-input--label label {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--wp--preset--color--text);
}
.cdlp-contatti-form-card .ff-el-input--label.ff-el-is-required.asterisk-right label:after {
	color: var(--wp--preset--color--accent);
}
.cdlp-contatti-form-card .ff-el-form-control {
	background-color: var(--wp--preset--color--white);
	border: 2px solid transparent;
	border-radius: 0.6rem;
	padding: 0.875rem 1rem;
	font-size: 1rem;
	color: var(--wp--preset--color--text);
	width: 100%;
	outline: none;
	transition: border-color 0.2s ease;
	box-shadow: none;
}
.cdlp-contatti-form-card .ff-el-form-control:hover,
.cdlp-contatti-form-card .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--accent);
}
.cdlp-contatti-form-card textarea.ff-el-form-control {
	resize: vertical;
	min-height: 140px;
}
.cdlp-contatti-form-card .ff-btn-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 60px;
	padding: 0 2rem;
	background-color: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--white) !important;
	border: none !important;
	border-radius: var(--cdlp-radius-pill) !important;
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.25s ease;
}
.cdlp-contatti-form-card .ff-btn-submit:hover {
	background-color: var(--wp--preset--color--accent-dark);
}

@media (max-width: 640px) {
	.cdlp-contatti-info__top {
		grid-template-columns: 1fr;
	}
	.cdlp-contatti-form-card {
		padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--sm);
	}
}

/* =========================================================
   Pagina Contatti — Dati societari (pattern)
   ========================================================= */
.cdlp-contatti-societa {
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-contatti-societa__body {
	gap: var(--wp--preset--spacing--xl);
}
.cdlp-contatti-societa__media .wp-block-image {
	margin: 0;
	border-radius: 1.5rem;
	overflow: hidden;
	aspect-ratio: 668 / 593;
}
.cdlp-contatti-societa__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cdlp-contatti-societa__text h2 {
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-contatti-societa__data {
	margin-bottom: var(--wp--preset--spacing--lg);
}
.cdlp-contatti-societa__data-item {
	color: var(--wp--preset--color--body);
	font-size: 1rem;
	line-height: 1.5;
	padding-block: 0.5rem;
	margin: 0;
}

/* =========================================================
   Pagina Contatti — Trasparenza (pattern)
   ========================================================= */
.cdlp-contatti-trasparenza {
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-contatti-trasparenza > * {
	margin-block-start: 0;
}
.cdlp-contatti-trasparenza__title {
	font-size: clamp(1.75rem, 2vw + 1.2rem, 2.75rem);
	font-weight: 700;
	color: var(--wp--preset--color--text);
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-contatti-trasparenza__text {
	color: var(--wp--preset--color--body);
	font-size: 1rem;
	line-height: 1.7;
}
.cdlp-contatti-trasparenza__text a {
	color: var(--wp--preset--color--body);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-underline-offset: 3px;
	word-break: break-all;
}
.cdlp-contatti-trasparenza__text a:hover {
	color: var(--wp--preset--color--accent);
}

/* =========================================================
   Pagina Contatti — Lavora con noi (pattern)
   ========================================================= */
.cdlp-contatti-lavora {
	padding-block: var(--wp--preset--spacing--xl);
	scroll-margin-top: calc(var(--cdlp-header-height) + 1rem);
}
.cdlp-contatti-lavora__card {
	background-color: var(--wp--preset--color--section);
	border-radius: 1.5rem;
	padding: 3rem;
	max-width: 1060px;
	margin-inline: auto;
}
.cdlp-contatti-lavora__card > * {
	margin-block-start: 0;
}
.cdlp-contatti-lavora__title {
	font-size: clamp(1.75rem, 2vw + 1.2rem, 2.75rem);
	font-weight: 700;
	color: var(--wp--preset--color--text);
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-contatti-lavora__text {
	color: var(--wp--preset--color--body);
	font-size: 1rem;
	line-height: 1.6;
	margin-bottom: var(--wp--preset--spacing--sm);
}
.cdlp-contatti-lavora__positions-label {
	color: var(--wp--preset--color--body);
	font-size: 1rem;
	margin-bottom: 0.75rem;
}
hr.cdlp-contatti-lavora__divider {
	border: 0;
	width: 100%;
	max-width: none;
	height: 1px;
	background-color: var(--wp--preset--color--muted);
	margin-block: 1.5rem;
}
.cdlp-contatti-lavora__email {
	color: var(--wp--preset--color--body);
	font-size: 1rem;
}
.cdlp-contatti-lavora__email a {
	color: var(--wp--preset--color--body);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-underline-offset: 3px;
}
.cdlp-contatti-lavora__email a:hover {
	color: var(--wp--preset--color--accent);
}

/* Check-list condivisa (spunte blu) — stessa resa della lista servizi */
.cdlp-check-list {
	list-style: none;
	padding-left: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-block: 0;
}
.cdlp-check-list li {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	font-size: 1rem;
	color: var(--wp--preset--color--body);
	margin: 0;
}
.cdlp-check-list li::before {
	content: "";
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"%3E%3Ccircle cx="11" cy="11" r="11" fill="%2300408f"/%3E%3Cpolyline points="6,11.5 9.5,15 16,8" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E') no-repeat center / contain;
}

/* =========================================================
   Progetti — griglia con filtri (custom block, archivio)
   ========================================================= */
.cdlp-progetti-grid {
	background-color: var(--wp--preset--color--section);
	/* Full-bleed come .cdlp-progetti (align:full capped nel layout constrained) */
	width: auto;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-block: var(--wp--preset--spacing--xl);
}
.cdlp-progetti-grid__inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1rem;
}
.cdlp-progetti-grid__filters {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1.242rem;
	margin-bottom: var(--wp--preset--spacing--lg);
}
.cdlp-filtro-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 60px;
	padding-inline: 1.75rem;
	border-radius: var(--cdlp-radius-pill);
	font-family: var(--wp--preset--font-family--sora);
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1;
	border: 1px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	background-color: transparent;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.cdlp-filtro-btn:hover,
.cdlp-filtro-btn.is-active {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}
.cdlp-progetti-grid__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.28rem; /* spacing-md (2rem) ridotto ~36% (20% + 20%) */
}
.cdlp-progetti-grid__more {
	display: flex;
	justify-content: center;
	margin-top: var(--wp--preset--spacing--lg);
}
.cdlp-progetti-grid__more:has(> button[hidden]) {
	display: none;
}
.cdlp-filtri-select-wrap {
	display: none;
}

@media (max-width: 1024px) {
	.cdlp-progetti-grid__list {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 640px) {
	.cdlp-progetti-grid__filters {
		display: none;
	}
	.cdlp-filtri-select-wrap {
		display: block;
		position: relative;
		margin-bottom: var(--wp--preset--spacing--lg);
	}
	.cdlp-filtri-select {
		appearance: none;
		-webkit-appearance: none;
		width: 100%;
		height: 56px;
		padding-inline: 1.25rem 3rem;
		border-radius: var(--cdlp-radius-pill);
		border: 2px solid var(--wp--preset--color--accent);
		font-family: var(--wp--preset--font-family--sora);
		font-weight: 600;
		font-size: 1rem;
		color: var(--wp--preset--color--accent);
		background-color: transparent;
		cursor: pointer;
	}
	.cdlp-filtri-select:focus {
		outline: none;
		background-color: color-mix(in srgb, var(--wp--preset--color--accent) 6%, transparent);
	}
	.cdlp-filtri-select__chevron {
		position: absolute;
		right: 1.25rem;
		top: 50%;
		transform: translateY(-50%);
		width: 20px;
		height: 20px;
		color: var(--wp--preset--color--accent);
		pointer-events: none;
	}
	.cdlp-progetti-grid__list {
		grid-template-columns: 1fr;
	}
}

/* Filtri: .cdlp-card definisce un proprio display, che vince
   sull'attributo hidden — qui ripristiniamo la semantica. */
.cdlp-progetti-grid__list .cdlp-card[hidden] {
	display: none;
}
