/* Home page layout: keep contact actions available across viewport sizes. */
.home-page .home-hero-grid { align-items: stretch; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); }
.home-page .hero-media-placeholder { min-width: 0; width: 100%; min-height: 0; height: auto; align-self: stretch; }
.home-page .review-card { grid-template-rows: auto 1fr auto; border-color: var(--color-border); box-shadow: none; }
.home-page .review-card a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 14px; border: 1px solid var(--color-secondary); border-radius: var(--border-radius-sm); text-align: center; transition: background var(--transition-speed), color var(--transition-speed), box-shadow var(--transition-speed); }
.home-page .review-card a:hover { color: var(--color-text-inverse); background: var(--color-secondary); box-shadow: var(--shadow-card); }
.home-page .review-card a:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
.home-page .review-card a:active { background: var(--color-secondary-hover); }
.route-node text { paint-order: stroke fill; stroke: var(--color-surface); stroke-width: 6px; stroke-linejoin: round; }
.route-node .route-hub-label, .route-node .route-hub-note { text-anchor: start; }
.route-selected-node text { fill: var(--color-text-inverse); font-size: 19px; }
.route-selected-label-bg { fill: var(--color-primary); stroke: var(--color-surface); stroke-width: 3px; }
.route-selected-node[hidden], .route-selected-marker[hidden] { display: none; }
.route-city-result strong { overflow-wrap: anywhere; }
.route-map-touch-hint { display: none; }
.route-map-zoom { margin: 16px 20px; }
.home-page .route-map-canvas.is-expanded { overflow: auto; max-height: 460px; overscroll-behavior: contain; }
.home-page .route-map-canvas.is-expanded .route-map-svg { width: 1200px; max-width: none; }
.route-map-canvas:focus-visible { outline: 3px solid var(--color-secondary); outline-offset: -3px; }
@media (max-width: 768px) {
  .home-page .cursor-car { display: none; }
  .home-page .home-hero-grid { grid-template-columns: minmax(0, 1fr); }
  .home-page .hero-media-placeholder { aspect-ratio: 4 / 3; min-height: 320px; }
  .home-page .route-city-result { border: 2px solid var(--color-secondary); }
  .home-page .route-map-canvas { display: block; padding: 12px 8px 0; }
  .home-page .route-map-svg { width: 100%; max-width: 100%; height: auto; }
  .home-page .route-mobile-list > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: start; }
  .home-page .route-mobile-list span { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
  .home-page .route-mobile-list b { font-size: 13px; line-height: 1.5; }
  .home-page .route-mobile-list b::after { content: "↓"; }
  .home-page .route-mobile-list .route-mobile-origin { justify-self: start; }
  .route-map-touch-hint { display: block; padding: 16px 20px 0; font-size: 13px; color: var(--color-text-secondary); }
}
