/* ==========================================================================
   Vertigo — main.css  (v0.2)
   Dal logo: rosso #CC071E, grigio #87888A, geometrico in minuscolo.
   Idea guida: la vertigine. Prospettiva, rotazione, profondità.
   ========================================================================== */

@font-face {
	font-family: "Outfit";
	src: url("../fonts/outfit-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* ---------- Token (da replicare in Elementor → Impostazioni sito) ---------- */
:root {
	--v-ice: #edeef0;        /* fondo: grigio freddo chiarissimo */
	--v-white: #ffffff;      /* superfici */
	--v-graphite: #26272a;   /* testo, sezioni scure */
	--v-graphite-2: #3a3b3f;
	--v-steel: #87888a;      /* grigio del logo: grafica e testi grandi */
	--v-text-2: #5b5c60;     /* testo secondario (AA) */
	--v-red: #cc071e;        /* rosso del logo */
	--v-red-soft: #ff5a64;   /* rosso leggibile su grafite */
	--v-line: rgba(38, 39, 42, 0.14);

	--v-font: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

	--v-fs-s: 0.9375rem;
	--v-fs-m: 1.125rem;
	--v-fs-l: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	--v-fs-h4: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
	--v-fs-h3: clamp(1.75rem, 1.35rem + 1.5vw, 2.75rem);
	--v-fs-h2: clamp(2.5rem, 1.5rem + 4vw, 5.5rem);
	--v-fs-display: clamp(3.25rem, 1.2rem + 7.6vw, 9.5rem);

	--v-space-1: 0.5rem;
	--v-space-2: 1rem;
	--v-space-3: 1.5rem;
	--v-space-4: 2.5rem;
	--v-space-5: 4rem;
	--v-space-6: clamp(5rem, 3rem + 8vw, 11rem);

	--v-container: 1320px;
	--v-narrow: 740px;
	--v-gutter: clamp(1.25rem, 0.6rem + 2.6vw, 3rem);
	--v-header-h: 80px;

	--v-r-xl: 32px;
	--v-r-l: 20px;
	--v-r-pill: 999px;

	--v-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--v-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--v-header-h) + 1rem); }
body {
	margin: 0; background: var(--v-ice); color: var(--v-graphite);
	font-family: var(--v-font); font-size: var(--v-fs-m); font-weight: 380; line-height: 1.6;
	-webkit-font-smoothing: antialiased; overflow-x: clip;
}
img, svg, video, canvas { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 0.45em; font-weight: 650; line-height: 1; letter-spacing: -0.035em; text-wrap: balance; }
h1 { font-size: var(--v-fs-h2); font-weight: 700; }
h2 { font-size: var(--v-fs-h2); }
h3 { font-size: var(--v-fs-h3); letter-spacing: -0.025em; line-height: 1.05; }
h4 { font-size: var(--v-fs-h4); font-weight: 600; letter-spacing: -0.015em; line-height: 1.15; }
h5, h6 { font-size: var(--v-fs-m); font-weight: 600; letter-spacing: 0; }
p { margin: 0 0 1em; text-wrap: pretty; }
strong, b { font-weight: 600; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--v-red); }
:focus-visible { outline: 3px solid var(--v-red); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--v-red); color: var(--v-white); }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--v-graphite); color: var(--v-white); padding: 0.75rem 1rem; border-radius: 8px; }
.skip-link:focus { top: 1rem; }

.container { width: 100%; max-width: calc(var(--v-container) + 2 * var(--v-gutter)); margin-inline: auto; padding-inline: var(--v-gutter); }
.container--narrow { max-width: calc(var(--v-narrow) + 2 * var(--v-gutter)); }

/* Griglia 12/8/4 */
.v-grid12 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--v-space-3) var(--v-gutter); }
.v-grid12 > [class*="v-span-"] { grid-column: 1 / -1; }
@media (min-width: 768px) {
	.v-grid12 { grid-template-columns: repeat(8, minmax(0, 1fr)); }
	.v-grid12 > .v-span-3, .v-grid12 > .v-span-4 { grid-column: span 3; }
	.v-grid12 > .v-span-5, .v-grid12 > .v-span-6 { grid-column: span 4; }
	.v-grid12 > .v-span-7, .v-grid12 > .v-span-8 { grid-column: span 5; }
}
@media (min-width: 1100px) {
	.v-grid12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.v-grid12 > .v-span-3 { grid-column: span 3; }
	.v-grid12 > .v-span-4 { grid-column: span 4; }
	.v-grid12 > .v-span-5 { grid-column: span 5; }
	.v-grid12 > .v-span-6 { grid-column: span 6; }
	.v-grid12 > .v-span-7 { grid-column: span 7; }
	.v-grid12 > .v-span-8 { grid-column: span 8; }
}

/* ---------- Header ---------- */
.site-header {
	position: sticky; top: 0; z-index: 100;
	background: color-mix(in srgb, var(--v-ice) 78%, transparent);
	backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4);
	transition: box-shadow 0.4s var(--v-ease);
}
.site-header.is-scrolled { box-shadow: 0 1px 0 var(--v-line); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: var(--v-header-h); gap: var(--v-space-3); }
.site-logo, .custom-logo-link { display: inline-flex; align-items: center; }
.site-logo img { width: 279px; height: 16px; }
.custom-logo { max-height: 28px; width: auto; }
@media (max-width: 420px) { .site-logo img { width: 210px; height: auto; } }

.site-nav { display: flex; align-items: center; gap: var(--v-space-3); }
.site-nav__list { display: flex; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.site-nav__list > li { position: relative; }
.site-nav__list a { display: block; padding: 0.55rem 0.95rem; border-radius: var(--v-r-pill); font-size: 1rem; font-weight: 450; text-decoration: none; transition: background 0.25s var(--v-ease), color 0.25s var(--v-ease); }
.site-nav__list > li > a:hover { background: var(--v-white); color: var(--v-graphite); }
.site-nav__list > .current-menu-item > a,
.site-nav__list > .current-menu-ancestor > a,
.site-nav__list > .current_page_parent > a { background: var(--v-graphite); color: var(--v-white); }
.site-nav__list .sub-menu {
	position: absolute; left: 0; top: calc(100% + 0.5rem); min-width: 330px; margin: 0; padding: 0.5rem; list-style: none;
	background: var(--v-white); border-radius: var(--v-r-l); box-shadow: 0 30px 60px -20px rgba(38, 39, 42, 0.35);
	opacity: 0; visibility: hidden; transform: translateY(10px) rotate(-1.5deg); transform-origin: top left;
	transition: opacity 0.25s var(--v-ease), transform 0.45s var(--v-ease), visibility 0.25s;
}
.site-nav__list .sub-menu::before { content: ""; position: absolute; inset: -0.6rem 0 auto; height: 0.6rem; }
.site-nav__list li:hover > .sub-menu,
.site-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav__list .sub-menu a { padding: 0.7rem 1rem; border-radius: 12px; }
.site-nav__list .sub-menu a:hover { background: var(--v-ice); color: var(--v-red); }
.nav-toggle { display: none; }

@media (max-width: 1023px) {
	/* backdrop-filter crea un contenitore per gli elementi fixed: su mobile va tolto */
	.site-header { background: var(--v-ice); backdrop-filter: none; -webkit-backdrop-filter: none; }
	.nav-toggle { display: inline-flex; align-items: center; justify-content: center; position: relative; z-index: 2; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--v-graphite); cursor: pointer; transition: background 0.3s; }
	.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after { display: block; width: 18px; height: 2px; background: var(--v-white); border-radius: 2px; transition: transform 0.35s var(--v-ease), background 0.2s; }
	.nav-toggle__bars { position: relative; }
	.nav-toggle__bars::before, .nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
	.nav-toggle__bars::before { top: -6px; }
	.nav-toggle__bars::after { top: 6px; }
	.nav-toggle[aria-expanded="true"] { background: var(--v-red); }
	.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
	.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
	.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

	/* Il pannello si apre a cerchio dal pulsante */
	.site-nav {
		--o: calc(100% - var(--v-gutter) - 24px) calc(var(--v-header-h) / 2);
		position: fixed; inset: 0; z-index: 1;
		flex-direction: column; align-items: stretch; justify-content: center; gap: var(--v-space-4);
		padding: calc(var(--v-header-h) + 1rem) var(--v-gutter) var(--v-space-4);
		background: var(--v-graphite); color: var(--v-white); overflow-y: auto;
		clip-path: circle(0% at var(--o)); visibility: hidden;
		transition: clip-path 0.7s var(--v-ease-in-out), visibility 0s linear 0.7s;
	}
	.site-nav.is-open { clip-path: circle(150% at var(--o)); visibility: visible; transition: clip-path 0.7s var(--v-ease-in-out), visibility 0s; }
	.site-nav__list { flex-direction: column; gap: 0; }
	.site-nav__list > li > a { font-size: clamp(2.25rem, 1.5rem + 4vw, 3.5rem); font-weight: 650; letter-spacing: -0.04em; line-height: 1.1; padding: 0.15rem 0; border-radius: 0; background: none !important; color: var(--v-white) !important; }
	.site-nav__list > li > a:hover { color: var(--v-red-soft) !important; }
	.site-nav__list .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: none; padding: 0.4rem 0 0.9rem; min-width: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
	.site-nav__list .sub-menu::before { display: none; }
	.site-nav__list .sub-menu a { color: var(--v-white); border: 1px solid rgba(255, 255, 255, 0.28); border-radius: var(--v-r-pill); padding: 0.4rem 0.9rem; font-size: 0.95rem; }
	.site-nav__list .sub-menu a:hover { background: var(--v-white); color: var(--v-graphite); }
	.site-nav.is-open .site-nav__list > li { animation: v-menu-in 0.7s var(--v-ease) both; }
	.site-nav.is-open .site-nav__list > li:nth-child(2) { animation-delay: 0.06s; }
	.site-nav.is-open .site-nav__list > li:nth-child(3) { animation-delay: 0.12s; }
	.site-nav.is-open .site-nav__list > li:nth-child(4) { animation-delay: 0.18s; }
	.site-nav.is-open .site-nav__list > li:nth-child(5) { animation-delay: 0.24s; }
	.site-nav.is-open .site-nav__list > li:nth-child(6) { animation-delay: 0.3s; }
	.site-nav__cta { align-self: flex-start; }
	.site-nav .v-button::before { background: var(--v-white); }
	.site-nav .v-button { background: var(--v-red); }
	.site-nav .v-button:hover { color: var(--v-graphite); }
	body.nav-open { overflow: hidden; }
}
@keyframes v-menu-in { from { opacity: 0; transform: translateY(28px) rotate(-3deg); } }

