/* =========================================================
   Teseo GRC Landing — stili delle sezioni
   I colori vengono dalla palette in theme.json (var(--wp--preset--color--...)).
   ========================================================= */

:root {
	--tg-radius: 10px;
	--tg-radius-sm: 6px;
	--tg-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 12px 32px -12px rgba(15, 23, 42, .18);
	--tg-measure: 64ch;
}

html { scroll-behavior: smooth; scroll-padding-top: 88px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

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

:where(a, button, summary, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--sky);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Le sezioni non devono avere spazio tra loro: ognuna gestisce il proprio padding */
.wp-block-post-content > .alignfull,
.wp-block-post-content > section { margin-block: 0; }

.tg-intro { font-size: var(--wp--preset--font-size--large); max-width: var(--tg-measure); }
.tg-small { font-size: .8125rem; color: var(--wp--preset--color--muted); }

/* ---------- Intestazione ---------- */
.tg-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.admin-bar .tg-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .tg-site-header { top: 46px; } }

.tg-header .tg-brand { gap: .75rem; }
.tg-header .tg-brand__logo { margin: 0; }
.tg-header .tg-brand__logo img { width: 72px; height: auto; display: block; }
.tg-header .tg-brand__name {
	margin: 0;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	letter-spacing: -.01em;
	white-space: nowrap;
	padding-left: .75rem;
	border-left: 1px solid var(--wp--preset--color--line);
}
.tg-nav a { text-decoration: none; color: var(--wp--preset--color--text); }
.tg-nav a:hover { color: var(--wp--preset--color--brand); }
.tg-header__cta .wp-block-button__link { padding: .65rem 1.1rem; font-size: .9375rem; }

@media (max-width: 1100px) {
	.tg-header .tg-brand__name { display: none; }
}
@media (max-width: 600px) {
	.tg-header .tg-brand__name { display: none; }
	.tg-header .tg-brand__logo img { width: 60px; }
}

/* ---------- Bottoni ---------- */
.tg-btn-ghost .wp-block-button__link { border-width: 1.5px; }
.tg-btn-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .08); }
.tg-hero .tg-btn-ghost .wp-block-button__link,
.tg-final .tg-btn-ghost .wp-block-button__link { color: var(--wp--preset--color--base); border-color: rgba(255, 255, 255, .55); }

/* ---------- Hero (fondo scuro) ---------- */
.tg-hero { position: relative; overflow: hidden; }
.tg-hero::before {
	/* luce morbida dietro allo screenshot: unico effetto decorativo della pagina */
	content: "";
	position: absolute;
	inset: -20% -10% auto auto;
	width: 60%;
	height: 120%;
	background: radial-gradient(closest-side, rgba(78, 149, 204, .28), transparent 70%);
	pointer-events: none;
}
.tg-hero > * { position: relative; }
.tg-hero__cols { gap: clamp(2rem, 5vw, 4.5rem); }
.tg-hero__product {
	margin: 0;
	font-weight: 600;
	color: var(--wp--preset--color--sky);
	font-size: var(--wp--preset--font-size--medium);
}
.tg-hero h1.tg-hero__title { color: var(--wp--preset--color--base); margin-top: .5rem; max-width: 18ch; }
.tg-hero__lead { font-size: var(--wp--preset--font-size--large); color: #cfdbe8; max-width: 52ch; }
.tg-hero .wp-block-buttons { margin-top: 2rem; gap: .75rem; }
.tg-hero__note { font-size: var(--wp--preset--font-size--small); color: #9fb3c8; margin-top: 1.5rem; }

/* Cornice screenshot */
.tg-shot { margin: 0; }
.tg-shot img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--tg-radius);
	border: 1px solid var(--wp--preset--color--line);
	box-shadow: var(--tg-shadow);
	background: var(--wp--preset--color--base);
}
.tg-shot--hero img {
	border: 1px solid rgba(255, 255, 255, .18);
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55);
	padding: 6px;
}
.tg-shot figcaption {
	margin-top: .75rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	text-align: left;
}

/* ---------- Loghi clienti ---------- */
.tg-clients { border-bottom: 1px solid var(--wp--preset--color--line); }
.tg-clients__label { margin: 0 0 1.25rem; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.tg-clients__logos { gap: 2rem 3rem; align-items: center; }
.tg-clients__logos .wp-block-image { margin: 0; }
.tg-clients__logos img { height: 44px; width: auto; max-width: 180px; object-fit: contain; opacity: .7; filter: grayscale(1); }

/* ---------- Problema ---------- */
.tg-problem h2 { max-width: 16ch; }
.tg-problem p { max-width: var(--tg-measure); }

/* ---------- Schema NIS2 / in comune / GDPR (elemento principale) ---------- */
.tg-hub-section h2 { max-width: 20ch; }
.tg-hub { margin-top: clamp(2rem, 4vw, 3.5rem); gap: 0 !important; align-items: stretch !important; }
.tg-hub > .wp-block-column { margin: 0; }

.tg-hub__side {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tg-radius);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-top: 4px solid var(--wp--preset--color--brand);
}
.tg-hub__side--gdpr { border-top-color: var(--wp--preset--color--sky); }
.tg-hub__side h3 { font-size: var(--wp--preset--font-size--x-large); margin: 0; letter-spacing: -.02em; }
.tg-hub__ref { margin-top: .25rem; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.tg-hub__side ul { margin: 1.25rem 0 0; padding: 0; list-style: none; }
.tg-hub__side li { padding: .6rem 0; border-top: 1px solid var(--wp--preset--color--line); }

.tg-hub__core {
	position: relative;
	align-self: center;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--base);
	border-radius: var(--tg-radius);
	padding: 1.75rem 1.5rem;
	margin: 0 clamp(1.5rem, 3vw, 2.75rem) !important;
	text-align: center;
	box-shadow: 0 24px 48px -24px rgba(11, 34, 57, .6);
}
/* collegamenti tratteggiati verso NIS2 e GDPR */
.tg-hub__core::before,
.tg-hub__core::after {
	content: "";
	position: absolute;
	top: 50%;
	width: clamp(1.5rem, 3vw, 2.75rem);
	border-top: 2px dashed var(--wp--preset--color--sky);
}
.tg-hub__core::before { right: 100%; }
.tg-hub__core::after { left: 100%; }

.tg-hub__core-title { margin: 0; font-weight: 600; color: var(--wp--preset--color--sky); }
.tg-hub__shared { list-style: none; padding: 0; margin: 1rem 0; }
.tg-hub__shared li {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	padding: .55rem 1rem;
	border-radius: var(--tg-radius-sm);
	background: rgba(255, 255, 255, .07);
	margin: .4rem 0;
}
.tg-hub__core-note { margin: 0; font-size: var(--wp--preset--font-size--small); color: #b9c8d8; }

@media (min-width: 782px) {
	.tg-hub > .tg-hub__side { flex-basis: 0; flex-grow: 1; }
	.tg-hub > .tg-hub__core { flex: 0 0 240px; }
}
@media (max-width: 781px) {
	.tg-hub { gap: 0 !important; }
	.tg-hub__core { margin: 1.75rem 0 !important; }
	.tg-hub__core::before,
	.tg-hub__core::after { top: auto; left: 50%; right: auto; width: 0; height: 1.75rem; border-top: 0; border-left: 2px dashed var(--wp--preset--color--sky); }
	.tg-hub__core::before { bottom: 100%; }
	.tg-hub__core::after { top: 100%; }
}

/* ---------- Funzionalità ---------- */
.tg-features .wp-block-columns { margin-top: clamp(1.5rem, 3vw, 2.5rem); gap: clamp(1.5rem, 3vw, 2.5rem); }
.tg-feature { border-top: 2px solid var(--wp--preset--color--brand); padding-top: 1.25rem; }
.tg-feature h3 { margin: 0 0 .5rem; }
.tg-feature p { margin: 0; }
.tg-shots { margin-top: clamp(2.5rem, 5vw, 4rem) !important; }

/* ---------- File per il Portale ACN ---------- */
.tg-acn .wp-block-columns { margin-top: clamp(1.5rem, 3vw, 2.5rem); gap: 1.5rem; }
.tg-file {
	position: relative;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tg-radius-sm);
	padding: 1.75rem 1.5rem 1.5rem;
	clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%);
}
.tg-file::after {
	/* angolo piegato del "documento" */
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 28px;
	height: 28px;
	background: linear-gradient(225deg, transparent 50%, var(--wp--preset--color--line) 50%);
}
.tg-file__ext {
	margin: 0 0 1rem;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--wp--preset--color--brand);
}
.tg-file h3 { margin: 0 0 .5rem; }
.tg-file p:last-child { margin: 0; }

