/* ==========================================================================
   Derua Creative 8 — stile
   Scuro e tipografico. Titoli in Syne (lo stesso carattere del logo), testi in Geist.
   Il colore dei mondi (arancio Academy, blu MGMT) compare solo in piccolo:
   puntini, passaggi del mouse, sfumature leggere. Niente colori a tutto schermo.
   ========================================================================== */

:root {
	--fondo: #0B0B0B;
	--superficie: #141413;
	--superficie-2: #1B1B1A;
	--bordo-c: rgba(255, 255, 255, .09);
	--bordo-f: rgba(255, 255, 255, .18);
	--bianco: #F3F2EE;
	--testo: #C9C8C3;
	--attenuato: #8A8984;
	--arancio: #FF4A1C;
	--f-titolo: 'Syne', 'Arial Black', sans-serif;
	--f-testo: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--margine: clamp(16px, 4vw, 56px);
	--max: 1440px;
	--testata: 72px;
	--sotto: 52px;
	--alto: env(safe-area-inset-top, 0px);
	--basso: env(safe-area-inset-bottom, 0px);
	--curva: cubic-bezier(.2, .7, .2, 1);
	--raggio: 12px;
	color-scheme: dark;
	box-sizing: border-box;
	padding-top: var(--alto);
	padding-bottom: var(--basso);
}

html { scroll-padding-top: calc(var(--alto) + var(--testata) + var(--sotto) + 16px); scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--fondo); color: var(--testo); font-family: var(--f-testo); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
a { color: inherit; text-decoration: none; }
img, svg, iframe { max-width: 100%; }
img { height: auto; display: block; }
:focus-visible { outline: 2px solid var(--bianco); outline-offset: 4px; }
::selection { background: var(--arancio); color: #0B0B0B; }

.dc-salta { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--bianco); color: #000; padding: 10px 16px; font-weight: 600; border-radius: 999px; }
.dc-salta:focus { left: 8px; }
.dc-contenitore { max-width: var(--max); margin: 0 auto; padding: 0 var(--margine); }
.dc-attenuato { color: var(--attenuato); }
.dc-segnaposto { border: 1px dashed var(--bordo-f); border-radius: 10px; padding: 14px 18px; font-size: 14px; color: var(--attenuato); margin: 0 0 1em; }

/* Titoli in Syne: larghi, quindi mai più grandi della colonna. */
.dc-titolo, .dc-eroe__titolo, .dc-apertura h1, .dc-attesa h1, .dc-invito h2, .dc-sezione__testa h2, .dc-blocco__lato h2,
.dc-testo h2, .dc-riga__nome, .dc-banner__titolo, .dc-scheda h3 {
	font-family: var(--f-titolo); font-weight: 800; text-transform: uppercase; color: var(--bianco);
	letter-spacing: -.02em; overflow-wrap: break-word;
}
.dc-titolo em, .dc-eroe__titolo em, .dc-apertura h1 em, .dc-invito h2 em { font-style: normal; color: transparent; -webkit-text-stroke: 1.5px var(--bianco); }

/* Etichette ---------------------------------------------------------------- */
.dc-occhiello { display: block; font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--attenuato); }
.dc-chip { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border: 1px solid var(--bordo-f); border-radius: 999px; font-size: 13px; font-weight: 500; line-height: 1.3; color: var(--testo); white-space: nowrap; }
.dc-chip i { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--c, var(--bianco)); }
.dc-etichetta { display: block; font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--attenuato); margin-bottom: 14px; }
.dc-etichetta--grigia { color: var(--attenuato); }

/* Logo e testata ------------------------------------------------------------ */
.dc-logo { display: block; height: 22px; width: auto; color: var(--bianco); --logo-punto: var(--arancio); }
.dc-logo--testo { font-family: var(--f-titolo); font-weight: 800; font-size: 24px; line-height: 1; }
.dc-testata { position: fixed; top: var(--alto); left: 0; right: 0; z-index: 30; height: var(--testata); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 0 var(--margine); background: rgba(11, 11, 11, .86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--bordo-c); transition: box-shadow .3s; }
.dc-testata.is-scorsa { box-shadow: 0 12px 32px rgba(0, 0, 0, .35); }
.dc-marchio { display: flex; align-items: center; justify-self: start; }
.dc-selettore { display: inline-flex; gap: 2px; padding: 4px; border: 1px solid var(--bordo-f); border-radius: 999px; }
.dc-selettore a { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 8px 18px; border-radius: 999px; font-size: 14px; font-weight: 500; color: var(--testo); transition: background .2s, color .2s; }
.dc-selettore a i { width: 7px; height: 7px; border-radius: 50%; background: var(--c); }
.dc-selettore a:hover, .dc-selettore a:focus-visible { background: rgba(255, 255, 255, .07); color: var(--bianco); }
.dc-selettore a[aria-current] { background: rgba(255, 255, 255, .12); color: var(--bianco); }
.dc-testata__azioni { justify-self: end; display: flex; align-items: center; gap: 18px; }
.dc-accedi { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: 14px; color: var(--testo); transition: color .2s; }
.dc-accedi:hover, .dc-accedi:focus-visible { color: var(--bianco); }
.dc-contenuto { display: block; }

