/* =========================================================
   SICA — foglio di stile unico
   ========================================================= */

@font-face {
	font-family: "Open Sans";
	src: url("../fonts/open-sans-var.woff2") format("woff2-variations");
	font-weight: 300 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--sica-cream: #FFF5E3;
	--sica-red: #C7080F;
	--sica-green: #90AF72;
	--sica-ink: #2B2118;
	--sica-white: #FFFFFF;

	--sica-font: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	/* La sezione arriva a 1500px; dentro, i contenuti si fermano a 1400px
	   grazie ai 50px di margine per lato (ridotti sui piccoli schermi). */
	--sica-max: 1500px;
	--sica-inner: 1400px;
	--sica-gutter: clamp(1.25rem, 4vw, 50px);
	--sica-radius: 8px;
	/* Altezza dell'header: il logo si adatta a questa, non viceversa */
	--sica-header-h: 137px;

	/* Scala tipografica: un solo posto per tutte le dimensioni del sito.
	   display > h2 > h3 > lead > body > small > eyebrow */
	--fs-display: clamp(2.4rem, 1.7rem + 3.2vw, 4.2rem);
	--fs-h2:      clamp(1.85rem, 1.45rem + 1.9vw, 2.9rem);
	--fs-h3:      clamp(1.15rem, 1.05rem + 0.55vw, 1.5rem);
	--fs-lead:    clamp(1.05rem, 1rem + 0.45vw, 1.3rem);
	--fs-body:    clamp(1rem, 0.97rem + 0.18vw, 1.075rem);
	--fs-small:   0.93rem;
	--fs-eyebrow: 0.74rem;

	/* Icone: una misura sola per tutte le sezioni con pittogrammi */
	--icon-size: clamp(64px, 5vw + 2rem, 104px);

	/* Curve del movimento */
	--ease-out: cubic-bezier(.22, 1, .3, 1);
	--ease-soft: cubic-bezier(.4, 0, .2, 1);
}

/* Monitor grandi: il contenuto respira invece di restare inchiodato a 1500px.
   Le hero restano comunque a tutta larghezza. */
@media (min-width: 1700px) {
	:root {
		--sica-max: 1700px;
		--sica-inner: 1600px;
		--sica-gutter: 50px;
	}
}

@media (min-width: 2000px) {
	:root {
		--sica-max: 1900px;
		--sica-inner: 1780px;
		--sica-gutter: 60px;
	}
}

@media (min-width: 2400px) {
	:root {
		--sica-max: 2100px;
		--sica-inner: 1960px;
		--sica-gutter: 70px;
	}
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--sica-font);
	font-size: var(--fs-body);
	line-height: 1.6;
	color: var(--sica-ink);
	background: var(--sica-cream);
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: inherit; }

h1, h2, h3, h4 { font-weight: 700; line-height: 1.15; margin: 0 0 0.5em; letter-spacing: -0.01em; }
h1 { font-size: var(--fs-display); letter-spacing: -0.02em; }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); letter-spacing: 0; }
h4 { font-size: var(--fs-body); letter-spacing: 0; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
	white-space: nowrap; border: 0;
}

.sica-skip {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--sica-red); color: #fff; padding: 0.75rem 1.25rem;
}
.sica-skip:focus { left: 0; }

/* Nessun riquadro di selezione: l'indicazione di focus è data dalla forma stessa
   dell'elemento (colore, cerchio, sollevamento), mai da un rettangolo. */
:focus { outline: none; }
:focus-visible { outline: none; }
.sica-skip:focus { outline: none; }