/* ---------- Confronto ISO 27001 ---------- */
.tg-compare { margin: 0; overflow-x: auto; }
.tg-compare table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: var(--wp--preset--font-size--small); }
.tg-compare th,
.tg-compare td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .85rem .75rem; text-align: left; vertical-align: top; }
.tg-compare thead th { color: var(--wp--preset--color--ink); font-weight: 600; border-bottom: 2px solid var(--wp--preset--color--ink); }
.tg-compare td:nth-child(2) { color: var(--wp--preset--color--muted); white-space: nowrap; }
.tg-compare td:nth-child(3) { color: var(--wp--preset--color--ink); font-weight: 600; white-space: nowrap; }
.tg-compare td:nth-child(3)::before {
	content: "";
	display: inline-block;
	width: .55rem;
	height: .95rem;
	margin-right: .55rem;
	border: solid #2f9e63;
	border-width: 0 2.5px 2.5px 0;
	transform: translateY(-2px) rotate(45deg);
}
.tg-compare thead th:nth-child(3) { color: var(--wp--preset--color--brand); }

/* ---------- Integrazioni ---------- */
.tg-pills { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.tg-pills li {
	padding: .55rem 1.1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

/* ---------- Perché sceglierla ---------- */
.tg-why .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }
.tg-checks { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.tg-checks li { position: relative; padding: .7rem 0 .7rem 2rem; border-top: 1px solid var(--wp--preset--color--line); }
.tg-checks li::before {
	content: "";
	position: absolute;
	left: .3rem;
	top: 1rem;
	width: .5rem;
	height: .9rem;
	border: solid #2f9e63;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}
.tg-box {
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tg-radius);
	padding: clamp(1.5rem, 3vw, 2rem);
}
.tg-box h3 { margin: 0 0 .5rem; }
.tg-box h3:not(:first-child) { margin-top: 1.75rem; }
.tg-box ul { padding-left: 1.1rem; margin: 0; }
.tg-box li { margin: .35rem 0; }

/* ---------- Domande frequenti ---------- */
.tg-faq h2 { margin-bottom: 1.5rem; }
.tg-faq__item { border-top: 1px solid var(--wp--preset--color--line); max-width: 860px; margin: 0 !important; }
.tg-faq__item:last-of-type { border-bottom: 1px solid var(--wp--preset--color--line); }
.tg-faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: 1.15rem 2.5rem 1.15rem 0;
	position: relative;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--large);
}
.tg-faq__item summary::-webkit-details-marker { display: none; }
.tg-faq__item summary::after {
	content: "+";
	position: absolute;
	right: .25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--wp--preset--color--brand);
}
.tg-faq__item[open] summary::after { content: "−"; }
.tg-faq__item > p { margin: 0 0 1.25rem; max-width: var(--tg-measure); }

/* ---------- Chiamata finale ---------- */
.tg-final h2 { color: var(--wp--preset--color--base); }
.tg-final .tg-intro { color: #cfdbe8; }
.tg-final .wp-block-buttons { margin-top: 2rem; gap: .75rem; }

/* ---------- Piè di pagina ---------- */
.tg-footer { border-top: 1px solid var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--small); }
.tg-footer__title { font-size: var(--wp--preset--font-size--medium) !important; margin: 0 0 .5rem; }
.tg-footer a { color: var(--wp--preset--color--text); }
.tg-footer__legal { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--muted); }
.tg-footer .wp-block-image img { width: 88px; height: auto; }

/* =========================================================
   Pagine interne
   ========================================================= */

/* Testata scura */
.tg-pagehero { position: relative; overflow: hidden; }
.tg-pagehero::before {
	content: "";
	position: absolute;
	inset: -40% -10% auto auto;
	width: 50%;
	height: 160%;
	background: radial-gradient(closest-side, rgba(78, 149, 204, .22), transparent 70%);
	pointer-events: none;
}
.tg-pagehero > * { position: relative; }
.tg-pagehero__parent { margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--small); }
.tg-pagehero__parent a { color: var(--wp--preset--color--sky); text-decoration: none; }
.tg-pagehero__parent a:hover { text-decoration: underline; color: var(--wp--preset--color--base); }
.tg-pagehero h1.tg-pagehero__title,
.tg-pagehero .tg-pagehero__title { color: var(--wp--preset--color--base); max-width: 22ch; margin: 0; font-size: clamp(2rem, 1.4rem + 2.6vw, 3rem); }
.tg-pagehero__lead { font-size: var(--wp--preset--font-size--large); color: #cfdbe8; max-width: 60ch; margin-top: 1rem; }
.tg-pagehero .wp-block-buttons { margin-top: 1.75rem; }

/* Riquadro "da completare" */
.tg-todo {
	margin-top: 2rem;
	padding: 1rem 1.25rem;
	border: 1.5px dashed #c99a1e;
	background: #fff8e6;
	border-radius: var(--tg-radius-sm);
	color: #5b4708;
	font-size: var(--wp--preset--font-size--small);
	max-width: 860px;
}
.tg-todo p { margin: 0; }
.tg-todo .tg-todo__label { margin-bottom: .25rem; }

/* Schede-link della piattaforma */
.tg-links .wp-block-columns { margin-top: 1.5rem; gap: 1.5rem; }
.tg-linkcard {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tg-radius-sm);
	padding: 1.25rem 1.25rem 1.1rem;
	position: relative;
}
.tg-linkcard:hover { border-color: var(--wp--preset--color--sky); }
.tg-linkcard h3 { margin: 0 0 .4rem; font-size: 1.125rem; }
.tg-linkcard h3 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.tg-linkcard h3 a::after { content: ""; position: absolute; inset: 0; } /* tutta la scheda cliccabile */
.tg-linkcard h3 a:focus-visible { outline: none; }
.tg-linkcard:focus-within { outline: 2px solid var(--wp--preset--color--sky); outline-offset: 2px; }
.tg-linkcard p { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.tg-feature h3 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.tg-feature h3 a:hover { color: var(--wp--preset--color--brand); text-decoration: underline; }

/* Dettaglio */
.tg-detail__cols { gap: clamp(2rem, 5vw, 4rem); }
.tg-detail .tg-shot + .tg-shot,
.tg-detail .wp-block-column > .tg-shot { margin-top: 1.5rem; }
.tg-int-features { margin-top: clamp(2rem, 4vw, 3rem) !important; gap: clamp(1.5rem, 3vw, 2.5rem); }

/* Tabella di confronto */
.tg-matrix { margin: 0; overflow-x: auto; }
.tg-matrix table { border-collapse: collapse; width: 100%; min-width: 900px; font-size: var(--wp--preset--font-size--small); }
.tg-matrix th, .tg-matrix td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .8rem .6rem; text-align: center; vertical-align: middle; }
.tg-matrix thead th { color: var(--wp--preset--color--ink); font-weight: 600; line-height: 1.3; border-bottom: 2px solid var(--wp--preset--color--ink); vertical-align: bottom; }
.tg-matrix thead th:first-child,
.tg-matrix tbody th { text-align: left; }
.tg-matrix tbody th { font-weight: 600; color: var(--wp--preset--color--ink); white-space: nowrap; }
.tg-matrix td { color: #94a3b8; font-size: 1.05rem; }
.tg-matrix td strong { color: #2f9e63; font-size: 1.15rem; }
.tg-matrix tbody tr:first-child { background: #eef6fc; }
.tg-matrix tbody tr:first-child th { color: var(--wp--preset--color--brand); }
.tg-matrix figcaption { text-align: left; color: var(--wp--preset--color--muted); font-size: .8125rem; margin-top: .75rem; }

/* Consulenza */
.tg-consult .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }

/* Articoli lunghi (guida, privacy) */
.tg-article > .wp-block-group { max-width: 760px; }
.tg-article h2 { margin-top: 2.5rem; }
.tg-article h3 { margin-top: 1.75rem; }
.tg-article .tg-box { margin-top: 2.5rem; }

/* Contatti */
.tg-contacts .wp-block-columns { gap: 1.5rem; }
.tg-contact-card { border: 1px solid var(--wp--preset--color--line); border-radius: var(--tg-radius-sm); padding: 1.5rem; border-top: 3px solid var(--wp--preset--color--brand); }
.tg-contact-card h3 { margin: 0 0 .5rem; }
.tg-contact-card p { margin: 0; }
.tg-demo-box { margin-top: clamp(2rem, 4vw, 3rem); max-width: 860px; }
.tg-demo-box h2 { margin-top: 0; }

/* Blog */
.tg-post-card .wp-block-post-featured-image { margin: 0 0 1rem; }
.tg-post-card .wp-block-post-featured-image img { border-radius: var(--tg-radius-sm); }
.tg-post-card__date { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.tg-post-card .wp-block-post-title { margin: .25rem 0 .5rem; font-size: 1.25rem; }
.tg-post-card .wp-block-post-title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.tg-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--brand); }
.tg-post-card .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--small); }
.wp-block-query-pagination { margin-top: 3rem; }
.tg-single__back { font-size: var(--wp--preset--font-size--small); margin-bottom: .5rem; }
.tg-single__date { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.tg-single .wp-block-post-featured-image img { border-radius: var(--tg-radius); }
.tg-single__cta { margin-top: 3rem !important; }
.tg-single__cta h3 { margin-top: 0; }

/* Sottomenu Piattaforma */
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--tg-radius-sm);
	box-shadow: var(--tg-shadow);
	padding: .4rem 0;
	min-width: 260px !important;
}
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a { padding: .5rem 1rem !important; }
.tg-nav .is-menu-open .wp-block-navigation__container,
.tg-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.tg-nav .is-menu-open .wp-block-navigation__submenu-container { padding-left: 1rem !important; }

