/* Public stylesheet entry point. Bootstrap is loaded by the document first. */
@import url("tokens.css?v=manrope-2");
@import url("base.css?v=manrope-2");
@import url("components.css?v=manrope-2");
@import url("pages.css?v=percorsi-card-1");
@import url("utilities.css?v=unified-6");

/* =========================================================
   HOME — prima composizione completa del sistema 2026-10.
   Ritmo delle superfici: scena (foto) → carta (lettura) → carta (calendario)
   → pietra (carta topografica) → carta → scena.
   Rosso: "sei qui" e una sola azione principale per vista.
   Manrope per i titoli; DM Sans per testo, numeri e date (.type-data, --font-data).
   ========================================================= */
/* Ritmo verticale unico della Home: fascia di ogni sezione (--home-band) e distanza titolo-contenuto (--home-head-gap). */
.home-final {--home-band: var(--band-read); --home-gap: clamp(1.5rem, 4vw, 4.5rem); --home-head-gap: clamp(1.75rem, 3.5vw, 3rem);}
.home-final :is(a, button, [tabindex]):focus-visible {outline: 3px solid var(--mtb-ink); outline-offset: 4px;}
.home-final :is(#home-hero-section, .home-brand) :is(a, button, [tabindex]):focus-visible,
.home-final .home-season__next:focus-visible,
.home-final #home-hero-section:focus-visible {outline-color: var(--mtb-paper);}
.home-final .home-section {min-height: 0; padding-block: var(--home-band);}
.home-final .section-title {margin: 0; font: var(--weight-display) var(--step-3xl)/1 var(--font-display); font-stretch: var(--stretch-editorial); letter-spacing: var(--tracking-title);}
.home-final .home-section-heading {display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .75rem 2rem; margin-bottom: var(--home-head-gap);}
.home-final .home-section-link {color: var(--mtb-trail); font-weight: var(--weight-bold); text-decoration: none; transition: color .2s ease;}
/* Link al passaggio: un solo colore in tutto il sito (regola di yatt, 2026-10-07). */
.home-final .home-section-link:is(:hover, :focus-visible) {color: var(--color-link-on-dark);}

/* HERO: storia di copertina (selezione editoriale priorita 4, invariata) */
.home-final #home-hero-section {position: relative; min-height: 0; color: var(--mtb-paper); background: var(--mtb-night);}
.home-editorial__slides {display: grid;}
.home-editorial__slide {position: relative; grid-area: 1 / 1; display: grid; align-items: end; min-height: clamp(560px, 86svh, 880px); padding: calc(var(--site-header-height) + 2rem) 0 clamp(3rem, 10vh, 6.5rem);}
.home-editorial__slide[aria-hidden="true"] {visibility: hidden; pointer-events: none;}
.home-editorial__image {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% var(--cover-focus-y, 50%);}
/* Velatura solo dove serve al testo: in basso a sinistra. La foto resta protagonista. */
.home-editorial__slide::after {content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgb(var(--bg-dark-rgb) / .8) 0%, rgb(var(--bg-dark-rgb) / .28) 40%, rgb(var(--bg-dark-rgb) / 0) 66%), linear-gradient(90deg, rgb(var(--bg-dark-rgb) / .4), rgb(var(--bg-dark-rgb) / 0) 58%);}
.home-editorial__content {position: relative; z-index: 1; width: 100%; max-width: none; padding-inline: 1rem;}
.home-editorial__meta {display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0 0 1rem; color: rgb(var(--color-white-rgb) / .85); font: var(--weight-medium) var(--step-sm)/1.3 var(--font-body);}
.home-editorial__kicker {color: var(--mtb-paper); font-weight: var(--weight-bold);}
/* Titolo contenuto: massimo 4,25rem; su smartphone le parole lunghe vanno a capo con il trattino, mai spezzate a meta. */
/* Prova (2026-10-07): interlinea, spaziatura, ombra e margine del titolo Home in produzione. */
.home-final #home-hero-section .display-title {max-width: 20ch; margin: 10px 0 0; font: var(--weight-display) clamp(2rem, 1.2rem + 4vw, 4.25rem)/1 var(--font-display); hyphens: auto; font-stretch: var(--stretch-editorial); letter-spacing: var(--tracking-title); text-wrap: balance; text-shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 0 30px rgba(0, 0, 0, .075);}
.home-final #home-hero-section .display-title a {color: inherit; text-decoration: none;}
.home-final #home-hero-section .display-title a:is(:hover, :focus-visible) {color: var(--color-link-on-dark);}
.home-editorial__summary {max-width: 52ch; margin: 1.1rem 0 0; color: rgb(var(--color-white-rgb) / .88); font-size: var(--step-md); line-height: 1.5;}
.home-final .home-editorial__cta {margin-top: 1.75rem;}
.home-editorial__nav {padding: 0 1rem; background: var(--mtb-night);}
.home-editorial__nav[hidden] {display: none;}
.home-editorial__choices {display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; gap: 1.5rem;}
.home-editorial__choices button {min-width: 0; min-height: 44px; display: flex; align-items: flex-start; gap: .75rem; padding: 1rem 0 1.25rem; color: rgb(var(--color-white-rgb) / .65); text-align: left; background: transparent; border: 0; border-top: 3px solid rgb(var(--color-white-rgb) / .2); cursor: pointer; transition: color .2s ease, border-color .2s ease;}
.home-editorial__choices button:hover {color: var(--mtb-paper);}
.home-editorial__choices button[aria-current="true"] {color: var(--mtb-paper); border-color: var(--mtb-paper);}
.home-editorial__index {font: var(--weight-bold) var(--step-sm)/1.4 var(--font-data); font-variant-numeric: tabular-nums;}
.home-editorial__short {overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font: var(--weight-medium) var(--step-sm)/1.4 var(--font-body);}