/* ---------- Bottone ---------- */
.sica-btn {
	display: inline-block;
	background: var(--sica-green);
	color: var(--sica-white);
	text-decoration: none;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.9rem 2.2rem;
	border-radius: 999px;
	transition: background-color .2s ease, transform .2s ease;
}
.sica-btn:hover, .sica-btn:focus-visible { background: #7d9c60; transform: translateY(-2px); }

/* Sul verde il pulsante verde non si leggerebbe */
.is-bg-green .sica-btn { background: var(--sica-white); color: var(--sica-green); }
.is-bg-green .sica-btn:hover,
.is-bg-green .sica-btn:focus-visible { background: var(--sica-cream); color: #6f8f57; }

/* ---------- Header ---------- */
.sica-header {
	background: var(--sica-cream);
	position: sticky;
	top: 0;
	z-index: 300; /* sopra il menu a tutta pagina: il burger resta cliccabile e diventa X */
	transition: box-shadow .35s var(--ease-soft), background-color .35s var(--ease-soft);
}
/* Allo scroll l'header si stacca appena dalla pagina */
.sica-header.is-stuck { box-shadow: 0 6px 24px rgba(90, 20, 10, .09); }
body.sica-menu-open .sica-header { box-shadow: none; }

.sica-header__inner {
	max-width: var(--sica-max);
	margin-inline: auto;
	padding: 6px var(--sica-gutter);
	min-height: var(--sica-header-h);
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	transition: min-height .35s var(--ease-soft);
}
.sica-header.is-stuck .sica-header__inner { min-height: 112px; }

/* Hamburger che si trasforma in X */
.sica-burger {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	background: none;
	border: 0;
	padding: 0.5rem;
	margin-left: -0.5rem;
	cursor: pointer;
	color: var(--sica-red);
}
.sica-burger__bars {
	position: relative;
	display: block;
	width: 34px;
	height: 20px;
}
.sica-burger__bars span {
	position: absolute;
	left: 0;
	display: block;
	width: 100%;
	height: 3px;
	border-radius: 2px;
	background: currentColor;
	transition:
		transform .42s var(--ease-out),
		top .28s var(--ease-out) .16s,
		opacity .2s ease .1s,
		width .3s var(--ease-out),
		background-color .25s ease;
}
.sica-burger__bars span:nth-child(1) { top: 0; }
.sica-burger__bars span:nth-child(2) { top: 8.5px; }
.sica-burger__bars span:nth-child(3) { top: 17px; }
.sica-burger:hover .sica-burger__bars span:nth-child(2) { width: 72%; }

.sica-burger[aria-expanded="true"] .sica-burger__bars span {
	transition:
		top .28s var(--ease-out),
		transform .42s var(--ease-out) .16s,
		opacity .15s ease,
		width .3s var(--ease-out);
}
.sica-burger[aria-expanded="true"] .sica-burger__bars span:nth-child(1) { top: 8.5px; transform: rotate(45deg); }
.sica-burger[aria-expanded="true"] .sica-burger__bars span:nth-child(2) { opacity: 0; width: 100%; }
.sica-burger[aria-expanded="true"] .sica-burger__bars span:nth-child(3) { top: 8.5px; transform: rotate(-45deg); }
.sica-burger:hover .sica-burger__bars span,
.sica-burger:focus-visible .sica-burger__bars span { color: inherit; background: var(--sica-green); }

.sica-header__logo { justify-self: center; transition: opacity .3s var(--ease-soft), transform .4s var(--ease-out); }
/* Col menu aperto resta solo la X e le bandiere */
body.sica-menu-open .sica-header__logo { opacity: 0; transform: scale(.94); pointer-events: none; }
.sica-logo { display: block; text-decoration: none; }
/* Il logo riempie l'header lasciando solo 6px sopra e sotto */
.sica-logo__img { max-height: calc(var(--sica-header-h) - 12px); width: auto; transition: max-height .35s var(--ease-soft); }
.sica-header.is-stuck .sica-logo__img { max-height: 100px; }
.sica-logo__text { font-weight: 800; font-size: 1.6rem; color: var(--sica-red); letter-spacing: 0.02em; }

.sica-lang { justify-self: end; display: flex; gap: 0.9rem; align-items: center; }
.sica-lang__item { display: block; line-height: 0; border-radius: 3px; overflow: hidden; opacity: .85; transition: opacity .25s ease, transform .3s var(--ease-out); }
.sica-lang__item:hover, .sica-lang__item:focus-visible { opacity: 1; transform: translateY(-3px); }
.sica-flag { width: 42px; height: auto; border: 1px solid rgba(0,0,0,.12); border-radius: 3px; }

/* ---------- Menu overlay ---------- */
.sica-menu {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--sica-cream);
	display: grid;
	place-items: center;
	opacity: 0;
	transition: opacity .35s var(--ease-soft);
	/* Se le voci non ci stanno (schermi bassi, telefono in orizzontale)
	   il menu scorre invece di tagliare le prime voci. */
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding-top: var(--sica-header-h);
	padding-bottom: clamp(1.5rem, 5vh, 3rem);
}
.sica-menu[hidden] { display: none; }
.sica-menu.is-open { opacity: 1; }
.sica-menu__inner {
	text-align: center;
	padding: var(--sica-gutter);
	max-width: 900px;
	width: 100%;
	/* si allinea in alto quando non c'è spazio per centrare */
	margin-block: auto;
}
.sica-menu__list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(.1rem, .6vh, .5rem); }

/* Le voci salgono a scalare quando il menu si apre */
.sica-menu__list > li {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .45s var(--ease-soft), transform .6s var(--ease-out);
}
.sica-menu.is-open .sica-menu__list > li { opacity: 1; transform: none; }
.sica-menu.is-open .sica-menu__list > li:nth-child(1) { transition-delay: .06s; }
.sica-menu.is-open .sica-menu__list > li:nth-child(2) { transition-delay: .12s; }
.sica-menu.is-open .sica-menu__list > li:nth-child(3) { transition-delay: .18s; }
.sica-menu.is-open .sica-menu__list > li:nth-child(4) { transition-delay: .24s; }
.sica-menu.is-open .sica-menu__list > li:nth-child(5) { transition-delay: .30s; }
.sica-menu.is-open .sica-menu__list > li:nth-child(6) { transition-delay: .36s; }
.sica-menu.is-open .sica-menu__list > li:nth-child(n+7) { transition-delay: .42s; }

.sica-menu__list a {
	position: relative;
	display: inline-block;
	text-decoration: none;
	/* La misura tiene conto anche dell'altezza (vh): con 6 voci su uno schermo
	   basso il testo si riduce da solo invece di far sparire la prima voce. */
	font-size: clamp(1.35rem, 1rem + 1.6vw + 0.8vh, 3rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--sica-red);
	padding: 0.18em 0;
	transition: color .25s ease, transform .35s var(--ease-out);
}
/* Filetto verde che si apre da sinistra sotto la voce */
.sica-menu__list a::after {
	content: "";
	position: absolute;
	left: 0; bottom: .1em;
	width: 100%; height: 2px;
	background: var(--sica-green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s var(--ease-out);
}
.sica-menu__list a:hover,
.sica-menu__list a:focus-visible { color: var(--sica-green); transform: translateX(6px); }
.sica-menu__list a:hover::after,
.sica-menu__list a:focus-visible::after { transform: scaleX(1); }
.sica-menu__list .sub-menu { list-style: none; margin: 0.2rem 0 0; padding: 0; display: grid; gap: 0.2rem; }
.sica-menu__list .sub-menu a { font-size: var(--fs-lead); font-weight: 600; color: var(--sica-ink); }
.sica-menu__media img { margin: 2rem auto 0; max-height: 220px; width: auto; border-radius: var(--sica-radius); }
body.sica-menu-open { overflow: hidden; }

/* ---------- Hero ---------- */
.sica-hero {
	position: relative;
	display: grid;
	place-items: center;
	min-height: clamp(420px, 62vh, 720px);
	padding: clamp(3rem, 8vw, 7rem) var(--sica-gutter);
	color: var(--sica-white);
	text-align: center;
	overflow: hidden;
	background: var(--sica-ink);
}
.sica-hero__media { position: absolute; inset: 0; }
.sica-hero__img { width: 100%; height: 100%; object-fit: cover; }
.sica-hero__media::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 100%);
}
.sica-hero__inner { position: relative; max-width: 900px; }
.sica-hero__title { margin-bottom: 0.4em; text-shadow: 0 2px 18px rgba(0,0,0,.3); }
.sica-hero__subtitle {
	font-size: var(--fs-lead);
	margin: 0 0 2rem;
	text-shadow: 0 1px 12px rgba(0,0,0,.3);
}
.sica-hero.is-align-left { text-align: left; justify-items: start; }
.sica-hero.is-align-bottomleft {
	place-items: end start;
	text-align: left;
	padding-bottom: clamp(2.5rem, 5vw, 4.5rem);
}
/* justify-items:start stringe la colonna sul contenuto: serve una larghezza esplicita.
   Niente `ch`: si baserebbe sul corpo del testo, non sulla dimensione del titolo. */
