.em-home__hero-cmm{position:relative;padding:calc(96px + var(--space-7)) var(--gutter-page) var(--space-8);overflow:hidden;background:var(--surface-canvas);text-align:center}
/* Ultra-slow ambient video, heavily blurred/dimmed so it reads as depth/texture
   behind the sphere rather than competing with it — the grid pattern and sphere
   both sit above it (z-index 1 and 2). Hidden under prefers-reduced-motion,
   leaving just the plain --surface-canvas background + grid pattern. */
.em-home__hero-video-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.em-home__hero-video-bg video{width:100%;height:100%;object-fit:cover;transform:scale(1.05);filter:blur(1.5px) brightness(0.88) saturate(0.95);opacity:0.85}
@media (prefers-reduced-motion: reduce){
	.em-home__hero-video-bg{display:none}
}
/* Solid-color scrim fading out from the text block, so the video reads clearly
   as a real construction site everywhere EXCEPT directly behind the headline —
   keeps contrast/legibility without blurring the whole video into mush. */
.em-home__hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 70% 58% at 50% 32%, var(--surface-canvas) 40%, transparent 78%)}
.em-home__hero-grid-bg{position:absolute;inset:0;z-index:2;pointer-events:none;background-image:linear-gradient(var(--concrete-200) 1px, transparent 1px),linear-gradient(90deg, var(--concrete-200) 1px, transparent 1px);background-size:64px 64px;opacity:0.5;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%, black, transparent);mask-image:radial-gradient(ellipse 80% 60% at 50% 30%, black, transparent)}
.em-home__hero-cmm-inner{position:relative;z-index:3;max-width:820px;margin:0 auto}
.em-home__hero-cmm-title{font:var(--text-display-1);letter-spacing:var(--tracking-tight);margin:0 0 var(--space-5);line-height:1.06}
.em-home__hero-cmm-word{display:block}
.em-home__hero-cmm-word--blue{color:var(--brand-blue-500)}
.em-home__hero-cmm-word--orange{color:var(--accent-secondary)}
.em-home__hero-cmm-word--ink{color:var(--ink-900)}
.em-home__hero-cmm-word--chip{background:var(--ink-900);color:var(--paper-000);padding:2px 22px;border-radius:var(--radius-md);display:inline-block;margin-top:8px}
.em-home__hero-cmm-sub{font:var(--text-body-lg);color:var(--text-secondary);margin:0 auto var(--space-6);max-width:560px}
.em-home__hero-marquee{position:relative;border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default);background:var(--surface-card);padding:14px 0;z-index:2;margin-top:var(--space-8)}
.em-home__marquee-item{font:var(--text-mono);color:var(--text-muted);padding:0 var(--space-6);letter-spacing:var(--tracking-label)}

.em-home__sphere-wrap{max-width:var(--container-max);margin:0 auto;padding:var(--space-4);display:flex;justify-content:center;position:relative;z-index:3}
.em-home__sphere{position:relative;width:680px;max-width:100%;aspect-ratio:1;margin:0 auto}
.em-home__sphere-item{position:absolute;display:flex;align-items:center;justify-content:center;cursor:pointer;will-change:transform;transition:transform 160ms ease-out,opacity 160ms ease-out}
.em-home__sphere-icon{width:18px;height:18px;object-fit:contain;flex:none}
/* Multi-tone sphere: cycle icons through blue / orange / black / grey /
   light-grey so the ball reads as a rich mix of the brand palette instead
   of flat monochrome. */
.em-home__sphere-item:nth-child(5n+1) .em-home__sphere-icon{filter:invert(28%) sepia(74%) saturate(1704%) hue-rotate(180deg) brightness(93%) contrast(94%)}
.em-home__sphere-item:nth-child(5n+2) .em-home__sphere-icon{filter:invert(48%) sepia(79%) saturate(2476%) hue-rotate(360deg) brightness(103%) contrast(105%)}
.em-home__sphere-item:nth-child(5n+4) .em-home__sphere-icon{filter:grayscale(1) brightness(1.9)}
.em-home__sphere-item:nth-child(5n+5) .em-home__sphere-icon{filter:grayscale(1) brightness(2.5)}
.em-home__sphere-center{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;pointer-events:none}
.em-home__sphere-title{font:700 1.8rem/1.15 var(--font-display);color:var(--ink-900);margin:0;min-height:1.3em;text-align:center;max-width:420px;white-space:normal;overflow-wrap:break-word}
/* White outline at 25% of font-size, painted stroke-then-fill so it stays
   fully external to the glyphs instead of eating into their interior. */
