.official-docs { padding: 34px 36px; }
.official-docs__layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(360px, .85fr); gap: 36px; align-items: start; }
.official-docs__copy { min-width: 0; }
.official-docs__copy .section-kicker { margin-bottom: 8px; }
.official-docs__copy h2 { margin: 0 0 22px; max-width: 680px; font-size: clamp(1.8rem, 3.5vw, 2.8rem); line-height: 1.08; }
.event-program { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; color: var(--muted); line-height: 1.5; }
.event-program li { position: relative; padding: 14px 16px 14px 48px; border-radius: 15px; background: rgba(31,99,135,.055); }
.event-program li::before { position: absolute; left: 16px; top: 14px; color: var(--sand-500); font-weight: 900; content: "→"; }
.event-program strong { color: var(--navy-900); }
.booking-coming-soon { color: var(--navy-820); font-weight: 800; }
.fic-link { display: flex; align-items: flex-start; gap: 18px; width: 100%; min-width: 0; max-width: none; padding: 22px; border: 1px solid rgba(16,34,53,.1); border-radius: 20px; background: rgba(255,255,255,.9); box-shadow: 0 12px 28px rgba(4,17,31,.08); }
.fic-link img { width: 82px; height: 68px; object-fit: contain; flex: 0 0 auto; }
.fic-link__text { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.fic-link__text strong { color: var(--navy-940); font-size: 1rem; }
.fic-link__description { color: var(--muted) !important; font-size: .9rem !important; font-weight: 400 !important; letter-spacing: normal !important; line-height: 1.5; text-transform: none !important; }
.fic-link__actions { display: flex; flex-direction: column; gap: 7px; margin-top: 2px; }
.fic-link__actions a { color: var(--navy-820); font-size: .86rem; font-weight: 800; letter-spacing: normal; text-transform: none; }
.fic-link__actions a:hover,.fic-link__actions a:focus-visible { text-decoration: underline; }
.quick-links a { position: relative; display: grid; grid-template-columns: auto 38px minmax(0, 1fr); align-items: center; gap: 12px; }
.quick-links .quick-links__number { color: var(--sand-500); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.1em; }
.quick-links .quick-links__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; color: var(--navy-820); background: rgba(31, 99, 135, 0.09); font-size: initial; letter-spacing: normal; }
.quick-links .quick-links__icon svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.race-map { overflow: hidden; border: 1px solid rgba(16, 34, 53, 0.1); border-radius: 26px; background: rgba(255, 255, 255, 0.9); box-shadow: 0 14px 34px rgba(4, 17, 31, 0.07); }
.race-map__image-link { display: block; background: #fff; cursor: zoom-in; }
.race-map__image-link img { display: block; width: 100%; height: auto; }
.race-map__actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 20px; }
.race-map__actions > span { color: var(--muted); font-size: 0.86rem; }
.race-map__logistics-link { flex: 0 0 auto; color: var(--navy-820); font-size: 0.86rem; font-weight: 800; letter-spacing: 0.03em; }
.race-map__logistics-link:hover,.race-map__logistics-link:focus-visible { text-decoration: underline; }
.race-office__card { border-top: 5px solid #d68628; }
.race-office__card small { color: #d68628; }
.race-office__card b { color: var(--navy-900); }

/* Hero info gare */
.subpage-hero--race { align-items: flex-start; padding-top: 34px; }
.subpage-hero--race .subpage-hero__content { max-width: none; width: 100%; }
.subpage-hero--race #page-title { white-space: nowrap; font-size: clamp(3.8rem, 6.2vw, 5.8rem); }
.subpage-hero--race .eyebrow { margin-top: 0; }

/* Segreteria e mappa */
.race-office__location { display: flex; align-items: center; gap: 14px; }
.race-office__map-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--navy-820); font-size: .88rem; font-weight: 850; }
.race-office__map-link img { width: 22px; height: 22px; object-fit: contain; }
.race-office__map-link:hover,.race-office__map-link:focus-visible { text-decoration: underline; }