.sica-hero.is-align-bottomleft .sica-hero__inner { width: min(52rem, 100%); max-width: none; }
.sica-hero.is-align-bottomleft .sica-hero__title { font-size: var(--fs-h2); }
.sica-hero--cta .sica-hero__title { font-size: var(--fs-h2); }

/* ---------- Hero con video o GIF + velina ---------- */
.sica-hero__video,
.sica-hero__gif { width: 100%; height: 100%; object-fit: cover; }
.sica-hero__veil {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.42) 45%, rgba(0,0,0,.6) 100%);
}
.sica-hero--video .sica-hero__media::after,
.sica-hero--stat .sica-hero__media::after { content: none; }
.sica-hero--video { min-height: clamp(520px, 78vh, 820px); }
.sica-hero__subtitle--long {
	max-width: 62ch;
	margin-inline: auto;
	font-size: var(--fs-lead);
	line-height: 1.65;
	margin-bottom: 0;
}

/* ---------- Sezione testo (crema) ---------- */
.sica-intro { background: var(--sica-cream); }
.sica-intro__inner {
	max-width: var(--sica-inner);
	margin-inline: auto;
	padding-block: clamp(.5rem, 2vw, 2rem);
	text-align: center;
}
.sica-intro__title { margin-bottom: .8em; }
.sica-intro__text { text-align: left; font-size: var(--fs-body); line-height: 1.75; }
.sica-intro__text p { margin: 0 0 1.15em; }
.sica-intro__text p:last-child { margin-bottom: 0; }

/* ---------- Fascia immagine + numero ---------- */
.sica-hero--stat { min-height: clamp(420px, 60vh, 620px); }
.sica-stat { margin: 0; display: grid; gap: .2rem; line-height: 1.35; }
.sica-stat__pre,
.sica-stat__post { display: block; font-size: clamp(1.3rem, 1rem + 1.4vw, 2.2rem); font-weight: 600; }
.sica-stat__big {
	display: block;
	font-size: clamp(3.4rem, 2rem + 7vw, 7rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	margin-block: .1em;
}
.sica-stat__post { font-weight: 400; font-size: clamp(1.1rem, .95rem + .9vw, 1.7rem); }

/* ---------- Sfondi delle sezioni ---------- */
.is-bg-cream { background: var(--sica-cream); color: var(--sica-ink); }
.is-bg-white { background: var(--sica-white); color: var(--sica-ink); }
.is-bg-green { background: var(--sica-green); color: var(--sica-white); }
.is-bg-red   { background: var(--sica-red); color: var(--sica-white); }
.is-bg-green a, .is-bg-red a { color: inherit; }

/* ---------- Blocco di testo ---------- */
.sica-textblock__inner { max-width: var(--sica-inner); margin-inline: auto; }
.sica-textblock__title { margin: 0 0 .7em; }
.sica-textblock__text { font-size: var(--fs-body); line-height: 1.75; }
.sica-textblock__text p { margin: 0 0 1.15em; }
.sica-textblock__text p:last-child { margin-bottom: 0; }
.sica-textblock__text h3 { margin-top: 1.6em; }
.sica-textblock.is-align-center { text-align: center; }
.sica-textblock.is-align-center .sica-textblock__text { text-align: center; }

/* ---------- Punti numerati: schede su fondo bianco ---------- */
.sica-steps__grid {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: var(--sica-inner);
	/* auto-fit con soglia bassa: cinque schede stanno su una riga sola sui monitor,
	   e scendono a due o una colonna solo quando lo spazio non basta davvero. */
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: clamp(1rem, 1.4vw, 1.5rem);
	align-items: stretch;
}
.sica-steps__item {
	position: relative;
	display: grid;
	gap: 1rem;
	align-content: start;
	background: var(--sica-white);
	border-radius: clamp(12px, 1.2vw, 18px);
	padding: clamp(1.3rem, 1.7vw, 1.8rem);
	box-shadow: 0 12px 34px rgba(90, 20, 10, .07);
	transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-soft);
}
.sica-steps__item:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 48px rgba(199, 8, 15, .16);
}