/* Pulsanti e link ----------------------------------------------------------- */
.dc-bottone { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 22px; border: 0; border-radius: 999px; background: var(--bianco); color: #0B0B0B; font-family: var(--f-testo); font-weight: 600; font-size: 15px; line-height: 1.2; white-space: nowrap; cursor: pointer; transition: transform .2s, background .2s, box-shadow .2s, color .2s; }
.dc-bottone:hover { background: #fff; transform: translateY(-1px); }
.dc-bottone--piccolo { padding: 10px 18px; font-size: 14px; }
.dc-bottone--grande { padding: 16px 26px; font-size: 16px; }
.dc-bottone--bordo { background: transparent; color: var(--bianco); box-shadow: inset 0 0 0 1px var(--bordo-f); }
.dc-bottone--bordo:hover { background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px var(--bianco); }
.dc-bottone.is-spento { opacity: .5; }
.dc-freccia { display: inline-block; transition: transform .25s var(--curva); }
a:hover .dc-freccia, a:focus-visible .dc-freccia { transform: translateX(4px); }
.dc-link { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; color: var(--bianco); }
.dc-link::after { content: "→"; transition: transform .25s var(--curva); }
.dc-link:hover::after { transform: translateX(4px); }
.dc-azioni { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.dc-pulsanti { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.dc-azione { margin-top: 32px; }

/* Testi --------------------------------------------------------------------- */
.dc-titolo { font-size: clamp(34px, 4.6vw, 76px); line-height: .92; }
.dc-lead { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; max-width: 46ch; margin-top: 22px; color: var(--testo); }
.dc-testo { max-width: 720px; font-size: 18px; }
.dc-testo > * + * { margin-top: 1em; }
.dc-testo h2 { font-size: clamp(22px, 2.4vw, 34px); line-height: 1; margin-top: 52px; }
.dc-testo h3 { font-size: 20px; font-weight: 600; color: var(--bianco); margin-top: 32px; }
.dc-testo ul, .dc-testo ol { padding-left: 0; list-style: none; }
.dc-testo li { position: relative; padding-left: 22px; }
.dc-testo li + li { margin-top: .5em; }
.dc-testo li::before { content: ""; position: absolute; left: 0; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: var(--c, var(--bianco)); }
.dc-testo a:not(.dc-bottone) { color: var(--bianco); text-decoration: underline; text-decoration-color: var(--bordo-f); text-decoration-thickness: 1px; text-underline-offset: 4px; transition: text-decoration-color .2s; }
.dc-testo a:not(.dc-bottone):hover { text-decoration-color: var(--bianco); }
.dc-testo > :first-child { margin-top: 0; }
.dc-testo img { border-radius: var(--raggio); }

/* Foto ------------------------------------------------------------------------ */
.dc-foto { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--raggio); border: 1px solid var(--bordo-c); background: radial-gradient(120% 90% at 20% 110%, color-mix(in srgb, var(--c, #555) 38%, transparent), transparent 70%), var(--superficie); max-width: 100%; }
.dc-foto img { width: 100%; height: 100%; object-fit: cover; }
.dc-foto figcaption { position: absolute; left: 16px; right: 16px; bottom: 14px; font-size: 13px; font-weight: 500; color: rgba(255, 255, 255, .7); }
.dc-foto--quadrata { aspect-ratio: 1; }
.dc-foto--apertura { aspect-ratio: 5 / 4; }
.dc-foto--ritratto { aspect-ratio: 4 / 5; }

/* Ingresso morbido, solo all'apertura della pagina ------------------------------ */
.dc-entra { animation: dc-entra .9s var(--curva) both; animation-delay: var(--r, 0s); }
.dc-carica .dc-entra { animation-delay: calc(var(--r, 0s) + 1.3s); }
@keyframes dc-entra { from { opacity: 0; transform: translateY(18px); } }

/* HOME 1: la frase grande ------------------------------------------------------- */
.dc-eroe { padding: calc(var(--alto) + var(--testata) + clamp(56px, 8vw, 128px)) 0 clamp(48px, 6vw, 88px); }
.dc-eroe .dc-contenitore { display: grid; gap: clamp(24px, 3vw, 36px); }
.dc-eroe__titolo { font-size: clamp(40px, 7vw, 116px); line-height: .9; letter-spacing: -.025em; max-width: 16ch; }
.dc-eroe__sotto { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.dc-eroe__testo { max-width: 46ch; font-size: clamp(17px, 1.4vw, 19px); color: var(--testo); }

/* HOME 2: i mondi come righe di un indice --------------------------------------- */
.dc-indice__testa { padding-block: 0 16px; }
/* La riga è larga quanto lo schermo, il contenuto resta allineato al resto della pagina.
   Il nome si ridimensiona sullo spazio rimasto (cqi = larghezza utile della riga). */
.dc-riga { display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(0, 300px) 48px; align-items: center; gap: 24px; padding-block: clamp(22px, 3vw, 40px); padding-inline: max(var(--margine), calc((100% - var(--max)) / 2 + var(--margine))); border-top: 1px solid var(--bordo-c); container-type: inline-size; transition: background .35s; }
.dc-riga:last-child { border-bottom: 1px solid var(--bordo-c); }
.dc-riga > * { min-width: 0; }
.dc-riga__num { font-size: 14px; font-weight: 500; color: var(--attenuato); font-variant-numeric: tabular-nums; }
.dc-riga__nome { font-size: clamp(30px, calc((100cqi - 468px) / 8.7), 156px); line-height: .82; letter-spacing: -.03em; transition: color .35s, transform .45s var(--curva); }
.dc-riga__info { display: grid; gap: 6px; font-size: 15px; color: var(--testo); }
.dc-riga__info b { font-weight: 500; color: var(--bianco); }
.dc-riga__vai { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--bordo-f); color: var(--bianco); font-size: 18px; transition: background .35s, border-color .35s, color .35s, transform .35s var(--curva); }
a.dc-riga:hover, a.dc-riga:focus-visible { background: rgba(255, 255, 255, .025); }
a.dc-riga:hover .dc-riga__nome, a.dc-riga:focus-visible .dc-riga__nome { color: var(--c); transform: translateX(14px); }
a.dc-riga:hover .dc-riga__vai, a.dc-riga:focus-visible .dc-riga__vai { background: var(--c); border-color: var(--c); color: var(--su, #fff); transform: rotate(-45deg); }
.dc-riga.is-chiusa .dc-riga__nome { color: #3a3a38; }

/* Sezioni con titolo in alto ------------------------------------------------------ */
.dc-sezione { border-top: 1px solid var(--bordo-c); padding-block: clamp(56px, 8vw, 112px); }
.dc-sezione__testa { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(24px, 3vw, 40px); }
.dc-sezione__testa h2 { font-size: clamp(22px, calc(2.6vw + 8px), 44px); line-height: 1; }
.dc-sezione__testa a { font-size: 14px; font-weight: 500; color: var(--testo); white-space: nowrap; }
.dc-sezione__testa a:hover { color: var(--bianco); }

/* Banner ----------------------------------------------------------------------------- */
.dc-banner { position: relative; }
.dc-banner__pista { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--raggio); }
.dc-banner__pista::-webkit-scrollbar { display: none; }
.dc-banner__voce { position: relative; flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 16 / 7; border-radius: var(--raggio); overflow: hidden; background: var(--superficie); display: block; isolation: isolate; container-type: inline-size; }
.dc-banner__voce img { width: 100%; height: 100%; object-fit: cover; }
.dc-banner__pulsante { position: absolute; right: clamp(16px, 2.6vw, 36px); bottom: clamp(16px, 2.6vw, 36px); }
.dc-banner__voce--testo { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: clamp(22px, 3.4vw, 48px);
	background:
		radial-gradient(120% 90% at 85% 110%, color-mix(in srgb, var(--c) 95%, transparent), transparent 60%),
		radial-gradient(60% 60% at 10% 0%, color-mix(in srgb, var(--c) 22%, transparent), transparent 70%),
		linear-gradient(160deg, color-mix(in srgb, var(--c) 12%, #0b0b0b), #0b0b0b 60%); }
.dc-banner__voce--testo::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .16; background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, .5) 0 1px, transparent 1px 4px); mix-blend-mode: overlay; pointer-events: none; }
.dc-banner__titolo { font-size: clamp(20px, 6.6cqi, 120px); line-height: .9; max-width: 14ch; color: #fff; }
.dc-banner__sotto { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.dc-banner__testo { max-width: 44ch; color: rgba(255, 255, 255, .86); }
.dc-banner__punti { display: flex; gap: 8px; margin-top: 14px; }
.dc-banner__punti a { width: 26px; height: 3px; border-radius: 2px; background: var(--bordo-f); transition: background .3s; }
.dc-banner__punti a[aria-current="true"] { background: var(--bianco); }

/* Agenda -------------------------------------------------------------------------------- */
.dc-agenda { border-top: 1px solid var(--bordo-c); }
.dc-evento { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto; gap: 24px; align-items: center; padding-block: 20px; border-bottom: 1px solid var(--bordo-c); }
.dc-evento__corpo { display: grid; gap: 4px; min-width: 0; }
.dc-evento__nome { font-size: 21px; font-weight: 600; line-height: 1.25; color: var(--bianco); }
.dc-evento__quando { font-size: 14px; color: var(--attenuato); }
.dc-evento:hover .dc-evento__nome { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.dc-data { display: grid; place-items: center; align-content: center; width: 64px; height: 68px; border-radius: 10px; background: var(--bianco); color: #0B0B0B; line-height: 1; }
.dc-data b { font-family: var(--f-titolo); font-weight: 800; font-size: 26px; }
.dc-data small { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; }

/* Comunicazioni ------------------------------------------------------------------------------ */
.dc-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.dc-news__voce { display: grid; gap: 8px; align-content: start; padding-block: 22px; border-top: 1px solid var(--bordo-c); }
.dc-news__voce img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; margin-bottom: 6px; }
.dc-news__data { font-size: 13px; color: var(--attenuato); }
.dc-news__titolo { font-size: 19px; font-weight: 600; line-height: 1.3; color: var(--bianco); }
.dc-news__voce:hover .dc-news__titolo { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.dc-news__testo { font-size: 15px; color: var(--testo); }

/* Home: Metodo Bull ------------------------------------------------------------------------------ */
.dc-bull__griglia { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.dc-bull__testo .dc-chip { margin-bottom: 24px; }
.dc-bull__include { padding: clamp(24px, 3vw, 40px); border: 1px solid var(--bordo-c); border-radius: var(--raggio); background: radial-gradient(110% 80% at 0% 120%, color-mix(in srgb, var(--c) 22%, transparent), transparent 70%), var(--superficie); }
.dc-bull__include .dc-occhiello { margin-bottom: 18px; }
.dc-bull__include .dc-elenco { gap: 14px; font-size: 17px; }
.dc-bull__include .dc-scheda__piede { margin-top: 24px; }
.dc-bull__testo .dc-titolo { font-size: clamp(34px, 5vw, 84px); }
.dc-affiancato .dc-contenitore { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; padding-block: clamp(72px, 9vw, 120px); }

/* Apertura delle pagine -------------------------------------------------------------------------- */
.dc-apertura { padding-top: calc(var(--alto) + var(--testata)); border-bottom: 1px solid var(--bordo-c); }
.dc-apertura__griglia { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; padding-block: clamp(48px, 7vw, 104px); }
.dc-apertura__griglia > div { container-type: inline-size; min-width: 0; }
.dc-apertura .dc-chip { margin-bottom: 22px; }
.dc-apertura h1 { font-size: clamp(34px, 8.6cqi, 104px); line-height: .9; letter-spacing: -.025em; }
.dc-apertura--bassa .dc-apertura__griglia { grid-template-columns: minmax(0, 1fr); padding-bottom: clamp(40px, 5vw, 64px); }
.dc-apertura--bassa .dc-apertura__griglia:has(.ha-foto) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.dc-apertura--bassa h1 { font-size: clamp(32px, 8cqi, 96px); }
.dc-fatti { display: grid; grid-template-columns: repeat(var(--quanti, 4), minmax(0, 1fr)); border-top: 1px solid var(--bordo-c); }
.dc-fatti div { padding: 22px 24px 26px; border-right: 1px solid var(--bordo-c); min-width: 0; }
.dc-fatti div:first-child { padding-left: 0; }
.dc-fatti div:last-child { border-right: 0; }
.dc-fatti b { display: block; font-family: var(--f-titolo); font-weight: 800; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.05; color: var(--bianco); }
.dc-fatti span { font-size: 14px; color: var(--attenuato); }

/* Menu della pagina ------------------------------------------------------------------------------- */
.dc-sottomenu { position: sticky; top: calc(var(--alto) + var(--testata)); z-index: 20; height: var(--sotto); background: rgba(11, 11, 11, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--bordo-c); }
.dc-sottomenu .dc-contenitore { height: 100%; }
.dc-sottomenu nav { display: flex; gap: 6px; align-items: center; height: 100%; overflow-x: auto; scrollbar-width: none; }
.dc-sottomenu nav::-webkit-scrollbar { display: none; }
.dc-sottomenu a { flex: none; padding: 7px 14px; border-radius: 999px; font-weight: 500; font-size: 14px; color: var(--testo); white-space: nowrap; transition: color .2s, background .2s; }
.dc-sottomenu a:hover { color: var(--bianco); background: rgba(255, 255, 255, .06); }
.dc-sottomenu a.qui { color: #0B0B0B; background: var(--bianco); }

/* Sezioni: titolo fermo a sinistra, contenuto a destra -------------------------------------------- */
.dc-blocco { border-bottom: 1px solid var(--bordo-c); }
.dc-blocco > .dc-contenitore { display: grid; grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); padding-block: clamp(64px, 8vw, 112px); }
.dc-blocco__lato { position: sticky; top: calc(var(--alto) + var(--testata) + var(--sotto) + 32px); align-self: start; min-width: 0; }
.dc-blocco__lato h2 { font-size: clamp(24px, 2.6vw, 38px); line-height: 1; }
.dc-blocco__lato p { margin-top: 16px; font-size: 16px; color: var(--attenuato); }
.dc-blocco__contenuto { min-width: 0; }
.dc-blocco--pagina .dc-blocco__lato { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.dc-blocco--pagina .dc-blocco__lato .dc-etichetta { margin-bottom: 0; }
.dc-blocco--solo > .dc-contenitore { grid-template-columns: minmax(0, 1fr); max-width: calc(760px + 2 * var(--margine)); }
.dc-fratelli { list-style: none; padding: 0; display: grid; gap: 4px; }
.dc-fratelli a { display: block; padding: 6px 14px; border-radius: 999px; font-weight: 500; font-size: 15px; color: var(--testo); transition: color .2s, background .2s; }
.dc-fratelli a:hover { color: var(--bianco); background: rgba(255, 255, 255, .05); }
.dc-fratelli a[aria-current] { color: var(--bianco); background: rgba(255, 255, 255, .1); }

/* Schede --------------------------------------------------------------------------------------- */
.dc-schede { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dc-schede--tre { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dc-scheda { display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--bordo-c); border-radius: var(--raggio); overflow: hidden; min-width: 0; transition: border-color .25s, transform .25s var(--curva); }
.dc-scheda:hover { border-color: var(--bordo-f); }
.dc-scheda__corpo { display: flex; flex-direction: column; gap: 12px; padding: 28px; flex: 1; min-width: 0; container-type: inline-size; }
.dc-scheda__tipo { font-size: 13px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; color: var(--attenuato); }
.dc-scheda h3 { font-size: clamp(20px, 6.6cqi, 32px); line-height: .98; }
.dc-scheda p { font-size: 16px; color: var(--testo); }
.dc-scheda__piede { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--bordo-c); flex-wrap: wrap; }
.dc-scheda__prezzo b { display: block; font-family: var(--f-titolo); font-weight: 800; font-size: 34px; line-height: 1; color: var(--bianco); }
.dc-scheda__prezzo small { font-size: 13px; color: var(--attenuato); }
.dc-scheda__altro { margin-top: 4px; }
.dc-scheda--larga { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.dc-scheda--larga .dc-foto { aspect-ratio: auto; height: 100%; min-height: 340px; border-radius: 0; border: 0; }
.dc-scheda--larga .dc-scheda__corpo { padding: clamp(28px, 3vw, 44px); }
.dc-scheda--larga h3 { font-size: clamp(28px, 7cqi, 56px); }
.dc-scheda--spenta { opacity: .55; }
.dc-blocco__contenuto .dc-schede--tre { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.dc-elenco { list-style: none; padding: 0; display: grid; gap: 9px; font-size: 15px; color: var(--testo); margin-top: 4px; }
.dc-elenco li { position: relative; padding-left: 20px; }
.dc-elenco li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--c, var(--bianco)); }

/* Passi ------------------------------------------------------------------------------------------- */
.dc-passi { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; padding: 0; }
.dc-passi::before { content: ""; position: absolute; left: 26px; right: 26px; top: 26px; height: 1px; background: var(--bordo-f); }
.dc-passo { position: relative; min-width: 0; }
.dc-passo__num { position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--fondo); border: 1px solid var(--bordo-f); font-family: var(--f-titolo); font-weight: 800; font-size: 20px; color: var(--bianco); }
.dc-passo:first-child .dc-passo__num { background: var(--bianco); color: #0B0B0B; border-color: var(--bianco); }
.dc-passo h3 { font-size: 20px; font-weight: 600; color: var(--bianco); margin: 20px 0 6px; }
.dc-passo p { font-size: 16px; color: var(--attenuato); }
.dc-dopo { margin-top: 44px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.dc-dopo span { font-size: 15px; color: var(--attenuato); }

/* Persona, domande, riquadri, modulo ---------------------------------------------------------------- */
.dc-persona { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.dc-persona__frase { font-family: var(--f-titolo); font-weight: 700; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.2; color: var(--bianco); margin-bottom: 18px; }
.dc-persona__nome { margin-top: 22px; font-weight: 600; color: var(--bianco); }
.dc-persona__nome small { display: block; font-weight: 400; font-size: 14px; color: var(--attenuato); }
.dc-domande { border-top: 1px solid var(--bordo-c); }
.dc-domande details { border-bottom: 1px solid var(--bordo-c); }
.dc-domande summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; font-weight: 600; font-size: 19px; color: var(--bianco); cursor: pointer; }
.dc-domande summary::-webkit-details-marker { display: none; }
.dc-domande summary i { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--bordo-f); }
.dc-domande summary i::before, .dc-domande summary i::after { content: ""; position: absolute; left: 10px; right: 10px; top: 50%; height: 1.5px; margin-top: -.75px; background: currentColor; transition: transform .3s var(--curva); }
.dc-domande summary i::after { transform: rotate(90deg); }
.dc-domande details[open] summary i::after { transform: rotate(0); }
.dc-domande p { padding: 0 0 24px; max-width: 640px; color: var(--testo); }
.dc-riquadro { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 28px; border: 1px solid var(--bordo-c); border-radius: var(--raggio); background: var(--superficie); }
.dc-riquadro p { color: var(--testo); }
.dc-modulo iframe { display: block; width: 100%; height: 1400px; border: 0; border-radius: var(--raggio); background: var(--bianco); }
.dc-modulo p { margin-top: 14px; }

/* Invito finale --------------------------------------------------------------------------------------- */
.dc-invito { position: relative; border-top: 1px solid var(--bordo-c); overflow: hidden; isolation: isolate; }
.dc-invito::before { content: ""; position: absolute; left: -10%; bottom: -60%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: var(--c, var(--arancio)); filter: blur(120px); opacity: .16; z-index: -1; pointer-events: none; }
.dc-invito .dc-contenitore { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; padding-block: clamp(72px, 9vw, 128px); }
.dc-invito .dc-contenitore > div { min-width: 0; max-width: 100%; }
.dc-invito h2 { font-size: clamp(32px, 5vw, 84px); line-height: .92; max-width: 14ch; }
.dc-invito p { max-width: 44ch; color: var(--testo); margin-top: 18px; }

/* Pagine d'attesa (404, in arrivo) --------------------------------------------------------------------- */
.dc-attesa { display: flex; align-items: center; min-height: 86svh; padding: calc(var(--alto) + var(--testata) + 48px) 0 64px; }
.dc-attesa .dc-contenitore { width: 100%; }
.dc-attesa h1 { font-size: clamp(44px, 9vw, 150px); line-height: .9; margin-top: 8px; }
.dc-attesa--testo { align-items: flex-start; min-height: 0; }
.dc-attesa--testo h1 { font-size: clamp(36px, 6vw, 88px); margin-bottom: 36px; }

/* Sponsor che scorrono ----------------------------------------------------------------------------------- */
.dc-sponsor { border-top: 1px solid var(--bordo-c); padding-block: 36px 40px; overflow: hidden; }
.dc-sponsor .dc-occhiello { margin-bottom: 18px; }
.dc-sponsor__finestra { overflow: hidden; }
.dc-sponsor:not(.dc-sponsor--scorre) .dc-sponsor__finestra { max-width: var(--max); margin: 0 auto; padding: 0 var(--margine); }
.dc-sponsor__nastro { display: flex; width: max-content; }
.dc-sponsor--scorre .dc-sponsor__nastro { animation: dc-scorri 40s linear infinite; }
.dc-sponsor--scorre:hover .dc-sponsor__nastro, .dc-sponsor--scorre:focus-within .dc-sponsor__nastro { animation-play-state: paused; }
@keyframes dc-scorri { to { transform: translateX(-50%); } }
.dc-sponsor__lista { list-style: none; margin: 0; padding: 0 12px 0 0; display: flex; gap: 12px; }
.dc-sponsor:not(.dc-sponsor--scorre) .dc-sponsor__nastro, .dc-sponsor:not(.dc-sponsor--scorre) .dc-sponsor__lista { width: auto; flex-wrap: wrap; padding: 0; }
.dc-sponsor__lista li { display: flex; align-items: center; justify-content: center; min-width: 160px; height: 76px; padding: 14px 24px; border-radius: 10px; background: #F2F1EE; }
.dc-sponsor__lista a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.dc-sponsor__lista img { display: block; height: 100%; width: auto; max-width: 170px; object-fit: contain; filter: grayscale(1); opacity: .85; transition: filter .25s, opacity .25s; }
.dc-sponsor__lista li:hover img { filter: none; opacity: 1; }
.dc-sponsor__lista span { font-family: var(--f-titolo); font-weight: 700; font-size: 17px; color: #1a1a1a; white-space: nowrap; }

/* Piè di pagina: il logo grande, poi i link ---------------------------------------------------------------- */
.dc-piede { border-top: 1px solid var(--bordo-c); padding: clamp(48px, 6vw, 72px) 0 28px; }
.dc-piede__logo { display: block; color: var(--bianco); }
.dc-piede__logo .dc-logo { width: 100%; height: auto; }
.dc-piede__griglia { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-top: clamp(32px, 4vw, 56px); font-size: 15px; }
.dc-piede__titolo { font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--attenuato); margin-bottom: 12px; }
.dc-piede ul { list-style: none; padding: 0; display: grid; gap: 6px; }
.dc-piede__griglia a { color: var(--testo); transition: color .2s; }
.dc-piede__griglia a:hover { color: var(--bianco); }
.dc-piede__fondo { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px 28px; margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--bordo-c); font-size: 13px; color: var(--attenuato); }
.dc-piede__link { display: flex; gap: 20px; }
.dc-piede__menu { display: flex !important; gap: 20px; }
.dc-piede__fondo a:hover { color: var(--bianco); }

/* Avviso della bacheca su tutto il sito ---------------------------------------------------------------------- */
.dc-avviso { position: fixed; left: 16px; right: 16px; bottom: calc(16px + var(--basso)); z-index: 40; display: flex; align-items: center; gap: 14px; max-width: 880px; margin: 0 auto; padding: 10px 10px 10px 20px; border: 1px solid var(--bordo-f); border-radius: 999px; background: rgba(20, 20, 19, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 18px 40px rgba(0, 0, 0, .45); }
.dc-avviso[hidden] { display: none; }
.dc-avviso__punto { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--c, var(--arancio)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--c, var(--arancio)) 25%, transparent); }
.dc-avviso__testo { flex: 1; min-width: 0; font-size: 15px; color: var(--testo); }
.dc-avviso__testo b { color: var(--bianco); font-weight: 600; margin-right: 6px; }
.dc-avviso__chiudi { flex: none; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--attenuato); font-size: 22px; line-height: 1; cursor: pointer; }
.dc-avviso__chiudi:hover { color: var(--bianco); background: rgba(255, 255, 255, .06); }

/* Caricamento: il logo su nero, poi sfuma -------------------------------------------------------------------- */
.dc-caricamento { display: none; }
.dc-carica .dc-caricamento { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; background: var(--fondo); pointer-events: none; animation: dc-sfuma .5s ease 1.2s forwards; }
.dc-caricamento__logo { height: clamp(28px, 4.4vw, 48px); --logo-punto: var(--arancio); animation: dc-entra .8s var(--curva) .1s both; }
@keyframes dc-sfuma { to { opacity: 0; visibility: hidden; } }

/* Area riservata (plugin Derua — Bull OS) con il carattere del tema 8 ------------------------------------------ */
.drb .drb-titolo { font-weight: 800; letter-spacing: -.02em; font-size: clamp(32px, 4vw, 56px); overflow-wrap: break-word; }
.drb .drb-intestazione h2 { font-weight: 800; letter-spacing: -.01em; font-size: clamp(24px, 2.8vw, 38px); overflow-wrap: anywhere; }
.drb .drb-tessera__numero { font-weight: 800; font-size: 44px; }
.drb .drb-qe__num { font-weight: 800; }
.dc-testo .drb-iscrizione h2 { margin-bottom: 20px; }
.dc-testo .drb-evento-info { border-radius: var(--raggio); }

/* Tavoletta ------------------------------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.dc-schede--tre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dc-piede__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dc-news { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dc-riga { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 240px) 48px; gap: 18px; }
	.dc-riga__nome { font-size: clamp(30px, calc((100cqi - 382px) / 8.7), 156px); }
}

/* Telefono ------------------------------------------------------------------------------------------------- */
@media (max-width: 860px) {
	:root { --testata: 112px; --sotto: 48px; }
	body { font-size: 16px; }
	.dc-testata { grid-template-columns: 1fr auto; grid-template-rows: 60px 52px; gap: 0 12px; height: var(--testata); }
	.dc-logo { height: 18px; }
	.dc-selettore { grid-column: 1 / -1; grid-row: 2; align-self: start; width: 100%; }
	.dc-selettore a { flex: 1; }
	.dc-testata__azioni { gap: 10px; }
	.dc-accedi { width: 40px; height: 40px; justify-content: center; border: 1px solid var(--bordo-f); border-radius: 50%; color: var(--bianco); }
	.dc-accedi span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

	.dc-eroe { padding-top: calc(var(--alto) + var(--testata) + 48px); }
	.dc-eroe__titolo { font-size: clamp(34px, 10.4vw, 64px); }
	.dc-riga { grid-template-columns: minmax(0, 1fr) 44px; gap: 10px 14px; padding-block: 24px; }
	.dc-riga__num { display: none; }
	.dc-riga__nome { font-size: clamp(28px, calc((100cqi - 60px) / 8.7), 72px); }
	.dc-riga__info { grid-column: 1; grid-row: 2; }
	.dc-riga__vai { grid-column: 2; grid-row: 1; width: 44px; height: 44px; }
	a.dc-riga:hover .dc-riga__nome { transform: none; }

	.dc-banner__voce { aspect-ratio: 4 / 5; }
	.dc-banner__pulsante { left: 16px; right: auto; }
	.dc-evento { grid-template-columns: 64px minmax(0, 1fr); gap: 8px 16px; }
	.dc-evento .dc-chip { display: none; }
	.dc-evento .dc-bottone { grid-column: 2; justify-self: start; }
	.dc-news { grid-template-columns: minmax(0, 1fr); }

	.dc-bull__griglia, .dc-affiancato .dc-contenitore, .dc-apertura__griglia, .dc-apertura--bassa .dc-apertura__griglia:has(.ha-foto),
	.dc-blocco > .dc-contenitore, .dc-schede, .dc-schede--tre, .dc-scheda--larga, .dc-passi, .dc-persona { grid-template-columns: minmax(0, 1fr); }
	.dc-apertura h1 { font-size: clamp(32px, 10cqi, 64px); }
	.dc-blocco__lato { position: static; }
	.dc-fatti { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dc-fatti div { padding: 16px 12px 16px 0; border-right: 0; border-bottom: 1px solid var(--bordo-c); }
	.dc-passi::before { left: 25px; right: auto; top: 26px; bottom: 26px; width: 1px; height: auto; }
	.dc-passo { padding-left: 76px; min-height: 52px; }
	.dc-passo__num { position: absolute; left: 0; top: 0; }
	.dc-passo h3 { margin-top: 12px; }
	.dc-scheda--larga .dc-foto { min-height: 240px; }
	.dc-invito .dc-contenitore { flex-direction: column; align-items: flex-start; }
	.dc-piede__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.dc-avviso { left: 10px; right: 10px; bottom: calc(10px + var(--basso)); gap: 10px; padding: 8px 6px 8px 14px; }
	.dc-avviso__testo { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.dc-avviso__testo span { display: none; }
	.dc-avviso .dc-bottone { padding: 9px 14px; font-size: 13px; max-width: 46vw; overflow: hidden; text-overflow: ellipsis; }
	.dc-avviso__chiudi { width: 30px; height: 30px; }
	.dc-sponsor__lista li { min-width: 130px; height: 64px; padding: 12px 18px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.dc-caricamento { display: none !important; }
	.dc-sponsor__nastro { animation: none !important; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
