/*
 * Tema fti: stili che theme.json non esprime (specifica 11, 15.1).
 * Solo i token della 11.2: nessun altro colore in questo file.
 */

:root {
	color-scheme: light;
	--fti-arancio: #F57E25;
	--fti-nero: #231F20;
	--fti-bianco: #FFFFFF;
	--fti-blu: #0066B3;
	--fti-rosso: #ED1C24;
	--fti-grigio: #9A989A;
	--fti-testo: var(--fti-nero);
	--fti-link: var(--fti-blu);
	--fti-focus-su-chiaro: var(--fti-blu);
	--fti-focus-su-arancio: var(--fti-nero);
	/* Aree di rispetto dei loghi, misurate sulla «F» (11.4, L-20). */
	--fti-rispetto-header: 18px;
	--fti-rispetto-footer: 23px;
}

/* Il ® che segue FIRST: stesso corpo, appena sollevato (C-01). */
.fti-first {
	font-style: italic;
}

.fti-first + sup {
	font-size: 0.6em;
	line-height: 0;
	vertical-align: super;
}

/* Focus sempre visibile: blu sui fondi chiari, nero sull'arancio (11.3). */
:focus-visible {
	outline: 2px solid var(--fti-focus-su-chiaro);
	outline-offset: 2px;
}

.wp-element-button:focus-visible,
.has-arancio-background-color :focus-visible {
	outline-color: var(--fti-focus-su-arancio);
}

/* Sui fondi arancio link neri e sottolineati; mai testo bianco su arancio (11.3). */
.has-arancio-background-color a:not(.wp-element-button) {
	color: var(--fti-nero);
}

.has-arancio-background-color.has-bianco-color,
.has-arancio-background-color .has-bianco-color {
	color: var(--fti-nero) !important;
}

/* Pulsante secondario: fondo bianco, bordo nero (11.7). */
.wp-block-button.fti-secondario .wp-block-button__link {
	background-color: var(--fti-bianco);
	color: var(--fti-nero);
	box-shadow: inset 0 0 0 2px var(--fti-nero);
}

.wp-block-button.fti-secondario .wp-block-button__link:focus-visible {
	outline-color: var(--fti-focus-su-chiaro);
}

/* Link «salta al contenuto» e testi per lettori di schermo del core, con i colori della palette (il core usa grigi propri). */
#wp-skip-link:focus,
.screen-reader-text:focus {
	background-color: var(--fti-bianco);
	color: var(--fti-blu);
	box-shadow: 0 0 0 2px var(--fti-blu);
}

main {
	scroll-margin-top: 1rem;
}

/* Header ------------------------------------------------------------------ */

/* Header e footer: margini laterali della pagina e larghezza massima di 1200 px (11.6). */
.fti-header,
.fti-footer {
	padding-inline: var(--wp--style--root--padding-left, 1rem) var(--wp--style--root--padding-right, 1rem);
}

.fti-header > *,
.fti-footer > * {
	max-width: var(--wp--style--global--wide-size, 75rem);
	margin-inline: auto;
}

.fti-header {
	padding-block: 0.5rem 0;
	border-bottom: 1px solid var(--fti-grigio);
}

.fti-header__riga {
	align-items: center;
	gap: 0 1.5rem;
}

/* Logo: altezza fissa, mai ridotto sotto il minimo (C-03); l'area di rispetto è padding vuoto.
   Il margine negativo fa coincidere il bordo della pagina con l'area di rispetto, senza uscire dallo schermo. */
.fti-logo {
	display: block;
	flex-shrink: 0;
	line-height: 0;
}

.fti-logo img {
	max-width: none;
	width: auto;
}

.fti-logo--header {
	margin-inline-start: calc(-1 * var(--wp--style--root--padding-left, 1rem));
	padding: var(--fti-rispetto-header);
}

.fti-logo--header img {
	height: 60px;
}

.fti-logo--footer {
	padding: var(--fti-rispetto-footer);
	margin-inline-start: calc(-1 * var(--wp--style--root--padding-left, 1rem));
}

.fti-logo--footer img {
	height: 120px;
}

.fti-servizio {
	font-size: 0.9375rem;
}

.fti-principale {
	font-weight: 700;
}

.wp-block-navigation a {
	text-decoration: none;
}

.wp-block-navigation a:hover,
.wp-block-navigation a:focus-visible {
	text-decoration: underline;
}

/* Menu a scomparsa e sottomenu del core: colori della palette (il core usa il nero puro, con selettori più specifici), bersagli ampi (15.1). */
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay),
.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container {
	background-color: var(--fti-bianco);
	color: var(--fti-nero);
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-width: 32px;
	min-height: 44px;
	justify-content: center;
	align-items: center;
}

/* «Inizia un team»: pulsante nell'header da 600 px in su, voce del menu a scomparsa sotto i 600 px.
   Selettori più specifici di quelli del core, che impostano display:flex. */
@media (min-width: 600px) {
	.fti-principale .wp-block-navigation-item.fti-voce-azione {
		display: none;
	}
}

/* Sotto i 600 px logo (237 px + 2 × 18 px di rispetto) e pulsante del menu stanno sulla stessa riga anche a 320 px. */
@media (max-width: 599px) {
	.fti-header__riga > .wp-block-buttons.fti-header__azione {
		display: none;
	}

	.fti-header {
		padding-inline-end: 0.5rem;
	}

	.fti-header__riga {
		flex-wrap: nowrap;
		gap: 0;
	}
}

/* Contenuti ---------------------------------------------------------------- */

.fti-aggiornata {
	margin-top: 3rem;
	font-size: 0.9375rem;
}

.fti-dati-notizia {
	gap: 0 1rem;
	font-size: 0.9375rem;
}

/* Schede delle notizie: bordo sottile, nessuna ombra (11.6). */
.fti-scheda {
	height: 100%;
	padding: 1rem;
	border: 1px solid var(--fti-grigio);
}

.fti-scheda .wp-block-post-title {
	font-size: 1.375rem;
}

/* Footer ------------------------------------------------------------------- */

.fti-footer {
	margin-top: 4rem;
	padding-block: 2rem;
	border-top: 1px solid var(--fti-grigio);
	font-size: 0.9375rem;
}

.fti-footer__colonne {
	display: grid;
	gap: 2rem;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.fti-footer__titolo {
	margin-top: 0;
	font-size: 1.125rem;
}

.fti-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fti-footer li + li {
	margin-top: 0.5rem;
}

.fti-footer__colonna p {
	margin: 0 0 0.5rem;
}

.fti-footer__marchi {
	margin-top: 2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--fti-grigio);
}

.fti-footer__marchi p {
	margin: 0 0 0.25rem;
}

.fti-footer__fondo {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	justify-content: space-between;
	margin-top: 1rem;
}

.fti-footer__fondo ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}

.fti-footer__fondo li + li {
	margin-top: 0;
}

.fti-footer__fondo p {
	margin: 0;
}

/* Movimento solo se richiesto (11.8). */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