/* ---------- Pulsanti e link ---------- */
.v-button, .wpcf7-submit, .search-form .search-submit {
	position: relative; isolation: isolate; overflow: hidden;
	display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
	padding: 1.05rem 1.75rem; font-family: var(--v-font); font-size: 1rem; font-weight: 550; line-height: 1;
	color: var(--v-white); background: var(--v-graphite); border: 0; border-radius: var(--v-r-pill);
	text-decoration: none; cursor: pointer; transition: transform 0.4s var(--v-ease), color 0.3s, background 0.3s; will-change: transform;
}
.v-button::before, .wpcf7-submit::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--v-red); border-radius: 50% 50% 0 0;
	transform: translateY(102%); transition: transform 0.55s var(--v-ease), border-radius 0.55s var(--v-ease);
}
.v-button:hover, .wpcf7-submit:hover { color: var(--v-white); }
.v-button:hover::before, .wpcf7-submit:hover::before { transform: none; border-radius: 0; }
.search-form .search-submit:hover { background: var(--v-red); }
.v-button--small { padding: 0.8rem 1.25rem; font-size: 0.95rem; }

.v-link {
	display: inline-block; font-weight: 550; text-decoration: none; color: var(--v-graphite); padding-bottom: 0.15em;
	background: linear-gradient(currentColor, currentColor) 0 100% / 100% 2px no-repeat;
	transition: background-size 0.45s var(--v-ease), color 0.2s;
}
.v-link:hover { color: var(--v-red); background-size: 0 2px; background-position: 100% 100%; }

/* ---------- Classi per Elementor (Avanzate → Classi CSS) ---------- */
.v-kicker { margin: 0 0 var(--v-space-2); font-size: 1rem; font-weight: 550; color: var(--v-red); }
.v-lead, .v-lead p { font-size: var(--v-fs-l); line-height: 1.45; font-weight: 350; }
.v-display, .v-display .elementor-heading-title { font-size: var(--v-fs-display); font-weight: 700; line-height: 0.9; letter-spacing: -0.055em; }
.v-outline, .v-outline .elementor-heading-title { color: transparent !important; -webkit-text-stroke: 1.5px var(--v-graphite); }
.v-section { padding-block: var(--v-space-6); }
.v-section--white { background: var(--v-white); }
.v-section--dark { background: var(--v-graphite); color: var(--v-white); }
.v-section--red { background: var(--v-red); color: var(--v-white); }
.v-section--dark .v-kicker { color: var(--v-red-soft); }
.v-section--red .v-kicker { color: var(--v-white); }
.v-section--dark .v-link, .v-section--red .v-link { color: var(--v-white); }
.v-section--dark .v-outline { -webkit-text-stroke-color: var(--v-white); }
.v-rounded { border-radius: var(--v-r-xl); overflow: hidden; }
.v-note { padding: var(--v-space-3); background: var(--v-white); border-radius: var(--v-r-l); font-size: var(--v-fs-s); line-height: 1.55; color: var(--v-text-2); }
.v-note p:last-child { margin-bottom: 0; }
.v-note--accent { background: var(--v-red); color: var(--v-white); }
.v-tag { display: inline-flex; align-items: center; padding: 0.35rem 0.8rem; font-size: 0.85rem; font-weight: 500; line-height: 1.2; background: var(--v-white); color: var(--v-graphite); border-radius: var(--v-r-pill); }
.v-tag--line { background: transparent; border: 1px solid var(--v-line); }
/* compatibilità con la bozza 0.1 */
.v-eyebrow { margin: 0 0 var(--v-space-2); font-size: 1rem; font-weight: 550; color: var(--v-red); }
.v-link-arrow { font-weight: 550; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.25em; }

