/* KleisTEK – stile "strumentazione di precisione".
   I colori principali vengono dalla palette globale di Kadence (--global-palette1..9);
   i valori dopo la virgola sono quelli di riserva, se la palette non è impostata. */

:root {
	--kt-accent: var(--global-palette1, #0B6E8F);
	--kt-link: var(--global-palette2, #0B5D78);
	--kt-night: var(--global-palette3, #12202A);
	--kt-text: var(--global-palette4, #2F3E46);
	--kt-text-soft: var(--global-palette5, #43525A);
	--kt-muted: var(--global-palette6, #5A6870);
	--kt-band: var(--global-palette7, #E9ECE6);
	--kt-bg: var(--global-palette8, #F4F5F2);
	--kt-white: var(--global-palette9, #FFFFFF);
	--kt-border: #D5D9D3;
	--kt-wave-1: #5CC8E6;
	--kt-wave-2: #E8A33D;
	--kt-font-head: 'Space Grotesk', system-ui, sans-serif;
	--kt-font-mono: 'IBM Plex Mono', ui-monospace, Consolas, monospace;
	--kt-wide: 1200px;
}

/* ---------- Elementi comuni ---------- */

.kt-label {
	font-family: var(--kt-font-mono);
	font-size: 13px !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kt-link);
	margin-bottom: 0.75rem !important;
}

.kt-section {
	padding-top: clamp(56px, 8vw, 96px);
	padding-bottom: clamp(40px, 6vw, 72px);
}
/* Margini laterali: selettore più specifico per prevalere sulle regole di Kadence per i blocchi a tutta larghezza. */
.wp-block-group.alignfull.kt-section {
	padding-left: 24px;
	padding-right: 24px;
}

.kt-section h1,
.kt-section h2 {
	font-family: var(--kt-font-head);
	font-weight: 600;
	font-size: clamp(30px, 3.6vw, 42px);
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin-top: 0;
}

.kt-arrow a,
a.kt-arrow {
	font-weight: 600;
	text-decoration: none;
}

/* Data di aggiornamento in Privacy e Cookie Policy */
.kt-updated {
	font-family: var(--kt-font-mono);
	font-size: 13px;
	color: var(--kt-muted);
}

/* ---------- Selettore lingua IT/EN nel menu (Polylang) ---------- */

.main-navigation .menu-item.lang-item > a {
	font-family: var(--kt-font-mono);
	font-size: 13px;
	padding: 6px 10px !important;
	border: 1px solid #C3C9C2;
	border-radius: 6px;
	margin-left: 4px;
}
.main-navigation .menu-item.lang-item.current-lang > a {
	background: var(--kt-night);
	color: #F4F5F2;
	border-color: var(--kt-night);
}

/* ---------- Hero (blocco HTML personalizzato) ---------- */

.kt-hero {
	background-color: var(--kt-night);
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
	background-size: 40px 40px;
	color: #F4F5F2;
}

.kt-hero__inner {
	max-width: var(--kt-wide);
	margin: 0 auto;
	padding: clamp(56px, 9vw, 96px) 24px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr));
	gap: 48px;
	align-items: center;
}

.kt-hero__text { display: flex; flex-direction: column; gap: 24px; }

.kt-hero__eyebrow {
	font-family: var(--kt-font-mono);
	font-size: 13px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #8FD3E8;
}

.kt-hero h1 {
	margin: 0;
	font-family: var(--kt-font-head);
	font-weight: 600;
	font-size: clamp(38px, 5.2vw, 64px);
	line-height: 1.04;
	letter-spacing: -0.02em;
	color: #F4F5F2;
}

.kt-hero__lead {
	margin: 0;
	font-size: 19px;
	line-height: 1.55;
	color: #C5CED3;
	max-width: 34em;
}

.kt-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }

.kt-btn {
	display: inline-block;
	padding: 15px 24px;
	border-radius: 6px;
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
}
.kt-btn--primary { background: var(--kt-accent); color: #FFFFFF !important; }
.kt-btn--primary:hover { background: var(--kt-link); }
.kt-btn--ghost { border: 1px solid #5B6B74; color: #F4F5F2 !important; padding: 14px 24px; font-weight: 500; }
.kt-btn--ghost:hover { border-color: #8FD3E8; }

.kt-scope {
	border: 1px solid #2E3E48;
	border-radius: 10px;
	background: #0C171E;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.kt-scope__head {
	display: flex;
	justify-content: space-between;
	font-family: var(--kt-font-mono);
	font-size: 12px;
	color: #7F9099;
}
.kt-scope svg { width: 100%; height: auto; display: block; }
.kt-scope__grid line { stroke: #1F2E37; stroke-width: 1; }
.kt-scope__ch1 { stroke: var(--kt-wave-1); }
.kt-scope__ch2 { stroke: var(--kt-wave-2); opacity: 0.9; }
.kt-scope__foot {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	font-family: var(--kt-font-mono);
	font-size: 12px;
	color: #7F9099;
}
.kt-scope__foot div { border-top: 1px solid #2E3E48; padding-top: 10px; }
.kt-scope__foot span { color: #E6ECEF; }

@media (prefers-reduced-motion: no-preference) {
	.kt-scope__ch1 { stroke-dasharray: 1400; animation: kt-trace 3s ease-out both; }
	@keyframes kt-trace { from { stroke-dashoffset: 1400; } to { stroke-dashoffset: 0; } }
}

/* ---------- Pannello di misura a 4 canali (hero) ---------- */

.kt-daq {
	border: 1px solid #2E3E48;
	border-radius: 10px;
	background: #0C171E;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-family: var(--kt-font-mono);
	color: #7F9099;
}
.kt-daq__top { display: flex; justify-content: space-between; font-size: 12px; letter-spacing: 0.06em; }
.kt-daq__live i {
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #E8A33D;
	vertical-align: 1px;
	margin: 0 2px;
}
.kt-daq__chs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2×2 anche su telefono */
	gap: 10px;
}
.kt-daq__ch {
	border: 1px solid #1F2E37;
	border-radius: 6px;
	background: #0A141A;
	padding: 8px 10px 10px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}
.kt-daq__head {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 10.5px;
	letter-spacing: 0.04em;
	line-height: 1.3;
	color: #6E808A;
}
.kt-daq__head span:first-child { color: #E6ECEF; }
.kt-daq__ch svg { width: 100%; height: auto; display: block; overflow: hidden; }
.kt-daq__grid line { stroke: #1A2933; stroke-width: 1; }
.kt-daq__ref { stroke: #2E4350; stroke-width: 1; }
.kt-daq__ref--dash { stroke-dasharray: 4 3; stroke: #45606E; }
.kt-daq__trace { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.kt-daq__trace--cyan { stroke: var(--kt-wave-1); }
.kt-daq__trace--amber { stroke: var(--kt-wave-2); }
.kt-daq__trace--yellow { stroke: #F2D45C; }
.kt-daq__trace--red { stroke: #F0605A; }
.kt-daq__key--cyan { color: var(--kt-wave-1); }
.kt-daq__key--yellow { color: #F2D45C; }
.kt-daq__key--red { color: #F0605A; }

/* Canali cliccabili: portano alla pagina dell'ambito */
a.kt-daq__ch { text-decoration: none; color: inherit; cursor: pointer; transition: border-color 0.15s, background-color 0.15s; }
a.kt-daq__ch:hover { border-color: var(--kt-wave-1); background: #0D1A21; }
a.kt-daq__ch:focus-visible { outline: 2px solid var(--kt-wave-1); outline-offset: 2px; }
a.kt-daq__ch .kt-daq__head span:first-child::after { content: " →"; opacity: 0; transition: opacity 0.15s; }
a.kt-daq__ch:hover .kt-daq__head span:first-child::after { opacity: 1; }
.kt-daq__pts circle { fill: #0A141A; stroke: var(--kt-wave-2); stroke-width: 1.5; }
.kt-daq__val { font-size: 11px; color: var(--kt-wave-1); }
.kt-daq__val--amber { color: var(--kt-wave-2); }
.kt-daq__val--pass { color: #7FD6A0; letter-spacing: 0.08em; }

/* CH4: esiti della verifica */
.kt-daq .kt-daq__vse { list-style: none; margin: 4px 0 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 9px; flex: 1; justify-content: center; }
.kt-daq__vse li {
	display: grid;
	grid-template-columns: 1fr auto auto;
	grid-template-areas: "name name name" "bar val lim";
	gap: 3px 8px;
	font-size: 10.5px;
	line-height: 1.3;
}
.kt-daq__vname { grid-area: name; color: #C5CED3; }
.kt-daq__vval { grid-area: val; color: #E6ECEF; text-align: right; }
.kt-daq__vlim { grid-area: lim; color: #6E808A; text-align: right; }
.kt-daq__bar { grid-area: bar; align-self: center; height: 4px; border-radius: 2px; background: #1F2E37; overflow: hidden; }
.kt-daq__bar i { display: block; height: 100%; width: var(--w, 50%); background: var(--kt-wave-1); border-radius: 2px; }

/* Telefono: pannello compatto, il canale delle verifiche va su tre righe (nome, barra, valore e limite). */
@media (max-width: 520px) {
	.kt-daq { padding: 12px; gap: 10px; }
	.kt-daq__chs { gap: 8px; }
	.kt-daq__ch { padding: 6px 7px 8px; }
	.kt-daq__head { font-size: 9px; }
	.kt-daq__val { font-size: 9.5px; }
	.kt-daq__vse { gap: 7px; }
	.kt-daq__vse li {
		font-size: 9px;
		grid-template-columns: 1fr auto;
		grid-template-areas: "name name" "bar bar" "val lim";
		gap: 2px 6px;
	}
	.kt-daq__vval { text-align: left; }
}

@media (prefers-reduced-motion: no-preference) {
	.kt-daq__scroll { animation: kt-daq-scroll 6s linear infinite; }
	@keyframes kt-daq-scroll { from { transform: translateX(0); } to { transform: translateX(-200px); } }
	/* Ciclo di 8 s: le curve si disegnano, restano visibili, svaniscono e ripartono (come un'acquisizione ripetuta). */
	.kt-daq__draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: kt-daq-draw 8s ease-out 0.3s infinite; }
	@keyframes kt-daq-draw {
		0%   { stroke-dashoffset: 1; opacity: 1; }
		35%  { stroke-dashoffset: 0; opacity: 1; }
		85%  { stroke-dashoffset: 0; opacity: 1; }
		95%  { stroke-dashoffset: 0; opacity: 0; }
		100% { stroke-dashoffset: 1; opacity: 0; }
	}
	.kt-daq__pts circle { opacity: 0; animation: kt-daq-pts 8s ease-out 0.3s infinite; }
	@keyframes kt-daq-pts {
		0%, 32% { opacity: 0; }
		38%, 85% { opacity: 1; }
		95%, 100% { opacity: 0; }
	}
	.kt-daq__bar i { transform-origin: left; transform: scaleX(0); animation: kt-daq-bar 8s ease-out 0.6s infinite; }
	@keyframes kt-daq-bar {
		0%       { transform: scaleX(0); opacity: 1; }
		18%, 85% { transform: scaleX(1); opacity: 1; }
		95%      { transform: scaleX(1); opacity: 0; }
		100%     { transform: scaleX(0); opacity: 0; }
	}
	.kt-daq__live i { animation: kt-daq-blink 1.6s steps(2, start) infinite; }
	@keyframes kt-daq-blink { to { visibility: hidden; } }
}

/* ---------- Schede degli ambiti (blocchi Colonne nativi) ---------- */

.kt-cards { gap: 20px !important; }

.kt-card {
	background: var(--kt-white);
	border: 1px solid var(--kt-border);
	border-radius: 10px;
	padding: 28px !important;
	display: flex;
	flex-direction: column;
	transition: border-color 0.15s, transform 0.15s;
}
.kt-card:hover { border-color: var(--kt-accent); transform: translateY(-2px); }
/* Foto in cima alla scheda, a filo dei bordi */
.kt-card .kt-card-img {
	margin: -28px -28px 18px !important;
	border-radius: 9px 9px 0 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--kt-band);
}
.kt-card .kt-card-img img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.kt-card { overflow: hidden; position: relative; }

/* Scheda interamente cliccabile: il link del titolo si estende a tutta la scheda (foto compresa). */
.kt-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.kt-card:hover h3 a { color: var(--kt-accent); }
.kt-card:focus-within { outline: 2px solid var(--kt-accent); outline-offset: 2px; }
.kt-card .kt-card-img img { transition: transform 0.3s; }
.kt-card:hover .kt-card-img img { transform: scale(1.04); }

/* Foto larga e bassa in cima alle pagine degli ambiti */
.wp-block-image.kt-page-banner {
	aspect-ratio: 3 / 1;
	overflow: hidden;
	border-radius: 10px;
	margin: 0 0 32px !important;
	background: var(--kt-band);
}
.wp-block-image.kt-page-banner img { width: 100%; height: 100% !important; object-fit: cover; object-position: center 45%; display: block; }
@media (max-width: 600px) {
	.wp-block-image.kt-page-banner { aspect-ratio: 2 / 1; }
}

/* Fascia MePA su una riga (logo · testo · link) su schermo grande */
@media (min-width: 900px) {
	.wp-block-group.kt-mepa.is-layout-flex { flex-wrap: nowrap !important; gap: 24px; }
	.kt-mepa > p:not(.kt-arrow) { flex: 1 1 auto; margin: 0 !important; }
	.kt-mepa > p.kt-arrow { flex: 0 0 auto; margin: 0 !important; white-space: nowrap; }
}

/* Logo "Acquisti in rete PA" nella fascia MePA */
.kt-mepa .kt-mepa-logo { margin: 0 !important; flex: 0 0 auto; }
.kt-mepa .kt-mepa-logo img {
	height: 64px !important;
	width: auto !important;
	background: #FFFFFF;
	border-radius: 6px;
	padding: 4px 8px;
	display: block;
}

.kt-card .kt-num {
	font-family: var(--kt-font-mono);
	font-size: 12px;
	color: var(--kt-muted);
	margin: 0 0 10px;
}
.kt-card h3 {
	font-family: var(--kt-font-head);
	font-size: 22px;
	font-weight: 600;
	margin: 0 0 12px;
}
.kt-card h3 a { color: var(--kt-night); text-decoration: none; }
.kt-card p { font-size: 16px; line-height: 1.55; color: var(--kt-text-soft); }
.kt-card .kt-arrow { margin-top: auto; padding-top: 8px; }

/* ---------- Fascia MePA ---------- */

.kt-mepa {
	border: 1px solid #C3C9C2;
	border-radius: 10px;
	background: var(--kt-band);
	padding: 24px 28px !important;
	margin-top: 40px !important;
	align-items: center !important;
}
.kt-badge {
	display: inline-block;
	font-family: var(--kt-font-mono);
	font-weight: 500;
	font-size: 14px;
	background: var(--kt-night);
	color: #F4F5F2;
	padding: 8px 12px;
	border-radius: 5px;
	margin: 0 !important;
}

/* ---------- Clienti ---------- */

.kt-clienti {
	background: var(--kt-white);
	border-top: 1px solid var(--kt-border);
	border-bottom: 1px solid var(--kt-border);
}
.kt-clienti .kt-label { color: var(--kt-muted); }
.kt-logo-ph {
	height: 72px;
	border: 1px dashed #B9C0B8;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--kt-font-mono);
	font-size: 13px;
	color: var(--kt-muted);
	margin: 0 !important;
}
.kt-clienti .wp-block-gallery img { filter: grayscale(1); opacity: 0.8; object-fit: contain; }
.kt-clienti .wp-block-gallery img:hover { filter: none; opacity: 1; }

/* Nomi dei clienti in home (al posto dei loghi) */
.kt-client-tiles { gap: 12px !important; margin: 8px 0 20px; }
.kt-client-tile {
	min-height: 72px;
	border: 1px solid var(--kt-border);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 10px 14px;
	font-family: var(--kt-font-head);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.25;
	color: var(--kt-night);
	margin: 0 !important;
}

/* ---------- Pagina clienti ---------- */

.kt-stats { gap: 12px 40px !important; margin: 28px 0 8px !important; }
.kt-stat {
	font-family: var(--kt-font-mono);
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kt-muted);
	margin: 0 !important;
}
.kt-stat strong {
	display: block;
	font-family: var(--kt-font-head);
	font-size: 44px;
	letter-spacing: -0.02em;
	text-transform: none;
	color: var(--kt-accent);
	line-height: 1.05;
}
/* Mappa dei clienti */
.kt-map-wrap { margin: 32px 0 8px; position: relative; }
.kt-map {
	height: clamp(340px, 55vw, 520px);
	border: 1px solid var(--kt-border);
	border-radius: 10px;
	background: #E9ECE6;
	z-index: 0;
}
.kt-map-tools {
	display: flex;
	gap: 2px;
	margin-bottom: 10px;
	font-family: var(--kt-font-mono);
	font-size: 13px;
	border: 1px solid #C3C9C2;
	border-radius: 6px;
	padding: 2px;
	width: max-content;
}
.kt-map-wrap .kt-map-tools button,
.kt-map-wrap .kt-map-tools button:hover,
.kt-map-wrap .kt-map-tools button:focus {
	font: inherit;
	background: transparent;
	color: var(--kt-night);
	border: 0;
	border-radius: 4px;
	box-shadow: none;
	padding: 6px 12px;
	cursor: pointer;
}
.kt-map-wrap .kt-map-tools button:hover { background: var(--kt-band); }
.kt-map-wrap .kt-map-tools button:focus-visible { outline: 2px solid var(--kt-accent); outline-offset: 1px; }
.kt-map-wrap .kt-map-tools button.is-active,
.kt-map-wrap .kt-map-tools button.is-active:hover,
.kt-map-wrap .kt-map-tools button.is-active:focus { background: var(--kt-night); color: #F4F5F2; }
.kt-map-note {
	font-family: var(--kt-font-mono);
	font-size: 12px;
	color: var(--kt-muted);
	margin-top: 8px !important;
}
/* Segnaposto a goccia */
.kt-map .kt-pin { background: none; border: 0; }
.kt-map .kt-pin svg { display: block; overflow: visible; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.3)); transition: transform 0.15s; transform-origin: 50% 100%; }
.kt-map .kt-pin:hover svg { transform: scale(1.12); }
.kt-map .kt-pin--hq svg { transform-origin: 50% 50%; }

/* Il tema applica "transition: all" alle immagini: sui riquadri della cartina basta l'opacità. */
.kt-map img.leaflet-tile { transition: opacity 0.2s linear !important; }
.kt-map-pop { font-family: 'IBM Plex Sans', system-ui, sans-serif; font-size: 13px; line-height: 1.4; }
.kt-map-pop strong { font-family: var(--kt-font-head); font-size: 15px; color: var(--kt-night); display: block; }
.kt-map-count { font-family: var(--kt-font-mono); font-size: 11px; color: var(--kt-muted); }
.kt-map-pop ul { margin: 8px 0 0; padding-left: 16px; }
.kt-map-pop li { margin-bottom: 6px; }
.kt-map-pop small { color: var(--kt-text-soft); }

.kt-section h2.kt-client-group {
	font-size: 24px;
	margin: 56px 0 16px;
	padding-top: 16px;
	border-top: 2px solid var(--kt-night);
}
.kt-client-group span {
	font-family: var(--kt-font-mono);
	font-size: 13px;
	font-weight: 400;
	color: var(--kt-muted);
	vertical-align: middle;
	margin-left: 6px;
}
.kt-client-grid { gap: 12px !important; }
.kt-client {
	background: var(--kt-white);
	border: 1px solid var(--kt-border);
	border-radius: 8px;
	padding: 16px 18px;
	font-size: 15px;
	line-height: 1.45;
	color: var(--kt-text-soft);
	margin: 0 !important;
}
.kt-client strong { color: var(--kt-night); font-weight: 600; }
.kt-client-city {
	display: inline-block;
	margin-top: 6px;
	font-family: var(--kt-font-mono);
	font-size: 12px;
	color: var(--kt-muted);
}

/* ---------- Gallerie foto nelle pagine "Cosa facciamo" ---------- */

.kt-gallery-section { margin-top: 48px; }
.wp-block-gallery.kt-gallery { gap: 12px !important; }
.wp-block-gallery.kt-gallery .wp-block-image {
	aspect-ratio: 4 / 3;
	border: 1px solid var(--kt-border);
	border-radius: 8px;
	overflow: hidden;
	background: var(--kt-white);
}
/* Foto intere (contain), centrate nel riquadro: nessun ritaglio, qualunque sia il formato. */
.wp-block-gallery.kt-gallery .wp-block-image img {
	width: 100%;
	height: 100% !important;
	object-fit: contain !important;
	padding: 6px;
	box-sizing: border-box;
	transition: transform 0.2s;
}
.wp-block-gallery.kt-gallery .wp-block-image:hover { border-color: var(--kt-accent); }
@media (min-width: 900px) {
	.wp-block-gallery.kt-gallery.columns-default .wp-block-image { width: calc(33.333% - 8px) !important; }
}

/* Variante "a mosaico" (classe kt-mosaic): righe di altezza uguale, ogni foto con la sua proporzione. */
.wp-block-gallery.has-nested-images.kt-mosaic {
	display: flex;
	flex-wrap: wrap;
	gap: 10px !important;
}
.wp-block-gallery.has-nested-images.kt-mosaic::after {
	content: "";
	flex-grow: 999999; /* l'ultima riga non si allarga a dismisura */
}
.wp-block-gallery.has-nested-images.kt-mosaic figure.wp-block-image:not(#individual-image) {
	aspect-ratio: var(--ar, 1.333);
	flex: calc(var(--ar, 1.333) * 100) 1 calc(var(--ar, 1.333) * 200px) !important;
	width: auto !important;
	margin: 0 !important;
	border: 0;
	border-radius: 6px;
	background: transparent;
}
.wp-block-gallery.has-nested-images.kt-mosaic figure.wp-block-image img {
	padding: 0;
	object-fit: cover !important; /* il riquadro ha già la proporzione della foto: nessun ritaglio */
}
.wp-block-gallery.has-nested-images.kt-mosaic figure.wp-block-image:hover img { opacity: 0.9; }
@media (min-width: 900px) {
	.wp-block-gallery.has-nested-images.kt-mosaic figure.wp-block-image:not(#individual-image) {
		flex-basis: calc(var(--ar, 1.333) * 280px) !important;
	}
}
@media (max-width: 600px) {
	.wp-block-gallery.has-nested-images.kt-mosaic figure.wp-block-image:not(#individual-image) {
		flex-basis: calc(var(--ar, 1.333) * 120px) !important;
	}
}

/* ---------- Video (pagina Ricerca scientifica) ---------- */

.kt-video-section { margin-top: 48px; }
.kt-video-grid { gap: 12px !important; margin-bottom: 12px !important; }
.kt-video-grid .wp-block-video { margin: 0; }
@media (min-width: 700px) {
	.kt-video-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
.kt-video-grid video {
	width: 100%;
	display: block;
	border-radius: 8px;
	object-fit: contain; /* video intero, nessun ritaglio */
}
/* Clip brevi (disegni CAD, prove): riquadri 4:3 su fondo bianco con bordo */
.kt-video-clips video {
	aspect-ratio: 4 / 3 !important; /* prevale sulla proporzione impostata in automatico */
	height: auto !important;
	background: var(--kt-white);
	border: 1px solid var(--kt-border);
}
/* Video principali: 16:9 su fondo scuro */
.kt-video-main video {
	aspect-ratio: 16 / 9 !important;
	height: auto !important;
	background: #0C171E;
}
/* A schermo intero il video occupa tutto lo schermo e si vede intero (senza le regole dei riquadri). */
.kt-video-grid video:fullscreen {
	aspect-ratio: auto !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #000 !important;
}
.kt-video-grid video:-webkit-full-screen {
	aspect-ratio: auto !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #000 !important;
}

/* ---------- Tech pills: pagina articoli ancora vuota ---------- */

.kt-empty-posts {
	max-width: 760px;
	padding: 24px 0 48px;
}
.kt-empty-posts__intro { font-size: 18px; line-height: 1.6; color: var(--kt-text); }
.kt-empty-posts__soon {
	font-family: var(--kt-font-head);
	font-size: 26px;
	font-weight: 600;
	color: var(--kt-night);
	border-top: 2px solid var(--kt-night);
	padding-top: 18px;
	margin-top: 28px;
}

/* Copertine intere nelle schede degli articoli (pagina Tech pills e "articoli correlati"):
   il riquadro resta uguale per tutte, l'immagine è ridotta per entrarci senza ritagli. */
.loop-entry .post-thumbnail .post-thumbnail-inner,
.entry-related .post-thumbnail .post-thumbnail-inner { background: var(--kt-white); }
.loop-entry .post-thumbnail .post-thumbnail-inner img,
.entry-related .post-thumbnail .post-thumbnail-inner img { object-fit: contain !important; padding: 6px; box-sizing: border-box; }

/* Formule negli articoli */
.kt-formula {
	font-family: var(--kt-font-mono);
	font-size: 15px;
	background: var(--kt-band);
	border-left: 3px solid var(--kt-accent);
	padding: 12px 16px;
	border-radius: 0 6px 6px 0;
	overflow-x: auto;
}

/* ---------- Tech pills (Query Loop) ---------- */

.kt-pills .wp-block-post {
	border-top: 2px solid var(--kt-night);
	padding-top: 18px;
}
.kt-pills .wp-block-post-date {
	font-family: var(--kt-font-mono);
	font-size: 12px;
	color: var(--kt-muted);
}
.kt-pills .wp-block-post-title {
	font-family: var(--kt-font-head);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.25;
	margin: 10px 0;
}
.kt-pills .wp-block-post-title a { color: var(--kt-night); text-decoration: none; }
.kt-pills .wp-block-post-excerpt { font-size: 16px; color: var(--kt-text-soft); }

/* ---------- Contatti ---------- */

.kt-contatti { background: var(--kt-night); color: #F4F5F2; }
.kt-contatti h2 { color: #F4F5F2; }
.kt-contatti .kt-label { color: #8FD3E8; }
.kt-contatti a { color: #F4F5F2; }
.kt-contatti .kt-address { color: #AEB9BF; font-size: 16px; }

/* Pulsante "Copia" accanto all'email */
.kt-contatti button.kt-copy,
.kt-contatti button.kt-copy:hover,
.kt-contatti button.kt-copy:focus {
	font-family: var(--kt-font-mono);
	font-size: 12px;
	line-height: 1;
	vertical-align: middle;
	margin-left: 10px;
	padding: 6px 10px;
	border-radius: 5px;
	border: 1px solid #5B6B74;
	background: transparent;
	color: #C5CED3;
	box-shadow: none;
	cursor: pointer;
}
.kt-contatti button.kt-copy:hover { border-color: #8FD3E8; color: #FFFFFF; }
.kt-contatti button.kt-copy:focus-visible { outline: 2px solid #8FD3E8; outline-offset: 1px; }
.kt-contatti button.kt-copy.is-done { border-color: #8FD3E8; color: #8FD3E8; }

.kt-form {
	background: #1A2B36;
	border: 1px solid #2E3E48;
	border-radius: 10px;
	padding: 28px !important;
}
.kt-form label { color: #C5CED3; font-size: 14px; display: block; }
.kt-form .wpcf7-form > p { margin: 0 0 14px; }
.kt-form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
	gap: 14px;
	margin-bottom: 14px;
}
.kt-form-grid p { margin: 0; }
.kt-form .wpcf7-not-valid-tip { color: #F2B8A8; font-size: 13px; margin-top: 4px; }
.kt-form .wpcf7-response-output { color: #F4F5F2; border-radius: 6px; margin: 14px 0 0 !important; }
.kt-form .wpcf7-list-item { margin: 0; }
.kt-form .wpcf7-acceptance input { width: 18px; height: 18px; margin: 0 8px 0 0; vertical-align: -3px; }
.kt-form input[type="text"],
.kt-form input[type="email"],
.kt-form input[type="tel"],
.kt-form textarea {
	width: 100%;
	font: inherit;
	font-size: 16px;
	padding: 12px;
	margin-top: 6px;
	border-radius: 6px;
	border: 1px solid #3A4C57;
	background: #0F1A21;
	color: #F4F5F2;
}
.kt-form input:focus,
.kt-form textarea:focus { outline: 2px solid var(--kt-wave-1); outline-offset: 1px; }
/* Testo chiaro su fondo scuro anche mentre si scrive: il tema Kadence altrimenti imposta
   un colore scuro sui campi attivi (:focus) e il testo diventa invisibile. */
.kt-contatti .kt-form input[type="text"],
.kt-contatti .kt-form input[type="email"],
.kt-contatti .kt-form input[type="tel"],
.kt-contatti .kt-form textarea,
.kt-contatti .kt-form input[type="text"]:focus,
.kt-contatti .kt-form input[type="email"]:focus,
.kt-contatti .kt-form input[type="tel"]:focus,
.kt-contatti .kt-form textarea:focus {
	color: #F4F5F2 !important;
	background: #0F1A21 !important;
	border-color: #3A4C57 !important;
	-webkit-text-fill-color: #F4F5F2;
	caret-color: #8FD3E8;
}
.kt-contatti .kt-form input:focus,
.kt-contatti .kt-form textarea:focus { border-color: var(--kt-wave-1) !important; }
.kt-contatti .kt-form ::placeholder { color: #7F9099; opacity: 1; }
/* Riempimento automatico del browser (Chrome/Edge): mantiene fondo scuro e testo chiaro. */
.kt-contatti .kt-form input:-webkit-autofill {
	-webkit-text-fill-color: #F4F5F2;
	box-shadow: 0 0 0 1000px #0F1A21 inset;
	transition: background-color 9999s;
}
.kt-form .wpcf7-acceptance { color: #AEB9BF; font-size: 14px; }
.kt-form input[type="submit"] {
	background: var(--kt-accent);
	color: #FFFFFF;
	border: 0;
	border-radius: 6px;
	padding: 14px 20px;
	font-weight: 600;
	cursor: pointer;
}
.kt-form input[type="submit"]:hover { background: var(--kt-link); }