/* DA NON PERDERE: una storia principale e tre in lista */
.home-final #home-latest-stories {background: var(--mtb-paper);}
.home-final .home-stories__rail {display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); align-items: start; column-gap: var(--home-gap);}
.home-final .home-story {min-width: 0;}
.home-final .home-story:first-child {grid-row: span 3;}
.home-final .home-story__link {display: grid; align-content: start; gap: .5rem; color: var(--mtb-ink); text-decoration: none;}
.home-final .home-story img {width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-sm); background: var(--mtb-stone);}
.home-final .home-story__meta {display: flex; flex-wrap: wrap; gap: .15rem .9rem; margin: .4rem 0 0; color: var(--mtb-muted); font: var(--weight-medium) var(--step-sm)/1.35 var(--font-body);}
.home-final .home-story__kicker {color: var(--mtb-ink); font-weight: var(--weight-bold);}
.home-final .home-story__title {margin: 0; font: var(--weight-bold) var(--step-lg)/1.18 var(--font-display); letter-spacing: -.015em; text-wrap: pretty; transition: color .2s ease;}
.home-final .home-story__title em {color: inherit; font-style: normal; font-weight: var(--weight-regular);}
.home-final .home-story:first-child .home-story__title {font-size: var(--step-2xl); font-weight: var(--weight-display); font-stretch: var(--stretch-editorial); line-height: 1.06; letter-spacing: var(--tracking-editorial);}
.home-final .home-story__link:is(:hover, :focus-visible) .home-story__title {color: var(--color-link-on-dark);}
/* Sommario: testo piccolo e attenuato, al massimo 2 righe (3 per la storia principale in colonna). */
.home-final .home-story__summary {margin: 0; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--mtb-muted); font: var(--weight-regular) var(--step-sm)/1.45 var(--font-body);}
.home-final .home-story:first-child .home-story__summary {max-width: 56ch; -webkit-line-clamp: 3; font-size: var(--step-base);}
.home-final .home-story:not(:first-child) .home-story__title {font-size: var(--step-md); line-height: 1.25;}
.home-final .home-story:not(:first-child) .home-story__link {grid-template-columns: clamp(128px, 13vw, 176px) minmax(0, 1fr); grid-template-areas: "image meta" "image title" "image summary"; align-items: start; column-gap: 1.25rem; row-gap: .5rem; padding-block: 1.25rem; border-top: 1px solid var(--mtb-rule);}
.home-final .home-story:not(:first-child) .home-story__summary {grid-area: summary;}
.home-final .home-story:nth-child(2) .home-story__link {padding-top: 0; border-top: 0;}
/* Miniatura alta quanto il testo accanto (cover): niente vuoti sotto l'immagine. height 0 + min-height 100%
   evita che l'immagine allarghi le righe: decide il testo, la foto si adatta. */