/* ---------- HERO: tunnel + effetto vertigine allo scroll ---------- */
.v-hero { position: relative; height: 180svh; margin-top: calc(-1 * var(--v-header-h)); }
.v-hero__stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.v-hero__tunnel { position: absolute; inset: 0; width: 100%; height: 100%; }
.v-hero__content {
	position: relative; z-index: 1; height: 100%;
	display: flex; flex-direction: column; justify-content: flex-end;
	padding-top: calc(var(--v-header-h) + 2rem); padding-bottom: clamp(2.5rem, 2rem + 4vw, 6rem);
	transform-origin: 0 100%; will-change: transform, opacity;
}
.v-hero__title { font-size: var(--v-fs-display); font-weight: 700; line-height: 0.88; letter-spacing: -0.058em; max-width: 11ch; margin-bottom: var(--v-space-4); }
.v-hero__title .v-hero__word { display: inline-block; }
.v-hero__lead { max-width: 33rem; font-size: var(--v-fs-l); line-height: 1.45; font-weight: 350; margin-bottom: var(--v-space-4); }
.v-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--v-space-3) var(--v-space-4); }
@media (prefers-reduced-motion: no-preference) {
	.js .v-hero__title .v-hero__word { opacity: 0; transform: translateY(0.4em) rotate(4deg); transform-origin: 0 100%; transition: opacity 0.9s var(--v-ease), transform 1.1s var(--v-ease); transition-delay: calc(var(--i) * 70ms + 150ms); }
	.js .v-hero.is-ready .v-hero__title .v-hero__word { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { .v-hero { height: 100svh; } }
.elementor-editor-active .v-hero { height: 100svh; margin-top: 0; }

/* ---------- Problemi → competenze ---------- */
.v-problems { list-style: none; margin: 0; padding: 0; }
.v-problem + .v-problem { margin-top: 0.5rem; }
.v-problem__row {
	position: relative; isolation: isolate; overflow: hidden;
	display: grid; grid-template-columns: 1fr; gap: 0.75rem var(--v-gutter);
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) clamp(1.25rem, 0.8rem + 2vw, 2.5rem);
	background: var(--v-white); border-radius: var(--v-r-l); text-decoration: none; color: var(--v-graphite);
	transition: color 0.4s var(--v-ease), border-radius 0.6s var(--v-ease);
}
.v-problem__row::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--v-red); clip-path: circle(0% at var(--mx, 0%) var(--my, 50%)); transition: clip-path 0.75s var(--v-ease); }
a.v-problem__row:hover, a.v-problem__row:focus-visible { color: var(--v-white); border-radius: var(--v-r-xl); }
a.v-problem__row:hover::before, a.v-problem__row:focus-visible::before { clip-path: circle(150% at var(--mx, 0%) var(--my, 50%)); }
.v-problem__title { font-size: var(--v-fs-h3); font-weight: 600; letter-spacing: -0.03em; line-height: 1.05; transition: transform 0.6s var(--v-ease); }
a.v-problem__row:hover .v-problem__title { transform: translateX(0.75rem); }
.v-problem__body { display: flex; flex-direction: column; gap: 0.75rem; align-items: flex-start; }
.v-problem__text { color: var(--v-text-2); transition: color 0.4s; }
a.v-problem__row:hover .v-problem__text { color: rgba(255, 255, 255, 0.9); }
.v-problem__link { font-weight: 550; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
@media (min-width: 900px) { .v-problem__row { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; } }

/* ---------- Passaggi: sezione bloccata, le fasi scorrono di lato ---------- */
.v-steps__track { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--v-space-3); }
.v-step { position: relative; overflow: hidden; padding: var(--v-space-5) var(--v-space-3) var(--v-space-3); background: var(--v-white); border-radius: var(--v-r-l); min-height: 19rem; display: flex; flex-direction: column; justify-content: flex-end; }
.v-step__num { position: absolute; top: -0.5rem; right: 1rem; font-size: clamp(7rem, 4rem + 7vw, 12rem); font-weight: 800; line-height: 1; letter-spacing: -0.06em; color: transparent; -webkit-text-stroke: 2px var(--v-red); }
.v-step__title { position: relative; font-size: var(--v-fs-h4); margin: 0 0 0.5rem; }
.v-step__text { position: relative; color: var(--v-text-2); margin: 0; }
.v-steps__progress { display: none; }
.v-section--dark .v-step { background: var(--v-graphite-2); }
.v-section--dark .v-step__text { color: rgba(255, 255, 255, 0.75); }
@media (min-width: 700px) { .v-steps:not(.is-pinned) .v-steps__track { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .v-steps:not(.is-pinned) .v-steps__track { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.v-steps.is-pinned { height: calc(var(--steps, 6) * 40vh + 60vh); }
.v-steps.is-pinned .v-steps__sticky { position: sticky; top: var(--v-header-h); height: calc(100vh - var(--v-header-h)); display: flex; flex-direction: column; justify-content: center; }
.v-steps.is-pinned .v-steps__track { display: flex; gap: var(--v-space-3); width: max-content; will-change: transform; padding-block: 3rem; }
.v-steps.is-pinned .v-step { width: clamp(320px, 28vw, 430px); min-height: 27rem; flex: none; transition: transform 0.6s var(--v-ease); }
.v-steps.is-pinned .v-step:nth-child(odd) { transform: rotate(-1.5deg); }
.v-steps.is-pinned .v-step:nth-child(even) { transform: translateY(2.5rem) rotate(1.5deg); }
.v-steps.is-pinned .v-step:hover { transform: none; }
.v-steps.is-pinned .v-steps__progress { display: block; height: 4px; margin-top: var(--v-space-4); background: var(--v-line); border-radius: 4px; max-width: 360px; }
.v-steps.is-pinned .v-steps__progress span { display: block; height: 100%; background: var(--v-red); border-radius: inherit; transform-origin: left; transform: scaleX(0); }
/* dentro Elementor la sezione deve poter uscire dal contenitore */
.elementor-widget-vertigo-passaggi, .elementor-widget-vertigo-passaggi > .elementor-widget-container { overflow: visible; }

/* ---------- Nastro di parole che scorre con lo scroll ---------- */
.v-ribbon { overflow: hidden; padding-block: 1.25rem; background: var(--v-red); color: var(--v-white); transform: rotate(-2.5deg) scale(1.05); margin-block: var(--v-space-5); }
.v-ribbon--dark { background: var(--v-graphite); transform: rotate(1.5deg) scale(1.05); }
.v-ribbon__track { display: flex; gap: 3rem; width: max-content; will-change: transform; }
.v-ribbon__item { font-size: clamp(2.5rem, 1.5rem + 4vw, 5.5rem); font-weight: 700; letter-spacing: -0.05em; line-height: 1.05; white-space: nowrap; }
.v-ribbon__item:nth-child(even) { color: transparent; -webkit-text-stroke: 1.5px currentColor; color: transparent; }
.v-ribbon__item:nth-child(even) { -webkit-text-stroke-color: var(--v-white); }
.v-ribbon a { color: inherit; text-decoration: none; }

/* ---------- Progetti ---------- */
.v-grid { display: grid; gap: var(--v-space-5) var(--v-gutter); grid-template-columns: 1fr; }
@media (min-width: 700px) { .v-grid--progetti { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) {
	/* composizione asimmetrica: grande, stretta sfalsata, media */
	.v-grid--progetti { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.v-grid--progetti > :nth-child(3n + 1) { grid-column: 1 / span 7; }
	.v-grid--progetti > :nth-child(3n + 2) { grid-column: 9 / span 4; margin-top: 10rem; }
	.v-grid--progetti > :nth-child(3n) { grid-column: 3 / span 6; }
	.v-cols-2 .v-grid--progetti > * { grid-column: span 6 !important; margin-top: 0 !important; }
	.v-cols-2 .v-grid--progetti > :nth-child(even) { margin-top: 6rem !important; }
}
.project-card { perspective: 1100px; }
.project-card__link { display: block; text-decoration: none; color: inherit; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d; transition: transform 0.7s var(--v-ease); }
.project-card.is-tilting .project-card__link { transition: transform 0.15s linear; }
.project-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--v-r-l); background: var(--v-graphite); margin-bottom: var(--v-space-3); isolation: isolate; }
@media (min-width: 1100px) { .v-grid--progetti > :nth-child(3n + 2) .project-card__media { aspect-ratio: 3 / 4; } }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1) translate(calc(var(--ry, 0deg) * -1.5px), calc(var(--rx, 0deg) * 1.5px)); transition: transform 0.9s var(--v-ease); }
.project-card__placeholder { position: absolute; inset: -50%; background: repeating-conic-gradient(from 0deg, var(--v-graphite) 0deg 7.5deg, var(--v-graphite-2) 7.5deg 15deg); transition: transform 1.6s var(--v-ease); }
.project-card__placeholder::after { content: ""; position: absolute; left: 50%; top: 50%; width: 3.5%; aspect-ratio: 1; border-radius: 50%; background: var(--v-red); transform: translate(-50%, -50%); box-shadow: 0 0 0 0.6vw rgba(204, 7, 30, 0.25), 0 0 0 1.3vw rgba(204, 7, 30, 0.12); }
.project-card__link:hover .project-card__placeholder { transform: rotate(75deg); }
.project-card__media .v-tag { position: absolute; left: 1rem; top: 1rem; z-index: 1; }
.project-card__title { font-size: var(--v-fs-h3); font-weight: 600; margin: 0 0 0.5rem; transition: color 0.3s; }
.project-card__link:hover .project-card__title { color: var(--v-red); }
.project-card__excerpt { color: var(--v-text-2); max-width: 36rem; margin-bottom: 0.4rem; }
.project-card__meta { font-size: var(--v-fs-s); color: var(--v-text-2); margin: 0; }
.v-section--dark .project-card__excerpt, .v-section--dark .project-card__meta { color: rgba(255, 255, 255, 0.72); }

/* ---------- Insight: righe ---------- */
.v-grid--insight { gap: 0; }
.insight-card { border-top: 1px solid var(--v-line); }
.v-grid--insight > .insight-card:last-child { border-bottom: 1px solid var(--v-line); }
.insight-card__link { display: grid; gap: 0.75rem var(--v-gutter); grid-template-columns: 1fr; padding: var(--v-space-4) 0; text-decoration: none; color: inherit; }
@media (min-width: 900px) { .insight-card__link { grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 4fr); align-items: start; } }
.insight-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin: 0; font-size: var(--v-fs-s); color: var(--v-text-2); }
.insight-card__title { font-size: var(--v-fs-h4); font-weight: 600; margin: 0; transition: transform 0.5s var(--v-ease), color 0.3s; }
.insight-card__link:hover .insight-card__title { color: var(--v-red); transform: translateX(0.6rem); }
.insight-card__excerpt { color: var(--v-text-2); margin: 0; font-size: var(--v-fs-s); }
.v-empty { color: var(--v-text-2); padding: var(--v-space-4) 0; }

/* ---------- Intestazioni pagina / archivi ---------- */
.page-header { position: relative; overflow: hidden; padding: var(--v-space-5) 0; }
.page-header .container { position: relative; z-index: 1; }
.page-header__title { font-size: var(--v-fs-display); font-weight: 700; line-height: 0.9; letter-spacing: -0.055em; max-width: 12ch; }
.page-header--article .page-header__title { font-size: var(--v-fs-h2); max-width: 20ch; }
.page-header__lead { font-size: var(--v-fs-l); line-height: 1.45; max-width: 36rem; color: var(--v-text-2); font-weight: 350; }
.page-header__spiral { position: absolute; right: -8vw; top: 50%; width: min(60vw, 700px); transform: translateY(-50%); pointer-events: none; }
.page-header__spiral rect { fill: none; stroke: var(--v-steel); stroke-width: 1; opacity: 0.5; }
.page-header__spiral rect:nth-child(6n) { stroke: var(--v-red); stroke-width: 2; opacity: 1; }
.page-header__spiral g { transform-origin: 50% 50%; }
@media (prefers-reduced-motion: no-preference) { .page-header__spiral g { animation: v-spin 90s linear infinite; } }
@media (max-width: 899px) { .page-header__spiral { opacity: 0.25; right: -30vw; width: 90vw; } }

.breadcrumbs { font-size: var(--v-fs-s); color: var(--v-text-2); margin-bottom: var(--v-space-3); }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }

.filter-bar { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: var(--v-space-5); }
.filter-bar a { padding: 0.55rem 1rem; border-radius: var(--v-r-pill); background: var(--v-white); font-size: var(--v-fs-s); text-decoration: none; transition: background 0.25s, color 0.25s; }
.filter-bar a:hover { color: var(--v-red); }
.filter-bar a[aria-current="page"] { background: var(--v-graphite); color: var(--v-white); }

.nav-links { display: flex; gap: 0.5rem; margin: var(--v-space-5) 0; }
.nav-links .page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 0.8rem; border-radius: var(--v-r-pill); background: var(--v-white); text-decoration: none; }
.nav-links .current { background: var(--v-red); color: var(--v-white); }