/* Il numero è una pastiglia tonda: richiama i cerchi dei prodotti */
.sica-steps__number {
	display: grid;
	place-items: center;
	width: 3.1rem; height: 3.1rem;
	border-radius: 50%;
	background: var(--sica-red);
	color: var(--sica-white);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 6px 16px rgba(199, 8, 15, .28);
	transition: transform .45s var(--ease-out), background-color .35s var(--ease-soft);
}
.sica-steps__item:hover .sica-steps__number { transform: scale(1.08) rotate(-6deg); background: #a80609; }

.sica-steps__text {
	margin: 0;
	font-size: var(--fs-body);
	line-height: 1.65;
	max-width: none;
	color: rgba(43, 33, 24, .88);
}

/* Sui fondi colorati le schede restano bianche: basta togliere l'ombra rossastra */
.is-bg-green .sica-steps__item,
.is-bg-red .sica-steps__item { box-shadow: 0 12px 34px rgba(0, 0, 0, .16); }

@media (max-width: 620px) {
	.sica-steps__grid { grid-template-columns: 1fr; }
}

.sica-textblock__cta { margin: 1.8rem 0 0; }
.sica-textblock.is-align-center .sica-textblock__cta { text-align: center; }

/* ---------- Tre icone ---------- */
/* Flex e non grid: con due sole icone il gruppo resta centrato,
   con tre riempie la riga. */
.sica-trio__grid {
	list-style: none; margin: 0 auto; padding: 0;
	max-width: var(--sica-max);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(2rem, 5vw, 4rem);
	text-align: center;
}
.sica-trio__item {
	flex: 0 1 clamp(240px, 26vw, 340px);
	display: grid; gap: .8rem; justify-items: center; align-content: start;
}
.sica-trio__media img { height: var(--icon-size); width: auto; margin-inline: auto; }
.sica-trio__title { margin: 0; font-size: var(--fs-h3); }
.sica-trio__text { margin: 0; max-width: 34ch; line-height: 1.7; font-size: var(--fs-body); }

@media (max-width: 780px) {
	.sica-trio__grid { grid-template-columns: 1fr; }
}

/* ---------- Il nostro impegno (numeri su verde) ---------- */
.sica-impegno { background: var(--sica-green); color: var(--sica-white); }
.sica-impegno__grid {
	list-style: none; margin: 0 auto; padding: 0;
	max-width: var(--sica-inner);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: clamp(1.5rem, 4vw, 3.5rem);
	text-align: center;
	align-items: start;
}
.sica-impegno__item { display: grid; gap: .3rem; }
.sica-impegno__number {
	font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.4rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
}
.sica-impegno__text {
	font-size: clamp(1rem, .95rem + .3vw, 1.2rem);
	font-weight: 700;
	line-height: 1.4;
}

/* ---------- Certificati ---------- */
.sica-cert { background: var(--sica-cream); }
/* Selettore doppio: .sica-section__subtitle arriva dopo nel foglio e con
   `margin: 0` annullerebbe il margin-inline:auto, lasciando il testo a sinistra. */
.sica-cert .sica-cert__intro { max-width: 68ch; margin-inline: auto; text-align: center; }
.sica-cert__panel {
	max-width: var(--sica-inner);
	margin-inline: auto;
	background: var(--sica-white);
	border-radius: var(--sica-radius);
	padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 3rem);
	box-shadow: 0 14px 40px rgba(90, 20, 10, .07);
}
.sica-cert__grid {
	list-style: none; margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(1.5rem, 3.5vw, 3rem);
	align-items: center;
	justify-items: center;
}
.sica-cert__item { display: grid; place-items: center; width: 100%; }
.sica-cert__logo {
	max-height: clamp(90px, 9vw, 140px);
	width: auto;
	max-width: 100%;
	object-fit: contain;
	transition: transform .35s var(--ease-out);
}
.sica-cert__item:hover .sica-cert__logo { transform: scale(1.05); }

@media (max-width: 900px) {
	.sica-impegno__grid { grid-template-columns: repeat(2, 1fr); }
	.sica-cert__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
	.sica-impegno__grid { grid-template-columns: 1fr; }
}

/* ---------- Fascia verde ---------- */
/* Fascia stretta: fa da titolo alla griglia dei prodotti, non è una sezione a sé.
   La classe .sica-band è usata solo qui, quindi ridurla non tocca nient'altro. */
.sica-section.sica-band {
	background: var(--sica-green);
	color: var(--sica-white);
	text-align: center;
	padding-block: clamp(.85rem, 1.4vw, 1.35rem);
}
.sica-section.sica-band .sica-band__title { margin-bottom: 0; line-height: 1.1; }

/* Dopo la fascia, i cerchi si avvicinano: insieme sono un blocco solo */
.sica-section.sica-band + .sica-circles { padding-top: clamp(2rem, 3.5vw, 3rem); }
.sica-band__title {
	margin: 0;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: calc(var(--fs-h2) * .78);
}
.sica-band__subtitle { margin: .5rem 0 0; font-size: var(--fs-lead); opacity: .92; }

/* ---------- Sezioni generiche ---------- */
.sica-section {
	padding: clamp(3rem, 7vw, 6rem) var(--sica-gutter);
}
.sica-section__head { max-width: var(--sica-max); margin: 0 auto clamp(2rem, 4vw, 3.5rem); text-align: center; }
.sica-section__title { margin: 0 0 0.3em; }
.sica-section__title--light { color: var(--sica-white); text-align: center; }
.sica-section__subtitle { margin: 0; font-size: var(--fs-lead); opacity: .8; }

/* ---------- Cerchi prodotto ---------- */
.sica-circles { background: var(--sica-cream); }
.sica-circles__grid {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: var(--sica-max);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
}
.sica-circles__item { display: grid; }