.home-final .home-story:not(:first-child) img {grid-area: image; align-self: stretch; height: 0; min-height: 100%; aspect-ratio: auto;}
.home-final .home-story:not(:first-child) .home-story__meta {grid-area: meta; margin: 0;}
.home-final .home-story:not(:first-child) .home-story__title {grid-area: title;}

/* Desktop: la storia principale e alta quanto le tre laterali. La foto riempie tutta l'altezza
   (cover) con categoria, data e titolo in basso su una sfumatura; le laterali dividono l'altezza
   in tre righe uguali. Sotto i 992px resta la colonna: foto 3:2 e titolo sotto. */
@media (min-width: 992px) {
  .home-final .home-stories__rail {grid-template-rows: repeat(3, minmax(0, 1fr)); align-items: stretch;}
  .home-final .home-story:first-child .home-story__link {position: relative; isolation: isolate; height: 100%; min-height: 26rem; align-content: end; gap: .75rem; padding: clamp(1.5rem, 2.5vw, 2.25rem); overflow: hidden; color: var(--mtb-paper); border-radius: var(--radius-sm); background: var(--mtb-night);}
  .home-final .home-story:first-child img {position: absolute; inset: 0; z-index: -2; height: 100%; aspect-ratio: auto; border-radius: 0;}
  .home-final .home-story:first-child .home-story__link::after {content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(var(--bg-dark-rgb) / .88) 0%, rgb(var(--bg-dark-rgb) / .45) 40%, rgb(var(--bg-dark-rgb) / 0) 68%);}
  .home-final .home-story:first-child .home-story__meta {margin: 0; color: rgb(var(--color-white-rgb) / .8);}
  .home-final .home-story:first-child .home-story__kicker {color: var(--mtb-paper);}
  .home-final .home-story:first-child .home-story__title {max-width: 24ch;}
  .home-final .home-story:first-child .home-story__summary {-webkit-line-clamp: 2; color: rgb(var(--color-white-rgb) / .8);}
  .home-final .home-story:not(:first-child) .home-story__link {height: 100%; align-content: center;}
  .home-final .home-story:last-child .home-story__link {padding-bottom: 0;}
}

/* PROSSIME GARE: l'altimetria di stagione.
   Asse orizzontale = giorni da oggi; ogni gara e un traguardo.
   Il punto rosso sta su "Oggi": e il punto in cui si trova chi legge. */
.home-final .home-season {background: var(--mtb-paper); border-top: 1px solid var(--mtb-rule);}
.home-final .home-season__head {display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: var(--home-head-gap);}
.home-final .home-season__head p {max-width: 44ch; margin: .9rem 0 0; color: var(--mtb-muted); font-size: var(--step-md); line-height: 1.5;}
.home-final .home-season__next {display: grid; grid-template-columns: minmax(0, auto) auto; align-items: end; gap: 1.75rem; padding: 1.1rem 1.5rem; color: var(--mtb-paper); text-decoration: none; background: var(--mtb-ink); border-radius: var(--radius-sm); transition: background-color .2s ease;}
.home-final .home-season__next:is(:hover, :focus-visible) {background: var(--mtb-night);}
.home-final .home-season__next-text {display: grid; gap: .2rem; min-width: 0;}
.home-final .home-season__next-text > span {color: var(--color-link-on-dark); font-size: var(--step-sm);}
.home-final .home-season__next-text strong {max-width: 26ch; font-size: var(--step-md); line-height: 1.25;}
.home-final .home-season__next-text small {color: rgb(var(--color-white-rgb) / .7); font-size: var(--step-sm);}
.home-final .home-season__clock {font-size: clamp(2.25rem, 3.4vw, 3.25rem); font-weight: var(--weight-display); line-height: .85; white-space: nowrap;}
.home-final .home-season__clock strong {font-weight: inherit;}
.home-final .home-season__scroller {overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin;}
.home-final .home-season__hint {display: none;}
.home-final .home-season__all {display: inline-block; margin-top: 1.25rem;}
.home-final .home-season__empty {margin: 0; color: var(--mtb-muted);}