/* ---------- Singolo progetto ---------- */
.project__intro { display: grid; gap: var(--v-space-3) var(--v-gutter); padding-bottom: var(--v-space-5); }
@media (min-width: 900px) { .project__intro { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.fact-sheet { margin: 0; padding: var(--v-space-2) var(--v-space-3); background: var(--v-white); border-radius: var(--v-r-l); }
.fact-sheet > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1rem; padding: 0.8rem 0; font-size: var(--v-fs-s); }
.fact-sheet > div + div { border-top: 1px solid var(--v-line); }
.fact-sheet dt { color: var(--v-text-2); }
.fact-sheet dd { margin: 0; font-weight: 500; }
.project__summary { display: grid; gap: var(--v-space-3); align-content: start; }
@media (min-width: 700px) { .project__summary { grid-template-columns: 1fr 1fr; } }
.project__summary .v-note { font-size: var(--v-fs-m); padding: var(--v-space-4) var(--v-space-3); color: var(--v-graphite); }
.project__summary .v-note--accent { color: var(--v-white); }
.project__summary .v-note--accent .v-kicker { color: var(--v-white); }
.project__cover, .insight__cover { margin-top: 0; margin-bottom: var(--v-space-5); }
.project__cover img, .insight__cover img { width: 100%; border-radius: var(--v-r-xl); }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--v-gutter); margin-top: var(--v-space-5); margin-bottom: var(--v-space-5); }
.post-nav a { display: block; padding: var(--v-space-3); background: var(--v-white); border-radius: var(--v-r-l); text-decoration: none; font-size: var(--v-fs-h4); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; transition: background 0.3s, color 0.3s; }
.post-nav a:hover { background: var(--v-graphite); color: var(--v-white); }
.post-nav a .v-kicker { display: block; font-size: var(--v-fs-s); margin-bottom: 0.4rem; }
.post-nav__next { grid-column: 2; text-align: right; }

/* ---------- Testo editoriale ---------- */
.prose { padding-bottom: var(--v-space-5); font-size: 1.1875rem; line-height: 1.7; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: var(--v-fs-h3); margin-top: 1.8em; }
.prose h3 { font-size: var(--v-fs-h4); margin-top: 1.6em; }
.prose a { color: var(--v-red); }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose li + li { margin-top: 0.4em; }
.prose li::marker { color: var(--v-red); }
.prose blockquote { margin: 2em 0; padding: var(--v-space-4); background: var(--v-graphite); color: var(--v-white); border-radius: var(--v-r-l); font-size: var(--v-fs-l); font-weight: 450; line-height: 1.4; letter-spacing: -0.01em; }
.prose blockquote p:last-child { margin: 0; }
.prose figure { margin: 2em 0; }
.prose img { border-radius: var(--v-r-l); }
.prose figcaption, .wp-element-caption { font-size: var(--v-fs-s); color: var(--v-text-2); margin-top: 0.5rem; }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--v-fs-s); }
.prose th, .prose td { text-align: left; padding: 0.7rem 0.5rem; border-bottom: 1px solid var(--v-line); }
.insight__author { display: flex; gap: var(--v-space-3); align-items: center; padding: var(--v-space-3); margin-bottom: var(--v-space-5); background: var(--v-white); border-radius: var(--v-r-l); }
.insight__author img { border-radius: 50%; flex: none; }
.insight__author p { margin: 0; }
.insight__author-name { font-weight: 600; font-size: var(--v-fs-m); }
.search-results { list-style: none; padding: 0; margin: var(--v-space-4) 0; }
.search-results li { border-top: 1px solid var(--v-line); padding: var(--v-space-3) 0; }
.search-results h2 { font-size: var(--v-fs-h4); margin: 0 0 0.4rem; }
.search-results h2 a { text-decoration: none; }

/* ---------- Chiusura rossa con anello rotante ---------- */
.closing-cta { background: var(--v-red); color: var(--v-white); padding-block: var(--v-space-6); overflow: hidden; }
.closing-cta__inner { display: grid; gap: var(--v-space-5) var(--v-gutter); align-items: center; }
@media (min-width: 900px) { .closing-cta__inner { grid-template-columns: minmax(0, 1fr) auto; } }
.closing-cta__title { font-size: var(--v-fs-display); font-weight: 700; line-height: 0.9; letter-spacing: -0.055em; max-width: 10ch; }
.closing-cta__text { font-size: var(--v-fs-l); max-width: 34rem; line-height: 1.45; font-weight: 350; color: rgba(255, 255, 255, 0.92); margin: 0; }
.closing-cta__orb { position: relative; display: grid; place-items: center; width: clamp(210px, 14vw + 110px, 300px); aspect-ratio: 1; border-radius: 50%; background: var(--v-white); color: var(--v-red); text-decoration: none; transition: transform 0.5s var(--v-ease), background 0.4s, color 0.4s; justify-self: start; }
@media (min-width: 900px) { .closing-cta__orb { justify-self: end; } }
.closing-cta__orb:hover { background: var(--v-graphite); color: var(--v-white); }
.closing-cta__ring { position: absolute; inset: 5%; width: 90%; height: 90%; overflow: visible; }
@media (prefers-reduced-motion: no-preference) { .closing-cta__ring { animation: v-spin 18s linear infinite; } .closing-cta__orb:hover .closing-cta__ring { animation-duration: 5s; } }
.closing-cta__ring text { fill: currentColor; font-family: var(--v-font); font-size: 15px; font-weight: 500; }
.closing-cta__label { font-size: clamp(1.25rem, 1rem + 0.8vw, 1.7rem); font-weight: 700; letter-spacing: -0.03em; }
@keyframes v-spin { to { transform: rotate(360deg); } }

/* ---------- Footer ---------- */
.site-footer { background: var(--v-white); color: var(--v-graphite); font-size: var(--v-fs-s); padding-top: var(--v-space-5); }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--v-red); }
.site-footer .v-kicker { font-size: var(--v-fs-s); color: var(--v-text-2); font-weight: 450; margin-bottom: 0.75rem; }
.site-footer__grid { display: grid; gap: var(--v-space-4) var(--v-gutter); grid-template-columns: 1fr; padding-bottom: var(--v-space-5); }
@media (min-width: 768px) { .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .site-footer__grid { grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2.3fr)); } }
.site-footer__payoff { max-width: 22rem; margin-top: var(--v-space-3); font-size: var(--v-fs-m); color: var(--v-text-2); }
.site-footer__address { font-style: normal; line-height: 1.8; }
.site-footer__menu, .site-footer__legal { list-style: none; margin: 0; padding: 0; }
.site-footer__menu li { margin-bottom: 0.35rem; }
.site-footer__menu a { font-size: var(--v-fs-m); font-weight: 500; }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: var(--v-space-3); border-top: 1px solid var(--v-line); font-size: 0.875rem; color: var(--v-text-2); }
.site-footer__bottom p { margin: 0; }
.site-footer__legal { display: flex; gap: 1.5rem; }

/* ---------- Moduli (Contact Form 7) ---------- */
.wpcf7-form p { margin-bottom: var(--v-space-3); }
.wpcf7-form label { display: block; font-size: var(--v-fs-s); font-weight: 550; margin-bottom: 0.4rem; }
.wpcf7-form .v-field-hint { font-weight: 400; color: var(--v-text-2); }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form textarea, .wpcf7-form select, .search-form .search-field { width: 100%; margin-top: 0.4rem; padding: 1rem 1.15rem; font: inherit; font-weight: 400; color: var(--v-graphite); background: var(--v-white); border: 2px solid transparent; border-radius: 14px; transition: border-color 0.2s; }
.wpcf7-form textarea { min-height: 9rem; resize: vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus, .search-form .search-field:focus { outline: none; border-color: var(--v-red); }
.wpcf7-form .wpcf7-checkbox, .wpcf7-form .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.6rem; }
.wpcf7-form .wpcf7-list-item { margin: 0; }
.wpcf7-form .wpcf7-list-item label { font-weight: 400; margin: 0; }
.wpcf7-form .wpcf7-list-item input { position: absolute; opacity: 0; }
.wpcf7-form .wpcf7-list-item-label { display: inline-block; padding: 0.6rem 1rem; background: var(--v-white); border-radius: var(--v-r-pill); cursor: pointer; font-size: var(--v-fs-s); transition: all 0.25s var(--v-ease); }
.wpcf7-form .wpcf7-list-item-label:hover { color: var(--v-red); }
.wpcf7-form .wpcf7-list-item input:checked + .wpcf7-list-item-label { background: var(--v-red); color: var(--v-white); }
.wpcf7-form .wpcf7-list-item input:focus-visible + .wpcf7-list-item-label { outline: 3px solid var(--v-red); outline-offset: 2px; }
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item input { position: static; opacity: 1; margin-right: 0.5rem; accent-color: var(--v-red); }
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label { background: none; padding: 0; border-radius: 0; font-size: 0.875rem; }
.wpcf7-not-valid-tip { font-size: 0.875rem; color: var(--v-red); }
.wpcf7 form .wpcf7-response-output { margin: var(--v-space-3) 0 0; padding: 1rem; border-radius: 14px; }
.search-form { display: flex; gap: 0.75rem; align-items: flex-end; margin: var(--v-space-3) 0; }
.search-form label { flex: 1; }

/* ---------- Elementor ---------- */
.elementor-page-wrap { overflow-x: clip; }
:where(.elementor-widget-heading) .elementor-heading-title { font-family: inherit; line-height: 1; }
:where(.elementor-widget-text-editor) { font-size: var(--v-fs-m); }
:where(.elementor-widget-text-editor) p:last-child { margin-bottom: 0; }

/* ---------- Comparsa allo scroll (solo dove serve: classe .v-reveal) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.js .v-reveal { opacity: 0; transform: perspective(900px) translateY(48px) rotateX(-14deg); transform-origin: 50% 100%; transition: opacity 0.9s var(--v-ease), transform 1.2s var(--v-ease); }
	.js .v-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* Logo sempre visibile sopra il pannello del menu mobile */
.site-header__brand { position: relative; z-index: 2; }

/* ==========================================================================
   Componenti delle pagine interne
   ========================================================================== */