.sica-circle {
	background: none; border: 0; padding: 0; cursor: pointer;
	font: inherit; color: inherit; width: 100%;
	display: grid; gap: 0.9rem; justify-items: center;
}
.sica-circle__media {
	position: relative;
	display: block; width: 100%; aspect-ratio: 1;
	border-radius: 50%; overflow: hidden;
	box-shadow: 0 10px 26px rgba(90, 20, 10, .14);
	transition: transform .45s cubic-bezier(.34, 1.28, .4, 1), box-shadow .35s ease, opacity .3s ease;
}
.sica-circle__media img { width: 100%; height: 100%; object-fit: cover; }
.sica-circle:hover .sica-circle__media,
.sica-circle:focus-visible .sica-circle__media {
	transform: translateY(-6px) scale(1.04);
	box-shadow: 0 20px 44px rgba(199, 8, 15, .26);
}
/* Nome del prodotto scritto dentro il cerchio */
.sica-circle__name {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 12%;
	text-align: center;
	color: var(--sica-white);
	font-weight: 700;
	font-size: clamp(.95rem, .78rem + .7vw, 1.3rem);
	line-height: 1.25;
	text-shadow: 0 2px 10px rgba(0,0,0,.45);
	background: radial-gradient(circle at center, rgba(60,10,5,.5) 0%, rgba(60,10,5,.22) 70%, rgba(60,10,5,0) 100%);
	transition: background-color .3s ease;
}

/* Il cerchio di partenza si smaterializza mentre la scheda "vola" al centro */
.sica-circle.is-launching .sica-circle__media { opacity: 0; transform: scale(.92); }

/* ---------- Scheda modale ---------- */
.sica-modal { position: fixed; inset: 0; z-index: 300; }
.sica-modal[hidden] { display: none; }

.sica-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(43, 33, 24, .55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity .4s ease;
}
.sica-modal.is-open .sica-modal__backdrop { opacity: 1; }

.sica-modal__stage {
	position: absolute;
	top: 50%; left: 50%;
	width: min(1120px, calc(100vw - 2 * var(--sica-gutter)));
	max-height: min(86vh, 760px);
	background: var(--sica-white);
	border-radius: clamp(14px, 2vw, 26px);
	box-shadow: 0 30px 90px rgba(0,0,0,.35);
	overflow: hidden;

	/* Punto di partenza calcolato in JS: il cerchio cliccato */
	--sica-dx: 0px;
	--sica-dy: 0px;
	--sica-scale: .18;

	transform: translate(-50%, -50%) translate(var(--sica-dx), var(--sica-dy)) scale(var(--sica-scale));
	opacity: 0;
	transition:
		transform .55s cubic-bezier(.22, 1.1, .3, 1),
		opacity .3s ease,
		border-radius .55s ease;
	will-change: transform;
}
.sica-modal.is-open .sica-modal__stage {
	transform: translate(-50%, -50%) scale(1);
	opacity: 1;
}

.sica-modal__card {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	max-height: min(86vh, 760px);
}
.sica-modal__card[hidden] { display: none; }
.sica-modal__media { position: relative; min-height: 240px; background: var(--sica-cream); }
.sica-modal__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sica-modal__body {
	padding: clamp(1.6rem, 3.5vw, 3rem);
	overflow-y: auto;
	display: grid;
	align-content: start;
	gap: .6rem;
}
.sica-modal__title { margin: 0; color: var(--sica-red); }
.sica-modal__text p { margin: 0 0 1em; }

.sica-modal__close {
	position: absolute; top: .6rem; right: .9rem;
	width: 2.6rem; height: 2.6rem;
	display: grid; place-items: center;
	background: var(--sica-white);
	border: 0; border-radius: 50%;
	font-size: 1.9rem; line-height: 1; cursor: pointer;
	color: var(--sica-red);
	box-shadow: 0 4px 14px rgba(0,0,0,.18);
	transition: transform .25s ease, background-color .25s ease, color .25s ease;
}
.sica-modal__close:hover,
.sica-modal__close:focus-visible { transform: rotate(90deg); background: var(--sica-red); color: var(--sica-white); }

/* ---------- Scheda prodotto dentro la modale ---------- */
.sica-product { grid-template-columns: minmax(0, .8fr) minmax(0, 2.2fr); }
.sica-product__media {
	position: relative;
	background: var(--sica-cream);
	display: grid;
	place-items: center;
	padding: clamp(1rem, 2vw, 2rem);
	min-height: 220px;
}
.sica-product__media img { width: 100%; height: auto; max-height: 46vh; object-fit: contain; }
.sica-product__body {
	padding: clamp(1.6rem, 3vw, 2.6rem);
	overflow-y: auto;
	display: grid;
	align-content: start;
	gap: 1.2rem;
}
.sica-product__title { margin: 0; color: var(--sica-red); font-size: calc(var(--fs-h2) * .68); }
.sica-product__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: clamp(1.2rem, 2.5vw, 2.4rem);
	align-items: start;
}
.sica-product__col p { margin: 0 0 1em; font-size: .95rem; line-height: 1.6; }
.sica-product__label,
.sica-product__format {
	margin: 0 0 .5em;
	font-size: var(--fs-h3);
	line-height: 1.2;
}
.sica-product__label + p { margin-bottom: 1.4em; }
.sica-product__format { color: var(--sica-ink); }
.sica-product__spec { margin: 0 0 1em; }
.sica-product__spec dt { font-weight: 700; font-size: .92rem; }
.sica-product__spec dd { margin: 0; font-size: .92rem; line-height: 1.5; opacity: .9; }
.sica-product__note { font-style: italic; }

@media (max-width: 860px) {
	.sica-product { grid-template-columns: 1fr; grid-template-rows: minmax(160px, 30vh) auto; }
	.sica-product__media { min-height: 0; }
	.sica-product__media img { max-height: 28vh; }
}

body.sica-modal-open { overflow: hidden; }