.home-final .home-profile {--profile-top: 128px; --profile-axis: 52px; position: relative; height: calc(var(--profile-top) + 280px + var(--profile-axis)); min-width: 0;}
.home-final .home-profile__line {position: absolute; left: 0; right: 0; bottom: var(--profile-axis); width: 100%; height: 280px; overflow: visible;}
/* Fasce per pendenza (classe dall'ASP): piano neutro + scala sequenziale azzurra (token --mtb-grade-*),
   separate da 2px di carta come nelle altimetrie di tappa. Piu scuro = piu ripido. */
.home-final .home-profile__band {fill: var(--mtb-grade-0); stroke: var(--mtb-paper); stroke-width: 2; vector-effect: non-scaling-stroke;}
.home-final .home-profile__band.is-grade-1 {fill: var(--mtb-grade-1);}
.home-final .home-profile__band.is-grade-2 {fill: var(--mtb-grade-2);}
.home-final .home-profile__band.is-grade-3 {fill: var(--mtb-grade-3);}
.home-final .home-profile__band.is-grade-4 {fill: var(--mtb-grade-4);}
.home-final .home-profile__stroke {fill: none; stroke: var(--mtb-ink); stroke-width: 2.5; stroke-linejoin: round; vector-effect: non-scaling-stroke;}
.home-final .home-profile__stops {position: absolute; inset: 0; margin: 0; padding: 0; list-style: none;}
.home-final .home-profile__stop {position: absolute; left: var(--x); top: calc(var(--profile-top) + var(--y)); bottom: var(--profile-axis); width: 0; border-left: 1px dashed rgb(var(--bg-dark-rgb) / .4);}
.home-final .home-profile__stop::before {content: ""; position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--mtb-ink); box-shadow: 0 0 0 3px var(--mtb-paper);}
.home-final .home-profile__stop.is-next::before {left: -9px; top: -9px; width: 18px; height: 18px; background: var(--mtb-trail);}
/* Etichette sopra il proprio traguardo, larghe quanto il testo, senza fondo. L'ASP calcola --rise (distanza
   punto-etichetta: sopra il terreno vicino e sopra le etichette vicine) e --profile-top; il filo tratteggiato
   compare solo quando l'etichetta e staccata dal punto. */
.home-final .home-profile__stop::after {content: ""; position: absolute; left: -1px; bottom: calc(100% + 12px); height: max(0px, calc(var(--rise, 18px) - 18px)); border-left: 1px dashed rgb(var(--bg-dark-rgb) / .4);}
.home-final .home-profile__label {position: absolute; left: 0; bottom: calc(100% + var(--rise, 18px)); width: max-content; max-width: 11rem; display: grid; justify-items: center; gap: .35rem; padding: .3rem .5rem; text-align: center; transform: translateX(-50%);}
.home-final .home-profile__stop.is-start .home-profile__label {justify-items: start; text-align: left; transform: translateX(-.5rem);}
.home-final .home-profile__stop.is-end .home-profile__label {justify-items: end; text-align: right; transform: translateX(calc(-100% + .5rem));}
.home-final .home-profile__event {display: grid; gap: .15rem; color: var(--mtb-ink); text-decoration: none;}
.home-final .home-profile__event strong {font-size: .95rem; line-height: 1.25; transition: color .2s ease;}
.home-final .home-profile__event span {color: var(--mtb-muted); font-size: var(--step-sm);}
.home-final .home-profile__event:is(:hover, :focus-visible) strong {color: var(--color-link-on-dark);}
.home-final .home-profile__signup {display: inline-flex; min-height: 28px; align-items: center; padding: 0 .55rem; color: var(--mtb-trail); font-size: var(--step-xs); font-weight: var(--weight-bold); text-decoration: none; border: 1px solid currentColor; border-radius: var(--radius-pill);}
.home-final .home-profile__signup:is(:hover, :focus-visible) {color: var(--mtb-paper); background: var(--mtb-trail); border-color: var(--mtb-trail);}
.home-final .home-profile__axis {position: absolute; left: 0; right: 0; bottom: 0; height: var(--profile-axis); border-top: 1px solid var(--mtb-rule-strong);}
.home-final .home-profile__axis span {position: absolute; left: var(--x); top: .55rem; color: var(--mtb-muted); font-size: var(--step-sm); white-space: nowrap; transform: translateX(-50%);}
.home-final .home-profile__axis span:first-child {display: inline-flex; align-items: center; gap: .45rem; color: var(--mtb-ink); font-weight: var(--weight-bold);}
.home-final .home-profile__axis span:first-child::before {content: ""; width: 8px; height: 8px; background: var(--mtb-signal-fill); border-radius: 50%;}
/* Data di ogni gara sull'asse sotto il suo traguardo: giorno in grassetto sopra, mese sotto (stretta, non tocca le vicine). */
.home-final .home-profile__axis .home-profile__date {display: grid; justify-items: center; color: var(--mtb-ink); line-height: 1.15;}
.home-final .home-profile__axis .home-profile__date strong {font-weight: var(--weight-bold);}
.home-final .home-profile__axis .home-profile__date.is-next {color: var(--mtb-trail);}