/* H1 in due parti: argomento in chiaro (SEO/GEO) + titolo d'impatto */
.v-h1-topic {
	display: block; margin-bottom: 0.9rem;
	font-size: clamp(1rem, 0.9rem + 0.35vw, 1.25rem); font-weight: 550; line-height: 1.3; letter-spacing: -0.005em;
	color: var(--v-red);
}
.v-section--dark .v-h1-topic { color: var(--v-red-soft); }
.v-hero__title .v-h1-topic { margin-bottom: 1.25rem; }

.page-header--intro { padding: clamp(3rem, 2rem + 4vw, 7rem) 0 clamp(2.5rem, 2rem + 3vw, 5rem); }
.page-header--intro .page-header__title { max-width: 14ch; }
.page-header__actions { margin-top: var(--v-space-4); display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; }

.v-section--tight { padding-block: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.v-section-head { max-width: 52rem; margin-bottom: var(--v-space-5); }
.v-section-head__title { margin-bottom: 0; }
.v-section-head__intro { margin-top: var(--v-space-3); margin-bottom: 0; color: var(--v-text-2); }
.v-section--dark .v-section-head__intro { color: rgba(255, 255, 255, 0.78); }
.v-section-foot { margin: var(--v-space-5) 0 0; }

/* Segno grafico ricorrente: piccolo quadrato ruotato (eco del tunnel) */
.v-summary__label::before,
.v-checklist li::before,
.v-card__index::before {
	content: ""; display: inline-block; width: 0.6em; height: 0.6em; border-radius: 0.14em;
	background: var(--v-red); transform: rotate(45deg); flex: none;
}

/* ---------- In breve ---------- */
.v-summary {
	display: grid; gap: var(--v-space-4) var(--v-gutter);
	padding: clamp(1.5rem, 1rem + 2.5vw, 3.5rem);
	background: var(--v-white); border-radius: var(--v-r-xl);
	box-shadow: 0 40px 80px -50px rgba(38, 39, 42, 0.35);
}
@media (min-width: 1000px) { .v-summary { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.v-summary__label { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 var(--v-space-2); font-weight: 600; color: var(--v-red); }
.v-summary__answer { margin: 0; font-size: var(--v-fs-l); line-height: 1.5; font-weight: 400; }
.v-summary__facts { margin: 0; display: grid; align-content: start; }
.v-summary__facts > div { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--v-line); }
.v-summary__facts > div:first-child { padding-top: 0; }
.v-summary__facts > div:last-child { border-bottom: 0; padding-bottom: 0; }
.v-summary__facts dt { color: var(--v-text-2); font-size: var(--v-fs-s); }
.v-summary__facts dd { margin: 0; font-weight: 500; font-size: var(--v-fs-s); }

/* ---------- Split: titolo che resta fermo, testo che scorre ---------- */
.v-split { display: grid; gap: var(--v-space-3) var(--v-gutter); }
@media (min-width: 1000px) {
	.v-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
	.v-split__head { position: sticky; top: calc(var(--v-header-h) + 2rem); }
}
.v-split__title { font-size: var(--v-fs-h3); line-height: 1.02; margin: 0; max-width: 16ch; }
.v-split__body { font-size: 1.1875rem; line-height: 1.7; max-width: 40rem; }
.v-split__body p:last-child { margin-bottom: 0; }
.v-split__body a:not(.v-link) { color: var(--v-red); font-weight: 500; }
.v-section--dark .v-split__body a:not(.v-link) { color: var(--v-red-soft); }
.v-split__link { margin-top: var(--v-space-3); }

/* ---------- Card ---------- */
.v-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.v-cards--big { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 1.25rem; }
.v-card {
	position: relative; display: flex; flex-direction: column; gap: 0.75rem;
	padding: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); min-height: 15rem;
	background: var(--v-white); border-radius: var(--v-r-l); color: var(--v-graphite); text-decoration: none;
	transition: transform 0.6s var(--v-ease), box-shadow 0.6s var(--v-ease), background 0.4s, color 0.4s;
}
.v-section--white .v-card { background: var(--v-ice); }
.v-section--dark .v-card { background: var(--v-graphite-2); color: var(--v-white); }
.v-card__title { font-size: var(--v-fs-h4); margin: 0; }
.v-cards--big .v-card__title { font-size: var(--v-fs-h3); }
.v-card__text { margin: 0; color: var(--v-text-2); font-size: var(--v-fs-s); line-height: 1.55; }
.v-cards--big .v-card__text { font-size: var(--v-fs-m); }
.v-section--dark .v-card__text { color: rgba(255, 255, 255, 0.75); }
.v-card__more { margin-top: auto; padding-top: var(--v-space-2); font-weight: 550; font-size: var(--v-fs-s); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
a.v-card:hover { transform: translateY(-6px) rotate(-0.8deg); box-shadow: 0 30px 60px -30px rgba(38, 39, 42, 0.35); background: var(--v-graphite); color: var(--v-white); }
a.v-card:hover .v-card__text { color: rgba(255, 255, 255, 0.78); }
a.v-card:hover .v-card__more { color: var(--v-red-soft); }
.v-cards--big a.v-card:nth-child(even):hover { transform: translateY(-6px) rotate(0.8deg); }
/* principi: niente fondo, solo filetto e segno */
.v-cards--plain .v-card { background: none !important; padding: var(--v-space-3) 0 0; min-height: 0; border-radius: 0; border-top: 2px solid currentColor; }
.v-card__index { display: block; height: 1rem; }
.v-card__index::before { font-size: 1.1rem; transition: transform 0.8s var(--v-ease); }
.v-cards--plain .v-card:hover .v-card__index::before { transform: rotate(225deg); }

/* ---------- Checklist ---------- */
.v-checklist { list-style: none; margin: 0 0 var(--v-space-3); padding: 0; display: grid; gap: 0 var(--v-gutter); }
@media (min-width: 700px) { .v-checklist { grid-template-columns: 1fr 1fr; } }
.v-checklist li { display: flex; align-items: baseline; gap: 0.85rem; padding: 0.75rem 0; border-bottom: 1px solid var(--v-line); font-size: var(--v-fs-m); line-height: 1.4; }
.v-checklist li::before { width: 0.5em; height: 0.5em; transform: rotate(45deg) translateY(-0.1em); }
.v-checklist__note { color: var(--v-text-2); font-size: var(--v-fs-m); }

/* ---------- Citazioni (sezione scura) ---------- */
.v-quotes-section { overflow: hidden; }
.v-quotes__title { max-width: 18ch; margin-bottom: var(--v-space-5); }
.v-quotes { list-style: none; margin: 0 0 var(--v-space-5); padding: 0; display: flex; flex-wrap: wrap; gap: 0.9rem; }
.v-quote {
	padding: 0.9rem 1.5rem; border-radius: var(--v-r-pill);
	font-size: var(--v-fs-h4); font-weight: 500; letter-spacing: -0.02em; line-height: 1.2;
	border: 1.5px solid rgba(255, 255, 255, 0.35); transition: background 0.4s, color 0.4s, transform 0.6s var(--v-ease);
}
.v-quote:nth-child(3n + 1) { background: var(--v-red); border-color: var(--v-red); }
.v-quote:nth-child(odd) { transform: rotate(-1.5deg); }
.v-quote:nth-child(even) { transform: rotate(1.2deg); }
.v-quote:hover { transform: none; background: var(--v-white); color: var(--v-graphite); border-color: var(--v-white); }
.js .v-quote.v-reveal.is-visible:nth-child(odd) { transform: rotate(-1.5deg); }
.js .v-quote.v-reveal.is-visible:nth-child(even) { transform: rotate(1.2deg); }
.v-quote.v-reveal:nth-child(2) { transition-delay: 0.08s; }
.v-quote.v-reveal:nth-child(3) { transition-delay: 0.16s; }
.v-quote.v-reveal:nth-child(4) { transition-delay: 0.24s; }
.v-quote.v-reveal:nth-child(5) { transition-delay: 0.32s; }
.v-quotes__outro { max-width: 46rem; color: rgba(255, 255, 255, 0.85); margin: 0; }

/* ---------- Collegamenti ---------- */
.v-related-wrap { display: grid; gap: var(--v-space-3) var(--v-gutter); align-items: center; }
@media (min-width: 1000px) { .v-related-wrap { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }
.v-related__title { font-size: var(--v-fs-h4); margin: 0; }
.v-related { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.v-related__link {
	display: inline-block; padding: 0.85rem 1.4rem; border-radius: var(--v-r-pill);
	border: 1.5px solid var(--v-graphite); font-size: var(--v-fs-m); font-weight: 550; text-decoration: none;
	transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.5s var(--v-ease);
}
.v-related__link:hover { background: var(--v-red); border-color: var(--v-red); color: var(--v-white); transform: rotate(-2deg); }

/* ---------- FAQ ---------- */
.v-faq { display: grid; gap: 0.6rem; }
.v-faq__item { background: var(--v-white); border-radius: var(--v-r-l); transition: background 0.3s; }
.v-section--white .v-faq__item { background: var(--v-ice); }
.v-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 1.5rem; cursor: pointer; list-style: none; }
.v-faq__q::-webkit-details-marker { display: none; }
.v-faq__q h3 { margin: 0; font-size: var(--v-fs-m); font-weight: 600; letter-spacing: -0.01em; line-height: 1.35; }
.v-faq__q::after {
	content: ""; flex: none; width: 2.25rem; height: 2.25rem; border-radius: 50%;
	background: var(--v-graphite) no-repeat center / 14px 14px
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	transition: transform 0.5s var(--v-ease), background-color 0.3s;
}
.v-faq__item[open] .v-faq__q::after { transform: rotate(135deg); background-color: var(--v-red); }
.v-faq__q:hover h3 { color: var(--v-red); }
.v-faq__a { padding: 0 1.5rem 1.5rem; color: var(--v-text-2); line-height: 1.65; max-width: 46rem; }
.v-faq__a p { margin: 0; }

/* ---------- Contatti ---------- */
.v-contact { display: grid; gap: var(--v-space-4) var(--v-gutter); align-items: start; }
@media (min-width: 1000px) { .v-contact { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } .v-contact__aside { position: sticky; top: calc(var(--v-header-h) + 2rem); } }
.v-contact__form { padding: clamp(1.5rem, 1rem + 2.5vw, 3.5rem); background: var(--v-white); border-radius: var(--v-r-xl); }
.v-contact__form .wpcf7-form input[type="text"], .v-contact__form .wpcf7-form input[type="email"], .v-contact__form .wpcf7-form input[type="tel"], .v-contact__form .wpcf7-form textarea { background: var(--v-ice); }
.v-contact__form .wpcf7-form .wpcf7-list-item-label { background: var(--v-ice); }
.v-contact__title { font-size: var(--v-fs-h3); margin-bottom: var(--v-space-4); }
.v-contact__aside { display: grid; gap: 1rem; }
.v-contact__data { padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); background: var(--v-graphite); color: var(--v-white); border-radius: var(--v-r-xl); }
.v-contact__data h3 { font-size: var(--v-fs-h4); margin-bottom: 1rem; }
.v-contact__data address { font-style: normal; display: grid; gap: 0.4rem; margin-bottom: var(--v-space-3); color: rgba(255, 255, 255, 0.8); }
.v-contact__big { font-size: var(--v-fs-h4); font-weight: 600; letter-spacing: -0.02em; color: var(--v-white); text-decoration: none; overflow-wrap: anywhere; }
.v-contact__big:hover { color: var(--v-red-soft); }
.v-contact__data .v-link { color: var(--v-white); }
.v-contact__after { padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); background: var(--v-white); border-radius: var(--v-r-xl); }
.v-contact__after h3 { font-size: var(--v-fs-h4); }
.v-contact__after ol { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.6rem; color: var(--v-text-2); }
.v-contact__after li::marker { color: var(--v-red); font-weight: 700; }

/* Etichette lunghe nel cerchio finale */
.closing-cta__label { max-width: 64%; text-align: center; line-height: 1.08; }
@media (max-width: 600px) { .v-summary__facts > div { grid-template-columns: 6rem 1fr; } }

/* Hero: il titolo si adatta anche all'altezza dello schermo (portatili, barra admin) */
.v-hero__title { font-size: min(var(--v-fs-display), 11.5svh); }
.v-hero__title .v-h1-topic { font-size: clamp(1rem, 0.9rem + 0.35vw, 1.25rem); }
@media (max-height: 760px) { .v-hero__lead { font-size: var(--v-fs-m); margin-bottom: var(--v-space-3); } .v-hero__title { margin-bottom: var(--v-space-3); } }
.v-hero__title { font-size: min(var(--v-fs-display), 10svh); }
.v-hero__content { padding-bottom: clamp(1.5rem, 1rem + 2.5vw, 4rem); }
.v-hero__lead { max-width: 40rem; }

/* ==========================================================================
   Icone animate delle competenze
   ========================================================================== */
.v-icon { width: 100%; height: 100%; color: var(--v-graphite); overflow: visible; }
.v-icon * { transform-box: fill-box; transform-origin: center; }
.v-icon .vi-red { stroke: var(--v-red); }
.v-icon .vi-red-fill { fill: var(--v-red); stroke: none; }
.v-icon .vi-fill { fill: currentColor; stroke: none; }

@media (prefers-reduced-motion: no-preference) {
	/* siti web: righe che si scrivono, cursore */
	.vi-type { stroke-dasharray: 40; stroke-dashoffset: 40; animation: vi-type 3.6s var(--v-ease) infinite; }
	.vi-type--2 { animation-delay: 0.5s; }
	.vi-type--3 { animation-delay: 1s; }
	.vi-cursor { animation: vi-blink 0.9s steps(1) infinite; }
	/* marketing: onde */
	.vi-wave { animation: vi-wave 2.4s var(--v-ease) infinite; transform-origin: left center; }
	.vi-wave--2 { animation-delay: 0.25s; }
	.vi-wave--3 { animation-delay: 0.5s; }
	/* seo/geo: lente in orbita, scintilla che ruota */
	.vi-orbit { animation: vi-orbit 5s ease-in-out infinite; }
	.vi-spark { animation: vi-spin 4s linear infinite; }
	/* design ed editoria: pagina che gira */
	.vi-page { transform-origin: left center; animation: vi-page 3.2s var(--v-ease-in-out) infinite; }
	/* AI: nodi in sequenza, nucleo che pulsa */
	.vi-node { animation: vi-node 2.8s ease-in-out infinite; }
	.vi-node--2 { animation-delay: 0.35s; }
	.vi-node--3 { animation-delay: 0.7s; }
	.vi-node--4 { animation-delay: 1.05s; }
	.vi-core { animation: vi-core 1.4s ease-in-out infinite; }
	/* digitalizzazione: ingranaggi */
	.vi-gear--a { animation: vi-spin 6s linear infinite; }
	.vi-gear--b { animation: vi-spin 4s linear infinite reverse; }
	/* formazione: raggi e filamento */
	.vi-ray { animation: vi-ray 2s ease-in-out infinite; }
	.vi-ray--2 { animation-delay: 0.2s; } .vi-ray--3 { animation-delay: 0.4s; } .vi-ray--4 { animation-delay: 0.6s; } .vi-ray--5 { animation-delay: 0.8s; }
	.vi-filament { animation: vi-glow 2s ease-in-out infinite; }
	/* generica */
	.vi-spin { animation: vi-spin 8s linear infinite; }
	.vi-spin--rev { animation-direction: reverse; animation-duration: 5s; }
	/* al passaggio del mouse tutto accelera */
	a:hover .v-icon *, .v-cat:hover .v-icon * { animation-duration: 1.1s; }
	a:hover .v-icon .vi-gear--a, .v-cat:hover .v-icon .vi-gear--a { animation-duration: 2s; }
	a:hover .v-icon .vi-spin, .v-cat:hover .v-icon .vi-spin { animation-duration: 2s; }
}
@keyframes vi-type { 0% { stroke-dashoffset: 40; } 40%, 80% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -40; } }
@keyframes vi-blink { 50% { opacity: 0; } }
@keyframes vi-wave { 0% { opacity: 0; transform: scale(0.7); } 40% { opacity: 1; } 100% { opacity: 0; transform: scale(1.15); } }
@keyframes vi-orbit { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(4px, -3px); } 50% { transform: translate(6px, 3px); } 75% { transform: translate(-2px, 4px); } }
@keyframes vi-spin { to { transform: rotate(360deg); } }
@keyframes vi-page { 0%, 15% { transform: rotateY(0); } 50%, 65% { transform: rotateY(-180deg); } 100% { transform: rotateY(-360deg); } }
@keyframes vi-node { 0%, 100% { transform: scale(1); fill: transparent; } 30% { transform: scale(1.35); fill: var(--v-red); stroke: var(--v-red); } }
@keyframes vi-core { 50% { transform: scale(0.75); opacity: 0.7; } }
@keyframes vi-ray { 0%, 100% { opacity: 0.15; } 50% { opacity: 1; } }
@keyframes vi-glow { 50% { opacity: 0.35; } }