@media (max-width: 720px) {
	.sica-modal__card { grid-template-columns: 1fr; grid-template-rows: minmax(180px, 34vh) auto; }
	.sica-modal__media { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.sica-modal__stage { transition: opacity .2s ease; transform: translate(-50%, -50%) scale(1); }
	.sica-circle.is-launching .sica-circle__media { opacity: 1; transform: none; }
}

/* ---------- Sezione icone (verde) ---------- */
.sica-icons { background: var(--sica-green); color: var(--sica-white); }
.sica-icons__grid {
	list-style: none; margin: 0 auto; padding: 0;
	max-width: var(--sica-max);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	text-align: center;
}
.sica-icons__item { display: grid; gap: 1rem; justify-items: center; }
.sica-icons__link { text-decoration: none; display: grid; gap: 1rem; justify-items: center; }
.sica-icons__media img { height: var(--icon-size); width: auto; margin-inline: auto; }
/* Titolo dell'icona: grassetto e 5px più del testo sotto */
.sica-icons__title {
	color: var(--sica-white);
	font-weight: 800;
	font-size: calc(var(--fs-body) + 5px);
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.sica-icons__text { color: var(--sica-white); font-weight: 600; font-size: var(--fs-body); }

/* ---------- Brand ---------- */
.sica-brands { background: var(--sica-cream); }
.sica-brands__grid {
	list-style: none; margin: 0 auto; padding: 0;
	max-width: var(--sica-max);
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
.sica-brands__item img { max-height: 90px; width: auto; filter: none; transition: transform .25s ease; }
.sica-brands__item a:hover img { transform: scale(1.05); }

/* =========================================================
   Contatti — pannello unico: informazioni (rosso) + modulo
   ========================================================= */
.sica-contact {
	background: var(--sica-cream);
	padding: clamp(2.5rem, 6vw, 5rem) var(--sica-gutter) clamp(3rem, 7vw, 6rem);
	scroll-margin-top: calc(var(--sica-header-h) + 1rem);
}
.sica-contact__panel {
	max-width: var(--sica-inner);
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
	background: var(--sica-white);
	border-radius: clamp(14px, 1.6vw, 22px);
	overflow: hidden;
	box-shadow: 0 30px 70px rgba(80, 20, 12, .13), 0 2px 6px rgba(80, 20, 12, .06);
}

/* Micro-etichetta editoriale */
.sica-eyebrow {
	margin: 0 0 1.1rem;
	font-size: var(--fs-eyebrow);
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .62);
}
.sica-eyebrow--dark { color: var(--sica-red); }
.sica-eyebrow::after {
	content: "";
	display: block;
	width: 34px;
	height: 2px;
	margin-top: .7rem;
	background: currentColor;
	opacity: .55;
}

/* ---------- Colonna informazioni ---------- */
.sica-contact__aside {
	position: relative;
	color: var(--sica-white);
	background:
		radial-gradient(120% 90% at 12% 105%, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, 0) 60%),
		linear-gradient(158deg, #D01218 0%, var(--sica-red) 42%, #8E0509 100%);
	padding: clamp(2.2rem, 4vw, 3.6rem);
	isolation: isolate;
}
/* Trama a righe finissime: dà materia al rosso senza immagini */
.sica-contact__aside::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background: repeating-linear-gradient(114deg, rgba(255,255,255,.055) 0 1px, transparent 1px 13px);
}
/* Cerchio che esce dal bordo: richiama i cerchi dei prodotti */
.sica-contact__aside::after {
	content: "";
	position: absolute; z-index: -1;
	right: -110px; bottom: -130px;
	width: 320px; height: 320px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .22);
	background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.1), rgba(255,255,255,0) 70%);
}
.sica-contact__aside-inner { position: relative; }
.sica-contact__title {
	margin: 0 0 .5em;
	font-size: calc(var(--fs-h2) * .84);
	line-height: 1.1;
}
.sica-contact__intro {
	margin: 0 0 2.2rem;
	color: rgba(255, 255, 255, .82);
	font-size: var(--fs-body);
	line-height: 1.6;
	max-width: 34ch;
}

/* Elenco sedi numerato */
.sica-places { list-style: none; margin: 0; padding: 0; }
.sica-places__item {
	display: grid;
	grid-template-columns: 2.4rem 1fr;
	gap: .2rem 1rem;
	padding: 1.35rem 0;
	border-top: 1px solid rgba(255, 255, 255, .2);
}
.sica-places__item:last-child { padding-bottom: 0; }
.sica-places__index {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.9;
	color: rgba(255, 255, 255, .5);
	font-variant-numeric: tabular-nums;
}
.sica-places__name {
	margin: 0 0 .3em;
	font-size: var(--fs-body);
	letter-spacing: .01em;
}
.sica-places__address {
	font-style: normal;
	margin: 0;
	line-height: 1.65;
	color: rgba(255, 255, 255, .8);
	font-size: .95rem;
}
.sica-places__links {
	margin: .7rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.4rem;
	font-size: .93rem;
}

/* Link con sottolineatura che cresce */
.sica-link {
	position: relative;
	text-decoration: none;
	font-weight: 600;
	padding-bottom: 2px;
}
.sica-link::after {
	content: "";
	position: absolute; left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s cubic-bezier(.22, 1, .3, 1);
}
.sica-link:hover::after,
.sica-link:focus-visible::after { transform: scaleX(1); }
.sica-link--map::before { content: "↗"; margin-right: .3em; font-size: .9em; }

/* ---------- Colonna modulo ---------- */
.sica-contact__main {
	padding: clamp(2.2rem, 4vw, 3.6rem);
	background: var(--sica-white);
}
.sica-contact__form-title {
	margin: 0 0 .35em;
	font-size: calc(var(--fs-h2) * .84);
	line-height: 1.1;
}
.sica-contact__form-intro {
	margin: 0 0 2rem;
	color: rgba(43, 33, 24, .72);
	line-height: 1.6;
	max-width: 46ch;
}