/* PERCORSI: fascia antracite (prova del 2026-10-07), curve di livello e traccia in ciano luce. */
.home-final .home-routes {color: var(--mtb-paper); background: var(--bg-dark);}
.home-final .home-routes.contour-field::before {background: var(--contour-color-on-dark); opacity: var(--contour-on-dark);}
.home-final .home-routes :focus-visible {outline-color: var(--mtb-paper);}
.home-final .home-routes .home-section-link {color: var(--color-link-on-dark);}
.home-final .home-routes__layout {display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: var(--home-head-gap) var(--home-gap);}
.home-final .home-routes__layout--no-trace {grid-template-columns: minmax(0, 1fr);}
.home-final .home-routes__copy {max-width: 34rem;}
.home-final .home-routes__copy > p {max-width: 40ch; margin: 1rem 0 0; color: rgb(var(--color-white-rgb) / .75); font-size: var(--step-md); line-height: 1.5;}
/* Ritmo del percorso in evidenza su passi di 8px: filetto 40 / 24, etichetta-nome 8, nome-dati 24,
   didascalia-valore 8, dati-autore 16, autore-pulsanti 24 (pulsante ed elenco affiancati). */
.home-final .home-routes__featured {margin-top: 2.5rem; padding-top: 1.5rem; border-top: 2px solid var(--mtb-paper);}
.home-final .home-routes__label {margin: 0; color: rgb(var(--color-white-rgb) / .65); font: var(--weight-medium) var(--step-sm)/1.3 var(--font-body);}
.home-final .home-routes__name {margin: .5rem 0 0; font: var(--weight-display) var(--step-2xl)/1.05 var(--font-display); font-stretch: var(--stretch-editorial); letter-spacing: var(--tracking-editorial); text-wrap: balance;}
.home-final .home-routes__name a {color: inherit; text-decoration: none;}
.home-final .home-routes__name a:is(:hover, :focus-visible) {color: var(--color-link-on-dark);}
.home-final .home-routes__stats {display: grid; grid-template-columns: repeat(3, minmax(0, auto)); justify-content: start; gap: .5rem clamp(1.25rem, 3vw, 2.5rem); margin: 1.5rem 0 0;}
.home-final .home-routes__stats div {min-width: 0;}
.home-final .home-routes__stats dt {color: rgb(var(--color-white-rgb) / .65); font: var(--weight-medium) var(--step-sm)/1.3 var(--font-body);}
.home-final .home-routes__stats dd {margin: .5rem 0 0; font-size: var(--step-3xl); font-weight: var(--weight-bold); line-height: 1; letter-spacing: -.04em; white-space: nowrap;}
.home-final .home-routes__stats small {font-size: .45em; font-weight: var(--weight-bold);}
.home-final .home-routes__meta {margin: 1rem 0 0; color: rgb(var(--color-white-rgb) / .65); font-size: var(--step-sm);}
.home-final .home-routes__actions {display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: 1.5rem;}
.home-final .home-routes__all {display: inline-block; margin-top: 2rem;}
/* Accanto a "Studia il percorso", sulla stessa riga e centrato in verticale. */
.home-final .home-routes__actions .home-routes__all {margin-top: 0;}