/* ==========================================================================
   Portfolio per categorie
   ========================================================================== */
.v-cats {
	display: grid; gap: 0.75rem; margin-bottom: var(--v-space-5);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
}
.v-cat {
	position: relative; display: grid; grid-template-rows: auto 1fr auto; gap: 0.75rem;
	padding: 1.25rem; min-height: 11.5rem; border-radius: var(--v-r-l);
	background: var(--v-white); color: var(--v-graphite); text-decoration: none;
	transition: transform 0.6s var(--v-ease), background 0.35s, color 0.35s, box-shadow 0.6s var(--v-ease);
}
.v-cat__icon { display: block; width: 52px; height: 52px; }
.v-cat__name { font-weight: 600; font-size: 1.05rem; line-height: 1.2; letter-spacing: -0.01em; align-self: end; }
.v-cat__count { font-size: 0.85rem; color: var(--v-text-2); }
.v-cat:hover { transform: translateY(-5px) rotate(-1deg); box-shadow: 0 24px 50px -28px rgba(38, 39, 42, 0.45); color: var(--v-graphite); }
.v-cat:nth-child(even):hover { transform: translateY(-5px) rotate(1deg); }
.v-cat.is-current { background: var(--v-graphite); color: var(--v-white); }
.v-cat.is-current .v-icon { color: var(--v-white); }
.v-cat.is-current .v-cat__count { color: rgba(255, 255, 255, 0.7); }
.v-cat.is-empty { background: transparent; border: 1.5px dashed var(--v-line); }
.v-cat.is-empty .v-cat__count { color: var(--v-red); }

.v-cat-hero { display: flex; align-items: flex-end; gap: clamp(1rem, 0.5rem + 2vw, 2.5rem); }
.v-cat-hero__icon { flex: none; width: clamp(72px, 4rem + 4vw, 140px); height: clamp(72px, 4rem + 4vw, 140px); margin-bottom: 0.4em; }
.v-cat-hero .page-header__title { margin-bottom: 0; }

