/* ==========================================================================
   Castrogiovanni — stili del tema
   ========================================================================== */

:root {
	--cg-brick: var(--wp--preset--color--brick, #AE1A20);
	--cg-brick-dark: var(--wp--preset--color--brick-dark, #7D0F14);
	--cg-ink: var(--wp--preset--color--ink, #121212);
	--cg-ink-soft: var(--wp--preset--color--ink-soft, #1F1F21);
	--cg-stone: var(--wp--preset--color--stone, #F2F2F3);
	--cg-sand: var(--wp--preset--color--sand, #D9DADD);
	--cg-base: var(--wp--preset--color--base, #FFFFFF);
	--cg-line: var(--wp--preset--color--line, #DDDEE1);
	--cg-graphite: var(--wp--preset--color--graphite, #5E6166);
	--cg-serif: var(--wp--preset--font-family--serif);
	--cg-sans: var(--wp--preset--font-family--sans);
	--cg-ease: cubic-bezier(.22, .8, .2, 1);
	--cg-header-h: 84px;
	--cg-topbar-h: 38px;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
::selection { background: var(--cg-brick); color: #fff; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-site-blocks > main { margin-block-start: 0; }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--cg-brick); outline-offset: 3px; }
.screen-reader-text:focus { background: #fff; color: var(--cg-ink); }

/* ---------- Tipografia di supporto ---------------------------------------- */
.is-style-cg-eyebrow,
.cg-eyebrow {
	font-family: var(--cg-sans) !important;
	font-size: .75rem !important;
	font-weight: 700 !important;
	letter-spacing: .22em !important;
	text-transform: uppercase;
	color: var(--cg-brick);
	line-height: 1.4 !important;
	display: flex;
	align-items: center;
	gap: .9rem;
}
.is-style-cg-eyebrow::before,
.cg-eyebrow::before {
	content: "";
	width: 2.25rem;
	height: 1px;
	background: currentColor;
	flex: none;
}
.has-text-align-center.is-style-cg-eyebrow,
.has-text-align-center.cg-eyebrow { justify-content: center; }
.cg-on-dark .is-style-cg-eyebrow, .is-style-cg-dark .is-style-cg-eyebrow,
.has-ink-background-color .is-style-cg-eyebrow { color: #F2555B; }

.cg-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--cg-ink-soft); }
.cg-serif-italic, em.cg-accent { font-family: var(--cg-serif); font-style: italic; }
h1 em, h2 em, h3 em { font-style: italic; color: var(--cg-brick); font-weight: 400; }
.has-ink-background-color h1 em, .has-ink-background-color h2 em, .is-style-cg-dark h2 em, .cg-on-dark h2 em, .cg-hero h1 em { color: #F2555B; }
.cg-muted { color: var(--cg-graphite); }

/* ---------- Pulsanti ------------------------------------------------------- */
.wp-element-button, .wp-block-button__link { transition: background-color .35s var(--cg-ease), color .35s var(--cg-ease), border-color .35s var(--cg-ease), transform .35s var(--cg-ease); }
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-cg-line > .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-cg-line > .wp-block-button__link:hover { background: var(--cg-brick); border-color: var(--cg-brick); color: #fff; }
.wp-block-button.is-style-cg-line > .wp-block-button__link { padding-left: 0; padding-right: 0; border: 0; border-bottom: 1px solid currentColor; }
.wp-block-button.is-style-cg-line > .wp-block-button__link:hover { background: transparent; color: var(--cg-brick); }
.wp-block-button.is-style-cg-line > .wp-block-button__link::after { content: "  →"; }

/* ---------- Header --------------------------------------------------------- */
.cg-header-wrap { position: relative; z-index: 100; }
.cg-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	color: #fff;
	transition: background-color .4s var(--cg-ease), transform .45s var(--cg-ease), box-shadow .4s;
}
.admin-bar .cg-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cg-header { top: 46px; } }
body:not(.cg-has-hero) .cg-header,
.cg-header.is-stuck { background: rgba(18, 18, 18, .97); box-shadow: 0 1px 0 rgba(255,255,255,.06); }
/* Niente backdrop-filter/transform sull'header: renderebbero l'header il contenitore del menu mobile (position: fixed),
   che verrebbe tagliato all'altezza dell'header. */
.cg-header.is-hidden { transform: translateY(-100%); }
.cg-header:has(.is-menu-open), .cg-header.is-menu-open { transform: none !important; transition: none; }
body:not(.cg-has-hero) .wp-site-blocks > main { padding-top: calc(var(--cg-header-h) + var(--cg-topbar-h)); }

.cg-topbar {
	min-height: var(--cg-topbar-h);
	font-size: .75rem;
	letter-spacing: .04em;
	border-bottom: 1px solid rgba(255,255,255,.12);
	color: rgba(255,255,255,.78);
	transition: margin .4s var(--cg-ease), opacity .3s;
}
.cg-topbar p { margin: 0; }
.cg-topbar a { color: inherit; text-decoration: none; }
.cg-topbar a:hover { color: #fff; }
.cg-topbar .cg-topbar__certs { letter-spacing: .14em; text-transform: uppercase; font-weight: 600; font-size: .6875rem; color: rgba(255,255,255,.62); }
.cg-header.is-stuck .cg-topbar { margin-top: calc(var(--cg-topbar-h) * -1); opacity: 0; pointer-events: none; }
@media (max-width: 900px) { .cg-topbar { display: none !important; } :root { --cg-topbar-h: 0px; } }

.cg-header__bar { min-height: var(--cg-header-h); transition: min-height .4s var(--cg-ease); }
.cg-header.is-stuck .cg-header__bar { min-height: 68px; }
.cg-header .wp-block-shortcode, .cg-header p.cg-logo-p { margin: 0; }

/* Logo */
.cg-logo { display: inline-flex; align-items: center; gap: .85rem; text-decoration: none; color: inherit; line-height: 1; }
.cg-logo__mark { width: 40px; height: 48px; flex: none; overflow: visible; transition: transform .5s var(--cg-ease), width .4s, height .4s; }
.cg-header.is-stuck .cg-logo__mark { width: 34px; height: 41px; }
.cg-logo__text { display: flex; flex-direction: column; gap: .28rem; border-left: 1px solid rgba(255,255,255,.28); padding-left: .85rem; }
.cg-logo--dark .cg-logo__text { border-color: var(--cg-line); }
.cg-logo__kicker { font-family: var(--cg-sans); font-size: .5625rem; letter-spacing: .4em; text-transform: uppercase; opacity: .7; }
.cg-logo__name { font-family: var(--cg-serif); font-size: 1.32rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.cg-logo__name small { font-size: .7em; letter-spacing: .08em; }
.cg-logo__claim { font-family: var(--cg-serif); font-style: italic; font-size: .82rem; opacity: .78; white-space: nowrap; }
.cg-logo .cg-tower path { transform-box: fill-box; transform-origin: 50% 100%; transition: transform .6s var(--cg-ease); }
.cg-logo:hover .cg-tower .t1 { transform: scaleY(1.12); }
.cg-logo:hover .cg-tower .t2 { transform: scaleY(1.08); transition-delay: .05s; }
.cg-logo:hover .cg-tower .t3 { transform: scaleY(1.05); transition-delay: .1s; }
@media (max-width: 480px) { .cg-logo__claim, .cg-logo__kicker { display: none; } .cg-logo__name { font-size: 1.05rem; } }

/* Navigazione */
.cg-header .wp-block-navigation { gap: 0; }
.cg-header .wp-block-navigation .wp-block-navigation-item__content { padding: .5rem .8rem; position: relative; color: inherit; text-decoration: none; }
.cg-header .wp-block-navigation .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: .8rem; right: .8rem; bottom: .15rem; height: 1px; background: #F2555B;
	transform: scaleX(0); transform-origin: left; transition: transform .45s var(--cg-ease);
}
.cg-header .wp-block-navigation .wp-block-navigation-item__content:hover::after,
.cg-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.cg-header .cg-cta .wp-block-button__link { padding: .85em 1.4em; font-size: .72rem; }
@media (max-width: 1100px) { .cg-header .cg-cta { display: none; } }
.cg-header .wp-block-navigation__responsive-container-open, .cg-header .wp-block-navigation__responsive-container-close { color: #fff; }
.cg-header .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important; inset: 0 !important; box-sizing: border-box; width: 100vw; height: 100vh; height: 100dvh; overflow-y: auto;
	background: var(--cg-ink) !important; color: #fff !important; padding: 1.25rem clamp(1.25rem, 5vw, 3rem) 2rem !important;
}
.admin-bar .cg-header .wp-block-navigation__responsive-container.is-menu-open { top: 46px !important; height: calc(100dvh - 46px); }
.cg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem; align-items: flex-start; }
.cg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; align-items: stretch; }
.cg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,.1); }
.cg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--cg-serif); font-size: clamp(1.3rem, 5.4vw, 1.75rem); line-height: 1.2; text-transform: none; letter-spacing: 0; font-weight: 500; padding: .7rem 0; width: 100%;
}
.cg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.cg-header .wp-block-navigation__responsive-container-close { top: .25rem; right: 0; }
.cg-header .wp-block-navigation__responsive-container-close svg, .cg-header .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }

/* ---------- Intro con il marchio ------------------------------------------ */
.cg-intro { display: none; }
.cg-intro-run .cg-intro {
	display: block; position: fixed; inset: 0; z-index: 99999; pointer-events: auto; cursor: pointer;
}
.cg-intro__panel { position: absolute; top: 0; bottom: 0; width: 50.5%; background: var(--cg-ink); transition: transform 1.05s cubic-bezier(.77,0,.18,1); }
.cg-intro__panel--l { left: 0; }
.cg-intro__panel--r { right: 0; }
.cg-intro__inner { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.4rem; color: #fff; transition: opacity .5s, transform .9s var(--cg-ease); }
.cg-intro__tower { width: 92px; height: 110px; overflow: hidden; }
.cg-intro__tower path { transform: translateY(105%); animation: cgRise 1s var(--cg-ease) forwards; }
.cg-intro__tower .t1 { animation-delay: .15s; }
.cg-intro__tower .t2 { animation-delay: .32s; }
.cg-intro__tower .t3 { animation-delay: .5s; }
.cg-intro__word, .cg-intro__claim { overflow: hidden; }
.cg-intro__inner { padding: 0 1rem; box-sizing: border-box; text-align: center; }
.cg-intro__word { max-width: 100%; }
/* La spaziatura cresce con lo schermo: su mobile la parola resta entro i margini */
.cg-intro__word span { display: block; font-family: var(--cg-serif); font-size: clamp(1.35rem, 6.2vw, 3.6rem); letter-spacing: clamp(.1em, 1.6vw, .32em); white-space: nowrap; text-transform: uppercase; padding-left: clamp(.1em, 1.6vw, .32em); transform: translateY(110%); animation: cgUp .9s var(--cg-ease) .85s forwards; }
.cg-intro__claim span { display: block; font-family: var(--cg-serif); font-style: italic; font-size: 1.05rem; color: rgba(255,255,255,.7); transform: translateY(110%); animation: cgUp .9s var(--cg-ease) 1.1s forwards; }
.cg-intro.is-done .cg-intro__panel--l { transform: translateX(-101%); }
.cg-intro.is-done .cg-intro__panel--r { transform: translateX(101%); }
.cg-intro.is-done .cg-intro__inner { opacity: 0; transform: scale(.94); }
.cg-intro.is-done { pointer-events: none; }
@keyframes cgRise { to { transform: translateY(0); } }
@keyframes cgUp { to { transform: translateY(0); } }

/* ---------- Hero / slider -------------------------------------------------- */
.cg-hero { position: relative; min-height: 100vh; min-height: 100svh; color: #fff; overflow: hidden; background: var(--cg-ink); isolation: isolate; }
.cg-hero.wp-block-group { padding: 0 !important; }
.cg-slider { position: absolute !important; inset: 0; margin: 0 !important; z-index: 0; }
.cg-slider > .wp-block-cover {
	position: absolute !important; inset: 0; margin: 0 !important; min-height: 100% !important; padding: 0 !important;
	opacity: 0; transition: opacity 1.4s ease; align-items: flex-end;
}
.cg-slider > .wp-block-cover.is-active { opacity: 1; z-index: 1; }
.cg-slider > .wp-block-cover:first-child { opacity: 1; }
.js .cg-slider > .wp-block-cover:first-child:not(.is-active) { opacity: 0; }
.cg-slider .wp-block-cover__image-background { transform: scale(1.12); transition: transform 8s linear; }
.cg-slider .is-active .wp-block-cover__image-background { transform: scale(1); }
.cg-slider .wp-block-cover__background { background: linear-gradient(100deg, rgba(14,14,15,.86) 0%, rgba(14,14,15,.55) 45%, rgba(14,14,15,.2) 100%) !important; opacity: 1 !important; }
.cg-slider .wp-block-cover__inner-container { position: absolute; right: clamp(1rem, 4vw, 3rem); bottom: 6.5rem; width: auto !important; text-align: right; z-index: 2; }
.cg-slide-caption { margin: 0 !important; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.75); opacity: 0; transform: translateY(10px); transition: all .8s var(--cg-ease) .6s; }
.cg-slide-caption strong { display: block; font-family: var(--cg-serif); font-size: 1.35rem; letter-spacing: 0; text-transform: none; font-weight: 500; color: #fff; margin-bottom: .2rem; }
.cg-slider .is-active .cg-slide-caption { opacity: 1; transform: none; }
@media (max-width: 781px) { .cg-slider .wp-block-cover__inner-container { left: 1rem; right: 1rem; bottom: 5.5rem; text-align: left; } }

.cg-hero__content { position: relative; z-index: 3; min-height: 100vh; min-height: 100svh; display: flex !important; flex-direction: column; justify-content: center; padding-top: calc(var(--cg-header-h) + var(--cg-topbar-h) + 2rem) !important; padding-bottom: 9rem !important; }
.cg-hero h1 { color: #fff; font-size: clamp(2.9rem, 7.4vw, 6.6rem); line-height: .98; font-weight: 400; max-width: 13ch; margin-top: 1.2rem; }
.cg-hero .cg-lead { color: rgba(255,255,255,.82); max-width: 40rem; }
.cg-hero .is-style-cg-eyebrow { color: #F2555B; }
.cg-hero__ui { position: absolute; z-index: 4; left: 0; right: 0; bottom: 2.2rem; padding: 0 clamp(1rem, 4vw, 3rem); display: flex; align-items: center; gap: 1.5rem; max-width: 1280px; margin: 0 auto; }
@media (min-width: 1376px) { .cg-hero__ui { left: 50%; transform: translateX(-50%); width: 1280px; padding: 0; } }
.cg-hero__count { font-family: var(--cg-serif); font-size: 1.1rem; letter-spacing: .1em; min-width: 4.5rem; }
.cg-hero__count b { font-size: 1.6rem; font-weight: 500; }
.cg-hero__bar { flex: 1; max-width: 260px; height: 1px; background: rgba(255,255,255,.25); position: relative; overflow: hidden; }
.cg-hero__bar i { position: absolute; inset: 0; background: #fff; transform-origin: left; transform: scaleX(0); }
.cg-hero__bar i.run { animation: cgBar var(--cg-slide, 6s) linear forwards; }
@keyframes cgBar { to { transform: scaleX(1); } }
.cg-hero__btn { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; transition: background .3s, border-color .3s; }
.cg-hero__btn:hover { background: var(--cg-brick); border-color: var(--cg-brick); }
.cg-hero__btn svg { width: 16px; height: 16px; }
.cg-scrollcue { margin-left: auto; font-size: .6875rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.7); text-decoration: none; display: flex; align-items: center; gap: .8rem; }
.cg-scrollcue::after { content: ""; width: 1px; height: 46px; background: linear-gradient(#fff, transparent); animation: cgCue 2.2s ease-in-out infinite; }
@keyframes cgCue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@media (max-width: 600px) { .cg-scrollcue { display: none; } }

/* Grande torre decorativa nel hero (marchio disegnato) */
.cg-hero__mark { position: absolute; z-index: 2; right: -4vw; bottom: -2vw; width: min(46vw, 640px); opacity: .12; pointer-events: none; }
.cg-hero__mark path { fill: none !important; stroke: #fff; stroke-width: .35; stroke-dasharray: 400; stroke-dashoffset: 400; animation: cgDraw 3.2s var(--cg-ease) .4s forwards; }
.cg-intro-run .cg-hero__mark path { animation-delay: 2.6s; }
@keyframes cgDraw { to { stroke-dashoffset: 0; } }

/* ---------- Intestazione pagine ------------------------------------------- */
.cg-pagehero.wp-block-cover { min-height: clamp(420px, 62vh, 640px) !important; padding-top: calc(var(--cg-header-h) + var(--cg-topbar-h) + 2rem) !important; padding-bottom: clamp(2.5rem, 6vw, 4.5rem) !important; align-items: flex-end; overflow: hidden; }
.cg-pagehero .wp-block-cover__background { background: linear-gradient(180deg, rgba(14,14,15,.55) 0%, rgba(14,14,15,.35) 40%, rgba(14,14,15,.88) 100%) !important; opacity: 1 !important; }
.cg-pagehero:not(:has(img)) { background: var(--cg-ink) radial-gradient(circle at 80% 20%, rgba(174,26,32,.35), transparent 60%); }
.cg-pagehero h1 { color: #fff; font-size: clamp(2.6rem, 6.5vw, 5.4rem); font-weight: 400; margin: .6rem 0 0; }
.cg-pagehero .is-style-cg-eyebrow { color: #F2555B; }
.cg-pagehero .wp-block-cover__image-background { animation: cgZoom 14s ease-out both; }
.cg-pagehero::after {
	content: ""; position: absolute; right: clamp(1rem, 4vw, 3rem); bottom: -8px; width: 150px; height: 180px; z-index: 1; opacity: .16; pointer-events: none;
	background: #fff; -webkit-mask: url("../img/torre-mask.svg") no-repeat center / contain; mask: url("../img/torre-mask.svg") no-repeat center / contain;
}
@keyframes cgZoom { from { transform: scale(1.12); } to { transform: scale(1); } }

/* ---------- Sezioni -------------------------------------------------------- */
.cg-section { position: relative; }
.is-style-cg-dark, .cg-on-dark { background: var(--cg-ink); color: rgba(255,255,255,.84); }
.is-style-cg-dark h1, .is-style-cg-dark h2, .is-style-cg-dark h3, .is-style-cg-dark h4,
.cg-on-dark h1, .cg-on-dark h2, .cg-on-dark h3, .cg-on-dark h4 { color: #fff; }
.is-style-cg-dark a:not(.wp-element-button), .cg-on-dark a:not(.wp-element-button) { color: #FF8A8E; }
/* Testi secondari leggibili su fondo scuro (le classi pensate per fondo chiaro usano grigi scuri) */
.is-style-cg-dark .cg-lead, .cg-on-dark .cg-lead, .has-ink-background-color .cg-lead { color: rgba(255,255,255,.82); }
.is-style-cg-dark .cg-sign, .is-style-cg-dark .cg-muted, .is-style-cg-dark .cg-kv, .is-style-cg-dark .cg-placeholder-note,
.cg-on-dark .cg-sign, .cg-on-dark .cg-muted, .cg-on-dark .cg-kv, .cg-on-dark .cg-placeholder-note,
.has-ink-background-color .cg-sign, .has-ink-background-color .cg-muted, .has-ink-background-color .cg-kv { color: rgba(255,255,255,.66); }
.is-style-cg-dark .cg-quote, .cg-on-dark .cg-quote { color: #fff; }

/* Watermark torre */
.cg-watermark { position: relative; overflow: hidden; }
.cg-watermark::before {
	content: ""; position: absolute; top: 8%; right: -6%; width: min(48vw, 620px); aspect-ratio: 100 / 120; pointer-events: none; z-index: 0;
	background: currentColor; opacity: .045; -webkit-mask: url("../img/torre-mask.svg") no-repeat center / contain; mask: url("../img/torre-mask.svg") no-repeat center / contain;
	transform: translateY(calc(var(--cg-par, 0) * 1px));
}
.cg-watermark--left::before { right: auto; left: -8%; }
.cg-watermark > * { position: relative; z-index: 1; }

/* Schede */
.is-style-cg-card { background: #fff; border: 1px solid var(--cg-line); padding: clamp(1.5rem, 3vw, 2.4rem); transition: transform .5s var(--cg-ease), box-shadow .5s var(--cg-ease), border-color .5s; height: 100%; }
.is-style-cg-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -28px rgba(18,18,18,.35); border-color: transparent; }
.wp-block-column > .is-style-cg-card { height: 100%; }
.is-style-cg-dark .is-style-cg-card, .cg-on-dark .is-style-cg-card { background: var(--cg-ink-soft); border-color: rgba(255,255,255,.08); }

/* Servizi */
.cg-service { position: relative; display: flex; flex-direction: column; overflow: hidden; }
.cg-service .cg-num { font-family: var(--cg-serif); font-size: 3.2rem; line-height: 1; color: var(--cg-brick); opacity: .9; margin: 0; }
.cg-service h3 { font-size: 1.7rem; margin-top: .8rem; }
.cg-service .wp-block-image { margin: calc(clamp(1.5rem, 3vw, 2.4rem) * -1) calc(clamp(1.5rem, 3vw, 2.4rem) * -1) 1.4rem; overflow: hidden; }
.cg-service .wp-block-image img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; transition: transform 1.2s var(--cg-ease); }
.cg-service:hover .wp-block-image img { transform: scale(1.06); }
.cg-service .cg-tags { margin-top: auto !important; padding-top: 1rem; font-size: .72rem; letter-spacing: .1em; color: var(--cg-graphite); border-top: 1px solid var(--cg-line); }

/* Statistiche */
.cg-stats { border-top: 1px solid var(--cg-line); }
.cg-stat { padding-top: 1.6rem; }
.cg-stat .cg-stat__n { font-family: var(--cg-serif); font-size: clamp(3rem, 6vw, 4.8rem); line-height: 1; margin: 0; color: var(--cg-ink); font-weight: 400; }
.cg-stat .cg-stat__n sup { font-size: .45em; color: var(--cg-brick); vertical-align: top; top: .35em; position: relative; margin-left: .05em; }
.cg-stat .cg-stat__l { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--cg-graphite); margin-top: .6rem; }
.is-style-cg-dark .cg-stat .cg-stat__n, .cg-on-dark .cg-stat .cg-stat__n { color: #fff; }
.is-style-cg-dark .cg-stats, .cg-on-dark .cg-stats { border-color: rgba(255,255,255,.14); }
.is-style-cg-dark .cg-stat__l, .cg-on-dark .cg-stat__l { color: rgba(255,255,255,.6); }

/* Immagini */
.is-style-cg-arch img { border-radius: 999px 999px 0 0; aspect-ratio: 4 / 5; object-fit: cover; }
/* La cornice rossa è sfalsata di 1.4rem: lo spazio è riservato con i margini, così non invade testi vicini né esce dallo schermo */
.cg-img-frame { position: relative; margin: 0 1.4rem 2.8rem 0 !important; isolation: isolate; }
.cg-img-frame img { width: 100%; object-fit: cover; }
.cg-img-frame::after { content: ""; position: absolute; inset: 1.4rem -1.4rem -1.4rem 1.4rem; border: 1px solid var(--cg-brick); z-index: -1; }
.cg-img-tall img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.cg-img-wide img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
figure figcaption.wp-element-caption { font-size: .72rem; letter-spacing: .02em; }

/* Elenco puntato */
.is-style-cg-check { list-style: none; padding-left: 0; }
.is-style-cg-check li { position: relative; padding-left: 1.8rem; margin-bottom: .55rem; }
.is-style-cg-check li::before { content: ""; position: absolute; left: 0; top: .72em; width: 1rem; height: 1px; background: var(--cg-brick); }

/* ---------- Rivelazione "torre" allo scroll -------------------------------- */
.cg-towerreveal { position: relative; height: 260vh; background: var(--cg-ink); color: #fff; padding: 0 !important; }
.cg-towerreveal__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; }
.cg-towerreveal__media.wp-block-cover { position: absolute !important; inset: 0; min-height: 100% !important; margin: 0 !important; padding: 0 !important;
	-webkit-mask-image: url("../img/torre-mask.svg"); mask-image: url("../img/torre-mask.svg");
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-size: var(--cg-mw, 40vh) var(--cg-mh, 48vh); mask-size: var(--cg-mw, 40vh) var(--cg-mh, 48vh);
	-webkit-mask-position: var(--cg-mx, 50%) var(--cg-my, 50%); mask-position: var(--cg-mx, 50%) var(--cg-my, 50%);
	will-change: mask-size, mask-position;
}
.cg-towerreveal__media .wp-block-cover__background { opacity: calc(var(--cg-p, 0) * .55) !important; background: #0e0e0f !important; }
.cg-towerreveal__media .wp-block-cover__image-background { transform: scale(calc(1.25 - var(--cg-p, 0) * .25)); }
.cg-towerreveal__before { position: absolute; z-index: 2; inset: auto 0 9vh 0; text-align: center; opacity: calc(1 - var(--cg-p, 0) * 4); transform: translateY(calc(var(--cg-p, 0) * -60px)); }
.cg-towerreveal__before p { margin: 0 auto; max-width: 36rem; color: rgba(255,255,255,.7); font-family: var(--cg-serif); font-style: italic; font-size: 1.25rem; }
.cg-towerreveal__after { position: relative; z-index: 3; max-width: 900px; padding: 0 1.25rem; text-align: center; opacity: calc((var(--cg-p, 0) - .62) * 3); transform: translateY(calc((1 - var(--cg-p, 0)) * 60px)); }
.cg-towerreveal__after h2 { color: #fff; font-size: clamp(2.4rem, 5.6vw, 4.6rem); font-weight: 400; }
.cg-towerreveal__after p { color: rgba(255,255,255,.85); }
.cg-no-mask .cg-towerreveal { height: auto; }
.cg-no-mask .cg-towerreveal__sticky { position: relative; height: auto; min-height: 80vh; padding: 6rem 0; }
.cg-no-mask .cg-towerreveal__media { -webkit-mask: none; mask: none; }
.cg-no-mask .cg-towerreveal__media .wp-block-cover__background { opacity: .6 !important; }
.cg-no-mask .cg-towerreveal__before { display: none; }
.cg-no-mask .cg-towerreveal__after { opacity: 1; transform: none; }

/* ---------- Realizzazioni -------------------------------------------------- */
.cg-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2.5rem !important; }
.cg-filter button { font: 600 .72rem/1 var(--cg-sans); letter-spacing: .14em; text-transform: uppercase; padding: .9rem 1.2rem; background: transparent; border: 1px solid var(--cg-line); color: var(--cg-ink); cursor: pointer; transition: all .3s var(--cg-ease); }
.cg-filter button:hover { border-color: var(--cg-ink); }
.cg-filter button[aria-pressed="true"] { background: var(--cg-ink); border-color: var(--cg-ink); color: #fff; }
.cg-filter button span { opacity: .75; margin-left: .35rem; }

.cg-works-cat { scroll-margin-top: 140px; }
.cg-works-cat.is-filtered-out { display: none; }
.cg-works { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: clamp(1rem, 2vw, 1.6rem) !important; }
.cg-work { position: relative; margin: 0 !important; overflow: hidden; background: var(--cg-ink); color: #fff; aspect-ratio: 4 / 3.4; display: flex !important; flex-direction: column; justify-content: flex-end; padding: 1.4rem !important; isolation: isolate; }
.cg-work > .wp-block-image { position: absolute; inset: 0; margin: 0 !important; z-index: -2; } /* sotto la sfumatura (::before, z-index -1) */
.cg-work > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--cg-ease), filter .6s; filter: saturate(.85); }
.cg-work::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14,14,15,0) 30%, rgba(14,14,15,.92) 100%); transition: opacity .5s; }
.cg-work:hover > .wp-block-image img { transform: scale(1.07); filter: saturate(1); }
.cg-work h3, .cg-work h4 { color: #fff; font-family: var(--cg-serif); font-weight: 500; font-size: 1.42rem; line-height: 1.15; margin: 0 !important; letter-spacing: 0; text-transform: none; }
.cg-work h3 a, .cg-work h4 a { color: inherit; text-decoration: none; }
.cg-work h3 a::after, .cg-work h4 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.cg-work .cg-work__meta { margin: .55rem 0 0 !important; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.cg-work .cg-work__tag { position: absolute; top: 1.1rem; left: 1.1rem; margin: 0 !important; font-size: .625rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; padding: .45rem .7rem; background: rgba(255,255,255,.12); backdrop-filter: blur(6px); }
.cg-work:has(a) .cg-work__tag { background: var(--cg-brick); }
.cg-work:has(a)::after { content: "→"; position: absolute; top: 1rem; right: 1.1rem; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; transition: background .3s; }
.cg-work:has(a):hover::after { background: var(--cg-brick); border-color: var(--cg-brick); }
/* Senza foto: tessera tipografica con torre */
.cg-work--text { background: var(--cg-ink-soft); aspect-ratio: auto; min-height: 220px; }
/* Schede senza foto: torre in filigrana su ::before (::after resta libero per la freccia del link) */
.cg-work--text::before { inset: auto -14px -10px auto; width: 120px; height: 144px; opacity: .08; background: #fff; -webkit-mask: url("../img/torre-mask.svg") no-repeat center / contain; mask: url("../img/torre-mask.svg") no-repeat center / contain; }
.cg-work--text:hover { background: #2c2c30; }
.cg-work { padding-top: 4.2rem !important; } /* spazio per etichetta e freccia: i titoli lunghi non le toccano */
.cg-works-list { columns: 2 340px; column-gap: 3rem; list-style: none; padding: 0; }
.cg-works-list li { break-inside: avoid; padding: .85rem 0; border-bottom: 1px solid var(--cg-line); display: flex; justify-content: space-between; gap: 1rem; }
.cg-works-list li em { font-style: normal; color: var(--cg-graphite); font-size: .85rem; white-space: nowrap; }

/* ---------- Certificazioni ------------------------------------------------- */
.cg-certs { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: clamp(1rem, 2vw, 1.5rem) !important; }
.cg-cert { position: relative; margin: 0 !important; background: #fff; border: 1px solid var(--cg-line); padding: 2rem 1.6rem 1.6rem !important; display: flex !important; flex-direction: column; align-items: flex-start; gap: .6rem !important; transition: transform .5s var(--cg-ease), box-shadow .5s var(--cg-ease), border-color .4s; }
.cg-cert:hover { transform: translateY(-6px); box-shadow: 0 26px 50px -30px rgba(18,18,18,.4); border-color: transparent; }
.cg-cert h3 { font-size: 1.5rem; margin: .6rem 0 0 !important; }
.cg-cert p { margin: 0 !important; font-size: .9rem; color: var(--cg-graphite); }
.cg-cert .cg-cert__meta { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.cg-cert .wp-block-buttons { margin-top: auto !important; padding-top: .9rem; }
.cg-cert .wp-block-button__link { font-size: .68rem; padding: .85em 1.3em; }
.cg-cert .wp-block-button__link::before { content: ""; display: inline-block; width: .9em; height: .9em; margin-right: .6em; vertical-align: -.1em; background: currentColor; -webkit-mask: url("../icons/download.svg") no-repeat center / contain; mask: url("../icons/download.svg") no-repeat center / contain; }
.cg-cert .cg-cert__soon { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--cg-graphite); padding-top: .9rem; margin-top: auto !important; }
/* Sigillo simbolico */
.cg-seal { --c: var(--cg-brick); position: relative; width: 92px; height: 92px; border-radius: 50%; margin: 0 0 .4rem !important; display: grid !important; place-items: center; text-align: center; color: var(--c);
	background: radial-gradient(circle, #fff 0 56%, transparent 57%), repeating-conic-gradient(var(--c) 0 2deg, transparent 2deg 6deg);
	box-shadow: inset 0 0 0 1px var(--c); font-family: var(--cg-serif) !important; font-size: 1.4rem !important; line-height: 1 !important; font-weight: 600; }
.cg-seal::after { content: ""; position: absolute; inset: 10px; border-radius: 50%; border: 1px solid var(--c); opacity: .5; }
.cg-seal small { display: block; font-family: var(--cg-sans); font-size: .5rem; letter-spacing: .2em; font-weight: 700; margin-bottom: .1rem; }
.cg-seal::before { content: ""; position: absolute; top: -6px; right: -6px; width: 30px; height: 30px; border-radius: 50%; background: var(--c) var(--i, none) no-repeat center / 16px; box-shadow: 0 0 0 3px #fff; }
.cg-seal--quality { --i: url("../icons/quality.svg"); }
.cg-seal--env { --c: #2B2B2E; --i: url("../icons/leaf.svg"); }
.cg-seal--safety { --c: #5E6166; --i: url("../icons/helmet.svg"); }
.cg-seal--energy { --c: #AE1A20; --i: url("../icons/bolt.svg"); }
.cg-seal--social { --c: #2B2B2E; --i: url("../icons/hands.svg"); }
.cg-seal--gender { --c: #5E6166; --i: url("../icons/equal.svg"); }
.cg-seal--legal { --c: #AE1A20; --i: url("../icons/scales.svg"); }
.cg-seal--esg { --c: #2B2B2E; --i: url("../icons/globe.svg"); }
.cg-certstrip { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 1.1rem 2.2rem !important; }
.cg-certstrip p { margin: 0; font-family: var(--cg-serif); font-size: 1.15rem; display: flex; align-items: center; gap: .55rem; }
.cg-certstrip p::before { content: ""; width: 7px; height: 7px; background: var(--cg-brick); transform: rotate(45deg); }

/* ---------- Committenti (scorrimento) ------------------------------------- */
.cg-marquee { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.cg-marquee__track { display: flex !important; flex-wrap: nowrap !important; width: max-content; gap: 3.5rem !important; animation: cgMarquee 48s linear infinite; }
.cg-marquee:hover .cg-marquee__track { animation-play-state: paused; }
.cg-marquee__track p { margin: 0 !important; white-space: nowrap; font-family: var(--cg-serif); font-size: clamp(1.4rem, 2.6vw, 2.1rem); display: flex; align-items: center; gap: 3.5rem; }
.cg-marquee__track p::after { content: ""; width: 8px; height: 8px; background: var(--cg-brick); transform: rotate(45deg); }
@keyframes cgMarquee { to { transform: translateX(-50%); } }

/* ---------- Timeline ------------------------------------------------------- */
.cg-timeline { position: relative; }
.cg-timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 7.2rem; width: 1px; background: var(--cg-line); }
.cg-tl { display: grid !important; grid-template-columns: 6rem 1fr; gap: 2.4rem !important; position: relative; padding: 0 0 2.6rem; margin: 0 !important; }
.cg-tl::before { content: ""; position: absolute; left: calc(7.2rem - 5px); top: .7rem; width: 11px; height: 11px; background: var(--cg-base); border: 1px solid var(--cg-brick); transform: rotate(45deg); transition: background .4s; }
.cg-tl.is-in::before { background: var(--cg-brick); }
.cg-tl .cg-tl__y { margin: 0 !important; font-family: var(--cg-serif); font-size: 2rem; line-height: 1.1; color: var(--cg-brick); text-align: right; }
.cg-tl h4 { margin: .35rem 0 .4rem !important; }
.cg-tl p { margin: 0; }
@media (max-width: 600px) {
	.cg-timeline::before { left: .3rem; }
	.cg-tl { grid-template-columns: 1fr; gap: .2rem !important; padding-left: 2rem; }
	.cg-tl::before { left: -1px; }
	.cg-tl .cg-tl__y { text-align: left; }
}

/* ---------- Team ----------------------------------------------------------- */
.cg-team { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: clamp(1.2rem, 2.4vw, 2rem) !important; }
.cg-member { margin: 0 !important; }
.cg-member .wp-block-image { margin: 0 0 1.1rem !important; overflow: hidden; background: var(--cg-stone); }
.cg-member .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; filter: grayscale(.3); transition: transform 1s var(--cg-ease), filter .6s; }
.cg-member:hover .wp-block-image img { transform: scale(1.04); filter: none; }
.cg-member h3 { font-size: 1.55rem; margin: 0 !important; }
.cg-member .cg-member__role { margin: .3rem 0 0 !important; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cg-brick); font-weight: 700; }
.cg-member .cg-member__bio { margin-top: .7rem !important; font-size: .92rem; color: var(--cg-graphite); }

/* ---------- Mappe a doppio clic -------------------------------------------- */
.cg-map { position: relative; aspect-ratio: 16 / 10; background: var(--cg-ink-soft) center / cover; overflow: hidden; color: #fff; display: grid; place-items: center; text-align: center; }
.cg-map::before { content: ""; position: absolute; inset: 0; background:
	repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 48px),
	repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 48px),
	radial-gradient(circle at 50% 45%, rgba(174,26,32,.45), transparent 55%); }
.cg-map__inner { position: relative; padding: 1.5rem; max-width: 26rem; }
.cg-map__pin { width: 46px; height: 56px; margin: 0 auto 1rem; background: #fff; -webkit-mask: url("../img/torre-mask.svg") no-repeat center / contain; mask: url("../img/torre-mask.svg") no-repeat center / contain; }
.cg-map__inner p { font-size: .82rem; color: rgba(255,255,255,.72); margin: .8rem 0 1.2rem; }
.cg-map__inner strong { font-family: var(--cg-serif); font-weight: 500; font-size: 1.4rem; display: block; }
.cg-map__btn { font: 700 .7rem/1 var(--cg-sans); letter-spacing: .14em; text-transform: uppercase; background: var(--cg-brick); color: #fff; border: 0; padding: 1rem 1.5rem; cursor: pointer; }
.cg-map__btn:hover { background: #fff; color: var(--cg-ink); }
.cg-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.25) contrast(1.05); }
.cg-map__ext { display: inline-block; margin-top: .9rem; font-size: .75rem; color: #fff !important; }

/* Info contatti */
.cg-infolist { list-style: none; padding: 0; margin: 0; }
.cg-infolist li { padding: 1rem 0; border-bottom: 1px solid var(--cg-line); display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; }
.cg-infolist li > span:first-child { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--cg-graphite); padding-top: .2rem; font-weight: 700; }
.cg-infolist a { color: var(--cg-ink); text-decoration: none; border-bottom: 1px solid var(--cg-line); }
.cg-infolist a:hover { color: var(--cg-brick); border-color: var(--cg-brick); }
@media (max-width: 480px) { .cg-infolist li { grid-template-columns: 1fr; gap: .2rem; } }

/* ---------- Moduli --------------------------------------------------------- */
.cg-form { --f-line: var(--cg-line); }
.cg-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 1.6rem; }
.cg-field { margin: 0; display: flex; flex-direction: column; gap: .45rem; }
.cg-field--full { grid-column: 1 / -1; }
@media (max-width: 640px) { .cg-form__grid { grid-template-columns: 1fr; } }
.cg-field label { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--cg-graphite); }
.cg-field label span, .cg-check .req { color: var(--cg-brick); }
.cg-form input[type="text"], .cg-form input[type="email"], .cg-form input[type="tel"], .cg-form select, .cg-form textarea {
	font: 400 1rem/1.5 var(--cg-sans); color: var(--cg-ink); background: #fff; border: 1px solid var(--f-line); border-radius: 0; padding: .9rem 1rem; width: 100%; box-sizing: border-box; transition: border-color .3s, box-shadow .3s;
}
.cg-form input[type="file"] { font: .85rem var(--cg-sans); padding: .75rem; border: 1px dashed var(--f-line); background: #fff; }
.cg-form input:focus, .cg-form select:focus, .cg-form textarea:focus { outline: none; border-color: var(--cg-brick); box-shadow: 0 0 0 3px rgba(174,26,32,.12); }
.cg-form textarea { resize: vertical; min-height: 9rem; }
.cg-check { margin: 1.4rem 0 0; font-size: .85rem; color: var(--cg-graphite); }
.cg-check label { display: flex; gap: .8rem; align-items: flex-start; cursor: pointer; }
.cg-check input { margin-top: .25rem; accent-color: var(--cg-brick); width: 1.05rem; height: 1.05rem; flex: none; }
.cg-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; margin: 1.6rem 0 0; }
.cg-form__note { font-size: .78rem; color: var(--cg-graphite); }
.cg-btn { border: 0; cursor: pointer; }
.cg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cg-form-msg { padding: 1.1rem 1.3rem; margin-bottom: 1.6rem; border-left: 3px solid; font-size: .95rem; }
.cg-form-msg--ok { background: #EEF5EE; border-color: #3F6B46; }
.cg-form-msg--err { background: #FBEDEB; border-color: var(--cg-brick); }
.cg-formbox { background: #fff; border: 1px solid var(--cg-line); padding: clamp(1.5rem, 4vw, 3rem); }

/* ---------- CTA ----------------------------------------------------------- */
.cg-cta-band { position: relative; overflow: hidden; }
.cg-cta-band.wp-block-cover .wp-block-cover__background { background: linear-gradient(90deg, rgba(125,15,20,.95) 0%, rgba(18,18,18,.85) 100%) !important; opacity: 1 !important; }

/* ---------- Footer -------------------------------------------------------- */
.cg-footer { background: var(--cg-ink); color: rgba(255,255,255,.7); position: relative; overflow: hidden; font-size: .92rem; }
.cg-footer a { color: rgba(255,255,255,.85); text-decoration: none; }
.cg-footer a:hover { color: #fff; text-decoration: underline; }
.cg-footer h2, .cg-footer h3, .cg-footer h4, .cg-footer h6 { color: #fff; }
.cg-footer .cg-footer__h { font-family: var(--cg-sans); font-size: .7rem !important; letter-spacing: .22em; text-transform: uppercase; color: #F2555B; font-weight: 700; margin-bottom: 1.2rem; }
.cg-footer ul { list-style: none; padding: 0; margin: 0; }
.cg-footer li { margin: 0 0 .55rem; }
.cg-footer .cg-footer__big { font-family: var(--cg-serif); font-size: clamp(3rem, 12.5vw, 12rem); line-height: .82; letter-spacing: .02em; color: rgba(255,255,255,.05); text-transform: uppercase; white-space: nowrap; margin: 0 !important; user-select: none; pointer-events: none; transform: translateX(calc(var(--cg-fx, 0) * 1%)); }
.cg-footer .cg-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); font-size: .76rem; color: rgba(255,255,255,.5); }
.cg-footer .cg-footer__bottom p { margin: 0; }
.cg-footer .cg-certchips { display: flex; flex-wrap: wrap; gap: .4rem; }
.cg-footer .cg-certchips span { font-size: .62rem; letter-spacing: .1em; font-weight: 700; border: 1px solid rgba(255,255,255,.18); padding: .35rem .55rem; color: rgba(255,255,255,.7); }
.cg-logo--light { color: #fff; }

/* Torna su */
.cg-totop { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 90; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--cg-brick); color: #fff; cursor: pointer; display: grid; place-items: center; opacity: 0; transform: translateY(20px); transition: all .4s var(--cg-ease); }
.cg-totop.is-on { opacity: 1; transform: none; }
.cg-totop svg { width: 18px; height: 18px; }
.cg-totop circle { transition: stroke-dashoffset .1s linear; }

/* ---------- Animazioni di comparsa ---------------------------------------- */
.js .cg-anim > * { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--cg-ease), transform 1s var(--cg-ease); transition-delay: calc(var(--i, 0) * 90ms); }
.js .cg-anim.is-in > * { opacity: 1; transform: none; }
.js .cg-imgreveal img { clip-path: inset(0 0 100% 0); transition: clip-path 1.4s var(--cg-ease); }
.js .cg-imgreveal.is-in img { clip-path: inset(0 0 0 0); }

/* ---------- Varie ---------------------------------------------------------- */
.cg-placeholder-note { font-size: .78rem; color: var(--cg-graphite); border-left: 2px solid var(--cg-brick); padding-left: .9rem; }
.cg-quote { font-family: var(--cg-serif); font-size: clamp(1.8rem, 3.6vw, 2.9rem); line-height: 1.22; font-weight: 400; }
.cg-quote::before { content: "“"; display: block; font-size: 5rem; line-height: .6; color: var(--cg-brick); margin-bottom: .4rem; }
.cg-sign { font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--cg-graphite); }
.cg-portrait-note { position: absolute; left: 1rem; bottom: 1rem; background: rgba(18,18,18,.75); color: #fff; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; padding: .45rem .7rem; }
.cg-credits { font-size: .85rem; }
.cg-credits li { margin-bottom: .5rem; }
.wp-block-columns.cg-split { gap: clamp(2rem, 6vw, 6rem) !important; }
.cg-sticky { position: sticky; top: 130px; }
@media (max-width: 781px) { .cg-sticky { position: static; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
	.js .cg-anim > * { opacity: 1; transform: none; }
	.js .cg-imgreveal img { clip-path: none; }
}

/* Editor: nessuna animazione nascosta */
.editor-styles-wrapper .cg-anim > * { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .cg-slider { position: relative !important; display: grid; gap: 1rem; }
.editor-styles-wrapper .cg-slider > .wp-block-cover { position: relative !important; opacity: 1; min-height: 260px !important; }
.editor-styles-wrapper .cg-towerreveal { height: auto; }
.editor-styles-wrapper .cg-towerreveal__sticky { position: relative; height: auto; min-height: 60vh; }
.editor-styles-wrapper .cg-towerreveal__media { -webkit-mask: none; mask: none; }
.editor-styles-wrapper .cg-towerreveal__after { opacity: 1; transform: none; }
.editor-styles-wrapper .cg-header { position: relative; background: var(--cg-ink); }

@media (min-width: 1101px) { .cg-header .cg-only-mobile { display: none !important; } }

/* Sezioni standard dei contenuti */
.cg-sec { padding-top: var(--wp--preset--spacing--60) !important; padding-bottom: var(--wp--preset--spacing--60) !important; }
.cg-sec--tight { padding-top: var(--wp--preset--spacing--50) !important; padding-bottom: var(--wp--preset--spacing--50) !important; }
.entry-content > .cg-sec:first-child, .wp-block-post-content > .cg-sec:first-child { margin-top: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0; }
/* L'intestazione occupa tutta la griglia (allineata a sinistra come i contenuti); solo i testi sono limitati a 760px */
.cg-head { margin-bottom: var(--wp--preset--spacing--40) !important; }
/* Dove siamo: mappa, titolo e righe degli elenchi allineati tra le due colonne (subgrid) */
@supports (grid-template-rows: subgrid) {
	.cg-sedi > .wp-block-group { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
	.cg-sedi > .wp-block-group > * { margin-block-start: 0; }
	.cg-sedi > .wp-block-group > h3 { margin: 1.6rem 0 .4rem; align-self: end; }
	.cg-sedi .cg-infolist { display: contents; }
}
.cg-head > * { max-width: 760px; }
.cg-head.has-text-align-center, .cg-head--center { text-align: center; }
.cg-head.has-text-align-center > *, .cg-head--center > * { margin-left: auto; margin-right: auto; }
.cg-grid-2 { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(1.2rem, 3vw, 2.4rem) !important; }
.cg-grid-3 { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: clamp(1.2rem, 2.4vw, 2rem) !important; }
.cg-grid-4 { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: clamp(1rem, 2vw, 1.6rem) !important; }
.cg-grid-2 > *, .cg-grid-3 > *, .cg-grid-4 > * { margin: 0 !important; }
.cg-value h3 { font-size: 1.6rem; }
.cg-value .cg-num { font-family: var(--cg-serif); color: var(--cg-brick); font-size: 1rem; letter-spacing: .1em; margin: 0; }
.cg-kv { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cg-graphite); }

.cg-sealgrid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.2rem 1.5rem !important; justify-items: center; }
.cg-sealgrid > * { margin: 0 !important; }
@media (max-width: 600px) { .cg-sealgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cg-on-dark .cg-seal, .is-style-cg-dark .cg-seal { box-shadow: inset 0 0 0 1px var(--c), 0 0 0 6px rgba(255,255,255,.04); }
.is-style-cg-dark .cg-seal::before { box-shadow: 0 0 0 3px var(--cg-ink); }

/* Hero: contenuti allineati a sinistra nella griglia da 1280px */
.cg-hero__content { box-sizing: border-box; }
.cg-hero__content > * { margin-left: max(0px, calc((100% - 1280px) / 2)) !important; margin-right: auto !important; }
.cg-hero__content > .wp-block-buttons { margin-top: 1.4rem; }
.wp-block-button.is-style-outline > .wp-block-button__link { padding: calc(1.05em - 1px) calc(2em - 1px); }
.cg-hero .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }

/* Rifiniture */
.cg-seal { background: #fff; box-shadow: inset 0 0 0 1px var(--c), inset 0 0 0 5px #fff, inset 0 0 0 6px var(--c); }
.cg-seal::after { inset: 12px; border-style: dashed; opacity: .35; }
.is-style-cg-dark .cg-seal { box-shadow: inset 0 0 0 1px var(--c), inset 0 0 0 5px #fff, inset 0 0 0 6px var(--c), 0 0 0 6px rgba(255,255,255,.05); }
.cg-service h3 a, .is-style-cg-card h3 a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--cg-ease); }
.cg-service:hover h3 a { background-size: 100% 1px; }
.cg-service h3 a::after { content: ""; position: absolute; inset: 0; }
.cg-footer p, .cg-infolist { overflow-wrap: anywhere; }

/* Le copertine con layout "constrained" non devono restringere sfondo e immagine */
.wp-block-cover > .wp-block-cover__background,
.wp-block-cover > .wp-block-cover__image-background,
.wp-block-cover > .wp-block-cover__video-background { max-width: none !important; margin: 0 !important; }

@media (max-width: 600px) { .cg-stats { grid-template-columns: 1fr 1fr !important; } }

/* Header responsive: menu a scomparsa sotto i 1100px, niente a capo */
.cg-header .wp-block-navigation__container { flex-wrap: nowrap; }
.cg-header .wp-block-navigation-item__content, .cg-header .cg-cta .wp-block-button__link { white-space: nowrap; }
@media (max-width: 1279px) { .cg-topbar .cg-topbar__certs { display: none; } }
@media (max-width: 1100px) {
	.cg-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.cg-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.cg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; }
	.cg-header .wp-block-navigation__responsive-container-close { display: flex !important; }
}
@media (min-width: 1101px) and (max-width: 1320px) {
	.cg-header .wp-block-navigation .wp-block-navigation-item__content { padding: .5rem .5rem; font-size: .7rem; letter-spacing: .05em; }
	.cg-header .cg-logo__name { font-size: 1.12rem; }
	.cg-header .cg-cta .wp-block-button__link { padding: .8em 1.1em; }
	.cg-header__bar { gap: 1rem !important; }
}

/* ---------- Versione senza fotografie ------------------------------------- */
.cg-slide--plain .wp-block-cover__background {
	background:
		radial-gradient(ellipse at 78% 30%, rgba(174,26,32,.42) 0%, transparent 55%),
		radial-gradient(ellipse at 10% 100%, rgba(125,15,20,.35) 0%, transparent 50%),
		linear-gradient(160deg, #1c1c1e 0%, #0b0b0c 100%) !important;
	opacity: 1 !important;
}
.cg-slide--plain::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .5;
	background-image:
		repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 56px),
		repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 112px);
	-webkit-mask: linear-gradient(90deg, transparent 0%, #000 60%); mask: linear-gradient(90deg, transparent 0%, #000 60%);
}
.cg-hero:has(.cg-slide--plain) .cg-hero__mark { opacity: .22; width: min(52vw, 720px); }
.cg-hero.is-single .cg-hero__btn, .cg-hero.is-single .cg-hero__count, .cg-hero.is-single .cg-hero__bar { display: none; }

.cg-towerreveal--solid .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg, #D12A31 0%, #9C1219 55%, #1A0A0B 100%) !important; }
.cg-towerreveal:has(.cg-towerreveal--solid) .cg-towerreveal__after .is-style-cg-eyebrow { color: #fff; }
.cg-towerreveal:has(.cg-towerreveal--solid) .cg-towerreveal__after h2 em { color: #FFD0D2; }

.cg-bignum { font-family: var(--cg-serif); font-size: clamp(4.5rem, 10vw, 8rem); line-height: .9; color: var(--cg-brick); margin: 0 0 .6rem !important; font-weight: 400; }
.cg-svcrow h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); }
/* Singola realizzazione */
.cg-workmeta { margin-top: 1rem; }
.cg-workmeta li { grid-template-columns: 7.5rem 1fr; }
.cg-workcontent > * + * { margin-top: 1.4rem; }
.cg-worktext > * { margin: 0 0 1.2rem; }
.cg-worktext p:not(.cg-lead):not(.cg-placeholder-note) { font-size: 1.08rem; }
.cg-workcontent p { font-size: 1.08rem; }
.cg-workcontent .wp-block-gallery { gap: .75rem !important; }
.cg-workcontent .wp-block-gallery img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform .8s var(--cg-ease); }
.cg-workcontent .wp-block-gallery figure { overflow: hidden; }
.cg-workcontent .wp-block-gallery figure:hover img { transform: scale(1.04); }
/* Testi sopra le fotografie: sovratitolo bianco con trattino rosso, leggera ombra per staccare dallo sfondo */
.cg-pagehero .is-style-cg-eyebrow, .cg-hero .is-style-cg-eyebrow { color: #fff !important; }
.cg-pagehero .is-style-cg-eyebrow::before, .cg-hero .is-style-cg-eyebrow::before { background: #E3262E; height: 2px; }
.cg-pagehero .wp-block-cover__inner-container, .cg-hero__content, .cg-slide-caption { text-shadow: 0 1px 18px rgba(0,0,0,.45); }
.cg-hero .cg-lead { color: rgba(255,255,255,.92); }
.cg-svcrow .wp-block-image { margin: 0; overflow: hidden; }
.cg-svcrow .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform 1.2s var(--cg-ease); }
.cg-svcrow .wp-block-image:hover img { transform: scale(1.04); }
.cg-brandmark { width: 150px; height: 180px; margin-top: 2rem; display: block; }
.cg-brandmark path { transform-box: fill-box; transform-origin: 50% 100%; }
.js .cg-brandmark path { transform: scaleY(0); transition: transform 1.2s var(--cg-ease); }
.js .cg-brandmark.is-in path { transform: none; }
.js .cg-brandmark .t2 { transition-delay: .15s; }
.js .cg-brandmark .t3 { transition-delay: .3s; }
.cg-work--text:nth-child(4n+2) { background: #26262a; }
.cg-work--text:nth-child(4n+3) { background: #1a1a1c; }