.home-final .home-routes__map {min-width: 0; margin: 0;}
.home-final .home-routes__trace {display: block; width: 100%; height: auto; max-height: min(62svh, 560px); overflow: visible;}
/* Sagoma RaceLab in un riquadro 100x100: spessori in unita del disegno (niente non-scaling-stroke,
   che rompe il tratteggio dell'animazione con pathLength="1"); la linea va da ~3px (smartphone) a ~4,7px (desktop). */
.home-final .home-routes__trace path {fill: none; stroke-linecap: round; stroke-linejoin: round;}
.home-final .home-routes__trace-casing {stroke: var(--bg-dark); stroke-width: 1.8;}
.home-final .home-routes__trace-line {stroke: var(--mtb-sky); stroke-width: .85;}

/* Un solo momento di movimento: la traccia si disegna quando la sezione diventa la tappa attiva. */
@media (prefers-reduced-motion: no-preference) {
  .home-final .home-routes.is-pagex-active :is(.home-routes__trace-line, .home-routes__trace-casing) {stroke-dasharray: 1; animation: home-trace-draw 3.6s var(--ease-shift) both;}
}
@keyframes home-trace-draw { from {stroke-dashoffset: 1;} to {stroke-dashoffset: 0;} }

/* COSA VUOI FARE ADESSO: titolo e elenco di scorciatoie su carta, allineati in alto. */
/* Stesso ritmo delle altre sezioni: fascia --home-band e titolo-contenuto come "Da non perdere". */
.home-final .home-actions-section {background: var(--mtb-paper);}
.home-final .home-actions-layout {display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; gap: var(--home-head-gap) var(--home-gap);}
/* Scorciatoie come elenco pulito: due colonne di voci separate solo da linee sottili orizzontali,
   etichetta e freccia (altra pagina MTBonline); al passaggio colore unico dei link e freccia che avanza. */
.home-final .home-actions {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--home-gap);}
.home-final .home-actions > a {min-width: 0; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; color: var(--mtb-ink); text-decoration: none; border-bottom: 1px solid var(--mtb-rule); transition: color .2s ease;}
.home-final .home-actions > a:nth-child(-n+2) {border-top: 1px solid var(--mtb-rule);}
.home-final .home-actions strong {font: var(--weight-bold) var(--step-md)/1.2 var(--font-display);}
.home-final .home-actions .mtb-icon {transition: transform .2s ease;}
.home-final .home-actions > a:is(:hover, :focus-visible) {color: var(--color-link-on-dark);}
.home-final .home-actions > a:is(:hover, :focus-visible) .mtb-icon {transform: translateX(4px);}

/* MANIFESTO: fascia fotografica */
.home-final .home-brand {position: relative; min-height: 0; overflow: hidden; color: var(--mtb-paper); background: var(--mtb-night);}
.home-final .home-brand > img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 54%;}
.home-final .home-brand::after {content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(var(--bg-dark-rgb) / .88), rgb(var(--bg-dark-rgb) / .5) 55%, rgb(var(--bg-dark-rgb) / .72));}
/* Due colonne (titolo e frase | manifesto) allineate in alto sulla stessa linea orizzontale. */
.home-final .home-brand__content {position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: var(--home-gap); padding-block: var(--home-band);}
.home-final .home-brand__lead .section-title {max-width: 20ch; color: var(--mtb-paper); font-size: var(--step-3xl); line-height: 1; text-wrap: balance;}
/* Ritmo su passi di 8px: titolo-testi 16, paragrafi del manifesto 16, frase-manifesto su smartphone 32;
   testi tutti 16px/1.6 cosi le righe cadono sulla stessa griglia. */