.hospitality__heading { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 26px; }
.hospitality__heading > div { max-width: none; min-width: 0; flex: 1 1 auto; }
.hospitality__heading h2 { margin-bottom: 12px; }
.hospitality__heading > div > p:last-child { margin: 0; color: var(--muted); line-height: 1.65; }
.hospitality__logo { width: min(190px, 25vw); max-height: 90px; object-fit: contain; border-radius: 10px; }
.hospitality__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.hospitality__grid article { padding: 24px; border: 1px solid rgba(16,34,53,.09); border-radius: 20px; background: rgba(255,255,255,.82); }
.hospitality__grid small { display: block; margin-bottom: 8px; color: var(--sand-500); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.hospitality__grid strong { display: block; margin-bottom: 10px; color: var(--navy-900); font-size: 1.12rem; }
.hospitality__grid p { margin: 0; color: var(--muted); line-height: 1.55; }
.hospitality__contacts { margin-top: 10px !important; }
.contact-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 6px; color: var(--navy-820); font-weight: 800; text-decoration: none; }
.contact-link:hover,.contact-link:focus-visible { text-decoration: underline; }
.contact-icon { display: inline-grid; place-items: center; width: 22px; height: 22px; flex: 0 0 auto; }
.contact-icon img { display: block; width: 20px; height: 20px; object-fit: contain; }
.contact-link--whatsapp { color: #1f7a4d; }
.hospitality__downloads { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 20px; padding: 22px 24px; border-radius: 20px; background: rgba(31,99,135,.08); }
.hospitality__downloads strong { color: var(--navy-900); }
.hospitality__downloads p { margin: 5px 0 0; color: var(--muted); }
.hospitality__actions { display: flex; flex: 0 0 auto; gap: 10px; flex-wrap: wrap; }

/* Blocco contatti */
.help-band--contacts { align-items: center; gap: 34px; }
.help-band--contacts .help-band__brand { min-width: 0; }
.help-band--contacts .help-band__brand .eyebrow { display: inline-flex; align-items: center; justify-content: center; width: max-content; min-width: 180px; min-height: 38px; margin: 0 0 10px; padding: 7px 18px; text-align: center; }
.help-band--contacts .help-band__brand h2 { margin: 0 0 12px; }
.help-band__info-row { display: flex; align-items: center; gap: 20px; width: fit-content; max-width: 100%; }
.help-band__info-copy { display: flex; flex-direction: column; gap: 5px; width: fit-content; max-width: 760px; }
.help-band__info-copy p,.help-band__info-copy small { margin: 0; line-height: 1.28; }
.help-band__logo-link { display: inline-flex; flex: 0 0 96px; width: 96px; height: 96px; align-items: center; justify-content: center; border-radius: 50%; }
.help-band__logo-link img { display: block; width: 96px; height: 96px; object-fit: contain; border-radius: 50%; }
.help-band__logo-link:hover img,.help-band__logo-link:focus-visible img { transform: scale(1.03); }
.help-band__logo-link img { transition: transform 150ms ease; }

@media (min-width: 1181px) {
  #campo-gara .info-section__heading,
  #logistica .info-section__heading { max-width: none; }
  #campo-gara .info-section__heading > p:last-child,
  #logistica .info-section__heading > p:last-child,
  .hospitality__heading > div > p:last-child { white-space: nowrap; font-size: .98rem; }
}

@media (max-width: 980px) { .official-docs__layout { grid-template-columns: 1fr; } .fic-link { max-width: 680px; } }
@media (max-width: 820px) {
  .subpage-hero--race { padding-top: 28px; }
  .subpage-hero--race #page-title { white-space: normal; font-size: clamp(3rem, 11vw, 4.8rem); }
  .race-map__actions { align-items: flex-start; flex-direction: column; }
  .hospitality__heading { align-items: flex-start; flex-direction: column; }
  .hospitality__logo { width: 170px; }
  .hospitality__grid { grid-template-columns: 1fr; }
  .hospitality__downloads { align-items: flex-start; flex-direction: column; }
  .help-band__info-copy { max-width: 620px; }
  .help-band__logo-link,.help-band__logo-link img { width: 82px; height: 82px; flex-basis: 82px; }
}
@media (max-width: 560px) {
  .official-docs { padding: 26px 20px; }
  .event-program li { padding-left: 42px; }
  .fic-link { flex-direction: column; }
  .quick-links a { grid-template-columns: auto 34px minmax(0, 1fr); }
  .quick-links .quick-links__icon { width: 34px; height: 34px; }
  .hospitality__actions { width: 100%; }
  .hospitality__actions .button { flex: 1 1 auto; text-align: center; }
  .help-band__info-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .help-band__logo-link,.help-band__logo-link img { width: 72px; height: 72px; flex-basis: 72px; }
}