/* ---------- Ritocchi ---------- */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-group > .tg-pagehero + * { margin-block-start: 0; }
.tg-header .tg-brand__name a { color: var(--wp--preset--color--ink); text-decoration: none; }
.tg-header .tg-brand__name a:hover { color: var(--wp--preset--color--brand); }
.tg-footer a { text-decoration: none; }
.tg-footer a:hover { text-decoration: underline; color: var(--wp--preset--color--brand); }
.tg-matrix table { min-width: 1040px; }
.tg-matrix tbody th { white-space: normal; min-width: 12rem; }
.tg-matrix thead th:first-child { min-width: 12rem; }
.tg-article > .wp-block-group {
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
	margin-right: auto !important;
}

/* =========================================================
   Modulo GDPR "in arrivo" (v2.1)
   ========================================================= */
.tg-soon {
	display: inline-block;
	margin: 0 0 .6rem;
	padding: .2rem .65rem;
	border-radius: 999px;
	background: #e3eef8;
	color: var(--wp--preset--color--brand);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1.5;
}
.tg-pagehero .tg-soon { background: rgba(78, 149, 204, .2); color: #b5d4ee; margin-bottom: 1rem; }

.tg-hub__side--soon {
	background: var(--wp--preset--color--mist);
	border-style: dashed;
	border-color: #b8c7d6;
	border-top: 4px solid var(--wp--preset--color--sky);
}
.tg-hub__soon-text { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); }

.tg-feature--soon { border-top-color: var(--wp--preset--color--sky); border-top-style: dashed; }
.tg-linkcard--soon { border-style: dashed; border-color: #b8c7d6; }
.tg-linkcard p.tg-soon { margin-bottom: .5rem; font-size: .75rem; color: var(--wp--preset--color--brand); }

.tg-matrix td em {
	font-style: normal;
	font-size: .75rem;
	font-weight: 600;
	color: var(--wp--preset--color--brand);
	white-space: nowrap;
}

/* =========================================================
   Movimento e interazioni (v2.1)
   Durate brevi (0,2–0,3 s), curva morbida. Gli spostamenti si
   disattivano se il sistema chiede di ridurre il movimento.
   ========================================================= */
:root {
	--tg-ease: cubic-bezier(.22, .61, .36, 1);
	--tg-shadow-hover: 0 2px 4px rgba(11, 34, 57, .04), 0 10px 20px -6px rgba(11, 34, 57, .10), 0 28px 48px -20px rgba(11, 34, 57, .22);
}

/* Link di testo e menu */
.tg-nav a,
.tg-footer a,
.tg-pagehero__parent a,
.tg-feature h3 a,
.tg-post-card .wp-block-post-title a,
.tg-faq__item summary { transition: color .2s var(--tg-ease); }
.tg-faq__item summary:hover { color: var(--wp--preset--color--brand); }

/* ---------- Pulsanti ---------- */
.wp-block-button__link {
	transition: background-color .25s var(--tg-ease), border-color .25s var(--tg-ease), color .25s var(--tg-ease), box-shadow .25s var(--tg-ease), transform .25s var(--tg-ease);
}
/* Pulsante verde: si "accende" con un alone verde morbido */
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible {
	box-shadow: 0 0 0 4px rgba(73, 204, 134, .18), 0 8px 24px -6px rgba(73, 204, 134, .55);
}
/* Pulsante chiaro su fondo scuro: il bordo si accende di azzurro */
.tg-hero .tg-btn-ghost .wp-block-button__link:hover,
.tg-final .tg-btn-ghost .wp-block-button__link:hover,
.tg-pagehero .tg-btn-ghost .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--sky);
	background: rgba(78, 149, 204, .14);
	box-shadow: 0 0 0 4px rgba(78, 149, 204, .16), 0 8px 24px -8px rgba(78, 149, 204, .5);
}

/* ---------- Schede ---------- */
.tg-linkcard,
.tg-file,
.tg-hub__side,
.tg-contact-card {
	transition: border-color .3s var(--tg-ease), box-shadow .3s var(--tg-ease), transform .3s var(--tg-ease);
}
.tg-linkcard:hover { border-color: var(--wp--preset--color--sky); box-shadow: var(--tg-shadow-hover); }
.tg-file:hover { border-color: var(--wp--preset--color--sky); }
.tg-hub__side:hover,
.tg-contact-card:hover { box-shadow: var(--tg-shadow-hover); }

/* Freccia che accompagna i titoli cliccabili */
.tg-linkcard h3::after,
.tg-feature h3 a::after {
	content: "→";
	display: inline-block;
	margin-left: .35em;
	color: var(--wp--preset--color--brand);
	font-weight: 400;
	transition: transform .3s var(--tg-ease);
}
.tg-feature h3 a:hover { text-decoration: none; }

@media (prefers-reduced-motion: no-preference) {
	.wp-block-button__link:hover { transform: translateY(-2px); }
	.wp-block-button__link:active { transform: translateY(0); transition-duration: .08s; }
	.tg-linkcard:hover,
	.tg-file:hover { transform: translateY(-4px); }
	.tg-linkcard:hover h3::after,
	.tg-feature:hover h3 a::after { transform: translateX(4px); }
}

/* =========================================================
   Rifiniture v2.2 — movimenti, dettagli, correzioni
   Le animazioni usano le proprietà "translate"/"scale" (non "transform"),
   così si sommano agli effetti al passaggio del mouse senza conflitti.
   ========================================================= */

/* ---------- Generali ---------- */
::selection { background: rgba(78, 149, 204, .28); }
.wp-block-post-content p a,
.tg-faq__item p a,
.tg-box a {
	text-underline-offset: .2em;
	text-decoration-thickness: 1px;
	transition: color .2s var(--tg-ease), text-decoration-thickness .2s var(--tg-ease);
}
.wp-block-post-content p a:hover,
.tg-faq__item p a:hover,
.tg-box a:hover { text-decoration-thickness: 2px; }

/* Piè di pagina sempre in fondo, anche nelle pagine corte */
.wp-site-blocks { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.wp-site-blocks > footer { margin-top: auto; }

/* ---------- Intestazione ---------- */
.tg-site-header {
	transition: box-shadow .3s var(--tg-ease), background-color .3s var(--tg-ease), border-color .3s var(--tg-ease);
}
.tg-site-header.is-scrolled {
	background: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom-color: transparent;
	box-shadow: 0 1px 0 rgba(15, 23, 42, .06), 0 10px 30px -18px rgba(11, 34, 57, .35);
}
.tg-header .tg-brand__logo img { transition: transform .3s var(--tg-ease); }
.tg-header .tg-brand__logo a:hover img { transform: scale(1.05); }

/* Voci del menu: sottolineatura che cresce da sinistra; voce corrente evidenziata */
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; }
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 2px;
	border-radius: 2px;
	background: var(--wp--preset--color--brand);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .25s var(--tg-ease);
}
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after,
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .is-current::after,
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .is-current-parent > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.tg-nav a.is-current,
.tg-nav .is-current-parent > .wp-block-navigation-item__content { color: var(--wp--preset--color--brand); }

/* Sottomenu Piattaforma: allineato sotto la voce, compare con una dissolvenza */
.tg-nav.items-justified-right .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container {
	left: -1rem !important;
	right: auto !important;
	top: calc(100% + 10px);
	transform: translateY(6px);
	transition: opacity .2s var(--tg-ease), transform .2s var(--tg-ease), visibility .2s;
}
/* ponte invisibile: il mouse può scendere dalla voce al sottomenu senza che si chiuda */
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -12px;
	height: 12px;
}
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:hover > .wp-block-navigation__submenu-container,
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:focus-within > .wp-block-navigation__submenu-container,
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { transform: translateY(0); }
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a { transition: background-color .15s, color .15s, padding-left .2s var(--tg-ease); }
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a:hover,
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a.is-current {
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--brand);
	padding-left: 1.25rem !important;
}

/* Telefono: icona del menu a destra, pulsante più compatto, menu aperto più curato */
@media (max-width: 599px) {
	.tg-header .tg-header__cta { margin-left: auto; margin-right: .35rem; }
	.tg-header .tg-nav { order: 3; }
	.tg-header__cta .wp-block-button__link { padding: .55rem .9rem; font-size: .875rem; }
}
.tg-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem clamp(1.25rem, 6vw, 2rem) 2rem; }
.tg-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.tg-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; }
.tg-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); }
.tg-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: .9rem 0 !important;
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.tg-nav .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 .75rem 0 !important; }
.tg-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .4rem 0 .4rem .9rem !important;
	font-size: 1rem;
	color: var(--wp--preset--color--text);
	border-left: 2px solid var(--wp--preset--color--line);
}
.tg-nav .is-menu-open a.is-current { color: var(--wp--preset--color--brand) !important; border-left-color: var(--wp--preset--color--brand) !important; }

/* ---------- Pulsante "torna su" ---------- */
.tg-totop {
	position: fixed;
	right: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	z-index: 60;
	width: 46px;
	height: 46px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .14);
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--base);
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 12px 28px -12px rgba(11, 34, 57, .7);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s var(--tg-ease), transform .3s var(--tg-ease), visibility .3s, background-color .2s;
}
.tg-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.tg-totop:hover { background: var(--wp--preset--color--brand); }
.tg-totop:hover svg { translate: 0 -2px; }
.tg-totop svg { transition: translate .2s var(--tg-ease); }

