/* Homepage only. Existing tokens, navigation and public route pages stay shared. */
.home-page .public-header { max-width: none; padding-inline: max(24px, calc((100vw - 1280px) / 2)); }
.home-page .public-header .public-brand { font-size: 1.5rem; text-decoration: none; }
.home-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.home-hero { position: relative; isolation: isolate; background: var(--trilho-forest); color: var(--trilho-surface); }
.home-hero-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 62% 43%; }
.home-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(13 25 19 / 88%) 0%, rgb(13 25 19 / 65%) 43%, rgb(13 25 19 / 12%) 100%); }
.home-hero-inner { max-width: 1280px; margin: auto; padding: clamp(56px, 6vw, 88px) 24px 64px; }
.home-hero h1 { margin: 20px 0; font-size: clamp(3rem, 5.8vw, 5.5rem); line-height: 1.04; letter-spacing: -.045em; font-weight: 600; }
.home-hero h1 em, .home-feature h2 em { font-family: var(--trilho-font-editorial); font-weight: 400; }
.home-intro { margin: 24px 0 30px; font-size: 1.125rem; max-width: 35ch; }
.home-search { max-width: 610px; }
.home-search-row { display: flex; padding: 6px; gap: 6px; background: var(--trilho-surface); border-radius: var(--trilho-radius-control); }
.home-search-row .trilho-input { border: 0; flex: 1; width: 0; }
.home-search-row .trilho-button { flex-shrink: 0; }
.home-activities { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; border: 0; }
.home-activities label { position: relative; }
.home-activities input { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); }
.home-activities span { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 16px; border: 1px solid rgb(255 255 255 / 50%); border-radius: var(--trilho-radius-control); cursor: pointer; background: rgb(13 25 19 / 65%); font-size: .875rem; }
.home-activities input:checked + span { color: var(--trilho-forest); background: var(--trilho-surface); border-color: var(--trilho-surface); }
.home-activities input:disabled + span { opacity: .5; cursor: not-allowed; }
.home-activities input:focus-visible + span { outline: 3px solid var(--trilho-rust); outline-offset: 3px; }
.home-search-help { font-size: .75rem; max-width: 65ch; }
.home-plan { display: inline-flex; gap: 24px; align-items: center; min-height: 48px; color: inherit; text-underline-offset: 6px; font-weight: 500; }
.home-hero-caption { position: absolute; right: 32px; bottom: 24px; font-size: .75rem; letter-spacing: .06em; }
.home-content { max-width: 1280px; padding-inline: 24px; margin: auto; }
.home-section { padding-block: clamp(48px, 6vw, 80px); }
.home-section h2 { margin: 10px 0 24px; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 500; line-height: 1.15; letter-spacing: -.035em; }
.home-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.home-text-link { display: inline-flex; align-items: center; min-height: 44px; gap: 24px; color: var(--trilho-ink); text-decoration-thickness: 1px; text-underline-offset: 5px; font-size: .875rem; font-weight: 600; }
.home-nearby { display: flex; justify-content: space-between; gap: 32px; align-items: center; margin-bottom: 24px; }
.home-nearby > p { color: var(--trilho-muted); font-size: .875rem; max-width: 53ch; margin: 0; }
.home-nearby-form { display: flex; gap: 8px; flex-shrink: 0; }
.home-nearby-form input { max-width: 250px; }
#nearby-summary:not(:empty) { margin-bottom: 16px; }
.home-route-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; border: 0; }
.home-route-list .public-route-link { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 24px 0; border-top: 1px solid var(--trilho-ink); border-bottom: 1px solid var(--trilho-border); min-height: 195px; }
.home-route-list .public-route-link > span { margin-top: auto; align-self: flex-end; }
.home-route-list .public-route-link h3 { font-size: 1.45rem; font-weight: 500; letter-spacing: -.02em; margin-block: 12px; }
.home-moods { border-top: 1px solid var(--trilho-border); }
.home-mood-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 32px; }
.home-mood-list a { position: relative; padding: 0 24px; border-left: 1px solid var(--trilho-border); color: inherit; text-decoration: none; }
.home-mood-list a:first-child { border: 0; padding-left: 0; }
.home-mood-number { font-size: .75rem; color: var(--trilho-muted); }
.home-mood-list h3 { font-family: var(--trilho-font-editorial); font-size: clamp(1.3rem,2.1vw,1.9rem); font-weight: 400; line-height: 1.15; margin: 18px 0 12px; }
.home-mood-list p { font-size: .875rem; color: var(--trilho-muted); }
.home-mood-arrow { display: block; margin-top: 24px; }
.home-mood-list a:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
.home-feature { display: grid; grid-template-columns: 1.2fr 1fr; background: var(--trilho-forest); color: var(--trilho-surface); }
.home-feature figure { margin: 0; position: relative; min-height: 530px; }
.home-feature img { display: block; width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: 50% 50%; }
.home-feature figcaption { position: absolute; bottom: 0; padding: 8px 12px; font-size: .625rem; background: rgb(13 25 19 / 85%); }
.home-feature figcaption a { color: inherit; text-underline-offset: 2px; }
.home-feature-copy { padding: clamp(24px,4vw,56px); align-self: center; }
.home-feature h2 { font-size: clamp(2.5rem,4.5vw,4rem); line-height: 1.1; letter-spacing: -.035em; font-weight: 500; margin: 20px 0; }
.home-feature-copy > p:not(.trilho-eyebrow) { max-width: 34ch; }
.home-feature-copy .trilho-button { margin-top: 16px; }
.home-feature-routes a { display: block; min-height: 44px; padding: 12px 0; border-bottom: 1px solid rgb(255 255 255 / 25%); color: inherit; text-underline-offset: 4px; overflow-wrap: anywhere; }
.home-feature-routes:not(:empty) { margin-top: 24px; }
.home-feature-status { font-size: .75rem; }
.home-notes-aside { font-family: var(--trilho-font-editorial); font-style: italic; color: var(--trilho-muted); }
.home-notes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; margin-top: 24px; }
.home-notes-grid article { border-top: 1px solid var(--trilho-border); padding-top: 24px; }
.home-notes-grid h3 { font-family: var(--trilho-font-editorial); font-weight: 400; font-size: 1.75rem; line-height: 1.25; margin-block: 16px; }
.home-notes-grid article > p:not(.trilho-eyebrow) { color: var(--trilho-muted); max-width: 49ch; }
.home-page .public-footer { max-width: 1232px; border-top: 1px solid var(--trilho-border); padding-inline: 0; }
@media (max-width: 800px) {
  .home-hero-caption { display: none; }
  .home-nearby { align-items: stretch; flex-direction: column; gap: 16px; }
  .home-nearby-form input { flex: 1; max-width: none; }
  .home-feature { grid-template-columns: 1fr; }
  .home-feature figure { min-height: 0; aspect-ratio: 16 / 10; }
  .home-feature-copy { padding: 32px; }
  .home-mood-list { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .home-mood-list a:nth-child(3) { border-left: 0; padding-left: 0; }
  .home-route-list { gap: 20px; }
  .home-page .public-footer { margin-inline: 24px; }
}
@media (max-width: 600px) {
  .home-page .public-header { padding-inline: 20px; }
  .home-page .public-header .public-brand { font-size: 1.2rem; }
  .home-page .public-header .trilho-button { padding-inline: 12px; font-size: .8125rem; }
  .home-hero-inner { padding: 48px 20px 32px; }
  .home-hero-photo { object-position: 63% 42%; }
  .home-hero::after { background: linear-gradient(90deg,rgb(13 25 19 / 88%),rgb(13 25 19 / 55%)); }
  .home-intro { font-size: 1rem; }
  .home-search-row { flex-wrap: wrap; }
  .home-search-row .trilho-input { width: 100%; flex-basis: 100%; }
  .home-search-row .trilho-button { width: 100%; }
  .home-activities { gap: 5px; }
  .home-activities span { padding-inline: 10px; font-size: .8125rem; }
  .home-content { padding-inline: 20px; }
  .home-section-heading { gap: 0 16px; }
  .home-route-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 4px 16px; margin-inline: -4px; }
  .home-route-list .public-route-link { flex: 0 0 84%; scroll-snap-align: start; }
  .home-mood-list a { padding-right: 8px; padding-left: 16px; }
  .home-mood-list h3 { font-size: 1.5rem; }
  .home-notes-grid { grid-template-columns: 1fr; gap: 28px; }
  .home-feature-copy { padding: 28px 24px; }
  .home-feature figcaption { font-size: .5625rem; }
  .home-page .public-footer { margin-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) { .home-route-list { scroll-behavior: auto; scroll-snap-type: none; } }
@media (forced-colors: active) { .home-hero::after { display: none; } .home-activities input:checked + span { outline: 2px solid Highlight; } }
.home-nearby-form .trilho-button { flex-shrink: 0; white-space: nowrap; }