.v-section--top0 { padding-top: 0; }
.v-cat-section__head { display: grid; gap: 1rem 1.5rem; align-items: center; margin-bottom: var(--v-space-5); grid-template-columns: auto 1fr; }
@media (min-width: 900px) { .v-cat-section__head { grid-template-columns: auto 1fr auto; } }
.v-cat-section__icon { width: clamp(56px, 3rem + 2vw, 84px); height: clamp(56px, 3rem + 2vw, 84px); }
.v-cat-section__title { font-size: var(--v-fs-h3); margin: 0 0 0.3rem; }
.v-cat-section__desc { margin: 0; color: var(--v-text-2); max-width: 46rem; }
.v-cat-section__head .v-link { grid-column: 1 / -1; justify-self: start; }
@media (min-width: 900px) { .v-cat-section__head .v-link { grid-column: auto; justify-self: end; } }

.v-tag--icon { gap: 0.45rem; padding-left: 0.45rem; }
.v-tag--icon .v-icon { width: 22px; height: 22px; }
a.v-tag:hover { color: var(--v-red); }
.project-card__media.has-image img { object-position: top center; }

/* ==========================================================================
   Pagina progetto: sito in un browser e in un telefono
   ========================================================================== */
.project-hero__cats { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 var(--v-space-3); }
.v-showcase { padding-bottom: var(--v-space-5); overflow: hidden; }
.v-showcase__stage { position: relative; padding-right: clamp(0px, 9vw, 160px); }
.v-browser {
	margin: 0; border-radius: 14px; overflow: hidden; background: var(--v-white);
	box-shadow: 0 50px 100px -40px rgba(38, 39, 42, 0.45), 0 0 0 1px rgba(38, 39, 42, 0.08);
	transform: translateY(var(--py, 0));
}
.v-browser__bar { display: flex; align-items: center; gap: 1rem; height: 40px; padding: 0 1rem; background: var(--v-ice); border-bottom: 1px solid var(--v-line); }
.v-browser__dots { display: flex; gap: 6px; }
.v-browser__dots i { width: 11px; height: 11px; border-radius: 50%; background: var(--v-steel); opacity: 0.45; }
.v-browser__dots i:first-child { background: var(--v-red); opacity: 1; }
.v-browser__url { flex: 1; max-width: 420px; margin: 0 auto; padding: 0.3rem 1rem; border-radius: var(--v-r-pill); background: var(--v-white); font-size: 0.8rem; color: var(--v-text-2); text-align: center; }
.v-browser__screen img { width: 100%; height: auto; display: block; }
.v-phone {
	position: absolute; right: 0; bottom: -2rem; margin: 0;
	width: clamp(130px, 14vw + 40px, 280px); padding: 9px; border-radius: 34px;
	background: var(--v-graphite); box-shadow: 0 40px 80px -30px rgba(38, 39, 42, 0.6);
	transform: translateY(var(--py, 0)) rotate(3deg);
}
.v-phone::before { content: ""; position: absolute; top: 15px; left: 50%; width: 28%; height: 6px; border-radius: 6px; background: #000; transform: translateX(-50%); z-index: 1; opacity: 0.6; }
.v-phone__screen { border-radius: 26px; overflow: hidden; aspect-ratio: 390 / 844; background: var(--v-white); }
.v-phone__screen img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
@media (max-width: 700px) { .v-phone { bottom: -1rem; right: -0.5rem; } }

.v-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.v-pills li { padding: 0.5rem 0.95rem; border-radius: var(--v-r-pill); background: var(--v-graphite); color: var(--v-white); font-size: 0.9rem; font-weight: 500; }
.project__services { grid-column: 1 / -1; }

.v-gallery { display: grid; gap: var(--v-space-4) var(--v-gutter); grid-template-columns: 1fr; }
@media (min-width: 800px) { .v-gallery { grid-template-columns: 1fr 1fr; } .v-gallery > :nth-child(even) { margin-top: 4rem; } }
.v-browser--small .v-browser__bar { height: 30px; }
.v-browser--small .v-browser__dots i { width: 8px; height: 8px; }

/* ==========================================================================
   Banner cookie
   ========================================================================== */
.v-cookie {
	position: fixed; z-index: 200; left: clamp(0.75rem, 2vw, 1.5rem); bottom: clamp(0.75rem, 2vw, 1.5rem);
	width: min(440px, calc(100vw - 1.5rem)); max-height: calc(100vh - 2rem); overflow-y: auto;
	padding: 1.5rem 1.5rem 1.25rem; border-radius: var(--v-r-l);
	background: var(--v-graphite); color: var(--v-white);
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.45);
	opacity: 0; transform: translateY(24px) rotate(-1.5deg); transform-origin: bottom left;
	transition: opacity 0.45s var(--v-ease), transform 0.6s var(--v-ease);
}
.v-cookie.is-visible { opacity: 1; transform: none; }
.v-cookie[hidden] { display: none; }
.v-cookie__close {
	position: absolute; top: 0.75rem; right: 0.75rem; width: 36px; height: 36px; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, 0.08) no-repeat center / 12px 12px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 1l10 10M11 1L1 11' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
	cursor: pointer; transition: background-color 0.25s, transform 0.4s var(--v-ease);
}
.v-cookie__close:hover { background-color: var(--v-red); transform: rotate(90deg); }
.v-cookie__head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; padding-right: 2.5rem; }
.v-cookie__mark { width: 22px; height: 22px; flex: none; border: 2px solid var(--v-red); border-radius: 6px; position: relative; }
.v-cookie__mark::after { content: ""; position: absolute; inset: 4px; border-radius: 2px; background: var(--v-red); }
@media (prefers-reduced-motion: no-preference) { .v-cookie__mark { animation: vi-spin 6s linear infinite; } }
.v-cookie__title { font-size: 1.15rem; margin: 0; letter-spacing: -0.015em; }
.v-cookie__text { font-size: 0.92rem; line-height: 1.55; color: rgba(255, 255, 255, 0.82); margin: 0 0 1.1rem; }
.v-cookie__text a { color: var(--v-white); text-decoration: underline; }
.v-cookie__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.v-cookie__btn {
	padding: 0.85rem 1rem; border-radius: var(--v-r-pill); border: 1.5px solid var(--v-white);
	background: var(--v-white); color: var(--v-graphite); font: inherit; font-size: 0.95rem; font-weight: 600; cursor: pointer;
	transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.v-cookie__btn:hover { background: var(--v-red); border-color: var(--v-red); color: var(--v-white); }
.v-cookie__btn--save { grid-column: 1 / -1; }
.v-cookie__link { grid-column: 1 / -1; justify-self: center; margin-top: 0.25rem; padding: 0.4rem; border: 0; background: none; color: var(--v-white); font: inherit; font-size: 0.9rem; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.v-cookie__link:hover { color: var(--v-red-soft); }
.v-cookie__link[hidden], .v-cookie__btn[hidden], .v-cookie__prefs[hidden] { display: none; }
.v-cookie__prefs fieldset { margin: 0 0 1rem; padding: 0; border: 0; display: grid; gap: 0.5rem; }
.v-cookie :focus-visible { outline-color: var(--v-white); }

.v-switch { display: grid; grid-template-columns: auto 1fr; gap: 0.85rem; align-items: start; padding: 0.85rem; border-radius: 14px; background: rgba(255, 255, 255, 0.06); cursor: pointer; }
.v-switch input { position: absolute; opacity: 0; }
.v-switch__ui { position: relative; width: 42px; height: 24px; border-radius: 24px; background: rgba(255, 255, 255, 0.25); transition: background 0.25s; margin-top: 2px; }
.v-switch__ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--v-white); transition: transform 0.35s var(--v-ease); }
.v-switch input:checked + .v-switch__ui { background: var(--v-red); }
.v-switch input:checked + .v-switch__ui::after { transform: translateX(18px); }
.v-switch input:focus-visible + .v-switch__ui { outline: 2px solid var(--v-white); outline-offset: 2px; }
.v-switch.is-locked { cursor: default; opacity: 0.8; }
.v-switch__text { font-size: 0.85rem; line-height: 1.45; color: rgba(255, 255, 255, 0.78); }
.v-switch__text strong { display: block; color: var(--v-white); font-size: 0.95rem; }