/* ---------- Loghi dei clienti: nastro continuo ---------- */
.tg-clients__logos img { transition: filter .35s var(--tg-ease), opacity .35s var(--tg-ease); }
.tg-clients__logos img:hover { filter: none; opacity: 1; }
.tg-clients__logos.is-marquee {
	display: block;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.tg-marquee__track {
	display: flex;
	align-items: center;
	width: max-content;
	will-change: transform; /* il movimento lo calcola motion.js: si può anche trascinare */
}
/* Prima che il nastro parta (immagini in caricamento) i loghi stanno già su una sola riga:
   così la pagina non "salta" quando il nastro si forma. Con "riduci movimento" restano a capo. */
.tg-js:not(.tg-reduce) .tg-clients__logos {
	flex-wrap: nowrap;
	justify-content: flex-start;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.tg-js:not(.tg-reduce) .tg-clients__logos:not(.is-marquee) > .wp-block-image { flex: none; margin: 0 clamp(2.5rem, 5vw, 4rem) 0 0 !important; }
.tg-js:not(.tg-reduce) .tg-clients__logos:not(.is-marquee) { gap: 0; }
.tg-clients__logos.is-marquee { cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.tg-clients__logos.is-marquee.is-dragging { cursor: grabbing; }
.tg-clients__logos.is-marquee.is-dragging a { cursor: grabbing; }
.tg-marquee__track > .wp-block-image { margin: 0 clamp(2.5rem, 5vw, 4rem) 0 0 !important; flex: none; }

/* ---------- Schema NIS2 / in comune / GDPR: i dati "scorrono" ---------- */
.tg-hub__core::before,
.tg-hub__core::after { border: 0 !important; }
@media (min-width: 782px) {
	.tg-hub__core::before,
	.tg-hub__core::after {
		height: 2px;
		margin-top: -1px;
		background: repeating-linear-gradient(90deg, var(--wp--preset--color--sky) 0 6px, transparent 6px 12px);
	}
	.tg-hub__core::after { opacity: .5; } /* verso il GDPR, in arrivo */
}
@media (max-width: 781px) {
	.tg-hub__core::before,
	.tg-hub__core::after {
		width: 2px;
		margin-left: -1px;
		background: repeating-linear-gradient(180deg, var(--wp--preset--color--sky) 0 6px, transparent 6px 12px);
	}
	.tg-hub__core::after { opacity: .5; }
}
.tg-hub__shared li { transition: background-color .3s; }

/* ---------- Tabelle ---------- */
@media (max-width: 600px) {
	.tg-compare table { min-width: 0; font-size: .8125rem; }
	.tg-compare th,
	.tg-compare td { padding: .7rem .4rem; }
	.tg-compare td:nth-child(2),
	.tg-compare td:nth-child(3) { white-space: normal; }
}
/* (le regole di WordPress per le tabelle a layout fisso hanno priorità alta: qui si rinforzano) */
.tg-matrix.wp-block-table .has-fixed-layout { table-layout: auto; }
.tg-matrix.wp-block-table .has-fixed-layout th,
.tg-matrix.wp-block-table .has-fixed-layout td { word-break: normal; overflow-wrap: normal; hyphens: none; }
.tg-matrix.wp-block-table tbody th,
.tg-matrix.wp-block-table thead th:first-child { width: 11.5rem; min-width: 11.5rem; }
@media (max-width: 600px) {
	.tg-matrix.wp-block-table tbody th,
	.tg-matrix.wp-block-table thead th:first-child { width: 9.5rem; min-width: 9.5rem; }
}
.tg-matrix tbody th,
.tg-matrix thead th:first-child {
	position: sticky;
	left: 0;
	z-index: 1;
	background: var(--wp--preset--color--base);
	transition: box-shadow .2s;
}
.tg-matrix tbody tr:first-child th { background: #eef6fc; }
.tg-matrix.is-scrolled tbody th,
.tg-matrix.is-scrolled thead th:first-child { box-shadow: 8px 0 14px -10px rgba(11, 34, 57, .35); }
.tg-matrix tbody tr:not(:first-child) td,
.tg-matrix tbody tr:not(:first-child) th { transition: background-color .2s; }
.tg-matrix tbody tr:not(:first-child):hover td,
.tg-matrix tbody tr:not(:first-child):hover th { background: #f6f9fc; }
.tg-matrix figcaption { position: sticky; left: 0; }
.tg-scroll-hint {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin: 0 0 .6rem;
	font-size: .8125rem;
	color: var(--wp--preset--color--muted);
	transition: opacity .4s var(--tg-ease);
}
.tg-scroll-hint::after { content: "→"; display: inline-block; color: var(--wp--preset--color--brand); }
.tg-scroll-hint.is-done { opacity: 0; }

/* ---------- Riquadri dei file ACN: l'angolo piegato si alza ---------- */
.tg-file { transition: border-color .3s var(--tg-ease), box-shadow .3s var(--tg-ease), transform .3s var(--tg-ease), clip-path .3s var(--tg-ease); }
.tg-file::after { transition: width .3s var(--tg-ease), height .3s var(--tg-ease); }
.tg-file:hover { clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 100%, 0 100%); }
.tg-file:hover::after { width: 40px; height: 40px; background: linear-gradient(225deg, transparent 50%, #cfe1f0 50%); }

/* ---------- Pillole delle integrazioni ---------- */
.tg-pills li { transition: border-color .25s var(--tg-ease), box-shadow .25s var(--tg-ease), transform .25s var(--tg-ease); }
.tg-pills li:hover { border-color: var(--wp--preset--color--sky); box-shadow: 0 8px 18px -10px rgba(11, 34, 57, .35); }

/* ---------- Domande frequenti: apertura morbida ---------- */
.tg-faq__item summary::after { transition: transform .3s var(--tg-ease), color .2s; }
.tg-faq__item[open] summary::after { content: "+"; transform: translateY(-50%) rotate(45deg); }

/* ---------- Chiamata finale: stessa luce morbida della parte alta ---------- */
.tg-final { position: relative; overflow: hidden; }
.tg-final::before {
	content: "";
	position: absolute;
	inset: -30% auto auto -10%;
	width: 55%;
	height: 160%;
	background: radial-gradient(closest-side, rgba(78, 149, 204, .22), transparent 70%);
	pointer-events: none;
}
.tg-final > * { position: relative; }

/* ---------- Pagina 404 ---------- */
.tg-404 .tg-links { margin-top: 0; }

/* =========================================================
   Animazioni: solo se il sistema non chiede di ridurre il movimento
   ========================================================= */
@keyframes tg-rise { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
@keyframes tg-rise-img { from { opacity: 0; translate: 0 28px; scale: .97; } to { opacity: 1; translate: 0 0; scale: 1; } }
@keyframes tg-check { from { scale: 0; } 60% { scale: 1.25; } to { scale: 1; } }
@keyframes tg-drift { from { translate: 0 0; scale: 1; } to { translate: -8% 10%; scale: 1.12; } }
@keyframes tg-flow-x { to { background-position: 12px 0; } }
@keyframes tg-flow-y { to { background-position: 0 12px; } }
@keyframes tg-light {
	0%, 100% { background-color: rgba(255, 255, 255, .07); box-shadow: none; }
	45% { background-color: rgba(78, 149, 204, .38); box-shadow: 0 0 0 1px rgba(78, 149, 204, .55), 0 0 22px -4px rgba(78, 149, 204, .6); }
}
@keyframes tg-nudge { 0%, 100% { translate: 0 0; } 50% { translate: 4px 0; } }

@media (prefers-reduced-motion: no-preference) {
	/* Passaggio tra le pagine con dissolvenza (browser che lo supportano) */
	@view-transition { navigation: auto; }
	::view-transition-old(root),
	::view-transition-new(root) { animation-duration: .28s; }
	.tg-site-header { view-transition-name: tg-header; }

	/* Comparsa allo scorrimento */
	.tg-js .tg-reveal { opacity: 0; }
	.tg-js .tg-reveal.is-in {
		opacity: 1;
		animation: tg-rise .7s var(--tg-ease) backwards;
		animation-delay: calc(var(--tg-i, 0) * 80ms);
	}
	.tg-js .tg-checks li.tg-reveal.is-in::before { animation: tg-check .45s var(--tg-ease) backwards; animation-delay: calc(var(--tg-i, 0) * 80ms + .25s); }
	.tg-js .tg-compare tr.tg-reveal.is-in td:nth-child(3)::before { animation: tg-check .45s var(--tg-ease) backwards; animation-delay: calc(var(--tg-i, 0) * 80ms + .3s); }

	/* Parte alta della home: entrata in sequenza al caricamento */
	.tg-hero__product,
	.tg-hero__title,
	.tg-hero__lead,
	.tg-hero .wp-block-buttons,
	.tg-hero__note { animation: tg-rise .8s var(--tg-ease) backwards; }
	.tg-hero__title { animation-delay: .08s; }
	.tg-hero__lead { animation-delay: .16s; }
	.tg-hero .wp-block-buttons { animation-delay: .24s; }
	.tg-hero__note { animation-delay: .32s; }
	.tg-shot--hero { animation: tg-rise-img 1s var(--tg-ease) .2s backwards; }
	.tg-hero::before { animation: tg-drift 22s ease-in-out infinite alternate; }
	.tg-final::before { animation: tg-drift 26s ease-in-out infinite alternate-reverse; }

	/* Testata delle pagine interne */
	.tg-pagehero__parent,
	.tg-pagehero .tg-soon,
	.tg-pagehero__title,
	.tg-pagehero__lead,
	.tg-pagehero .wp-block-buttons { animation: tg-rise .7s var(--tg-ease) backwards; }
	.tg-pagehero__title { animation-delay: .06s; }
	.tg-pagehero__lead { animation-delay: .14s; }
	.tg-pagehero .wp-block-buttons { animation-delay: .22s; }

	/* Schema: flusso dei dati e i quattro elementi in comune che si accendono */
	.tg-hub__core::before { animation: tg-flow-x .9s linear infinite; }
	.tg-hub__core::after { animation: tg-flow-x 1.8s linear infinite; }
	@media (max-width: 781px) {
		.tg-hub__core::before { animation: tg-flow-y .9s linear infinite; }
		.tg-hub__core::after { animation: tg-flow-y 1.8s linear infinite; }
	}
	.tg-hub__core.is-in .tg-hub__shared li { animation: tg-light 1.1s var(--tg-ease) both; }
	.tg-hub__core.is-in .tg-hub__shared li:nth-child(1) { animation-delay: .5s; }
	.tg-hub__core.is-in .tg-hub__shared li:nth-child(2) { animation-delay: .7s; }
	.tg-hub__core.is-in .tg-hub__shared li:nth-child(3) { animation-delay: .9s; }
	.tg-hub__core.is-in .tg-hub__shared li:nth-child(4) { animation-delay: 1.1s; }

	/* Domande frequenti: apertura che scorre (browser recenti) */
	@supports (interpolate-size: allow-keywords) {
		.tg-faq { interpolate-size: allow-keywords; }
		.tg-faq__item::details-content {
			block-size: 0;
			overflow: hidden;
			transition: block-size .35s var(--tg-ease), content-visibility .35s allow-discrete;
		}
		.tg-faq__item[open]::details-content { block-size: auto; }
	}

	.tg-pills li:hover { transform: translateY(-2px); }
	.tg-scroll-hint::after { animation: tg-nudge 1.4s ease-in-out infinite; }
}

/* =========================================================
   Modulo di richiesta demo (Fluent Forms) — v2.4
   Stile del sito: etichette sopra i campi, bordi sottili, fuoco azzurro, pulsante verde.
   ========================================================= */
.tg-demo-box { scroll-margin-top: 100px; }
.tg-form { margin-top: 1.5rem; }
.tg-form-note { font-size: var(--wp--preset--font-size--small); color: #5b4708; background: #fff8e6; border: 1.5px dashed #c99a1e; border-radius: var(--tg-radius-sm); padding: .75rem 1rem; }

.tg-form .fluentform { font-family: inherit; }
.tg-form .fluentform fieldset { margin: 0; padding: 0; border: 0; }
.tg-form .fluentform .ff-t-container { gap: 1.25rem; }
.tg-form .fluentform .ff-t-container .ff-t-cell { padding: 0 !important; }
.tg-form .fluentform .ff-el-group { margin-bottom: 1.25rem; }
.tg-form .fluentform .ff-el-input--label { margin-bottom: .4rem; }
.tg-form .fluentform .ff-el-input--label label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	line-height: 1.4;
}
.tg-form .fluentform .ff-el-is-required.asterisk-right label::after { color: #c2410c; margin-left: 3px; }

.tg-form .fluentform .ff-el-form-control {
	width: 100%;
	min-height: 48px;
	padding: .75rem .9rem;
	font: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--base);
	border: 1px solid #cbd5e1;
	border-radius: var(--tg-radius-sm);
	box-shadow: none;
	transition: border-color .2s var(--tg-ease), box-shadow .2s var(--tg-ease);
}
.tg-form .fluentform textarea.ff-el-form-control { min-height: 140px; resize: vertical; }
.tg-form .fluentform .ff-el-form-control:hover { border-color: #94a3b8; }
.tg-form .fluentform .ff-el-form-control:focus {
	outline: none;
	border-color: var(--wp--preset--color--sky);
	box-shadow: 0 0 0 4px rgba(78, 149, 204, .18);
}

/* Errori */
.tg-form .fluentform .ff-el-is-error .ff-el-form-control { border-color: #dc2626; }
.tg-form .fluentform .ff-el-is-error .ff-el-form-control:focus { box-shadow: 0 0 0 4px rgba(220, 38, 38, .14); }
.tg-form .fluentform .error,
.tg-form .fluentform .text-danger { color: #b91c1c; font-size: .8125rem; margin-top: .35rem; }

/* Consenso privacy */
.tg-form .fluentform .ff-el-tc { margin-top: .25rem; }
.tg-form .fluentform .ff_tc_label,
.tg-form .fluentform .ff-el-form-check-label { display: flex; gap: .65rem; align-items: flex-start; cursor: pointer; font-weight: 400; }
.tg-form .fluentform .ff_t_c { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--text); line-height: 1.55; }
.tg-form .fluentform .ff-el-form-check-input {
	width: 1.15rem;
	height: 1.15rem;
	margin: .15rem 0 0;
	flex: none;
	accent-color: var(--wp--preset--color--brand);
}

/* Pulsante: come gli altri pulsanti verdi del sito */
.tg-form .fluentform .ff_submit_btn_wrapper { margin-top: .5rem; }
.tg-form .fluentform .ff-btn-submit,
.tg-form .fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	background-color: var(--wp--preset--color--green) !important;
	color: var(--wp--preset--color--ink) !important;
	border: 0;
	border-radius: 6px;
	padding: .9rem 1.6rem;
	font: inherit;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	cursor: pointer;
	opacity: 1;
	transition: background-color .25s var(--tg-ease), box-shadow .25s var(--tg-ease), transform .25s var(--tg-ease);
}
.tg-form .fluentform .ff-btn-submit:hover,
.tg-form .fluentform .ff-btn-submit:focus-visible {
	background-color: #3dbb77 !important;
	box-shadow: 0 0 0 4px rgba(73, 204, 134, .18), 0 8px 24px -6px rgba(73, 204, 134, .55);
}
@media (prefers-reduced-motion: no-preference) {
	.tg-form .fluentform .ff-btn-submit:hover { transform: translateY(-2px); }
}

/* Conferma dopo l'invio */
.tg-form .ff-message-success {
	margin: 0;
	padding: 1.25rem 1.5rem;
	border: 1px solid #b7e8cd;
	border-left: 4px solid var(--wp--preset--color--green);
	border-radius: var(--tg-radius-sm);
	background: #effbf4;
	color: var(--wp--preset--color--ink);
	box-shadow: none;
}
.tg-form .ff-message-success p { margin: 0; }
.tg-form .ff-message-success p + p { margin-top: .35rem; }

@media (max-width: 600px) {
	.tg-form .fluentform .ff-t-container { display: block; }
	.tg-form .fluentform .ff-t-container .ff-t-cell { width: 100% !important; flex-basis: 100% !important; }
}

/* =========================================================
   v2.6 — scadenze ACN, cornice dello screenshot, sicurezza, calendario
   ========================================================= */

/* Riga delle scadenze nella parte alta della home */
.tg-hero__deadline {
	position: relative;
	margin: 1.75rem 0 0;
	padding: .8rem 1rem .8rem 2.4rem;
	max-width: 52ch;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: #cfdbe8;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(78, 149, 204, .35);
	border-radius: var(--tg-radius-sm);
}
.tg-hero__deadline strong { color: var(--wp--preset--color--base); font-weight: 600; }
.tg-hero__deadline a { color: var(--wp--preset--color--sky); text-underline-offset: .2em; white-space: nowrap; }
.tg-hero__deadline a:hover { color: var(--wp--preset--color--base); }
.tg-hero__deadline::before {
	/* puntino di avviso */
	content: "";
	position: absolute;
	left: 1rem;
	top: 1.2rem;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #f5b84b;
	box-shadow: 0 0 0 0 rgba(245, 184, 75, .6);
}
.tg-hero__deadline + .tg-hero__note { margin-top: 1rem; }

/* Cornice da browser intorno alla schermata principale */
.tg-shot--hero {
	position: relative;
	padding-top: 30px !important;
	background: #e9eef4;
	border-radius: var(--tg-radius);
	border: 1px solid rgba(255, 255, 255, .18);
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55);
	overflow: hidden;
}
.tg-shot--hero::before {
	/* i tre pallini della finestra */
	content: "";
	position: absolute;
	top: 11px;
	left: 14px;
	width: 44px;
	height: 9px;
	background:
		radial-gradient(circle at 4.5px 4.5px, #f87171 4px, transparent 4.5px),
		radial-gradient(circle at 19.5px 4.5px, #fbbf24 4px, transparent 4.5px),
		radial-gradient(circle at 34.5px 4.5px, #4ade80 4px, transparent 4.5px);
}
.tg-shot--hero::after {
	/* barra dell'indirizzo */
	content: "";
	position: absolute;
	top: 8px;
	left: 50%;
	width: 38%;
	height: 15px;
	transform: translateX(-50%);
	background: rgba(255, 255, 255, .85);
	border-radius: 999px;
}
.tg-shot--hero img {
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	border-top: 1px solid #d5dde6 !important;
}

/* Sezione sicurezza della piattaforma */
.tg-security .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }
.tg-security h2 { max-width: 18ch; }
.tg-security .tg-checks { margin-top: 0; }
.tg-security .tg-todo { margin-top: 1.5rem; }

/* Calendario delle scadenze (Guida NIS2) */
.tg-calendar { margin: 1.5rem 0 0; overflow-x: auto; }
.tg-calendar table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.tg-calendar.wp-block-table .has-fixed-layout { table-layout: auto; }
.tg-calendar th,
.tg-calendar td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .8rem .7rem; text-align: left; vertical-align: top; }
.tg-calendar thead th { color: var(--wp--preset--color--ink); font-weight: 600; border-bottom: 2px solid var(--wp--preset--color--ink); }
.tg-calendar td:first-child { font-weight: 600; color: var(--wp--preset--color--brand); min-width: 10rem; }
.tg-calendar td:last-child { color: var(--wp--preset--color--muted); min-width: 9rem; }
.tg-calendar tbody tr { transition: background-color .2s; }
.tg-calendar tbody tr:hover { background: var(--wp--preset--color--mist); }
.tg-calendar figcaption { text-align: left; color: var(--wp--preset--color--muted); font-size: .8125rem; margin-top: .75rem; }

@keyframes tg-ping {
	0% { box-shadow: 0 0 0 0 rgba(245, 184, 75, .55); }
	70%, 100% { box-shadow: 0 0 0 8px rgba(245, 184, 75, 0); }
}
@media (prefers-reduced-motion: no-preference) {
	.tg-hero__deadline { animation: tg-rise .8s var(--tg-ease) .3s backwards; }
	.tg-hero__note { animation-delay: .4s; }
	.tg-hero__deadline::before { animation: tg-ping 2.2s ease-out 1.2s infinite; }
}

/* v2.7 — loghi dei clienti cliccabili */
.tg-clients__logos a { display: block; border-radius: 4px; }
.tg-clients__logos a:focus-visible img { filter: none; opacity: 1; }

/* =========================================================
   v2.8 — ritmo degli sfondi: fasce blu notte a metà pagina
   ========================================================= */
.tg-dark { position: relative; overflow: hidden; }
.tg-dark::before {
	content: "";
	position: absolute;
	inset: -35% -10% auto auto;
	width: 55%;
	height: 170%;
	background: radial-gradient(closest-side, rgba(78, 149, 204, .2), transparent 70%);
	pointer-events: none;
}
.tg-dark > * { position: relative; }
.tg-dark h2 { color: var(--wp--preset--color--base); }
.tg-dark .tg-intro { color: #cfdbe8; }

/* File ACN su fondo scuro: i riquadri restano "documenti" bianchi */
.tg-dark .tg-file { color: var(--wp--preset--color--text); border-color: transparent; box-shadow: 0 18px 40px -22px rgba(0, 0, 0, .6); }
.tg-dark .tg-file::after { background: linear-gradient(225deg, transparent 50%, #c9d6e3 50%); }
.tg-dark .tg-file:hover { border-color: var(--wp--preset--color--sky); }

/* Sicurezza su fondo scuro */
.tg-dark .tg-checks li { color: #dbe5ef; border-top-color: rgba(255, 255, 255, .12); }
.tg-dark .tg-checks li::before { border-color: var(--wp--preset--color--green); }
.tg-dark .tg-todo { color: #5b4708; }

@media (prefers-reduced-motion: no-preference) {
	.tg-dark::before { animation: tg-drift 24s ease-in-out infinite alternate; }
}

/* =========================================================
   v2.10 — GURU, assistente AI
   ========================================================= */
.tg-new {
	display: inline-block;
	margin: 0 0 1rem;
	padding: .25rem .75rem;
	border-radius: 999px;
	background: rgba(73, 204, 134, .16);
	color: #7ee2ab;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .02em;
}
.tg-guru .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); }
.tg-guru h2 { margin-top: 0; }
.tg-guru .wp-block-buttons { margin-top: 2rem; }
.tg-guru-trust h3 { color: var(--wp--preset--color--base); }
.tg-guru-trust p:not(.tg-intro) { color: #dbe5ef; }
.tg-guru-trust h3 { margin: 2rem 0 .5rem; font-size: 1.125rem; }
.tg-guru-trust .wp-block-column > h3:first-child { margin-top: 0; }
.tg-guru-trust .tg-checks { margin: .75rem 0 0; }
.tg-guru-trust .tg-small { margin-top: 2rem; color: #9fb2c6 !important; }

/* Domande d'esempio, come in una chat */
.tg-chat {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1.5rem;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--tg-radius-sm, 12px);
	background: rgba(255, 255, 255, .05);
}
.tg-chat > p { margin: 0; }
.tg-chat__label {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #9fc4e4;
}
.tg-chat__q {
	align-self: flex-end;
	max-width: 85%;
	padding: .7rem 1rem;
	border-radius: 16px 16px 4px 16px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.45;
	box-shadow: 0 12px 28px -18px rgba(0, 0, 0, .6);
}
.tg-chat__q:nth-child(odd) { align-self: flex-start; border-radius: 16px 16px 16px 4px; }
.tg-chat--light { border-color: var(--wp--preset--color--line); background: var(--wp--preset--color--base); }
.tg-chat--light .tg-chat__label { color: var(--wp--preset--color--brand); }
.tg-chat--light .tg-chat__q { background: var(--wp--preset--color--mist); box-shadow: none; }
@media (prefers-reduced-motion: no-preference) {
	.tg-chat__q { animation: tg-rise .7s var(--tg-ease, ease) backwards; }
	.tg-chat__q:nth-child(3) { animation-delay: .15s; }
	.tg-chat__q:nth-child(4) { animation-delay: .3s; }
	.tg-chat__q:nth-child(5) { animation-delay: .45s; }
}

/* Esempio reale di risposta di GURU: il testo resta visibile mentre scorre lo screenshot */
.tg-guru-demo .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); align-items: flex-start; }
.tg-guru-demo h2 { margin-top: 0; }
.tg-guru-demo .tg-shot { margin: 0; }
@media (min-width: 782px) {
	.tg-guru-demo .wp-block-column:first-child { position: sticky; top: 7rem; }
}

/* v2.11 — schema di GURU (Piattaforma) */
.tg-hub__more { margin: 2rem 0 0; text-align: center; font-weight: 600; }
.tg-int-shot { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

/* v2.13 — loghi dei connettori */
.tg-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: .75rem; margin: 0; }
.tg-logos .wp-block-image {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 4.75rem;
	margin: 0;
	padding: 0 1.1rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tg-radius-sm);
	transition: border-color .2s, box-shadow .2s;
}
.tg-logos .wp-block-image:hover { border-color: var(--wp--preset--color--sky); box-shadow: var(--tg-shadow-hover, none); }
.tg-logos img { width: auto; max-width: 100%; max-height: 1.9rem; object-fit: contain; }
.tg-logos + .tg-small { margin-top: 1rem; }

/* v2.14 — aree della piattaforma (Piattaforma) */
.tg-links .wp-block-columns.tg-areas { gap: clamp(1.5rem, 3vw, 2.5rem); margin-top: 2rem; }
.tg-area { border-top: 2px solid var(--wp--preset--color--brand); padding-top: 1.1rem; }
.tg-area h3 { margin: 0 0 .25rem; font-size: 1.125rem; }
.tg-area h3 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.tg-area h3 a::after { content: " →"; color: var(--wp--preset--color--brand); transition: margin-left .2s; }
.tg-area h3 a:hover { color: var(--wp--preset--color--brand); }
.tg-area .tg-checks { margin-top: .5rem; }
.tg-area .tg-checks li { padding-top: .55rem; padding-bottom: .55rem; font-size: var(--wp--preset--font-size--small); }
.tg-area .tg-checks li::before { top: .8rem; }
.tg-area .tg-checks li:first-child { border-top: 0; }

/* Fascia GURU sotto le aree */
.tg-guru-strip {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding: 1.25rem 1.5rem;
	gap: .75rem 2rem;
	background: var(--wp--preset--color--navy);
	color: #dbe5ef;
	border-radius: var(--tg-radius-sm);
}
.tg-guru-strip p { margin: 0; }
.tg-guru-strip strong { color: var(--wp--preset--color--base); }
.tg-guru-strip__link a { color: #7ee2ab; font-weight: 600; text-decoration: none; white-space: nowrap; }
.tg-guru-strip__link a::after { content: " →"; }
.tg-guru-strip__link a:hover { text-decoration: underline; }

/* v2.16 — Come si presenta: 4 schermate, due per riga, ingrandibili */
.tg-shots-section .tg-shots { gap: clamp(1.5rem, 3vw, 2.5rem); }
.tg-shots-section .tg-shots + .tg-shots { margin-top: clamp(1.5rem, 3vw, 2.5rem) !important; }
.tg-shots-section .tg-shot img { width: 100%; height: auto; cursor: zoom-in; }

/* v2.18 — Prezzi: tre modalità di licenza */
.tg-plans__cols { gap: clamp(1rem, 2vw, 1.5rem) !important; align-items: stretch !important; }
.tg-plan {
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--text);
	border-radius: var(--tg-radius); /* come lo screenshot nella fascia blu della home */
	box-shadow: 0 24px 48px -28px rgba(0, 0, 0, .65);
}
.tg-plan__tag {
	align-self: flex-start;
	margin: 0 0 1rem;
	padding: .25rem .65rem;
	border-radius: 999px;
	background: #e3eef8;
	color: var(--wp--preset--color--brand);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
}
.tg-plan .tg-plan__name { margin: 0; color: var(--wp--preset--color--ink); font-size: clamp(1.4rem, 2.4vw, 1.75rem); }
.tg-plan__model { margin: .35rem 0 0; color: var(--wp--preset--color--brand); font-size: clamp(1.15rem, 2vw, 1.35rem); font-weight: 600; }
.tg-plan .tg-checks { margin: 1.25rem 0 0; }
.tg-dark .tg-plan .tg-checks li { color: var(--wp--preset--color--text); border-top-color: var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--small); padding-top: .6rem; padding-bottom: .6rem; }
.tg-dark .tg-plan .tg-checks li::before { border-color: #2f9e63; top: .85rem; }
.tg-plan .wp-block-buttons { margin-top: auto; padding-top: 1.75rem; }
.tg-plan .wp-block-button { width: 100%; }
.tg-plan .wp-block-button__link { width: 100%; justify-content: center; }
.tg-plans__note { margin: 2rem 0 0; text-align: center; color: #cfdbe8; }
.tg-plans__note strong { color: var(--wp--preset--color--base); }
/* La modalità più scelta: bordo verde e nastro nell'angolo */
.tg-plan { position: relative; overflow: hidden; }
.tg-plan--popular { outline: 3px solid var(--wp--preset--color--green); outline-offset: -3px; }
.tg-plan__ribbon {
	position: absolute;
	top: 1.45rem;
	right: -2.6rem;
	width: 11rem;
	margin: 0;
	padding: .35rem 0;
	transform: rotate(45deg);
	background: var(--wp--preset--color--green);
	color: var(--wp--preset--color--ink);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-align: center;
	text-transform: uppercase;
	box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .5);
}

/* v2.21 — Cataloghi: fascia dei numeri */
.tg-stats { gap: clamp(1rem, 3vw, 2rem) !important; }
.tg-stat { border-left: 3px solid var(--wp--preset--color--green); padding-left: 1rem; }
.tg-stat__num { margin: 0; font-size: clamp(2.2rem, 4.5vw, 3rem); font-weight: 700; line-height: 1.05; color: var(--wp--preset--color--brand); letter-spacing: -.02em; }
.tg-stat__text { margin: .4rem 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }

/* v2.25 — "Preferenze cookie" nel footer: è un pulsante (riapre il banner) ma si presenta come i link */
.tg-footer__consent {
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	cursor: pointer;
}
.tg-footer__consent:hover { text-decoration: underline; color: var(--wp--preset--color--brand); }

/* v2.26 — velocità (Largest Contentful Paint): titolo e testo della fascia blu compaiono subito.
   Sono l'elemento più grande in alto su cellulare: un'animazione che parte da invisibile
   ritarda il momento in cui Google li considera "caricati". */
.tg-hero__title,
.tg-hero__lead { animation: none !important; }

/* Gli aloni animati delle fasce scure su un livello proprio: il browser li muove senza ridisegnare la pagina. */
.tg-hero::before, .tg-dark::before { will-change: transform; }

/* v2.27 — passi numerati (es. Supply Chain Risk Assessment) */
.tg-steps { margin: 0; padding: 0; list-style: none; counter-reset: tg-step; }
.tg-steps li { position: relative; counter-increment: tg-step; padding: .9rem 0 .9rem 3rem; border-top: 1px solid var(--wp--preset--color--line); }
.tg-steps li:first-child { border-top: 0; padding-top: 0; }
.tg-steps li::before { content: counter(tg-step); position: absolute; left: 0; top: .85rem; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .9rem; background: var(--wp--preset--color--green); color: var(--wp--preset--color--ink); }
.tg-steps li:first-child::before { top: -.05rem; }
.tg-dark .tg-steps li { color: #dbe5ef; border-top-color: rgba(255, 255, 255, .12); }
.tg-dark .tg-steps strong { color: var(--wp--preset--color--base); }

/* v2.28 — "Home" nel menu: solo nel menu del cellulare (su computer c'è già il nome del prodotto) */
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .tg-nav__home { display: none; }

/* v2.29 — fascia "Misure ACN coperte" in evidenza */
.tg-measures {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tg-radius);
	box-shadow: 0 18px 40px -30px rgba(11, 34, 57, .45);
}
.tg-measures .wp-block-columns { gap: clamp(1.5rem, 4vw, 3rem); margin: 0; }
.tg-measures h2 { margin: .25rem 0 .6rem; }
.tg-measures p { margin: 0; }
.tg-measures__kicker { font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--brand); }
.tg-measures__codes { margin: 0; gap: .6rem; }
.tg-measures__codes li {
	padding: .55rem 1rem;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--wp--preset--color--brand);
	background: #e3eef8;
	border-color: #c7dcef;
}
.tg-measures .tg-small { margin-top: 1rem; }
/* La fascia delle misure sotto il titolo: meno spazio vuoto prima della sezione successiva */
.tg-measures-section { padding-top: var(--wp--preset--spacing--50) !important; padding-bottom: var(--wp--preset--spacing--40) !important; }
.tg-measures-section + .tg-features:not(.has-background) { padding-top: var(--wp--preset--spacing--50) !important; }

/* v2.30 — misure ACN in piccolo nei riquadri delle funzionalità (home) */
.tg-feature p.tg-feature__acn {
	margin-top: .75rem;
	padding-top: .6rem;
	border-top: 1px dashed var(--wp--preset--color--line);
	font-size: .78rem;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
	letter-spacing: .01em;
}
.tg-feature__acn strong { font-weight: 600; color: var(--wp--preset--color--brand); white-space: nowrap; }

/* v2.31 — documento generato, presentato come un foglio */
.tg-doc { margin: 0 auto; max-width: 400px; }
.tg-doc img { display: block; width: 100%; height: auto; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 4px; box-shadow: 0 22px 44px -26px rgba(11, 34, 57, .45), 0 2px 6px rgba(11, 34, 57, .06); }
.tg-doc figcaption { margin-top: .9rem; text-align: center; color: var(--wp--preset--color--muted); font-size: .8125rem; }

/* Guida NIS2: indice e fonti */
.tg-toc { margin-bottom: 1rem; }
.tg-toc .tg-toc__title { margin: 0 0 .5rem; font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.tg-toc ol { columns: 2; column-gap: 2rem; margin: 0; padding-left: 1.25rem; }
.tg-toc li { margin: .3rem 0; break-inside: avoid; }
.tg-toc a { text-decoration: none; }
.tg-toc a:hover { text-decoration: underline; }
@media (max-width: 600px) { .tg-toc ol { columns: 1; } }
.tg-article h2[id], .tg-faq[id], .tg-article[id] { scroll-margin-top: 100px; }
.tg-sources { list-style: none; padding: 0; margin: .75rem 0 0; }
.tg-sources li { padding: .6rem 0; border-top: 1px solid var(--wp--preset--color--line); }
.tg-sources li:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.tg-sources a { font-weight: 600; }
.tg-sources a[target="_blank"]::after { content: " ↗"; font-weight: 400; }
.tg-profiles th, .tg-profiles td { min-width: 8.5rem; }
.tg-profiles td:first-child { min-width: 7.5rem; }
.tg-profiles td:last-child { color: inherit; }
@media (max-width: 600px) {
	.tg-profiles th, .tg-profiles td { min-width: 0; padding: .7rem .4rem; }
	.tg-profiles td:first-child { min-width: 6.5rem; }
	.tg-calendar th, .tg-calendar td { padding: .7rem .4rem; }
	.tg-calendar table { font-size: .8125rem; }
	.tg-calendar td:first-child { min-width: 6.5rem; }
	.tg-calendar td:nth-child(2) { min-width: 9rem; }
	.tg-calendar td:last-child { min-width: 5.5rem; }
	.tg-profiles table { font-size: .8125rem; }
}
.tg-keylink { margin: 1rem 0 1.5rem; }
.tg-keylink a { display: block; padding: 1rem 1.25rem; border: 1px solid var(--wp--preset--color--line); border-left: 4px solid var(--wp--preset--color--brand); border-radius: var(--tg-radius-sm); background: var(--wp--preset--color--mist); text-decoration: none; color: var(--wp--preset--color--ink); transition: border-color .2s, box-shadow .2s; }
.tg-keylink a:hover { box-shadow: var(--tg-shadow); }
.tg-keylink strong { color: var(--wp--preset--color--brand); }
.tg-keylink strong::after { content: "\00a0↗"; font-weight: 400; }
.tg-keylink span { display: block; margin-top: .2rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* Documentazione: elenco documenti producibili */
.tg-docs .tg-intro { margin-bottom: 2rem; }
.tg-docs__grid { gap: clamp(1.5rem, 3vw, 2.5rem) !important; align-items: flex-start; margin: 0 !important; }
.tg-docs__grid .tg-doctable { margin: 0 0 2rem !important; }
.tg-doctable td:last-child span, .tg-doctable td:last-child abbr { white-space: nowrap; }
.tg-doctable { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: var(--tg-radius-sm); overflow: hidden; }
.tg-doctable table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.tg-doctable.wp-block-table .has-fixed-layout { table-layout: auto; }
.tg-doctable th, .tg-doctable td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .6rem .9rem; text-align: left; vertical-align: top; }
.tg-doctable thead th { background: var(--wp--preset--color--navy); color: #fff; font-weight: 600; border-bottom: 0; }
.tg-doctable thead th:last-child { font-weight: 400; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.7); vertical-align: middle; white-space: nowrap; }
.tg-doctable__n { display: inline-block; margin-left: .35rem; padding: 0 .5rem; border-radius: 999px; background: var(--wp--preset--color--brand); font-size: .75rem; line-height: 1.5; vertical-align: middle; }
.tg-doctable td:last-child { color: var(--wp--preset--color--muted); font-size: .75rem; line-height: 1.6; min-width: 8rem; width: 34%; }
.tg-doctable tbody tr:last-child td { border-bottom: 0; }
.tg-doctable tbody tr:hover { background: var(--wp--preset--color--mist); }
.tg-docs__tag { font-weight: 600; color: var(--wp--preset--color--brand); white-space: nowrap; }
.tg-doctable abbr { text-decoration: none; cursor: help; }
.tg-doctable figcaption { margin: 0; padding: .6rem .9rem; border-top: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--mist); text-align: left; color: var(--wp--preset--color--muted); font-size: .75rem; }
.tg-docs .tg-small { max-width: 860px; margin-top: 0; }
@media (max-width: 600px) { .tg-doctable th, .tg-doctable td { padding: .55rem .6rem; } .tg-doctable td:last-child { min-width: 6rem; } }

.tg-sources__date { margin-left: .5rem; font-size: .8125rem; color: var(--wp--preset--color--muted); white-space: nowrap; }

/* Ricerca: icona nell'intestazione */
.tg-header__search { margin: 0 .25rem 0 .5rem; }
.tg-header__search .wp-block-search__inside-wrapper { border: 1px solid transparent; border-radius: 999px; padding: 0; background: transparent; transition: border-color .2s, background-color .2s; }
.tg-header__search .wp-block-search__button { background: transparent !important; color: var(--wp--preset--color--ink) !important; border: 0; padding: .45rem; margin: 0; border-radius: 999px; min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.tg-header__search .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.tg-header__search .wp-block-search__button:hover { color: var(--wp--preset--color--brand) !important; background: var(--wp--preset--color--mist) !important; }
.tg-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper { border-color: var(--wp--preset--color--line); background: #fff; }
.tg-header__search .wp-block-search__input { border: 0; background: transparent; padding: .4rem .25rem .4rem .9rem; font-size: var(--wp--preset--font-size--small); min-width: 0; outline: none; }
@media (max-width: 600px) {
	.tg-header__search { margin: 0; }
	.tg-header__search:not(.wp-block-search__searchfield-hidden) { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); z-index: 20; }
	.tg-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper { width: 100% !important; box-shadow: var(--tg-shadow); }
	.tg-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input { width: 100% !important; }
}
.tg-header .alignwide { position: relative; }

/* Ricerca: pagina dei risultati */
.tg-search-form { max-width: 640px; margin-top: 1.25rem; }
.tg-search-form .wp-block-search__inside-wrapper { background: #fff; border: 0; border-radius: var(--tg-radius-sm); padding: .3rem; }
.tg-search-form .wp-block-search__input { border: 0; padding: .65rem .9rem; font-size: 1rem; }
.tg-search-form .wp-block-search__button { margin: 0; border: 0; border-radius: calc(var(--tg-radius-sm) - 2px); background: var(--wp--preset--color--green); color: var(--wp--preset--color--navy); font-weight: 600; padding: .6rem 1.2rem; }
.tg-search-title { margin: 1.25rem 0 0; font-size: var(--wp--preset--font-size--medium) !important; font-weight: 400; color: rgba(255,255,255,.8); }
.tg-search-results .wp-block-post-template { max-width: 760px; }
.tg-search-item { padding: 1.25rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.tg-search-item__title { margin: 0 0 .35rem; font-size: 1.25rem !important; }
.tg-search-item__title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.tg-search-item__title a:hover { color: var(--wp--preset--color--brand); text-decoration: underline; }
.tg-search-item__excerpt { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.tg-search-item__excerpt .wp-block-post-excerpt__excerpt { margin: 0; }
.tg-search-empty { max-width: 760px; }
@media (min-width: 600px) {
	.tg-header .tg-nav { flex: 1 1 auto; justify-content: center; }
	.tg-header .tg-nav .wp-block-navigation__container { justify-content: center; }
	.tg-header__search { margin: 0 .75rem 0 .5rem; }
}
@media (max-width: 599px) {
	.tg-header .tg-header__search { margin-left: auto; }
	.tg-header .tg-header__cta { margin-left: .15rem; }
	.tg-header__cta .wp-block-button__link { white-space: nowrap; }
}
@media (min-width: 600px) and (max-width: 960px) {
	.tg-header .tg-nav .wp-block-navigation__container { gap: .9rem !important; flex-wrap: nowrap; }
	.tg-header .tg-nav .wp-block-navigation-item__content { font-size: .875rem; white-space: nowrap; }
	.tg-header__search { margin: 0 .25rem; }
	.tg-header__cta .wp-block-button__link { white-space: nowrap; padding: .55rem .9rem; font-size: .875rem; }
}
.tg-header .tg-brand, .tg-header .tg-header__search, .tg-header .tg-header__cta { flex-shrink: 0; }
@media (min-width: 600px) and (max-width: 720px) {
	.tg-header .tg-nav .wp-block-navigation__container { gap: .6rem !important; }
	.tg-header .tg-nav .wp-block-navigation-item__content { font-size: .8125rem; }
	.tg-header__cta .wp-block-button__link { padding: .5rem .7rem; font-size: .8125rem; }
	.tg-header .tg-brand__logo img { width: 56px !important; }
}
@media (min-width: 600px) and (max-width: 660px) {
	.tg-header .tg-nav .wp-block-navigation__container { gap: .45rem !important; }
	.tg-header .tg-nav .wp-block-navigation-item__content { font-size: .78rem; }
	.tg-header__search { margin: 0; }
	.tg-header__search .wp-block-search__button { min-width: 34px; padding: .3rem; }
	.tg-header__cta .wp-block-button__link { padding: .45rem .6rem; font-size: .78rem; }
	.tg-header .tg-brand__logo img { width: 48px !important; }
}
.tg-search-item__type { margin: 0 0 .35rem; font-size: .8125rem; color: var(--wp--preset--color--muted); }
.tg-search-item__type span { display: inline-block; padding: .05rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 600; letter-spacing: .02em; }
.tg-search-item__type.is-page span { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--brand); border: 1px solid var(--wp--preset--color--line); }
.tg-search-item__type.is-post span { background: rgba(73,204,134,.16); color: #1f7a4c; border: 1px solid rgba(73,204,134,.35); }

/* Screenshot dentro gli articoli */
.tg-post-shot { margin: 2rem 0 !important; }
.tg-post-shot img { border: 1px solid var(--wp--preset--color--line); border-radius: var(--tg-radius-sm); box-shadow: var(--tg-shadow); }
.tg-post-shot figcaption { text-align: left; color: var(--wp--preset--color--muted); font-size: .8125rem; margin-top: .6rem; }

/* Brochure nel menu: ultima voce sotto Piattaforma, con icona di download */
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .tg-nav__brochure { border-top: 1px solid var(--wp--preset--color--line); margin-top: .3rem; padding-top: .3rem; }
.tg-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .tg-nav__brochure a { font-weight: 600; color: var(--wp--preset--color--brand) !important; }
.tg-nav .tg-nav__brochure a::before { content: ""; display: inline-block; width: 1em; height: 1em; margin-right: .45em; vertical-align: -.12em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v12m0 0l-5-5m5 5l5-5M4 19h16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v12m0 0l-5-5m5 5l5-5M4 19h16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.tg-nav .is-menu-open .tg-nav__brochure a { font-weight: 600; color: var(--wp--preset--color--brand) !important; }
.tg-plan__ast { margin-left: .1em; color: var(--wp--preset--color--green); font-weight: 700; }
.tg-plans__footnote { margin: 1.5rem 0 0; text-align: center; font-size: var(--wp--preset--font-size--small); color: #cfdbe8; }