@supports (-webkit-text-stroke: 1px black) {
	.em-home__sphere-title{-webkit-text-stroke:0.25em var(--paper-000);paint-order:stroke fill}
}
@supports not (-webkit-text-stroke: 1px black) {
	.em-home__sphere-title{
		text-shadow:
			-3px -3px 0 var(--paper-000), 0 -3px 0 var(--paper-000), 3px -3px 0 var(--paper-000),
			-3px 0 0 var(--paper-000), 3px 0 0 var(--paper-000),
			-3px 3px 0 var(--paper-000), 0 3px 0 var(--paper-000), 3px 3px 0 var(--paper-000);
	}
}
.em-home__sphere-typed{color:var(--accent-primary)}
/* Cycled per typed word — see EM.sphereWordColors in sphere.js. */
.em-home__sphere-typed--blue{color:var(--brand-blue-500)}
.em-home__sphere-typed--orange{color:var(--accent-secondary)}
.em-home__sphere-typed--grey{color:var(--ink-500)}
.em-home__sphere-typed--white{color:var(--paper-000)}
@supports (-webkit-text-stroke: 1px black) {
	.em-home__sphere-typed--white{-webkit-text-stroke:0.2em var(--ink-900) !important}
}
.em-home__sphere-cursor{display:inline-block;margin-left:2px;animation:em-blink-caret 900ms steps(1) infinite;color:var(--accent-primary)}

.em-home__service-card{transition:transform 220ms var(--ease-standard),box-shadow 220ms var(--ease-standard),border-color 220ms var(--ease-standard)}
.em-home__service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent-primary)}
@media (prefers-reduced-motion: reduce){
	.em-home__service-card,.em-home__service-card:hover{transform:none;transition:none}
}

.em-home__futuro-card{background:#182029;border:1px solid var(--ink-700);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;transition:transform 220ms var(--ease-standard),border-color 220ms var(--ease-standard)}
.em-home__futuro-card:hover{transform:translateY(-4px);border-color:var(--accent-secondary)}
.em-home__futuro-icon{width:56px;height:56px;border-radius:var(--radius-full);background:rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5);transition:transform 260ms var(--ease-standard),background 260ms var(--ease-standard),box-shadow 260ms var(--ease-standard)}
.em-home__futuro-icon img{filter:invert(1)}
.em-home__futuro-card:hover .em-home__futuro-icon{background:var(--accent-secondary);transform:rotate(8deg) scale(1.1);box-shadow:0 0 24px var(--accent-secondary)}
.em-home__futuro-title{font:var(--text-h3);color:var(--paper-000);margin:0 0 var(--space-3)}
.em-home__futuro-desc{font:var(--text-body-sm);color:var(--concrete-400);margin:0;line-height:1.5}

.em-home__formula-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-6);margin:0 0 var(--space-9);flex-wrap:wrap}

.em-home__progetti-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-6);margin-bottom:var(--space-7);flex-wrap:wrap}
.em-home__progetti-carousel > a{width:340px}
.em-home__progetti-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}

.em-home__testimonial-card{flex:none;width:380px;white-space:normal;background:var(--surface-card);border:1px solid var(--border-default);border-top:3px solid var(--accent-primary);border-radius:var(--radius-md);padding:var(--space-6);display:flex;flex-direction:column}
.em-home__testimonial-card:nth-child(3n+2){border-top-color:var(--accent-secondary)}
.em-home__testimonial-card:nth-child(3n){border-top-color:var(--brand-blue-700)}
.em-home__testimonial-mark{font:800 2.75rem/1 var(--font-display);color:var(--accent-primary-soft);margin:0 0 2px}
.em-home__testimonial-card:nth-child(3n+2) .em-home__testimonial-mark{color:var(--accent-secondary-soft)}
.em-home__testimonial-card:nth-child(3n) .em-home__testimonial-mark{color:var(--brand-blue-100)}
.em-home__testimonial-quote{font:var(--text-body-lg);color:var(--ink-900);margin:0 0 var(--space-5);white-space:normal;line-height:1.6}
.em-home__testimonial-role{font:var(--text-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-label);margin-top:auto}

@media (max-width:899px){ .em-grid-4.em-grid-4{grid-template-columns:1fr 1fr !important} }