.sica-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.7rem 1.6rem;
}
.sica-field { margin: 0; display: grid; gap: .45rem; }
.sica-field--wide { grid-column: 1 / -1; }
.sica-field label {
	font-size: var(--fs-eyebrow);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(43, 33, 24, .55);
	transition: color .25s ease;
}
.sica-field label em { font-style: normal; color: var(--sica-red); margin-left: .25em; }
.sica-field input,
.sica-field textarea {
	font: inherit;
	color: var(--sica-ink);
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(43, 33, 24, .22);
	border-radius: 0;
	padding: .55rem 0;
	width: 100%;
	transition: border-color .25s ease, box-shadow .25s ease;
}
.sica-field textarea { resize: vertical; min-height: 108px; line-height: 1.6; }
.sica-field input::placeholder,
.sica-field textarea::placeholder { color: rgba(43, 33, 24, .3); }
.sica-field input:hover,
.sica-field textarea:hover { border-bottom-color: rgba(43, 33, 24, .45); }
.sica-field input:focus,
.sica-field textarea:focus {
	border-bottom-color: var(--sica-red);
	box-shadow: 0 1px 0 0 var(--sica-red);
}
.sica-field:focus-within label { color: var(--sica-red); }

/* Consenso con casella disegnata */
.sica-consent {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .75rem;
	align-items: start;
	margin: 1.8rem 0 0;
	font-size: .9rem;
	line-height: 1.55;
	color: rgba(43, 33, 24, .78);
}
.sica-consent input {
	appearance: none;
	-webkit-appearance: none;
	width: 1.15rem; height: 1.15rem;
	margin: .15rem 0 0;
	border: 1px solid rgba(43, 33, 24, .35);
	border-radius: 4px;
	background: var(--sica-white);
	display: grid;
	place-content: center;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}
.sica-consent input::before {
	content: "";
	width: .55rem; height: .32rem;
	border-left: 2px solid var(--sica-white);
	border-bottom: 2px solid var(--sica-white);
	transform: rotate(-45deg) scale(0);
	transition: transform .2s cubic-bezier(.3, 1.4, .5, 1);
}
.sica-consent input:checked { background: var(--sica-red); border-color: var(--sica-red); }
.sica-consent input:checked::before { transform: rotate(-45deg) scale(1); }
.sica-consent input:focus-visible { border-color: var(--sica-red); box-shadow: 0 0 0 3px rgba(199, 8, 15, .16); }
.sica-consent a { color: var(--sica-red); text-decoration: underline; text-underline-offset: 3px; }

.sica-form__actions { margin: 1.9rem 0 0; }
.sica-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Pulsante di invio */
.sica-submit {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	font: inherit;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-size: .88rem;
	color: var(--sica-white);
	background: var(--sica-green);
	border: 0;
	border-radius: 999px;
	padding: 1rem 2.1rem;
	cursor: pointer;
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.sica-submit svg { transition: transform .3s cubic-bezier(.22, 1, .3, 1); }
.sica-submit:hover,
.sica-submit:focus-visible {
	background: #7d9c60;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(144, 175, 114, .38);
}
.sica-submit:hover svg { transform: translateX(4px); }
.sica-submit:active { transform: translateY(0); }

/* Esito invio */
.sica-notice {
	margin: 0 0 1.6rem;
	padding: .95rem 1.15rem;
	border-left: 3px solid var(--sica-green);
	background: rgba(144, 175, 114, .12);
	font-size: .95rem;
	line-height: 1.55;
}
.sica-notice.is-error {
	border-left-color: var(--sica-red);
	background: rgba(199, 8, 15, .08);
}

/* =========================================================
   Comparsa allo scroll — una regola sola per tutto il sito.
   Lo sfalsamento fra elementi vicini arriva da --d.
   ========================================================= */
[data-reveal] {
	opacity: 0;
	transform: translateY(24px);
	will-change: opacity, transform;
}
[data-reveal].is-revealed {
	opacity: 1;
	transform: none;
	transition:
		opacity .7s var(--ease-soft) var(--d, 0s),
		transform .8s var(--ease-out) var(--d, 0s);
}
/* Finita l'animazione l'elemento torna un elemento qualunque */
[data-reveal].is-revealed { will-change: auto; }

/* L'hero non aspetta lo scroll: entra al caricamento */
.sica-hero .sica-hero__inner[data-reveal] { transform: translateY(30px); }

@media (max-width: 900px) {
	.sica-contact__panel { grid-template-columns: 1fr; }
	.sica-form__grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.sica-contact__aside::after { right: -150px; bottom: -170px; }
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal] { opacity: 1; transform: none; }
}

/* ---------- Mappa ---------- */
.sica-map { line-height: 0; }
.sica-map iframe { width: 100%; height: clamp(300px, 45vh, 480px); border: 0; display: block; }

@media (max-width: 680px) {
	.sica-form__row { grid-template-columns: 1fr; }
}

/* ---------- Banner cookie ---------- */
.sica-cookie {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 400;
	padding: clamp(.8rem, 2vw, 1.4rem);
	background: rgba(43, 33, 24, .96);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: var(--sica-white);
	box-shadow: 0 -10px 40px rgba(0,0,0,.25);
	transform: translateY(110%);
	transition: transform .5s var(--ease-out);
}
.sica-cookie[hidden] { display: none; }
.sica-cookie.is-visible { transform: none; }