.site-footer__legal-wrap { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; }
.v-cookie-open { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
.v-cookie-open:hover { color: var(--v-red); }
.v-showcase { overflow: visible; overflow-x: clip; padding-bottom: clamp(3.5rem, 2rem + 6vw, 8rem); }
.v-cat__icon { width: 58px; height: 58px; }

/* Intestazioni interne: spirale del logo (sostituisce la spirale di quadrati). */
.page-header__spiral { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cdefs%3E%3Cfilter id='s' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='9' flood-color='%2326272a' flood-opacity='.34'/%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='2.5' flood-color='%2326272a' flood-opacity='.18'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M213.7 182.7 215.1 183.9 216.5 184.9 217.8 186.0 219.1 187.2 220.4 188.5 221.5 190.0 222.6 191.5 223.5 193.1 224.4 194.8 225.1 196.6 225.7 198.4 226.1 200.3 226.4 202.3 226.6 204.3 226.6 206.4 226.5 208.5 226.1 210.6 225.7 212.7 225.0 214.8 224.2 216.8 223.2 218.9 222.1 220.8 220.7 222.7 219.3 224.5 217.6 226.3 215.8 227.9 213.9 229.3 211.9 230.7 209.7 231.9 207.4 233.0 205.0 233.9 202.5 234.6 199.9 235.1 197.3 235.4 194.6 235.6 191.9 235.5 189.2 235.2 186.4 234.7 183.7 234.0 181.0 233.1 178.4 232.0 175.8 230.6 173.3 229.1 170.9 227.3 168.6 225.4 166.4 223.2 164.4 220.9 162.6 218.4 160.9 215.8 159.4 212.9 158.1 210.0 157.1 207.0 156.2 203.8 155.6 200.6 155.2 197.2 155.1 193.9 155.3 190.5 155.6 187.1 156.3 183.6 157.2 180.3 158.4 176.9 159.8 173.7 161.5 170.5 163.5 167.4 165.7 164.5 168.1 161.7 170.8 159.1 173.7 156.6 176.7 154.4 180.0 152.4 183.4 150.6 187.0 149.0 190.8 147.8 194.6 146.8 198.5 146.0 202.6 145.6 206.6 145.5 210.8 145.7 214.9 146.2 219.0 147.0 223.0 148.1 227.0 149.5 230.9 151.3 234.8 153.3 238.4 155.7 241.9 158.3 245.3 161.2 248.4 164.4 251.3 167.8 254.0 171.5 256.4 175.4 258.5 179.5 260.3 183.7 261.8 188.1 263.0 192.7 263.8 197.4 264.3 202.1 264.5 206.9 264.3 211.8 263.7 216.6 262.7 221.4 261.4 226.2 259.7 230.9 257.7 235.5 255.3 240.0 252.6 244.3 249.5 248.4 246.1 252.3 242.4 256.0 238.4 259.4 234.1 262.5 229.6 265.3 224.9 267.8 219.9 269.9 214.8 271.7 209.5 273.1 204.1 274.1 198.6 274.7 193.0 274.9 187.4 274.6 181.8 274.0 176.2 272.9 170.7 271.4 165.2 269.5 159.9 267.2 154.7 264.5 149.8 261.3 145.0 257.8 140.5 253.9 136.3 249.7 132.3 245.1 128.7 240.2 125.5 235.1 122.6 229.6 120.1 224.0 118.0 218.1 116.4 212.0 115.2 205.8 114.5 199.5 114.2 193.2 114.4 186.8 115.1 180.3 116.3 173.9 118.0 167.6 120.1 161.4 122.7 155.3 125.8 149.4 129.3 143.7 133.3 138.3 137.7 133.1 142.5 128.2 147.6 123.7 153.2 119.6 159.0 115.8 165.1 112.5 171.6 109.6 178.2 107.2 185.1 105.3 192.1 103.9 199.2 103.0 206.4 102.7 213.7 102.8 221.0 103.6 228.2 104.8 235.4 106.7 242.5 109.0 249.4 111.9 256.1 115.3 262.6 119.3 268.8 123.7 274.6 128.6 280.2 134.0 285.3 139.7 290.1 145.9 294.4 152.5 298.2 159.4 301.5 166.6 304.3 174.0 306.5 181.7 308.1 189.6 309.2 197.6 309.7 205.8 309.6 214.0 308.8 222.2 307.5 230.3 305.5 238.4 303.0 246.4 299.8 254.2 296.0 261.8 291.7 269.1 286.8 276.1 281.4 282.8 275.4 289.1 269.0 295.0 262.1 300.4 254.8 305.3 247.1 309.7 239.1 313.5 230.7 316.7 222.1 319.3 213.3 321.3 204.3 322.6 195.2 323.3 186.0 323.3 176.7 322.6 167.5 321.2 158.4 319.2 149.4 316.4 140.6 313.0 132.0 308.9 123.6 304.2 115.6 298.8 108.0 292.9 100.7 286.3 94.0 279.2 87.7 271.6 81.9 263.6 76.6 255.0 71.8 246.1 67.1 237.0 67.1 237.0 69.5 247.1 73.3 256.7 78.0 265.9 83.3 274.7 89.4 283.1 96.0 290.9 103.2 298.2 111.0 304.9 119.2 311.0 127.8 316.5 136.8 321.2 146.1 325.3 155.7 328.7 165.4 331.3 175.3 333.1 185.3 334.2 195.4 334.6 205.4 334.2 215.3 333.1 225.0 331.2 234.6 328.6 243.9 325.3 253.0 321.4 261.6 316.7 269.9 311.5 277.8 305.7 285.1 299.3 292.0 292.4 298.3 285.0 304.0 277.3 309.1 269.1 313.5 260.6 317.3 251.8 320.5 242.8 322.9 233.7 324.6 224.4 325.7 215.0 326.0 205.6 325.6 196.2 324.5 187.0 322.8 177.8 320.3 168.9 317.3 160.2 313.6 151.8 309.3 143.7 304.4 136.0 299.0 128.7 293.0 121.8 286.6 115.4 279.8 109.6 272.6 104.3 265.0 99.6 257.2 95.4 249.0 91.9 240.7 89.0 232.2 86.8 223.6 85.2 215.0 84.2 206.3 83.9 197.7 84.2 189.1 85.2 180.7 86.8 172.5 89.1 164.5 91.9 156.7 95.3 149.3 99.2 142.2 103.7 135.5 108.7 129.2 114.1 123.4 119.9 118.0 126.2 113.2 132.8 108.9 139.7 105.1 146.9 101.9 154.3 99.2 161.9 97.2 169.6 95.7 177.5 94.9 185.3 94.6 193.2 94.9 201.1 95.8 208.8 97.2 216.5 99.3 223.9 101.8 231.2 104.9 238.2 108.5 244.9 112.5 251.3 117.0 257.4 121.9 263.0 127.2 268.3 132.8 273.1 138.8 277.5 145.0 281.4 151.5 284.7 158.1 287.6 165.0 290.0 171.9 291.8 178.9 293.1 186.0 293.9 193.0 294.1 200.0 293.8 207.0 293.0 213.8 291.7 220.4 289.9 226.9 287.6 233.1 284.8 239.1 281.6 244.7 278.0 250.1 274.0 255.1 269.7 259.8 265.0 264.0 260.0 267.8 254.7 271.3 249.2 274.2 243.5 276.7 237.6 278.8 231.6 280.4 225.4 281.5 219.3 282.1 213.1 282.3 206.9 282.0 200.8 281.3 194.7 280.1 188.8 278.5 183.0 276.4 177.3 274.0 171.9 271.2 166.8 268.0 161.8 264.5 157.2 260.7 152.9 256.6 148.9 252.2 145.3 247.7 142.0 242.9 139.1 237.9 136.6 232.9 134.4 227.7 132.7 222.4 131.4 217.1 130.5 211.8 130.0 206.5 129.9 201.3 130.2 196.1 130.9 191.1 131.9 186.2 133.4 181.4 135.2 176.9 137.3 172.5 139.7 168.4 142.4 164.5 145.4 160.9 148.7 157.6 152.2 154.6 155.9 151.9 159.8 149.6 163.8 147.5 168.0 145.8 172.2 144.4 176.6 143.4 180.9 142.8 185.3 142.4 189.7 142.4 194.1 142.7 198.4 143.4 202.7 144.3 206.8 145.6 210.8 147.1 214.6 148.9 218.3 151.0 221.8 153.3 225.1 155.8 228.2 158.5 231.0 161.4 233.6 164.4 236.0 167.6 238.1 170.9 239.9 174.2 241.4 177.7 242.7 181.1 243.7 184.6 244.4 188.1 244.8 191.6 244.9 195.0 244.8 198.4 244.5 201.7 243.8 204.9 243.0 207.9 241.9 210.9 240.6 213.6 239.1 216.3 237.4 218.7 235.5 221.0 233.5 223.0 231.4 224.9 229.1 226.5 226.7 228.0 224.3 229.2 221.7 230.2 219.2 231.0 216.6 231.5 214.0 231.9 211.4 232.0 208.8 232.0 206.3 231.7 203.9 231.3 201.5 230.7 199.2 229.9 197.0 228.9 194.9 227.8 192.9 226.6 191.1 225.3 189.4 223.8 187.9 222.3 186.5 220.7 185.3 219.0 184.3 217.3 183.5 215.6 182.9 213.7 182.7Z' fill='%23fff' filter='url(%23s)'/%3E%3Cpath d='M120.6 245.8 117.0 240.0 113.7 233.9 111.0 227.6 108.6 221.0 106.8 214.2 105.5 207.3 104.7 200.3 104.4 193.2 104.6 186.0 105.4 178.9 106.7 171.8 108.6 164.8 111.0 157.8 113.9 151.1 117.3 144.6 121.3 138.2 125.7 132.2 130.5 126.5 135.9 121.2 141.6 116.2 147.7 111.6 154.2 107.5 160.9 103.9 168.0 100.7 175.4 98.1 182.9 96.1 190.6 94.6 198.4 93.6 206.4 93.3 214.3 93.5 222.3 94.4 230.2 95.8 238.1 97.8 245.8 100.5 253.3 103.7 260.6 107.5 267.6 111.8 274.3 116.6 280.6 122.0' fill='none' stroke='%23cc071e' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='200' cy='200' r='3.5' fill='%23cc071e'/%3E%3C/svg%3E") center / contain no-repeat; }
.page-header__spiral g { display: none; }
