/* Landing rifugi: estensione del tema Bussola. Nessun contenuto nascosto da JS. */
.rf { margin: 0; }
.rf-container { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.rf a:focus-visible { outline: 3px solid var(--bs-primary-dark); outline-offset: 5px; }
.rf a:hover { text-decoration: underline; text-underline-offset: 4px; }
.rf-skip { position: absolute; top: -100px; z-index: 20; padding: 16px; background: white; }
.rf-skip:focus { top: 8px; }
.rf-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 32px 48px; color: var(--bs-ink-2); font-size: .875rem; }
.rf-breadcrumb a { text-decoration: underline; }
.rf-heading { max-width: 930px; margin-bottom: 48px; }
.rf-kicker { color: var(--bs-primary-dark); font-size: .875rem; font-weight: 700; letter-spacing: .12em; }
.rf h1 { margin: 16px 0 20px; font: 700 clamp(2.4rem, 5.3vw, 4.9rem)/1.06 var(--bs-display); letter-spacing: -.045em; overflow-wrap: break-word; }
.rf h1 em { font-family: var(--bs-serif); font-weight: 400; color: var(--bs-primary-dark); }
.rf h2 { font: 650 1.6rem/1.2 var(--bs-display); letter-spacing: -.025em; margin: 0 0 20px; }
.rf p { line-height: 1.7; }
.rf-location, .rf-intro { font-size: 1.15rem; color: var(--bs-ink-2); max-width: 650px; }
.rf-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; align-items: start; }
.rf-facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; margin: 0; padding: 28px 0; border-block: 1px solid var(--bs-line); }
.rf-facts dt { font-size: .875rem; color: var(--bs-ink-2); }
.rf-facts dd { margin: 6px 0 0; font: 600 1.25rem var(--bs-display); }
.rf-section { padding-block: 32px; border-bottom: 1px solid var(--bs-line); }
.rf-section p { margin: 0 0 16px; }
.rf-cta { position: sticky; top: 24px; padding: 30px; background: var(--bs-forest-dark); color: #fff; border-radius: var(--bs-radius-lg); }
.rf-cta .rf-kicker { color: #F5B49C; margin-top: 0; }
.rf-cta p:last-child { font-size: .875rem; color: #e0e5df; margin-bottom: 0; }
.rf .rf-map-link { display: block; padding: 24px; border-radius: var(--bs-radius-md); background: #e9ede7; color: var(--bs-forest-dark); font-weight: 650; }
.rf-coordinates { font-variant-numeric: tabular-nums; }
.rf-useful, .rf-nearby { list-style: none; margin: 0; padding: 0; }
.rf-useful li, .rf-nearby li { display: flex; justify-content: space-between; gap: 20px; padding-block: 13px; }
.rf-useful li > span:first-child, .rf-nearby li > span { color: var(--bs-ink-2); }
.rf-useful a, .rf-nearby a { text-decoration: underline; text-underline-offset: 4px; }
.rf-small, .rf-sources { font-size: .875rem; color: var(--bs-ink-2); }
.rf-sources { margin-block: 28px 60px; overflow-wrap: anywhere; }
.rf-sources summary { cursor: pointer; min-height: 44px; padding-block: 10px; }
.rf-sources a { text-decoration: underline; }
.rf-notice { padding: 24px; margin-top: 24px; background: #fff0da; border-left: 4px solid var(--bs-primary-dark); }
.rf-notice a { text-decoration: underline; }
.rf-notice h2 { font-size: 1.25rem; }
.rf-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-bottom: 72px; }
.rf-card { position: relative; border-top: 2px solid var(--bs-ink); padding: 28px 24px; background: var(--bs-surface); display: flex; flex-direction: column; }
.rf-card-number { font: 400 2rem var(--bs-serif); color: var(--bs-primary-dark); }
.rf-card h3 { font: 650 1.7rem/1.2 var(--bs-display); letter-spacing: -.025em; margin: 0 0 20px; }
.rf-card p:not(.rf-kicker) { color: var(--bs-ink-2); }
.rf .rf-card-link { margin-top: auto; padding-top: 12px; color: var(--bs-primary-dark); font-weight: 700; }
.rf-hero { margin: 0 0 40px; }
.rf-hero img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: cover; border-radius: var(--bs-radius-lg); }
.rf-hero figcaption { font-size: .875rem; margin-top: 12px; }
.rf-hero figcaption a { text-decoration: underline; }
@media (max-width: 850px) {
  .rf-layout { grid-template-columns: 1fr; gap: 24px; }
  .rf-cta { position: static; grid-row: 1; margin-bottom: 12px; }
  .rf-cta h2 br { display: none; }
}
@media (max-width: 560px) {
  .rf-container { width: calc(100% - 32px); }
  .rf-breadcrumb { margin-block: 24px 32px; }
  .rf-heading { margin-bottom: 32px; }
  .rf-grid { grid-template-columns: 1fr; }
  .rf-useful li { flex-direction: column; gap: 8px; }
  .rf-card { padding-inline: 20px; }
  .rf-cta { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) { .rf *, .rf *::before, .rf *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

.rf-access { list-style: none; padding: 0; margin: 0; }
.rf-access a { display: inline-block; padding-block: 12px; text-decoration: underline; text-underline-offset: 4px; }

/* Componenti condivisi con la home; qui solo adattamenti di impaginazione. */
.rf .bs-header__inner { height: auto; min-height: 72px; flex-wrap: wrap; padding-block: 16px; gap: 16px 36px; }
.rf .bs-header__nav { display: flex; flex-wrap: wrap; margin-left: 0; gap: 20px; }
.rf .bs-header__inner nav { margin-left: auto; }
.rf .bs-footer__links { flex-direction: row; flex-wrap: wrap; gap: 16px 28px; }
.rf-cta .bs-btn { display: flex; margin: 14px 0; }
@media (max-width: 560px) { .rf .bs-header__inner { padding-inline: 16px; } .rf .bs-header__inner nav { margin-left: 0; } }

.rf-sector-nav { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 24px; }
.rf-sector-nav a { padding-block: 10px; text-decoration: underline; text-underline-offset: 4px; }
.rf-section[id] { scroll-margin-top: 120px; }
.rf-section .rf-grid { margin-bottom: 0; }

/* Note sui tracciati: com'e' fatta la traccia (dove comincia, cosa non include).
   Volutamente NON somiglia a .rf-notice — quello e' il riquadro arancione degli avvisi
   del CAI, che parlano di chiusure e pericoli. Confondere le due cose ha gia' fatto
   leggere una nota di importazione GPX come una comunicazione ufficiale della sezione. */
.rf-route-notes { margin: 20px 0 0; font-size: .875rem; color: var(--bs-ink-2); }
.rf-route-notes__title { margin: 0 0 6px; font-weight: 700; }
.rf-route-notes ul { list-style: none; margin: 0; padding: 0; }
.rf-route-notes li { padding-block: 6px; line-height: 1.6; }
.rf-route-notes a { text-decoration: underline; text-underline-offset: 4px; }