.sica-cookie__inner {
	max-width: var(--sica-inner);
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(1rem, 2.5vw, 2.5rem);
	align-items: center;
}
.sica-cookie__title {
	margin: 0 0 .25rem;
	font-weight: 700;
	font-size: var(--fs-body);
}
.sica-cookie__text {
	margin: 0;
	font-size: var(--fs-small);
	line-height: 1.55;
	color: rgba(255, 255, 255, .86);
	max-width: 80ch;
}
.sica-cookie__text a { color: var(--sica-white); text-decoration: underline; text-underline-offset: 3px; }

/* I due pulsanti hanno lo stesso peso: rifiutare deve costare quanto accettare */
.sica-cookie__actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.sica-cookie__btn {
	font: inherit;
	font-weight: 700;
	font-size: .85rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: .8rem 1.7rem;
	border-radius: 999px;
	border: 2px solid var(--sica-white);
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease, transform .25s var(--ease-out);
	white-space: nowrap;
}
.sica-cookie__btn--reject { background: transparent; color: var(--sica-white); }
.sica-cookie__btn--reject:hover { background: rgba(255,255,255,.14); transform: translateY(-2px); }
.sica-cookie__btn--accept { background: var(--sica-green); border-color: var(--sica-green); color: var(--sica-white); }
.sica-cookie__btn--accept:hover { background: #7d9c60; border-color: #7d9c60; transform: translateY(-2px); }

@media (max-width: 760px) {
	.sica-cookie__inner { grid-template-columns: 1fr; }
	.sica-cookie__actions { justify-content: stretch; }
	.sica-cookie__btn { flex: 1 1 auto; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	.sica-cookie { transition: none; }
}

/* ---------- Footer ---------- */
.sica-footer { background: var(--sica-red); color: var(--sica-white); }
.sica-footer__inner {
	max-width: var(--sica-max);
	margin-inline: auto;
	padding: clamp(2.5rem, 6vw, 4.5rem) var(--sica-gutter);
	display: grid;
	grid-template-columns: minmax(200px, .9fr) minmax(0, .8fr) minmax(0, 1.4fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
.sica-footer__col { min-width: 0; }
.sica-footer__logo { display: block; }
/* Il file del logo ha molto trasparente attorno: limitare anche l'altezza
   evita il vuoto fra marchio e dati legali. */
.sica-footer__logo img { max-width: 300px; max-height: 170px; width: auto; height: auto; object-fit: contain; object-position: left center; }
.sica-footer__legal {
	margin: 1.1rem 0 0;
	line-height: 1.7;
	font-size: var(--fs-small);
	color: rgba(255, 255, 255, .92);
}

/* Titoli di colonna: piccoli, spaziati, con filetto */
.sica-footer__title {
	margin: 0 0 1.1rem;
	font-size: var(--fs-eyebrow);
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .72);
}
.sica-footer__title::after {
	content: "";
	display: block;
	width: 30px; height: 2px;
	margin-top: .65rem;
	background: currentColor;
	opacity: .55;
}

.sica-footer__addresses {
	font-style: normal;
	margin: 0;
	line-height: 1.75;
	font-size: var(--fs-small);
	color: rgba(255, 255, 255, .92);
	/* Nessun limite di riga: il testo riempie la colonna, così il blocco
	   ha la stessa larghezza delle altre due e le colonne si leggono allineate. */
	max-width: none;
}

.sica-footer__list { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .4rem; }
.sica-footer__list:last-child { margin-bottom: 0; }
.sica-footer__list a {
	position: relative;
	text-decoration: none;
	font-weight: 700;
	font-size: var(--fs-small);
	padding-bottom: 2px;
}
.sica-footer__list a::after {
	content: "";
	position: absolute; left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s var(--ease-out);
}
.sica-footer__list a:hover::after,
.sica-footer__list a:focus-visible::after { transform: scaleX(1); }
.sica-footer__list--legal { font-weight: 400; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.22); }
.sica-footer__list--legal a { font-weight: 400; color: rgba(255, 255, 255, .88); }
/* I documenti scaricabili si riconoscono a colpo d'occhio */
.sica-footer__list a[download]::after {
	content: "↓";
	margin-left: .45em;
	font-size: .95em;
	opacity: .8;
	display: inline-block;
	transition: transform .3s var(--ease-out);
}
.sica-footer__list a[download]:hover::after { transform: translateY(2px); opacity: 1; }

.sica-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.25);
	padding: 1rem var(--sica-gutter);
	text-align: center;
	font-size: var(--fs-small);
	color: rgba(255, 255, 255, .85);
}

/* ---------- Prose / pagine interne ---------- */
.sica-prose { max-width: var(--sica-inner); margin-inline: auto; }
.sica-prose img { border-radius: var(--sica-radius); }
.sica-prose a { color: var(--sica-red); }

/* ---------- Archivio ---------- */
.sica-archive__list { list-style: none; margin: 0 auto; padding: 0; max-width: var(--sica-max); display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2rem; }
.sica-archive__media img { border-radius: var(--sica-radius); }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.sica-footer__inner { grid-template-columns: 1fr 1fr; }
	.sica-footer__col--brand { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
	.sica-circles__grid { grid-template-columns: repeat(2, 1fr); }
	.sica-icons__grid { grid-template-columns: repeat(2, 1fr); }
	.sica-circle__panel-inner { grid-template-columns: 1fr; }
	.sica-burger__label { display: none; }
}

@media (max-height: 620px) {
	.sica-menu { padding-top: calc(var(--sica-header-h) * .8); align-items: start; }
	.sica-menu__list a { padding-block: .05em; }
}

@media (max-width: 560px) {
	.sica-footer__inner { grid-template-columns: 1fr; }
	.sica-logo__img { max-height: 68px; }
	.sica-header.is-stuck .sica-logo__img { max-height: 58px; }
	.sica-flag { width: 34px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
