/* Discovery homepage only; shared marketing and explorer styles remain independent. */
.home-page {
  --red: oklch(0.50 0.17 28);
  --red-dark: oklch(0.43 0.15 28);
  --home-accent-on-dark: oklch(0.77 0.12 28);
  overflow-x: visible;
}
.home-page ::selection { background: var(--paper-blue); color: var(--ink); }
.home-page svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.home-page .site-header nav a { display: inline-flex; align-items: center; min-height: 44px; }
.home-page .nav-action { padding: 12px 16px; }
.home-page .hero { min-height: 0; gap: clamp(32px, 5vw, 80px); padding-block: clamp(48px, 5vw, 72px); }
.home-page .hero h1 { max-width: 14ch; font-size: clamp(2.7rem, 4.5vw, 4.75rem); line-height: 1.06; letter-spacing: -0.03em; }
.home-page .hero-lede { max-width: 48ch; margin: 24px 0 32px; font-size: clamp(1.1rem, 1.6vw, 1.25rem); }
.home-search { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; max-width: 580px; }
.home-search label { color: var(--white); font-weight: 650; }
.home-search input { min-width: 0; width: 100%; min-height: 56px; padding: 14px 16px; border: 1px solid var(--blue-line); border-radius: 2px; background: var(--paper); color: var(--ink); font: inherit; font-size: 1.06rem; caret-color: var(--red-dark); }
.home-search input::placeholder { color: var(--quiet); opacity: 1; }
.home-search .primary-action { width: 100%; min-height: 56px; cursor: pointer; }
.home-page .action-proof { max-width: 60ch; font-size: 0.94rem; font-weight: 400; }
.home-page .action-proof a { color: var(--white); text-underline-offset: 4px; }
.home-guide { align-self: center; min-width: 0; padding: clamp(24px, 3vw, 40px); background: var(--paper); color: var(--ink); }
.home-guide h2 { max-width: 15ch; margin-bottom: 24px; font-size: clamp(2rem, 3.1vw, 3rem); line-height: 1.08; }
.home-city-links { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 24px; }
.home-city-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding-block: 14px; border-bottom: var(--rule); color: var(--ink); font-size: 1.05rem; font-weight: 650; text-underline-offset: 4px; }
.home-all-cities, .home-text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; color: var(--red-dark); font-weight: 650; text-underline-offset: 4px; }
.home-all-cities { margin-top: 20px; }
.home-browse, .home-places, .home-owners { padding: clamp(48px, 6vw, 88px) clamp(20px, 5vw, 80px); }
.home-browse { background: var(--paper-blue); }
.home-browse h2 { max-width: 24ch; margin-bottom: 32px; font-size: clamp(2rem, 3.3vw, 3.2rem); line-height: 1.08; }
.home-categories { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 32px; }
.home-categories a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding-block: 16px; gap: 16px; border-bottom: 1px solid var(--blue-line); color: var(--ink); font-size: 1.1rem; text-underline-offset: 5px; }
.home-places { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); background: var(--paper); }
.home-places h2, .home-owners h2 { max-width: 15ch; font-size: clamp(2rem, 3.3vw, 3.2rem); line-height: 1.08; }
.home-places p, .home-owners p { max-width: 60ch; margin: 24px 0 12px; color: var(--body); font-size: 1.08rem; line-height: 1.65; }
.home-places-list { min-width: 0; }
.home-places-list > a { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 104px; padding: 24px 0; border-bottom: var(--rule); text-decoration: none; }
.home-places-list > a:first-child { padding-top: 0; }
.home-places-list h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.2; letter-spacing: -0.02em; text-decoration: underline; text-underline-offset: 5px; }
.home-places-list p { margin: 10px 0 0; color: var(--quiet); font-size: 1rem; }
.home-owners { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); background: var(--paper-blue); }
.home-owners p { margin-top: 0; }
.home-owner-links { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 20px; }
.home-owner-links a { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; color: var(--red-dark); font-weight: 650; text-underline-offset: 4px; }
.home-footer-details { min-width: 0; }
.home-footer-details details { margin-top: 12px; color: var(--quiet); font-size: 0.9rem; }
.home-footer-details summary { display: list-item; width: fit-content; min-height: 44px; padding-block: 12px; cursor: pointer; }
.home-footer-details details p { margin-top: 8px; }
.home-page .site-header a:focus-visible, .home-page .hero a:focus-visible,
.home-page .home-search input:focus-visible, .home-page .home-search button:focus-visible { outline-color: var(--white); }
.home-page .home-guide a:focus-visible { outline-color: var(--ink); }
@media (min-width: 941px) {
  .home-page .hero { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
}
@media (max-width: 940px) {
  .home-guide { width: 100%; }
  .home-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-places, .home-owners { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .home-city-links, .home-categories { grid-template-columns: minmax(0, 1fr); }
  .home-page .hero { gap: 40px; }
}