.home-final .home-brand__lead p {max-width: 36ch; margin: 1rem 0 0; color: rgb(var(--color-white-rgb) / .86); font-size: var(--step-base); line-height: 1.6;}
.home-final .home-brand__cta {color: var(--mtb-paper); background: transparent; border: 1px solid rgb(var(--color-white-rgb) / .7); border-radius: var(--radius-pill); padding-inline: 1.35rem;}
.home-final .home-brand__cta:is(:hover, :focus-visible) {color: var(--mtb-ink); background: var(--mtb-paper); border-color: var(--mtb-paper);}
.home-final .home-brand__manifesto {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2.5rem; color: rgb(var(--color-white-rgb) / .86); font-size: var(--step-base); line-height: 1.6;}
.home-final .home-brand__manifesto p {margin: 0;}

@media (min-width: 992px) {
  .home-editorial__content,
  .home-editorial__nav {padding-inline: 3rem;}
}

@media (min-width: 1400px) {
  .home-editorial__content,
  .home-editorial__nav {padding-inline: max(3rem, calc((100vw - 1400px) / 2 + 3rem));}
}

@media (max-width: 991.98px) {
  .home-final .home-stories__rail {grid-template-columns: 1fr;}
  .home-final .home-story:first-child {grid-row: auto; margin-bottom: 1.5rem;}
  .home-final .home-story:nth-child(2) .home-story__link {padding-top: 1.25rem; border-top: 1px solid var(--mtb-rule);}
  .home-final .home-routes__layout {grid-template-columns: 1fr;}
  .home-final .home-routes__copy {max-width: none;}
  .home-final .home-routes__trace {max-height: 40svh; margin-inline: auto;}
  .home-final .home-actions-layout {grid-template-columns: 1fr;}
  .home-final .home-brand__content {grid-template-columns: 1fr; gap: 2rem;}
}

/* Sotto i 992px l'altimetria diventa uno slider orizzontale: su tablet le etichette non si sovrappongono. */
@media (max-width: 991.98px) {
  .home-final .home-season__scroller {margin-inline: -1rem; padding-inline: 1rem; scroll-snap-type: x proximity;}
  .home-final .home-profile {min-width: 920px;}
  .home-final .home-profile__stop {scroll-snap-align: center;}
  .home-final .home-season__hint {display: block; margin: .5rem 0 0; color: var(--mtb-muted); font-size: var(--step-sm);}
}

@media (max-width: 767.98px) {
  .home-final .home-season__next {width: 100%; box-sizing: border-box; grid-template-columns: minmax(0, 1fr); gap: 1rem;}
  .home-final .home-routes__stats dd {font-size: var(--step-2xl);}
}

@media (max-width: 575.98px) {
  .home-editorial__slide {min-height: clamp(520px, 82svh, 720px);}
  .home-editorial__summary {overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; font-size: var(--step-base);}
  .home-editorial__choices {gap: .75rem;}
  .home-editorial__short {display: none;}
  /* Smartphone: miniatura accanto a categoria e titolo (alta quanto loro), sommario sotto a tutta larghezza. */
  .home-final .home-story:not(:first-child) .home-story__link {grid-template-columns: 104px minmax(0, 1fr); grid-template-areas: "image meta" "image title" "summary summary";}
  .home-final .home-story:not(:first-child) img {align-self: start; min-height: clamp(72px, 100%, 140px);}
  .home-final .home-actions {grid-template-columns: 1fr;}
  .home-final .home-actions > a:nth-child(2) {border-top: 0;}
  .home-final .home-brand__manifesto {grid-template-columns: 1fr;}
  .home-final .home-routes__stats {grid-template-columns: repeat(2, minmax(0, auto));}
}

/* Smartphone stretti: una parola lunga del titolo (17 caratteri) resta intera. */
@media (max-width: 359.98px) {
  .home-final #home-hero-section .display-title {font-size: 1.75rem;}
}

@media (prefers-reduced-motion: reduce) {
  .home-final :is(.home-editorial__choices button, .home-season__next, .home-profile__event strong, .home-story__title, .home-section-link, .home-actions > a, .home-actions .mtb-icon) {transition: none;}
  .home-final .home-actions > a:is(:hover, :focus-visible) .mtb-icon {transform: none;}
}
