/* ============================================================
   Rilegno Contest 26 — design system e landing
   Fonte: Figma "Rilegno Contest 26 — FASE 3" (tavola 1440).
   Scala: 1rem = 16px a 1440 di viewport (html font-size = 100vw/90),
   così ogni misura in rem mantiene ingombri proporzionali identici
   su tutti gli schermi desktop. Nessun position:absolute per layout.
   ============================================================ */

/* ---------- Font ---------- */

@font-face {
	font-family: 'Bodoni MT';
	src: url('../fonts/bodoni-mt-italic.woff2') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Bodoni MT';
	src: url('../fonts/bodoni-mt-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Gotham';
	src: url('../fonts/gotham-book.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Gotham';
	src: url('../fonts/gotham-medium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Gotham';
	src: url('../fonts/gotham-bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* Gotham Black: peso 800 nel design system (Label/Eyebrow, Caption, Nav, H4).
   Il file ha metriche verticali più strette degli altri Gotham (hhea 730/160): le maiuscole
   salivano di ~2px rispetto al centro. Override allineati al Gotham Bold (932/173, gap 0). */
@font-face {
	font-family: 'Gotham';
	src: url('../fonts/gotham-black.woff2') format('woff2');
	ascent-override: 93.2%;
	descent-override: 17.3%;
	line-gap-override: 0%;
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Gotham Office';
	src: url('../fonts/gotham-office-regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* Gotham Office Bold: bottoni, Body/Large, titoletti delle card. */
@font-face {
	font-family: 'Gotham Office';
	src: url('../fonts/gotham-office-bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* Simboli ≤ ≥ assenti in Gotham: glifo Montserrat SemiBold come nel Figma (subset OFL, 720 byte). */
@font-face {
	font-family: 'RC Simboli';
	src: url('../fonts/montserrat-600-simboli.woff2') format('woff2');
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+2264-2265;
}

/* ---------- Token ---------- */

:root {
	/* Palette ufficiale — Foundations */
	--rc-wine: #b80047;
	--rc-wine-deep: #800e3a;
	--rc-lime: #b8c733;
	--rc-cream: #f4eedd;
	--rc-cream-dk: #eae2cc;
	--rc-ink: #1a1a1a;
	--rc-muted: #5a5751;

	/* Tinte di supporto usate nella landing */
	--rc-olive: #829000;       /* accento verde leggibile su chiaro */
	--rc-olive-dark: #677200;
	--rc-bordeaux-logo: #a40133; /* bordeaux storico del logo Rilegno */
	--rc-cream-mid: #f6f2e4;   /* fondo sezione bando */
	--rc-card: #fffcf3;        /* fondo card premi */
	--rc-pill: #efe9d6;        /* fondo pill/box */
	--rc-taupe: #a49e8d;       /* fondo icone badge */
	--rc-ink-soft: #151515;

	--rc-font-serif: 'Bodoni MT', 'Didot', serif;
	--rc-font-sans: 'Gotham', 'RC Simboli', 'Montserrat', system-ui, sans-serif;
	--rc-font-office: 'Gotham Office', 'Gotham', system-ui, sans-serif;

	--rc-container-pad: 8.75rem; /* 140px */
	--rc-margine-fisso: 2rem;    /* distanza dal bordo alto degli elementi che restano fissi allo scroll */
	--rc-admin-bar: 0px;
	--rc-radius-card: 0.7765625rem; /* 12.425px */
}

/* ---------- Base ---------- */

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

html { font-size: calc(100vw / 90); } /* 16px @1440 */

/* Oltre il Full HD la scala si ferma: il layout non cresce più, il box si centra */
@media (min-width: 1920px) {
	html { font-size: 21.34px; }
}

@media (max-width: 767px) {
	html { font-size: calc(100vw / 24.375); } /* 16px @390: scala della tavola Figma mobile */
}

/* Barra di amministrazione WordPress (solo utenti loggati): gli elementi fissi scendono sotto */
.admin-bar { --rc-admin-bar: 32px; }

@media (max-width: 782px) {
	.admin-bar { --rc-admin-bar: 46px; }
}

/* Box contenuti: pieno fino a 1920, poi centrato (90rem = 1920px a scala bloccata) */
.shell {
	width: 100%;
	max-width: 90rem;
	margin-inline: auto;
}

body {
	margin: 0;
	background: var(--rc-cream);
	color: var(--rc-ink);
	font-family: var(--rc-font-sans);
	font-weight: 500;
	font-size: 1.125rem;
	line-height: 1.6; /* Body/Regular 18/160 */
	-webkit-font-smoothing: antialiased;
}

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

a { color: inherit; text-decoration: none; }

p, h1, h2, h3, h4, ul { margin: 0; }

button { font: inherit; background: none; border: 0; padding: 0; cursor: pointer; color: inherit; }

/* ---------- Ruoli tipografici (Figma text styles) ---------- */

.t-hero      { font: italic 400 5.125rem/0.94 var(--rc-font-serif); letter-spacing: -0.01em; } /* 82/94 */
.t-section   { font: italic 400 4.875rem/1.05 var(--rc-font-serif); letter-spacing: -0.01em; } /* 78/105 */
.t-tagline   { font: italic 400 2.875rem/1 var(--rc-font-serif); }                             /* 46/100 */
.t-chapter   { font: 500 4.25rem/1.02 var(--rc-font-sans); letter-spacing: -0.01em; }          /* 68/102 */
.t-lead      { font: 500 1.5rem/1.5 var(--rc-font-sans); }                                     /* 24/150 */
.t-lead-big  { font: 500 2.25rem/1.25 var(--rc-font-sans); }                                   /* 36/125 */
.t-body      { font: 500 1.125rem/1.6 var(--rc-font-sans); }                                   /* 18/160 */
.t-body-book { font: 400 1.125rem/1.58 var(--rc-font-sans); }                                  /* 18/158 */
.t-large     { font: 700 1.125rem/1.7 var(--rc-font-office); }                                 /* 18/170 */
.t-small     { font: 500 1.125rem/1.65 var(--rc-font-sans); }                                  /* 18/165 */
.t-xsmall    { font: 500 1rem/1.55 var(--rc-font-sans); }                                      /* 16/155 */
.t-email     { font: 700 2rem/1.2 var(--rc-font-office); }                                     /* 32/120 */

.t-eyebrow   { font: 800 0.875rem/1.4 var(--rc-font-sans); letter-spacing: 0.2em; text-transform: uppercase; }  /* 14 Black */
.t-button    { font: 700 0.8125rem/1.4 var(--rc-font-office); letter-spacing: 0.14em; text-transform: uppercase; } /* 13 */
.t-nav       { font: 800 0.75rem/1.4 var(--rc-font-sans); letter-spacing: 0.16em; text-transform: uppercase; }  /* 12 Black */
.t-micro     { font: 700 0.9375rem/1.4 var(--rc-font-sans); letter-spacing: 0.1em; text-transform: uppercase; } /* 15 Bold */
.t-caption   { font: 800 0.8125rem/1.4 var(--rc-font-sans); letter-spacing: 0.18em; text-transform: uppercase; } /* 13 Black */
.t-h4        { font: 800 1rem/1.4 var(--rc-font-sans); letter-spacing: 0.16em; text-transform: uppercase; }     /* 16 Black */

/* ---------- Componenti ---------- */

.container {
	padding-left: var(--rc-container-pad);
	padding-right: var(--rc-container-pad);
}

/* Bottone pillola primario (nav + cta) — 54px, r100, pad 18/34 */
.btn-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 1.125rem 2.125rem;
	border-radius: 100rem;
	background: var(--rc-wine);
	color: #fff;
	font: 700 0.8125rem/1.4 var(--rc-font-office);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	flex-shrink: 0;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.btn-pill__freccia { display: inline-flex; }
.btn-pill__freccia svg { width: 0.8125rem; height: 1.125rem; }

.btn-pill:hover {
	background: var(--rc-wine-deep);
	transform: translateY(-2px);
	box-shadow: 0 0.5rem 1.25rem rgba(184, 0, 71, 0.28);
}

/* Accenti inline (da override per-carattere Figma) */
.u-olive { color: var(--rc-olive); }
.u-lime { color: var(--rc-lime); }
.u-medium { font-weight: 500; } /* enfasi Medium su base Book */

/* Eyebrow con lineetta */
.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--rc-wine);
}

.eyebrow::before {
	content: '';
	width: 2rem;
	height: 0.125rem;
	background: currentColor;
}

/* Icone pittogramma */
.icon { display: inline-flex; }
.icon svg { width: 100%; height: 100%; }
.icon--lime { color: var(--rc-lime); }
.icon--wine { color: var(--rc-wine); }
.icon--cream { color: var(--rc-cream); }
.icon--olive { color: var(--rc-olive); }

/* Banda pattern di icone: 2 file sfalsate, space-between */
.pattern-band {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding: 0 1.25rem;
	width: 100%;
}

.pattern-band__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.pattern-band__row--offset { padding: 0 2.75rem; } /* 44px: sfalsa la seconda fila */

.pattern-band .icon { width: 4.125rem; height: 4.125rem; } /* 66px */

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

/* Header NON fisso: scorre con la pagina. Resta fisso solo il bottone CTA. */
.site-header {
	min-height: 5.875rem; /* 94px */
	padding: 1.25rem 2rem;
	background: var(--rc-cream);
}

.site-header__shell {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	max-width: 86rem; /* 90rem meno il padding laterale dell'header */
}

.site-header .btn-pill {
	margin-left: auto;
	width: 15.875rem; /* 254px fissi nel Figma, testo centrato */
	padding-inline: 0;
}

.site-header__segnaposto { visibility: hidden; pointer-events: none; }

/* CTA sempre visibile: si aggancia quando l'header esce dallo schermo,
   con respiro dal bordo e un ingresso leggero dall'alto */
.site-header .btn-pill.is-stuck {
	position: fixed;
	top: calc(var(--rc-margine-fisso) + var(--rc-admin-bar));
	right: max(2.5rem, calc((100vw - 90rem) / 2 + 2.5rem));
	z-index: 60;
	margin-left: 0;
	box-shadow: 0 0.375rem 1.25rem rgba(26, 26, 26, 0.18);
	animation: rc-cta-in 0.35s ease backwards; /* backwards: a fine corsa i keyframe si sganciano e l'hover resta libero */
}

@keyframes rc-cta-in {
	from { transform: translateY(-0.75rem); opacity: 0; }
	to   { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.site-header .btn-pill.is-stuck { animation: none; }
}

.site-header__logo { width: 11.375rem; color: var(--rc-bordeaux-logo); }

/* Gruppo centrale elastico: menu a sinistra, lingua a destra, spazio flessibile
   in mezzo — a 1440 riproduce le posizioni Figma, sotto si comprime con garbo */
.site-header__centro {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.5rem;
	margin-left: 8rem;
	min-width: 0;
}

.site-header__menu {
	display: flex;
	align-items: center;
	gap: 2.125rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-header__edizioni a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.site-header__edizioni svg { width: 0.5rem; height: 0.3125rem; opacity: 0.7; }

.site-header__menu a { color: var(--rc-ink); transition: color 0.2s ease; }
.site-header__menu a:hover { color: var(--rc-wine); }

.site-header__lang {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--rc-muted);
}

.site-header__lang a { display: inline-flex; align-items: center; gap: 0.375rem; }

.site-header__lang .is-active { color: var(--rc-ink); }

/* Pallini: quello tra ITA ed ENG divide (piccolo e nero, verde 6px se ITA è attiva);
   dopo ENG compare solo il verde quando ENG è attiva. Ingombro fisso 6px e scala:
   cambiando lingua le voci non si spostano. */
.site-header__lang a::after {
	content: '';
	width: 0.375rem;
	height: 0.375rem;
	border-radius: 50%;
	background: var(--rc-ink);
	transform: scale(0.5);
	transition: transform 0.25s ease, background-color 0.25s ease;
}

.site-header__lang a:last-child::after { transform: scale(0); }

.site-header__lang .is-active::after,
.site-header__lang a.is-active:last-child::after {
	background: var(--rc-lime);
	transform: none;
}

/* ---------- Hero ---------- */

.hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 3.5rem 0 5.25rem;
	max-width: 90rem;
	margin-inline: auto;
}

.hero__title {
	padding: 3.5rem 0 1.5rem;
	width: 68.75rem; /* 1100px */
	color: var(--rc-wine-deep);
}

.hero__title img { width: 100%; }

.hero__tagline {
	display: flex;
	align-items: center;
	gap: 1.375rem;
	padding-bottom: 3.5rem;
	color: var(--rc-wine);
}

.hero__tagline::before,
.hero__tagline::after {
	content: '';
	width: 11.25rem;
	height: 0.125rem;
	background: currentColor;
}

.hero__actions {
	display: flex;
	justify-content: center;
	padding-top: 3.5rem;
}

.badge-edizione {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	min-height: 3.375rem; /* 54px come da Figma */
	padding: 0.5625rem 1.125rem;
	border: 0.09375rem solid var(--rc-wine);
	border-radius: 100rem;
	color: var(--rc-wine);
}

.badge-edizione::before {
	content: '';
	width: 0.4375rem;
	height: 0.4375rem;
	border-radius: 50%;
	background: var(--rc-lime);
}

/* ---------- Concept ---------- */

.concept {
	padding: 0 var(--rc-container-pad) 7.5rem;
	max-width: 90rem;
	margin-inline: auto;
}

.concept__grid {
	display: flex;
	align-items: flex-start; /* titolo e paragrafo partono in cima insieme alla foto */
	gap: 4.375rem;
	margin-top: 4rem;
}

.concept__testo { width: 38.5rem; flex: none; }

.concept__testo h2 { color: var(--rc-wine); }

.concept__lead { margin-top: 2rem; color: var(--rc-muted); }

.concept__body { margin-top: 1.25rem; color: var(--rc-ink); }

.concept__foto {
	margin: 0;
	width: 29.625rem;
	height: 37.0625rem;
	border-radius: 0.75rem;
	overflow: hidden;
	flex: none;
}

.concept__foto img {
	width: 30.3706rem;
	height: 45.5rem;
	max-width: none;
	margin: -1.6225rem 0 0 -0.2662rem; /* ritaglio dell'imageTransform Figma, non centrato */
}

.concept__divider {
	margin-top: 6rem;
	border: 0;
	border-top: 1px solid rgba(26, 26, 26, 0.1);
}

.pillars {
	display: flex;
	gap: 2.5rem;
	margin-top: 4rem;
}

.pillar { width: 22.5rem; display: flex; flex-direction: column; gap: 1rem; }

.pillar .icon { width: 3.5rem; height: 3.5rem; }

.pillar__label { font: 800 1.5rem/1.4 var(--rc-font-sans); letter-spacing: 0.02em; }

.pillar__testo { color: var(--rc-ink-soft); width: 23.125rem; } /* 370px: sborda di 10 sul gap, come nel Figma */

.pillar--olive .pillar__label, .pillar--olive .icon { color: var(--rc-olive); }
.pillar--wine .pillar__label, .pillar--wine .icon { color: var(--rc-wine); }

/* ---------- Video ---------- */

.video {
	padding: 0 var(--rc-container-pad) 3.5625rem; /* 57px effettivi misurati sul frame Figma */
	max-width: 90rem;
	margin-inline: auto;
}

.video__frame {
	position: relative;
	height: 40.8125rem;
	border-radius: 0.75rem;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.video__frame > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.7; }

/* Righe verticali decorative sulla cover (ogni 60px da x=20, bianco 3%) */
.video__frame::after {
	content: '';
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.031) 0 0.125rem, transparent 0.125rem 3.75rem);
	background-position: 1.25rem 0;
	pointer-events: none;
}

.video__play {
	position: relative;
	z-index: 1;
	width: 5.75rem;
	height: 5.75rem;
	border-radius: 50%;
	background: var(--rc-wine);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--rc-card);
	transition: transform 0.25s ease;
}

.video__play:hover { transform: scale(1.07); }

.video__play svg { width: 2.25rem; height: 2.25rem; }

/* Finestra del video (dialog nativo): player 16:9 il più grande possibile dentro lo schermo */
.video-modale {
	width: min(75rem, calc(100vw - 4rem), calc((100dvh - 9rem) * 16 / 9));
	max-width: none;
	max-height: none;
	margin: auto;
	padding: 0;
	border: 0;
	background: none;
	overflow: visible;
}

.video-modale[open] {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1rem;
	animation: rc-video-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.video-modale::backdrop { background: rgba(26, 26, 26, 0.88); animation: rc-video-fondo 0.35s ease; }

@keyframes rc-video-in { from { opacity: 0; transform: translateY(1rem) scale(0.98); } }
@keyframes rc-video-fondo { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.video-modale[open], .video-modale::backdrop { animation: none; }
}

.video-modale__chiudi {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--rc-wine);
	color: #fff;
	display: grid;
	place-items: center;
	transition: transform 0.25s ease;
}

.video-modale__chiudi:hover { transform: rotate(90deg); }

.video-modale__chiudi svg { width: 0.875rem; height: 0.875rem; }

.video-modale__player {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 0.75rem;
	overflow: hidden;
	background: #000;
}

.video-modale__player iframe { display: block; width: 100%; height: 100%; border: 0; }

html.video-aperto { overflow: hidden; }

/* ---------- Bando ---------- */

/* Fondo full-bleed, contenuto nel box centrato */
.bando {
	background: var(--rc-cream-mid);
	padding: 3.9375rem 0 6.5625rem;
}

.bando__shell {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding-inline: var(--rc-container-pad);
}

.bando__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 3.75rem;
}

.bando__titolo { display: flex; flex-direction: column; gap: 1.25rem; }

.bando__titolo h2 { color: var(--rc-wine); }

.bando__icone {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
}

/* Icone grandi esportate dalla geometria Figma, con gli ingombri esatti dei nodi */
.bando__icona { display: flex; }
.bando__icona svg { width: 100%; height: 100%; }
.bando__icona--tronco,
.bando__icona--lampada { width: 7.7218rem; height: 7.7218rem; } /* 123.55 */
.bando__icona--cassetta { width: 7.5839rem; height: 7.8597rem; } /* 121.34×125.75 */

.bando__lead {
	display: flex;
	gap: 1.8125rem;
	margin-top: 3.0625rem; /* gap 24 + spacer 25 = 73 come da Figma */
}

.bando__lead::before {
	content: '';
	width: 0.3125rem;
	flex: none;
	background: var(--rc-lime);
}

.bando__lead p { color: var(--rc-muted); max-width: 64.1875rem; }

.bando__intro {
	display: flex;
	gap: 1.5rem;
	color: var(--rc-muted);
}

.bando__intro p:first-child { width: 33.75rem; flex: none; }

.premi {
	display: flex;
	gap: 1.109375rem;
	margin-top: 3.0625rem; /* gap 24 + spacer 25 */
}

/* Larghezze esatte delle tre card (381 / 380 / 364) */
.premi .card-premio:nth-child(1) { flex: 0 1 23.8125rem; }
.premi .card-premio:nth-child(2) { flex: 0 1 23.75rem; }
.premi .card-premio:nth-child(3) { flex: 0 1 22.75rem; }

.card-premio {
	flex: 1;
	background: var(--rc-card);
	border-radius: var(--rc-radius-card);
	box-shadow: 0 0.375rem 1.125rem rgba(26, 26, 26, 0.08);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.card-premio__bar { height: 0.25rem; background: var(--rc-wine); }

.card-premio--olive .card-premio__bar { background: var(--rc-olive); }

.card-premio__body {
	padding: 2rem 1.3125rem;
	display: flex;
	flex-direction: column;
	gap: 0.5546875rem;
}

.card-premio--olive .card-premio__body { gap: 0.9375rem; } /* 15px nella card categorie */

.card-premio__label { font: 700 1rem/1.2 var(--rc-font-sans); letter-spacing: 0.04em; text-transform: uppercase; color: var(--rc-wine); }
.card-premio--olive .card-premio__label { color: var(--rc-olive); }

.card-premio__importo { font: 700 2.5rem/1.15 var(--rc-font-sans); color: var(--rc-wine); } /* Gotham Bold 40 (override Figma sul base) */

.card-premio__importo-extra { font: 400 1.5rem/1.15 var(--rc-font-sans); color: var(--rc-muted); }

.card-premio__pills { display: flex; flex-wrap: wrap; gap: 0.79375rem; }

.card-premio__pill {
	padding: 0.375rem 0.9375rem;
	border-radius: 2rem;
	background: var(--rc-olive);
	color: var(--rc-card);
	font: 600 1.125rem/1.25 var(--rc-font-sans);
	white-space: nowrap; /* la pillola non spezza il testo: se non ci sta, va a capo intera */
}

.card-premio__hr { border: 0; border-top: 2px solid rgba(26, 26, 26, 0.1); margin: 0.4rem 0; }

.card-premio__sub { font: 700 1.125rem/1.25 var(--rc-font-sans); color: var(--rc-olive); }

.card-premio__desc { font: 400 0.875rem/1.5 var(--rc-font-sans); color: var(--rc-muted); }

.riga-extra {
	background: var(--rc-pill);
	border-radius: 0.5546875rem;
	box-shadow: 0 0.375rem 1.125rem rgba(26, 26, 26, 0.06);
	padding: 1.5rem 1rem;
}

.riga-extra__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
}

/* Frame icona esportato dal Figma (fondo taupe r9.52 + pittogramma, 81×80) */
.riga-extra__icona {
	width: 5.0625rem;
	height: 5rem;
	flex: none;
	display: flex;
}

.riga-extra__icona svg { width: 100%; height: 100%; }

.riga-extra__testo { flex: 1; display: flex; flex-direction: column; gap: 0.9375rem; }

.riga-extra__titolo { font: 700 1.5rem/1 var(--rc-font-sans); color: var(--rc-ink); }

.riga-extra__sub { font: 500 1.125rem/1.33 var(--rc-font-sans); color: var(--rc-muted); }

.riga-extra--racconto .riga-extra__sub { font-weight: 400; }

.box-scadenze {
	background: var(--rc-pill);
	border-radius: 0.75rem;
	padding: 1.5rem 1.75rem;
	margin-top: 3.0625rem; /* gap 24 + spacer 25 */
}

.box-scadenze__titolo { font: 700 1.375rem/1.2 var(--rc-font-office); }

.box-scadenze__hr {
	position: relative;
	overflow: visible; /* gli hr hanno overflow:hidden da UA stylesheet: clippava la barretta */
	border: 0;
	border-top: 1px solid rgba(26, 26, 26, 0.1);
	margin: 1.125rem 0 0.375rem; /* sotto: i 6px della barretta, in flusso come nel Figma */
}

/* Barretta accent sotto la linea del titolo (280×6, gradient olive→cream) */
.box-scadenze__hr::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 17.5rem;
	height: 0.375rem;
	border-radius: 1.875rem;
	background: linear-gradient(90deg, var(--rc-olive) 34.28%, var(--rc-cream) 97.75%);
}

.box-scadenze__righe { display: flex; align-items: flex-start; }

/* Colonne a larghezza fissa come nel Figma: 319 / 319 / 244 / 250 */
.scadenza {
	display: flex;
	gap: 0.875rem;
	padding: 0.625rem 0;
	flex: none;
	width: 19.9375rem;
}

.scadenza:nth-child(3) { width: 15.25rem; }
.scadenza:nth-child(4) { width: 15.625rem; }

.scadenza::before {
	content: '';
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--rc-ink);
	margin-top: 0.5rem;
	flex: none;
}

.scadenza--attiva::before { background: var(--rc-olive); }

.scadenza p { margin: 0; display: flex; flex-direction: column; gap: 0.125rem; }

.scadenza__data { font: 700 1rem/1.65 var(--rc-font-sans); color: var(--rc-ink); display: block; }

.scadenza--attiva .scadenza__data { color: var(--rc-olive-dark); }

.scadenza__testo { font: 500 1rem/1.55 var(--rc-font-sans); color: var(--rc-muted); display: block; }

.box-materiali {
	background: var(--rc-pill);
	border: 1px solid rgba(26, 26, 26, 0.1);
	border-radius: 0.75rem;
	padding: 2rem;
}

.box-materiali__titolo { font: 700 1.625rem/1.2 var(--rc-font-office); }

/* Due filetti Figma da 1px impilati: 427px sopra, 1096px sotto (entrambi inchiostro 10%) */
.box-materiali__hr {
	border: 0;
	overflow: visible;
	width: 68.5rem;
	height: 2px;
	margin: 1.25rem 0 0;
	background:
		linear-gradient(rgba(26, 26, 26, 0.1), rgba(26, 26, 26, 0.1)) 0 0 / 26.6875rem 1px no-repeat,
		linear-gradient(rgba(26, 26, 26, 0.1), rgba(26, 26, 26, 0.1)) 0 1px / 100% 1px no-repeat;
}

.box-materiali__voci { display: flex; justify-content: space-between; align-items: center; }

.voce-materiale {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	padding: 0.875rem 0;
	color: var(--rc-ink);
}

.voce-materiale__dot {
	width: 3.125rem;
	height: 3.1875rem; /* 50×51 come il nodo Figma esportato */
	display: flex;
	flex: none;
	transition: transform 0.25s ease;
}

.voce-materiale:hover .voce-materiale__dot { transform: scale(1.08); }

.voce-materiale__dot svg { width: 100%; height: 100%; }

.bando__cta { display: flex; justify-content: center; }

/* ---------- FAQ ---------- */

.faq {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 3.9375rem var(--rc-container-pad) 10rem;
	max-width: 90rem;
	margin-inline: auto;
}

.faq__head { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }

.faq__head h2 { color: var(--rc-wine); }

.faq__list { width: 51.25rem; max-width: 100%; margin-top: 4rem; }

.faq-item { border-top: 1px solid rgba(184, 0, 71, 0.22); }

.faq__list .faq-item:last-child { border-bottom: 0.4375rem solid rgba(184, 0, 71, 0.22); } /* 7 righe da 1px nel Figma: fascia che chiude l'elenco */

.faq-item__domanda {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	width: 100%;
	padding: 1.5rem 0;
	text-align: left;
	font: 700 1.25rem/1.1 var(--rc-font-sans);
	color: var(--rc-ink);
	cursor: pointer;
	transition: color 0.2s ease;
}

.faq-item[open] .faq-item__domanda,
.faq-item__domanda:hover { color: var(--rc-wine); }

.faq-item__testo { flex: 1; }

.faq-item__numero {
	display: inline-block;
	min-width: 1.3125rem; /* 21px: i numeri si allineano a destra come nell'elenco numerato Figma */
	margin-right: 0.3125rem;
	text-align: right;
}

.faq-item__toggle {
	width: 2rem;
	height: 2rem;
	flex: none;
	border: 0.09375rem solid var(--rc-wine);
	border-radius: 50%;
	color: var(--rc-wine);
	display: grid;
	place-items: center; /* glifi esportati dal Figma con viewBox sull'ingombro reale: centro geometrico esatto */
	transition: background-color 0.3s ease, color 0.3s ease;
}

.faq-item__glifo {
	grid-area: 1 / 1;
	display: flex;
	transition: opacity 0.35s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq-item__glifo svg { width: 0.526rem; height: 0.526rem; } /* 8.4px, come i tracciati Figma */

/* Stato di partenza (chiusa, anche senza JS): si vede il "+" */
.faq-item__glifo--x { opacity: 0; transform: rotate(-90deg); }

/* Aperta: cerchio pieno, il "+" ruota e sfuma nella "×" */
.faq-item[open]:not(.is-chiusa) .faq-item__toggle {
	background: var(--rc-wine);
	color: #fff;
}

.faq-item[open]:not(.is-chiusa) .faq-item__glifo--piu { opacity: 0; transform: rotate(90deg); }
.faq-item[open]:not(.is-chiusa) .faq-item__glifo--x { opacity: 1; transform: none; }

/* Apertura/chiusura fluida: il contenuto resta nel DOM (details sempre open via JS),
   la classe .is-chiusa comprime la riga di griglia da 1fr a 0fr */
.faq-item__risposta {
	display: grid;
	grid-template-rows: 1fr;
	transition: grid-template-rows 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease;
	color: var(--rc-muted);
}

/* Il wrapper che collassa NON deve avere padding (a 0fr resterebbe alto quanto
   il padding): la spaziatura vive sul livello più interno */
.faq-item__risposta-inner {
	overflow: hidden;
	min-height: 0;
}

.faq-item__risposta-testo {
	padding: 1rem 3.75rem 1.5rem 0; /* sp16 sopra, 60 a destra, 24 sotto */
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq-item.is-chiusa .faq-item__risposta {
	grid-template-rows: 0fr;
	opacity: 0;
}

/* Il testo scorre in posizione mentre la voce si apre */
.faq-item.is-chiusa .faq-item__risposta-testo { transform: translateY(-0.75rem); }

@media (prefers-reduced-motion: reduce) {
	.faq-item__risposta,
	.faq-item__risposta-testo,
	.faq-item__toggle,
	.faq-item__glifo { transition: none; }
}

/* Stato chiuso (classi gestite dal JS; i selettori [open] restano per il no-JS) */
.faq-item.is-chiusa .faq-item__domanda { color: var(--rc-ink); }
.faq-item.is-chiusa .faq-item__domanda:hover { color: var(--rc-wine); }



/* <details> nativo: si nasconde il marker */
.faq-item summary { list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }

/* ---------- Giuria ---------- */

.giuria {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 10rem var(--rc-container-pad); /* 160 sopra e sotto, come nel Figma */
	max-width: 90rem;
	margin-inline: auto;
	background: var(--rc-cream);
}

.giuria__head { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }

.giuria__head h2 { color: var(--rc-wine); }

.giuria__grid {
	width: 100%;
	max-width: 72.5rem; /* 1160 */
	margin-top: 4rem;   /* 64 */
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: 2.25rem; /* 36 */
	row-gap: 2.5rem;     /* 40 */
}

.giurato { display: flex; flex-direction: column; }

.giurato__foto {
	position: relative;
	aspect-ratio: 363 / 454;
	border-radius: 0.25rem;
	overflow: hidden;
	background: var(--rc-cream-dk);
}

.giurato__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Quadratino in basso a sinistra, come nel Figma (18×18, senza raggio) */
.giurato__segno {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 1.125rem;
	height: 1.125rem;
	background: var(--rc-wine);
}

.giurato__nome {
	margin-top: 1.125rem; /* 18 */
	font: 400 2.5rem/1.65 var(--rc-font-serif);
	color: var(--rc-ink);
}

.giurato__ruolo {
	margin-top: 0.25rem; /* 4 */
	font: 500 1.5rem/1.5 var(--rc-font-sans);
	color: var(--rc-muted);
}

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

.contatti {
	position: relative;
	z-index: 61; /* sopra la CTA fissa (60): il bottone ci scivola sotto */
	background: var(--rc-wine);
	padding: 10rem 0 1.0625rem; /* 160 sopra, 17 sotto come da Figma */
	color: var(--rc-cream);
}

/* Banda decorativa di sfondo: fuori flusso, a 41px dal bordo alto */
.contatti .pattern-band {
	position: absolute;
	top: 2.5625rem;
	left: 0;
	right: 0;
	opacity: 0.09;
	max-width: 90rem;
	margin-inline: auto;
}

.contatti .pattern-band .icon { color: var(--rc-cream); }

.contatti__inner {
	position: relative;
	display: flex;
	align-items: center;
	gap: 5rem;
	padding: 0 var(--rc-container-pad);
	max-width: 90rem;
	min-height: 37rem; /* 592px: altezza fissa dell'inner nel Figma */
	margin-inline: auto;
}

.contatti__testo { width: 36.8125rem; flex: none; }

.contatti__testo .eyebrow { color: var(--rc-lime); }

.contatti__titolo {
	font: italic 400 4.875rem/0.95 var(--rc-font-serif);
	color: var(--rc-cream);
	margin-top: 1.25rem;
}

.contatti__sub {
	font: 700 1.4375rem/1.7 var(--rc-font-office);
	opacity: 0.85;
	margin-top: 1.25rem;
	width: 33rem;
	max-width: 100%;
}

.contatti__email {
	display: inline-flex;
	flex-direction: column;
	gap: 0.375rem;
	margin-top: 1.5rem;
	color: var(--rc-cream);
}

.contatti__email::after { content: ''; height: 0.125rem; background: var(--rc-lime); }

.contatti__links {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	width: 30.6875rem;
	margin-left: auto;
}

.link-pillola {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.375rem;
	border: 0.09375rem solid rgba(244, 238, 221, 0.3);
	border-radius: 100rem;
	color: var(--rc-cream);
	transition: background-color 0.25s ease, color 0.25s ease;
}

.link-pillola:hover { background: rgba(244, 238, 221, 0.12); }

.link-pillola__dot {
	width: 2.125rem;
	height: 2.125rem;
	display: flex;
	flex: none;
}

.link-pillola__dot svg { width: 100%; height: 100%; }

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

.site-footer {
	position: relative;
	z-index: 61;
	background: var(--rc-ink);
	color: var(--rc-cream);
	padding: 3.25rem 6.25rem 1.75rem;
}

.site-footer > * {
	max-width: 77.5rem; /* 1240px: contenuto footer nel box */
	margin-inline: auto;
}

.site-footer__riga {
	display: flex;
	align-items: center;
	gap: 4.5rem;
}

.site-footer__logo { width: 11.375rem; color: #fff; }

.site-footer__voci { display: flex; gap: 1.5rem; flex: 1; list-style: none; padding: 0; }

.site-footer__voci a { color: var(--rc-cream); transition: color 0.2s ease; }
.site-footer__voci a:hover { color: var(--rc-lime); }

.site-footer__social { display: flex; gap: 0.625rem; }

/* Icone esportate 1:1 dal Figma (40×40, cerchio crema al 30% incluso nell'SVG) */
.site-footer__social a {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	display: flex;
	color: var(--rc-cream);
	transition: background-color 0.25s ease;
}

.site-footer__social a:hover { background: rgba(244, 238, 221, 0.12); }

.site-footer__social svg { width: 100%; height: 100%; }

.site-footer hr {
	border: 0;
	border-top: 1px solid rgba(244, 238, 221, 0.18);
	margin-block: 2.25rem 1rem;
}

/* Riga di fondo: copyright a sinistra, crediti a destra (stesso stile Body/XSmall crema 80%) */
.site-footer__fondo {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 2rem;
}

.site-footer__copy,
.site-footer__crediti { opacity: 0.8; }

.site-footer__copy a,
.site-footer__crediti a {
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.2em;
	transition: text-decoration-color 0.2s ease;
}

.site-footer__copy a:hover,
.site-footer__crediti a:hover { text-decoration-color: currentColor; }

/* ---------- Animazioni di ingresso (regia unica) ---------- */

@media (prefers-reduced-motion: no-preference) {
	/* Reveal allo scroll; ritardo opzionale via --rd inline per gli scaglionamenti */
	.reveal {
		opacity: 0;
		transform: translateY(1.5rem);
		transition: opacity 0.7s ease, transform 0.7s ease;
		transition-delay: var(--rd, 0s);
	}

	.reveal.is-visible { opacity: 1; transform: none; }

	/* Variante per le immagini: leggera chiusura di scala oltre alla salita */
	.reveal--foto { transform: translateY(1.5rem) scale(0.97); }

	/* --- Coreografia hero al caricamento --- */

	@keyframes rc-pop {
		from { opacity: 0; transform: scale(0.6); }
		to   { opacity: 1; transform: none; }
	}

	@keyframes rc-rise {
		from { opacity: 0; transform: translateY(1.25rem); }
		to   { opacity: 1; transform: none; }
	}

	@keyframes rc-draw {
		from { transform: scaleX(0); }
		to   { transform: none; }
	}

	.hero .pattern-band .icon {
		animation: rc-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
		animation-delay: calc(var(--band-d, 0ms) + var(--row-d, 0ms) + var(--i, 0) * 35ms);
	}

	.hero .pattern-band__row .icon:nth-child(1)  { --i: 0; }
	.hero .pattern-band__row .icon:nth-child(2)  { --i: 1; }
	.hero .pattern-band__row .icon:nth-child(3)  { --i: 2; }
	.hero .pattern-band__row .icon:nth-child(4)  { --i: 3; }
	.hero .pattern-band__row .icon:nth-child(5)  { --i: 4; }
	.hero .pattern-band__row .icon:nth-child(6)  { --i: 5; }
	.hero .pattern-band__row .icon:nth-child(7)  { --i: 6; }
	.hero .pattern-band__row .icon:nth-child(8)  { --i: 7; }
	.hero .pattern-band__row .icon:nth-child(9)  { --i: 8; }
	.hero .pattern-band__row .icon:nth-child(10) { --i: 9; }
	.hero .pattern-band__row .icon:nth-child(11) { --i: 10; }
	.hero .pattern-band__row .icon:nth-child(12) { --i: 11; }

	.hero .pattern-band__row--offset { --row-d: 140ms; }

	/* La banda sotto la tagline parte dopo il titolo */
	.hero__tagline ~ .pattern-band { --band-d: 500ms; }

	.hero__title   { animation: rc-rise 0.7s ease 0.25s backwards; }
	.hero__tagline { animation: rc-rise 0.7s ease 0.45s backwards; }

	.hero__tagline::before,
	.hero__tagline::after {
		animation: rc-draw 0.6s ease 0.65s backwards;
	}

	.hero__actions { animation: rc-rise 0.7s ease 0.95s backwards; }
}

/* ============================================================
   Pagina Partecipa — Figma "V3 · Partecipa · Desktop 1440"
   (container di pagina a 100px, non 140)
   ============================================================ */

.partecipa {
	padding: 7rem 6.25rem 9.5rem;
	max-width: 90rem;
	margin-inline: auto;
}

.partecipa__titolo { color: var(--rc-wine); margin-top: 0.875rem; }

.partecipa__impaginato {
	display: flex;
	align-items: flex-start;
	gap: 4rem;
	margin-top: 3rem;
}

/* --- Colonna manifesto --- */

/* La colonna resta ferma in alto mentre scorre il form, fino alla fine del form */
.manifesto {
	width: 20.5625rem;
	flex: none;
	position: sticky;
	top: calc(var(--rc-margine-fisso) + var(--rc-admin-bar));
}

@media (max-width: 767px) {
	.manifesto { position: static; }
}

.manifesto__lead {
	font: 500 1.5rem/1.4 var(--rc-font-sans);
	color: var(--rc-wine);
	width: 18.75rem;
}

.manifesto__testo { color: var(--rc-muted); width: 18.75rem; margin-top: 1rem; }

.manifesto__hr {
	border: 0;
	border-top: 1px solid rgba(26, 26, 26, 0.12);
	margin: 1.5rem 0 0;
}

.manifesto__serviranno { margin-top: 1.25rem; }

.manifesto__requisiti {
	list-style: none;
	padding: 0;
	margin-top: 0.75rem;
	color: var(--rc-muted);
}

.manifesto__requisiti li { display: flex; gap: 0.6875rem; }

.manifesto__requisiti li + li { margin-top: 0.375rem; }

.manifesto__requisiti li::before { content: '—'; color: var(--rc-wine); flex: none; }

/* --- Card form --- */

/* 876px fissi come da tavola: l'impaginato Figma (1269) sborda di 29px sul
   margine destro del container (che a 1440 risulta 60px, non 100) */
.form-card {
	flex: none;
	width: 54.75rem;
	background: #fff;
	border: 1px solid rgba(26, 26, 26, 0.12);
	border-radius: 0.75rem;
	padding: 2.5rem;
}

.form-card__h4 { color: var(--rc-wine); margin-top: 1.625rem; }

.form-card__blocco { border: 0; padding: 0; margin: 0; }

.form-card__blocco--staccato { margin-top: 1.75rem; }

.form-card__blocco .form-card__h4:first-child,
.form-card > .form-card__blocco:first-of-type .form-card__h4 { margin-top: 0; }

.scelte { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 0.875rem; }

.nota-gruppo { color: var(--rc-wine); margin-top: 0.75rem; }

/* Radio a pillola */
.pillola-radio {
	display: inline-flex;
	align-items: center;
	gap: 0.5625rem;
	padding: 0.6875rem 1.0625rem;
	border: 0.09375rem solid rgba(26, 26, 26, 0.24);
	border-radius: 100rem;
	cursor: pointer;
	color: var(--rc-ink);
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.pillola-radio input { position: absolute; opacity: 0; pointer-events: none; }

.pillola-radio__dot {
	width: 0.8125rem;
	height: 0.8125rem;
	border-radius: 50%;
	border: 2px solid rgba(26, 26, 26, 0.24);
	flex: none;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.pillola-radio:has(input:checked) {
	background: var(--rc-wine);
	border-color: var(--rc-wine);
	color: #fff;
}

.pillola-radio:has(input:checked) .pillola-radio__dot {
	background: #fff;
	border-color: #fff;
}

/* --- Campi --- */

.form-card__riga { display: flex; gap: 1.25rem; }

.form-card__h4 + .form-card__riga,
.form-card__h4 + .campo--pieno { margin-top: 0.875rem; }

.form-card__riga + .form-card__riga,
.form-card__riga + .campo--pieno,
.campo--pieno + .form-card__riga { margin-top: 1.125rem; }

.campo {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.4375rem;
	min-width: 0;
}

.campo label { display: flex; flex-direction: column; gap: 0.4375rem; }

.campo__label { color: var(--rc-ink); }

.campo__obbligatorio { margin-left: 0.0625rem; } /* asterisco attaccato: solo il tracking della label + 1px */

.campo input[type="text"],
.campo input[type="email"],
.campo input[type="tel"] {
	height: 3rem;
	padding: 0 0.875rem;
	background: rgba(244, 238, 221, 0.6);
	border: 1px solid rgba(26, 26, 26, 0.24);
	border-radius: 0.25rem;
	font: 500 1rem/1.5 var(--rc-font-sans);
	color: var(--rc-ink);
	width: 100%;
}

.campo--ghost input[type="text"] { background: transparent; }

.campo input:focus-visible {
	outline: 2px solid var(--rc-wine);
	outline-offset: 1px;
}

.campo__hint { color: var(--rc-muted); }

.campo__hint--file { font: 500 0.8125rem/1.55 var(--rc-font-sans); color: var(--rc-muted); }

/* Bottone "Scegli file" con input nascosto */
.scegli-file { display: inline-flex; align-items: center; gap: 0.75rem; cursor: pointer; }

.campo .scegli-file { flex-direction: row; align-self: flex-start; }

.scegli-file input[type="file"] {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.scegli-file__btn {
	display: inline-flex;
	padding: 0.5625rem 1rem;
	border: 0.09375rem solid var(--rc-wine);
	border-radius: 100rem;
	color: var(--rc-wine);
	transition: background-color 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.scegli-file:hover .scegli-file__btn { background: var(--rc-wine); color: #fff; }

.scegli-file__nome { color: var(--rc-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 12rem; }

/* Area di caricamento progetto */
.area-upload {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: 0.875rem;
	padding: calc(1.375rem + 2px); /* + i 2px del bordo, disegnato dall'SVG interno: ingombro invariato */
	position: relative;
	background: rgba(184, 0, 71, 0.02);
	border: 0;
	border-radius: 0.75rem;
	cursor: pointer;
}

/* Bordo tratteggiato come nel Figma (2px interno, trattini 7 / spazi 6, raggio 12): border-style: dashed
   non permette di fissare i trattini. Rettangolo a 1px dal filo con raggio 11 = tratto intero anche negli angoli. */
.area-upload__bordo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
}

.area-upload__bordo rect {
	fill: none;
	stroke: var(--rc-wine);
	stroke-width: 2;
	stroke-dasharray: 7 6;
}

.area-upload__icona {
	width: 3.5rem;
	height: 3.5rem;
	display: flex;
	flex: none;
}

.area-upload__icona svg { width: 100%; height: 100%; }

.area-upload__testo { display: flex; flex-direction: column; gap: 0.25rem; }

.area-upload__hint { color: var(--rc-muted); }

.area-upload .scegli-file { margin-top: 0.375rem; }

/* Consensi */
.consenso { margin-top: 0.875rem; }

.form-card__h4 ~ .area-upload + .consenso,
.area-upload + .consenso { margin-top: 1.5rem; }

.consenso__informativa {
	margin: 1.5rem 0 0.25rem;
	font: 500 0.8125rem/1.65 var(--rc-font-sans);
	color: var(--rc-muted);
}

.consenso__informativa a { color: var(--rc-wine); text-decoration: underline; text-underline-offset: 0.15em; }

.consenso__informativa a:hover { color: var(--rc-ink); }

.consenso label { display: flex; gap: 0.8125rem; cursor: pointer; }

.consenso input { position: absolute; opacity: 0; pointer-events: none; }

.consenso__casella {
	width: 1.375rem;
	height: 1.375rem;
	border: 2px solid rgba(26, 26, 26, 0.24);
	border-radius: 0.25rem;
	flex: none;
	margin-top: 0.125rem;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.consenso:has(input:checked) .consenso__casella {
	background: var(--rc-wine);
	border-color: var(--rc-wine);
}

.consenso:has(input:checked) .consenso__casella::after {
	content: '';
	width: 0.375rem;
	height: 0.6875rem;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translate(-1px, -1px);
}

.consenso__testo { font: 500 0.8125rem/1.65 var(--rc-font-sans); color: var(--rc-muted); }

.form-card__hr {
	border: 0;
	border-top: 1px solid rgba(26, 26, 26, 0.12);
	margin: 1.625rem 0 0;
}

.form-card__invio {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 1.25rem;
}

.form-card__invio p { color: var(--rc-muted); }

.btn-pill--invia { padding: 0.9375rem 1.875rem; gap: 0.625rem; border: 0; cursor: pointer; }

.btn-pill--invia[disabled] { opacity: 0.6; pointer-events: none; }

/* Errori di validazione */
[data-field].rc-form__field--error input[type="text"],
[data-field].rc-form__field--error input[type="email"],
[data-field].rc-form__field--error input[type="tel"],
[data-field].rc-form__field--error .scegli-file__btn,
[data-field].rc-form__field--error .pillola-radio,
[data-field].rc-form__field--error .consenso__casella,
.area-upload.rc-form__field--error {
	outline: 2px solid var(--rc-wine);
	outline-offset: 2px;
}

.rc-form__hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.rc-form__feedback { margin-top: 1.25rem; padding: 1rem; border: 1px solid currentColor; border-radius: 0.25rem; }

.rc-form__feedback--ok { color: #2c5f2d; }
.rc-form__feedback--error { color: var(--rc-wine); }

/* --- Prossima sezione: torna alla homepage (frame Figma 1240×137, stroke inside 12%) --- */

.prossima {
	margin-top: 3.5625rem; /* 57: l'impaginato Figma è alto 1221, il form 1164 */
	height: 8.5625rem;
	padding: 2.875rem 6.25rem 0; /* 46 + 1 di bordo interno: link a 47px come nel Figma */
	border-top: 1px solid rgba(26, 26, 26, 0.12); /* solo il lato superiore, come nel Figma */
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.prossima__link {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	color: var(--rc-wine);
	letter-spacing: -0.01em;
}

/* Glifo "→" ruotato di 180° (Noto Sans Symbols 500, fallback di Figma), box 68×69 */
.prossima__freccia {
	display: flex;
	width: 4.25rem;
	height: 4.3125rem;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.prossima__freccia svg { width: 100%; height: 100%; }

.prossima__testo { font: 500 4rem/1.02 var(--rc-font-sans); } /* 64/102 */

/* Filetto 593×1 allineato a destra, subito sotto il link */
.prossima__linea {
	width: 37.0625rem;
	height: 1px;
	background: var(--rc-wine);
	transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.prossima__link:hover .prossima__freccia { transform: translateX(-0.5rem); } /* la freccia punta indietro */
.prossima:has(.prossima__link:hover) .prossima__linea { width: 46.25rem; }

/* ============================================================
   Pagine di testo (policy e informative importate dal vecchio sito)
   ============================================================ */

.pagina-testo {
	padding: 7rem 6.25rem 6.5rem;
	max-width: 90rem;
	margin-inline: auto;
}

.pagina-testo__titolo { color: var(--rc-wine); }

.pagina-testo__corpo {
	max-width: 51.25rem;
	margin-top: 3rem;
	color: var(--rc-muted);
}

.pagina-testo__corpo > * + * { margin-top: 1rem; }

.pagina-testo__corpo h2 {
	margin-top: 2.5rem;
	font: 700 1.375rem/1.2 var(--rc-font-office);
	color: var(--rc-ink);
}

.pagina-testo__corpo h3 {
	margin-top: 2.5rem;
	font: 800 1rem/1.4 var(--rc-font-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rc-wine);
}

.pagina-testo__corpo strong { color: var(--rc-ink); font-weight: 700; }

.pagina-testo__corpo ul,
.pagina-testo__corpo ol { padding-left: 1.25rem; }

.pagina-testo__corpo li + li { margin-top: 0.5rem; }

.pagina-testo__corpo a {
	color: var(--rc-wine);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	overflow-wrap: anywhere;
}

.pagina-testo__corpo table {
	display: block;
	overflow-x: auto;
	border-collapse: collapse;
	font: 500 1rem/1.55 var(--rc-font-sans);
}

.pagina-testo__corpo th {
	font: 800 0.8125rem/1.4 var(--rc-font-sans);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rc-ink);
	text-align: left;
	padding: 0 1.25rem 0.75rem 0;
	border-bottom: 1px solid rgba(26, 26, 26, 0.24);
}

.pagina-testo__corpo td {
	padding: 0.75rem 1.25rem 0.75rem 0;
	border-bottom: 1px solid rgba(26, 26, 26, 0.1);
	vertical-align: top;
}

/* ============================================================
   Finestra consensi cookie (struttura e testi del vecchio sito)
   ============================================================ */

.cookie {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: rgba(26, 26, 26, 0.55);
}

.cookie[hidden] { display: none; }

.cookie-aperto,
.cookie-aperto body { overflow: hidden; }

.cookie__finestra {
	position: relative;
	width: 40.25rem;
	max-width: 100%;
	max-height: calc(100vh - 3rem);
	overflow-y: auto;
	background: var(--rc-cream);
	border-radius: 0.75rem;
	padding: 2rem;
	color: var(--rc-muted);
	font: 500 0.875rem/1.6 var(--rc-font-sans);
}

.cookie__chiudi {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	border: 0.09375rem solid var(--rc-wine);
	color: var(--rc-wine);
	display: grid;
	place-items: center;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cookie__chiudi svg { width: 0.53rem; height: 0.53rem; }

.cookie__chiudi:hover { background: var(--rc-wine); color: #fff; }

.cookie__finestra:focus { outline: none; }

.cookie__chiudi:focus-visible,
.cookie__apri:focus-visible,
.cookie__scelta input:focus-visible { outline: 2px solid var(--rc-wine); outline-offset: 2px; }

.cookie__testo { padding-right: 2.5rem; }

/* Stesso corpo per testo introduttivo e descrizioni delle categorie */
.cookie__testo p,
.cookie__dettaglio p { font: 500 0.875rem/1.6 var(--rc-font-sans); }

.cookie__testo p + p { margin-top: 0.75rem; }

.cookie__testo strong { color: var(--rc-ink); font-weight: 700; }

.cookie__testo a { color: var(--rc-wine); text-decoration: underline; text-underline-offset: 0.2em; }

.cookie__categorie {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 1.5rem;
}

.cookie__categoria {
	background: var(--rc-pill);
	border-radius: 0.5rem;
}

.cookie__riga {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem 1rem;
}

.cookie__apri {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	font: 800 0.8125rem/1.4 var(--rc-font-sans);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rc-ink);
}

.cookie__chevron { display: flex; transform: rotate(-90deg); transition: transform 0.3s ease; opacity: 0.7; }
.cookie__chevron svg { width: 0.5rem; height: 0.3125rem; }
.cookie__apri[aria-expanded="true"] .cookie__chevron { transform: none; }

.cookie__scelta { display: flex; gap: 1.25rem; color: var(--rc-ink); }

.cookie__scelta label { display: inline-flex; align-items: center; gap: 0.375rem; cursor: pointer; }

.cookie__scelta input { accent-color: var(--rc-wine); margin: 0; }

.cookie__dettaglio { padding: 0 1rem 1rem; }

.cookie__tabella { overflow-x: auto; margin-top: 0.75rem; }

.cookie__tabella table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }

.cookie__tabella th {
	text-align: left;
	color: var(--rc-ink);
	font-weight: 700;
	padding: 0 0.75rem 0.5rem 0;
	border-bottom: 1px solid rgba(26, 26, 26, 0.24);
}

.cookie__tabella td {
	padding: 0.5rem 0.75rem 0.5rem 0;
	border-bottom: 1px solid rgba(26, 26, 26, 0.1);
	vertical-align: top;
}

.cookie__tabella td:first-child { white-space: nowrap; color: var(--rc-ink); }
.cookie__tabella td:nth-child(2) { white-space: nowrap; } /* "90 giorni" / "1 giorno" su una riga */

.cookie__azioni { display: flex; justify-content: flex-end; margin-top: 1.5rem; }

@media (max-width: 767px) {
	/* Su telefono la finestra sale dal basso e non supera mai lo schermo visibile (100dvh esclude le barre del browser) */
	.cookie { align-items: flex-end; padding: 0; }

	.cookie__finestra {
		width: 100%;
		max-height: 88vh;
		max-height: 88dvh;
		padding: 1.5rem 1.25rem 0;
		border-radius: 0.75rem 0.75rem 0 0;
	}

	.cookie__riga { flex-direction: column; align-items: flex-start; gap: 0.5rem; }

	.cookie__scelta { flex-wrap: wrap; gap: 0.5rem 1rem; }

	.cookie__tabella { overflow-x: auto; }

	/* "Accetta e salva" resta attaccato al fondo della finestra mentre il testo scorre */
	.cookie__azioni {
		position: sticky;
		bottom: 0;
		margin: 1rem -1.25rem 0;
		padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));
		background: var(--rc-cream);
		border-top: 1px solid rgba(26, 26, 26, 0.1);
	}

	.cookie__azioni .btn-pill { width: 100%; justify-content: center; }
}


/* ============================================================
   Pagina Grazie — nessuna tavola Figma: elementi della landing
   ============================================================ */

.grazie {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 3.5rem 0 5.25rem;
	max-width: 90rem;
	margin-inline: auto;
}

.grazie__corpo {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 50rem;
	padding: 6rem 1.25rem;
	text-align: center;
}

.grazie__titolo { margin-top: 1.5rem; color: var(--rc-wine); }

.grazie__testo { margin-top: 2rem; color: var(--rc-muted); }

.grazie__nota { margin-top: 1rem; color: var(--rc-muted); }

.grazie__azioni {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	margin-top: 3rem;
}

.grazie__social {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 3.375rem;
	padding: 0.4375rem 1.625rem 0.4375rem 0.4375rem;
	border: 0.09375rem solid var(--rc-wine);
	border-radius: 100rem;
	color: var(--rc-wine);
	transition: background-color 0.25s ease, color 0.25s ease;
}

.grazie__social:hover { background: var(--rc-wine); color: #fff; }

.grazie__social-icona { width: 2.5rem; height: 2.5rem; display: flex; }

.grazie__social-icona svg { width: 100%; height: 100%; }


/* ============================================================
   MOBILE — tavole Figma "Rilegno Contest 26 — Mobile" (390px)
   Scala: 1rem = 16px a 390 di viewport. Nessuna regola qui
   tocca il desktop: tutto dentro la media query.
   ============================================================ */

.solo-mobile { display: none; }

@media (max-width: 767px) {

	.solo-mobile { display: revert; }

	.solo-mobile[hidden] { display: none; } /* l'attributo hidden vince sempre */

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

	.site-header {
		min-height: 0;
		padding: 1.0625rem 1.25rem 1rem;
		border-bottom: 1px solid rgba(26, 26, 26, 0.12);
	}

	.site-header__shell { gap: 0.75rem; }

	.site-header__logo { width: 6.625rem; } /* 106px */

	.site-header__centro { margin-left: auto; flex: none; gap: 0.875rem; }

	.site-header__centro nav { display: none; } /* le voci passano nel menu a tendina */

	.site-header__lang { font: 500 0.75rem/1 var(--rc-font-sans); letter-spacing: 0; gap: 0.375rem; }

	.site-header__lang a { gap: 0.375rem; }

	.site-header__lang a::after { width: 0.3125rem; height: 0.3125rem; }

	.site-header__lang .is-active::after { background: var(--rc-wine); }

	.site-header__lang a:not(.is-active) { color: rgba(26, 26, 26, 0.5); }

	.site-header .btn-pill,
	.site-header .btn-pill.is-stuck { display: none; } /* su mobile la CTA sta nelle sezioni */

	.menu-panino {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 0.3125rem;
		width: 1.625rem;
		height: 1.125rem;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
	}

	.menu-panino span {
		display: block;
		height: 0.125rem;
		border-radius: 0.125rem;
		background: var(--rc-ink);
		transition: transform 0.25s ease, opacity 0.2s ease;
	}

	.menu-panino[aria-expanded="true"] span:nth-child(1) { transform: translateY(0.4375rem) rotate(45deg); }
	.menu-panino[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
	.menu-panino[aria-expanded="true"] span:nth-child(3) { transform: translateY(-0.4375rem) rotate(-45deg); }

	/* Menu a schermo intero (tavola "menù": fondo bordeaux, voci raccolte al centro).
	   Apertura: cerchio che si allarga dal panino + voci in cascata. */
	.menu-mobile {
		position: fixed;
		inset: 0;
		z-index: 120;
		display: flex;
		flex-direction: column;
		height: 100vh;
		height: 100dvh;
		padding: 0 1.25rem env(safe-area-inset-bottom);
		background: #a40133;
		color: var(--rc-cream);
		clip-path: circle(0 at calc(100% - 2.0625rem) 1.625rem);
		transition: clip-path 0.45s cubic-bezier(0.7, 0, 0.3, 1);
	}

	.menu-mobile.is-aperto { clip-path: circle(150% at calc(100% - 2.0625rem) 1.625rem); }

	.menu-mobile__barra {
		display: flex;
		align-items: center;
		gap: 0.875rem;
		padding: 1.0625rem 0 1rem; /* stessa altezza dell'header: il logo non si sposta */
		border-bottom: 1px solid rgba(244, 238, 221, 0.18);
	}

	.menu-mobile__logo { width: 6.625rem; color: var(--rc-cream); display: flex; }

	.menu-mobile__logo svg { width: 100%; height: auto; }

	.menu-mobile__lang {
		display: flex;
		align-items: center;
		gap: 0.375rem;
		margin: 0 0 0 auto;
		font: 400 0.75rem/1 var(--rc-font-sans);
	}

	.menu-mobile__lang a { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--rc-cream); }

	.menu-mobile__lang a.is-active { font-weight: 500; }

	.menu-mobile__lang a:first-child::after {
		content: '';
		width: 0.3125rem;
		height: 0.3125rem;
		border-radius: 50%;
		background: var(--rc-lime);
	}

	.menu-mobile__chiudi {
		position: relative;
		width: 1.625rem;
		height: 1.125rem;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
	}

	.menu-mobile__chiudi span {
		position: absolute;
		left: -0.125rem;
		right: -0.125rem;
		top: 50%;
		height: 0.125rem;
		margin-top: -0.0625rem;
		border-radius: 0.125rem;
		background: var(--rc-cream);
		transform: rotate(45deg);
	}

	.menu-mobile__chiudi span + span { transform: rotate(-45deg); }

	.menu-mobile__nav { flex: 1; display: flex; align-items: center; justify-content: center; padding-bottom: 3.5rem; }

	.menu-mobile__voci {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.875rem;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.menu-mobile__voci a {
		display: block;
		padding: 0.375rem 0.5rem;
		font: 800 0.875rem/1.4 var(--rc-font-sans);
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: var(--rc-cream);
		transition: color 0.2s ease;
	}

	.menu-mobile__voci a:active { color: var(--rc-lime); }

	.menu-mobile__voci li,
	.menu-mobile__barra > * {
		opacity: 0;
		transform: translateY(0.75rem);
		transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	}

	.menu-mobile.is-aperto .menu-mobile__voci li,
	.menu-mobile.is-aperto .menu-mobile__barra > * { opacity: 1; transform: none; }

	.menu-mobile.is-aperto .menu-mobile__barra > * { transition-delay: 0.15s; }
	.menu-mobile.is-aperto .menu-mobile__voci li:nth-child(1) { transition-delay: 0.2s; }
	.menu-mobile.is-aperto .menu-mobile__voci li:nth-child(2) { transition-delay: 0.25s; }
	.menu-mobile.is-aperto .menu-mobile__voci li:nth-child(3) { transition-delay: 0.3s; }
	.menu-mobile.is-aperto .menu-mobile__voci li:nth-child(4) { transition-delay: 0.35s; }
	.menu-mobile.is-aperto .menu-mobile__voci li:nth-child(5) { transition-delay: 0.4s; }

	@media (prefers-reduced-motion: reduce) {
		.menu-mobile,
		.menu-mobile__voci li,
		.menu-mobile__barra > * { transition: none; }
	}

	html.menu-aperto, html.menu-aperto body { overflow: hidden; }

	/* Occhielli: nel mobile barretta 28×2 e testo 11px */
	.eyebrow { gap: 0.625rem; }

	.eyebrow::before { width: 1.75rem; height: 0.125rem; }

	.t-eyebrow { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.05em; }

	.contatti .eyebrow::before { width: 1.375rem; height: 0.0625rem; }

	.contatti .t-eyebrow { font-size: 0.625rem; letter-spacing: 0.2em; font-weight: 800; }

	/* ---------- Bande di icone ---------- */

	.pattern-band { gap: 0.875rem; padding: 0 1.25rem; overflow: hidden; }

	.contatti { overflow: hidden; } /* la trama di sfondo sfora di proposito: qui viene ritagliata */

	.pattern-band__row {
		gap: 1.5rem;
		justify-content: flex-start;
		overflow: hidden;
	}

	.pattern-band__row--offset { padding: 0; margin-left: -1.25rem; }

	.pattern-band .icon { width: 2.875rem; height: 2.875rem; flex: none; }

	/* Hero: 8 file intere (4 sopra, 4 sotto), icone larghe 34px su 350px — misure dal Figma mobile */
	.hero > .pattern-band { display: none; }

	.hero-mobile__fasce { display: flex; flex-direction: column; width: 100%; padding: 0 1.25rem; }

	.hero-mobile__fila { display: flex; justify-content: space-between; align-items: center; }

	.hero-mobile__fila .icon { width: 2.125rem; height: auto; flex: none; }

	.hero-mobile__fila .icon svg { width: 100%; height: auto; display: block; }

	/* altezze e distanze delle file (y Figma: 125/180/239/291 e 477/540/602/651).
	   18 set: tolte la 4ª fila sopra e l'ultima sotto, e spaziature della hero ridotte di ~26px in totale su richiesta */
	.hero-mobile__fasce--sopra .hero-mobile__fila:nth-child(1) { height: 2.8125rem; }
	.hero-mobile__fasce--sopra .hero-mobile__fila:nth-child(2) { height: 2.8125rem; margin-top: 0.5rem; }
	.hero-mobile__fasce--sopra .hero-mobile__fila:nth-child(3) { height: 3rem; margin-top: 0.75rem; }
	.hero-mobile__fasce--sotto { margin-top: 1.125rem; }
	.hero-mobile__fasce--sotto .hero-mobile__fila:nth-child(1) { height: 3rem; }
	.hero-mobile__fasce--sotto .hero-mobile__fila:nth-child(2) { height: 3rem; margin-top: 0.8125rem; }
	.hero-mobile__fasce--sotto .hero-mobile__fila:nth-child(3) { height: 2.8125rem; margin-top: 0.75rem; }

	/* ---------- Hero ---------- */

	.hero { padding: 1.75rem 0 0; gap: 0; }

	.hero__title { width: 20.9375rem; padding: 2.375rem 0 0; }

	.hero__tagline {
		gap: 0.75rem;
		height: 1.8125rem;
		margin-top: 1.25rem;
		padding: 0;
		font: italic 400 1.5rem/1.2 var(--rc-font-serif);
	}

	.hero__tagline::before,
	.hero__tagline::after { width: 3.625rem; height: 0.0625rem; }

	.hero__actions {
		flex-direction: column;
		align-items: center;
		gap: 0.8125rem;
		padding-top: 1.625rem;
	}

	.badge-edizione {
		min-height: 2.25rem;
		gap: 0.4375rem;
		padding: 0.375rem 0.75rem;
		border-width: 0.0625rem;
		font-size: 0.625rem;
		letter-spacing: 0.1em;
		text-align: center;
	}

	.badge-edizione::before { width: 0.3125rem; height: 0.3125rem; }

	.btn-pill {
		min-height: 2.75rem;
		padding: 0.9375rem 1.75rem;
		font: 700 0.75rem/1 var(--rc-font-sans);
		letter-spacing: 0.04em;
	}

	.hero__cta { display: inline-flex; }

	/* ---------- Concept ---------- */

	.concept { padding: 2.75rem 1.25rem 4.8125rem; } /* sotto: 77 fino al video */

	.concept__grid { flex-direction: column; gap: 1.75rem; margin-top: 1rem; }

	.concept__testo { width: 100%; }

	.concept__testo h2 { font-size: 2.8125rem; line-height: 0.93; }

	.concept__lead,
	.concept__body {
		margin-top: 1.125rem;
		font: 400 0.875rem/1.57 var(--rc-font-sans);
		color: var(--rc-muted);
		letter-spacing: 0;
	}

	.concept__body { margin-top: 0.875rem; }

	.concept__foto { width: 100%; height: 25.9375rem; border-radius: 0.75rem; }

	.concept__foto img { width: 100%; height: 100%; margin: 0; object-fit: cover; }

	.concept__divider { margin: 2.25rem 0 1.875rem; }

	.pillars { flex-direction: column; gap: 2.5rem; }

	.pillar { width: 100%; }

	.pillar__testo { width: 100%; }

	.pillar { gap: 1rem; }

	.pillar .icon { width: 2.5rem; height: 2.5rem; }

	.pillar__label { font-size: 1rem; letter-spacing: 0.16em; }

	.pillar__testo { font: 500 0.9375rem/1.55 var(--rc-font-sans); color: var(--rc-ink); }

	/* ---------- Video ---------- */

	.video { padding: 0 1.25rem; }

	.video__frame {
		aspect-ratio: auto;
		height: 25.9375rem;
		border-radius: 0.5rem;
		padding: 0.5rem;
	}

	.video__play { width: 3.75rem; height: 3.75rem; }

	.video__play svg { width: 1.25rem; height: 1.375rem; }

	.video-modale { width: min(calc(100vw - 2.5rem), calc((100dvh - 8rem) * 16 / 9)); }

	.video-modale__chiudi { width: 2.5rem; height: 2.5rem; }

	/* ---------- Bando ---------- */

	.bando { padding: 3.5rem 0 2.3125rem; background: var(--rc-cream); }

	.bando__shell { padding: 0 1.25rem; }

	.bando__head { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: 0; }

	.bando__titolo { gap: 1.125rem; } /* 18 tra occhiello e titolo */

	.bando__titolo h2 { font-size: 2.5rem; line-height: 1.15; margin-top: 0; }

	.bando__icone { gap: 0; }

	/* Nel mobile resta una sola icona (pittogramma cassetta 46×38) in un cerchio da 86, centrato sul titolo */
	.bando__icona { display: none; }

	.bando__cerchio {
		display: grid;
		place-items: center;
		flex: none;
		width: 5.375rem;
		height: 5.375rem;
		margin-bottom: 0.1875rem; /* (92 − 86) / 2: centro del cerchio = centro del titolo */
		border: 0.09375rem solid #c4b9a8;
		border-radius: 50%;
	}

	.bando__cerchio .icon { width: 2.875rem; height: 2.375rem; }

	.bando__lead { margin-top: 1.625rem; gap: 2.125rem; }

	.bando__lead::before { width: 0.3125rem; }

	.bando__lead p { font: 500 1.125rem/1.33 var(--rc-font-sans); color: var(--rc-muted); }

	.bando__intro {
		flex-direction: column;
		gap: 0;
		margin-top: 0.875rem;
		font-size: 0.9375rem;
		line-height: 1.9; /* 15/28.5 */
	}

	.bando__intro p:first-child { line-height: 1.7; color: rgba(26, 26, 26, 0.75); } /* 15/25.5 */

	.premi { flex-direction: column; gap: 2rem; margin-top: 1.5rem; }

	.bando__shell { gap: 0; }

	.premi .card-premio:nth-child(1),
	.premi .card-premio:nth-child(2),
	.premi .card-premio:nth-child(3) { flex: none; width: 100%; }

	.bando__intro p:first-child { width: 100%; }

	.card-premio { border-radius: 0.6625rem; }

	.card-premio__body { padding: 1.6875rem 1.125rem; gap: 0.8125rem; }

	.card-premio__label { font-size: 0.9375rem; letter-spacing: 0.094rem; }

	.card-premio__pills { gap: 0.6875rem; }

	.card-premio__pill { padding: 0.3125rem 0.8125rem; font-size: 0.9375rem; }

	.card-premio__sub { font-size: 0.9375rem; }

	.card-premio__desc { font: 400 0.9375rem/1.4 var(--rc-font-sans); }

	.card-premio__importo { font-size: 1.98rem; }

	.card-premio__importo-extra { font-size: 1.5rem; }

	.riga-extra { margin-top: 2rem; width: 100%; padding: 0; box-shadow: none; }

	.riga-extra__inner { width: 100%; }

	.riga-extra__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.5rem;
		padding: 1.5rem 1rem;
		border-radius: 0.5625rem;
	}

	.riga-extra__icona { width: 3.125rem; height: 3.125rem; border-radius: 0.375rem; }

	.riga-extra__icona svg { width: 2.3125rem; height: 2.3125rem; }

	.riga-extra__testo { gap: 0.9375rem; }

	.riga-extra__titolo { font-size: 1.25rem; }

	.riga-extra__sub { font: 500 0.9375rem/1.53 var(--rc-font-sans); }

	/* ---------- Scadenze: diventano una timeline verticale ---------- */

	.box-scadenze {
		background: none;
		border-radius: 0;
		padding: 0 0 3rem;
		margin-top: 2.1875rem; /* 35 dall'ultima card, come nella tavola */
	}

	.box-scadenze__titolo { font-size: 1.375rem; }

	.box-scadenze__hr { margin: 2.75rem 0 0; border: 0; } /* 44 dal titolo al primo pallino */

	.box-scadenze__hr::after { display: none; } /* la barretta verde è solo desktop */

	.box-scadenze__righe { flex-direction: column; }

	.scadenza {
		width: 100% !important;
		gap: 0.875rem;
		padding: 0 0 1.875rem; /* 30 tra una scadenza e l'altra */
		position: relative;
	}

	.scadenza:last-child { padding-bottom: 0; }

	.scadenza::before {
		width: 0.875rem;
		height: 0.875rem;
		margin-top: 0;
		background: var(--rc-cream);
		border: 0.1875rem solid var(--rc-olive);
	}

	.scadenza--attiva::before { background: var(--rc-olive); }

	/* filo verticale che unisce i pallini */
	.scadenza:not(:last-child)::after {
		content: '';
		position: absolute;
		left: 0.375rem;
		top: 0.875rem;
		height: 3.25rem; /* filo da 52px sotto il pallino */
		width: 0.125rem;
		background: rgba(26, 26, 26, 0.12);
	}

	.scadenza p { gap: 0.25rem; }

	.scadenza__data { font: 700 1rem/1.2 var(--rc-font-sans); }

	.scadenza__testo { font: 400 1rem/1.5 var(--rc-font-sans); color: rgba(26, 26, 26, 0.65); }

	/* ---------- Materiali ---------- */

	.box-materiali {
		background: none;
		border: 0;
		border-radius: 0;
		padding: 0 0 2.0625rem;
	}

	.box-materiali__titolo { font-size: 1.375rem; }

	.box-materiali__hr {
		margin: 1.125rem 0 0;
		width: 100%;
		height: 1px;
		background: rgba(26, 26, 26, 0.12);
	}

	.box-materiali__voci { flex-direction: column; gap: 0; }

	.voce-materiale {
		width: 100%;
		gap: 1rem;
		padding: 1.15625rem 0; /* riga da 88 */
	}

	.voce-materiale__dot { width: 3.125rem; height: 3.1875rem; }

	/* ---------- CTA di sezione ---------- */

	/* I bottoni di sezione nel mobile non hanno la freccia */
	.hero__cta .btn-pill__freccia,
	.bando__cta .btn-pill__freccia { display: none; }

	.bando__cta {
		flex-direction: column;
		align-items: center;
		gap: 2.75rem;
		margin-top: 0;
	}

	.bando__cta::after {
		content: '';
		width: 20.75rem;
		height: 1px;
		background: rgba(26, 26, 26, 0.12);
	}

	/* ---------- FAQ ---------- */

	/* ---------- Giuria (tavola mobile: due colonne da 163, foto 163×204) ---------- */

	.giuria { padding: 3.125rem 1.375rem 5rem; max-width: none; } /* 50 sopra, 22 ai lati, 80 sotto */

	.giuria__head { gap: 0.6875rem; align-items: center; text-align: center; }

	.giuria__head h2 { font-size: 2.75rem; line-height: 1.05; letter-spacing: -0.01em; } /* 44/46 */

	.giuria__grid {
		max-width: none;
		margin-top: 3.125rem;          /* la griglia cade a 172 dall'inizio della sezione, come nel Figma */
		grid-template-columns: repeat(2, 1fr);
		column-gap: 1.25rem;           /* 20 */
		row-gap: 1.75rem;              /* 28 */
	}

	.giurato__nome { margin-top: 0.75rem; font-size: 1.25rem; line-height: 1.1; }  /* 20/22, a 12 dalla foto */

	.giurato__ruolo { margin-top: 0.125rem; font: 500 0.75rem/1.55 var(--rc-font-sans); } /* 12/18,6 */

	.giurato__segno { width: 0.875rem; height: 0.875rem; } /* 14 */

	.faq { padding: 0 1.25rem 3.5rem; background: var(--rc-cream); max-width: none; }

	.faq-item { border-top-color: rgba(26, 26, 26, 0.12); }

	.faq__head { gap: 0; }

	.faq__head { align-items: center; text-align: center; }

	.faq__head h2 { font-size: 3rem; line-height: 1.146; } /* 48/55 */

	.faq__list { width: 100%; margin-top: 2.75rem; }

	.faq-item__domanda {
		gap: 1rem;
		padding: 1.25rem 0;
		font: 500 0.9375rem/1.45 var(--rc-font-sans);
		color: var(--rc-wine);
	}

	.faq-item__numero { min-width: auto; margin-right: 0.3125rem; text-align: left; }

	.faq-item__toggle { width: 1.875rem; height: 1.875rem; border-width: 0.09375rem; }

	.faq-item__glifo svg { width: 0.5rem; height: 0.5rem; }

	.faq-item__risposta-testo { font: 400 0.875rem/1.6 var(--rc-font-sans); color: rgba(26, 26, 26, 0.7); }

	.faq__list .faq-item:last-child { border-bottom: 0.125rem solid rgba(184, 0, 71, 0.22); }

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

	.contatti { padding: 0 0 3rem; }

	/* Nel mobile la banda sta in cima alla sezione, non dietro al testo */
	.contatti .pattern-band {
		position: static;
		gap: 1.0625rem;
		padding: 0 0.875rem;
		opacity: 0.09;
	}

	.contatti__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 3.5rem;
		min-height: 0;
		padding: 0 1.25rem;
	}

	.contatti { padding: 3rem 0; }

	.contatti__testo { width: 100%; }

	.contatti__titolo { font-size: 3.40625rem; line-height: 0.95; }

	.contatti__sub { font-size: 1rem; margin-top: 0.875rem; }

	.contatti__email { font-size: 1.375rem; }

	.contatti__links { width: 100%; gap: 0.625rem; }

	.link-pillola { padding: 0.6875rem 0.9375rem; gap: 0.6875rem; }

	.link-pillola__dot { width: 1.5rem; height: 1.5rem; }

	.link-pillola .t-caption { font-size: 0.5625rem; letter-spacing: 0.18em; }

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

	.site-footer { padding: 1.875rem 1.875rem 1.75rem 2rem; }

	.site-footer__riga { flex-direction: column; align-items: flex-start; gap: 2rem; }

	.site-footer__logo { width: 7.9375rem; }

	.site-footer__voci {
		flex: none;
		flex-direction: column;
		gap: 0.6875rem;
	}

	.site-footer__social { gap: 0.6875rem; }

	.site-footer__social a { width: 2.75rem; height: 2.75rem; }

	/* il glifo ha già il cerchio: si ingrandisce solo il pittogramma (12 → 18px su 44) */
	.site-footer__social svg path { transform-box: view-box; transform-origin: 50% 50%; transform: scale(1.36); }

	.site-footer hr { margin-block: 2.25rem 1rem; }

	.site-footer__fondo { flex-direction: column; align-items: center; gap: 0.75rem; text-align: center; }

	.site-footer__copy,
	.site-footer__crediti { font-size: 0.8125rem; }

	/* ---------- Pagina Partecipa ---------- */

	.partecipa { padding: 2.25rem 1.25rem 2.5rem; }

	.partecipa__titolo { font-size: 2.3125rem; line-height: 1.15; margin-top: 0.6875rem; } /* 37/42.5 */

	.partecipa__impaginato { flex-direction: column; gap: 1.75rem; margin-top: 1.75rem; }

	.manifesto { position: static; width: 100%; }

	.manifesto__lead { font: 500 1rem/1.4 var(--rc-font-sans); width: 100%; } /* 16/22.4 */

	.manifesto__testo { font: 500 1rem/1.65 var(--rc-font-sans); width: 100%; margin-top: 0.75rem; } /* 16/26.4 */

	.manifesto__hr { margin: 1.375rem 0 0; }

	.manifesto__serviranno { display: none; } /* nella tavola mobile l'elenco segue direttamente il filetto */

	.manifesto__requisiti { margin-top: 1.875rem; }

	.manifesto__requisiti li { gap: 0.625rem; font: 500 0.9375rem/1.6 var(--rc-font-sans); } /* 15/24 */

	.manifesto__requisiti li + li { margin-top: 0.5625rem; }

	.manifesto__requisiti li::before { width: 1.0625rem; font: 500 1.125rem/1.33 var(--rc-font-sans); } /* trattino 18px */

	.form-card {
		width: 100%;
		padding: 1.25rem;
		border-radius: 1rem;
	}

	.form-card__h4 { font-size: 0.9375rem; line-height: 1.4; letter-spacing: 0.16em; color: var(--rc-wine); }

	/* distanze tra i blocchi del form (tavola: 48 tra i gruppi, 16 tra i campi, 22 prima del progetto) */
	.form-card__blocco--staccato { margin-top: 3rem; }

	.form-card__blocco[data-field="soggetto"] + .form-card__h4 { margin-top: 3rem; }

	.form-card__riga + .form-card__blocco--staccato { margin-top: 1rem; }

	.form-card__blocco[data-field="professione"] + .form-card__h4 { margin-top: 1.375rem; }

	.form-card__riga { flex-direction: column; gap: 1rem; }

	.form-card__riga + .form-card__riga,
	.form-card__riga + .campo--pieno,
	.campo--pieno + .form-card__riga { margin-top: 1rem; }

	.campo label { gap: 0.5rem; }

	.campo input[type="text"],
	.campo input[type="email"],
	.campo input[type="tel"] { height: 2.875rem; border-radius: 0.5rem; border-width: 0.09375rem; padding: 0 0.875rem; }

	.campo__hint { font: 400 0.9375rem/1.2 var(--rc-font-sans); margin-top: 0.125rem; } /* 15/18 */

	.campo__hint--file { font: 500 0.8125rem/1.55 var(--rc-font-sans); }

	.scegli-file__btn { padding: 0.5625rem 1rem; font: 700 0.8125rem/1.4 var(--rc-font-sans); letter-spacing: 0.1em; }

	.pillola-radio { padding: 0.625rem 0.9375rem; gap: 0.5625rem; }

	.pillola-radio__dot { border-width: 0.09375rem; }

	.pillola-radio__testo { font-size: 0.8125rem; line-height: 1.4; }

	/* Professione: pillole più piccole, come nella tavola */
	[data-field="professione"] .scelte { margin-top: 0.5rem; gap: 0.625rem 0.5625rem; }

	[data-field="professione"] .pillola-radio { padding: 0.5rem 0.75rem; gap: 0.4375rem; }

	[data-field="professione"] .pillola-radio__dot { width: 0.625rem; height: 0.625rem; }

	[data-field="professione"] .pillola-radio__testo { font-size: 0.616875rem; } /* 9,87px come nella tavola */

	.area-upload {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 0.875rem;
		padding: calc(1.25rem + 2px);
		border-radius: 0.75rem;
	}

	.area-upload__bordo rect { stroke-dasharray: 4 4; } /* tavola mobile: trattini 4 / spazi 4 */

	.area-upload__icona { width: 3.5rem; height: 3.5rem; }

	.area-upload__testo { align-items: center; }

	.area-upload .campo__label { font-size: 0.75rem; }

	.area-upload__hint { font-size: 0.78125rem; }

	.area-upload .scegli-file { align-self: center; }

	.area-upload .scegli-file__btn { padding: 0.5625rem 1rem; font-size: 0.625rem; }

	.form-card__h4 ~ .area-upload + .consenso,
	.area-upload + .consenso { margin-top: 1.375rem; }

	.consenso label { gap: 0.75rem; }

	.consenso__casella { border-width: 0.09375rem; border-color: rgba(26, 26, 26, 0.12); margin-top: 0; }

	.consenso__testo { font: 400 0.78125rem/1.6 var(--rc-font-sans); } /* 12,5/20 */

	.consenso__informativa { margin: 1.25rem 0 0.25rem; font: 400 0.78125rem/1.6 var(--rc-font-sans); }

	.form-card__hr { margin-top: 1.25rem; }

	.form-card__invio { flex-direction: column; align-items: stretch; gap: 1rem; margin-top: 1.125rem; }

	.form-card__invio p { font: 400 0.78125rem/1.2 var(--rc-font-sans); color: rgba(26, 26, 26, 0.5); }

	.btn-pill--invia { width: 100%; min-height: 3.125rem; justify-content: center; font-size: 0.78125rem; }

	/* "Torna alla homepage": nel mobile è una riga sola, senza riquadro */
	.prossima {
		height: auto;
		padding: 0;
		margin-top: 2.5rem;
		border: 0;
		align-items: flex-start;
	}

	.prossima__link { gap: 0.625rem; }

	.prossima__freccia { width: 3rem; height: 3rem; }

	.prossima__testo { font: 500 1.5rem/1.2 var(--rc-font-sans); }

	.prossima__linea { display: none; }

	/* ---------- Pagina Grazie ---------- */

	.grazie { padding: 2rem 0 2.5rem; }

	.grazie__corpo { padding: 3rem 1.25rem; }

	.grazie__titolo { font-size: 2.5rem; }

	.grazie__testo { font-size: 1rem; margin-top: 1.25rem; }

	.grazie__azioni { flex-direction: column; gap: 0.75rem; width: 100%; }

	.grazie__azioni .btn-pill,
	.grazie__social { width: 100%; justify-content: center; }

	/* ---------- Pagine di testo (policy) ---------- */

	.pagina-testo { padding: 2.5rem 1.25rem 3rem; }
}
