        .map-page .content {
            height: auto;
            min-height: 0;
            overflow: visible;
        }

        .map-page .page {
            min-height: 0;
            padding: 0;
            position: relative;
        }

        .map-hero {
            height: calc(100vh - var(--ny-topbar-h));
            min-height: 540px;
            position: relative;
        }

        /* The theme's animated blurred ornaments are expensive over a map
           whose canvas changes continuously. Keep the shell, without forcing
           a full-page GPU repaint for decoration. */
        .map-page .sidebar::before,
        .map-page .sidebar > .sidebar-inner::before,
        .map-page .menu > li.active > a::before {
            animation: none !important;
            filter: none !important;
        }

        .map-page .topbar {
            backdrop-filter: none;
            -webkit-backdrop-filter: none;
        }

        #map {
            height: 100%;
            width: 100%;
        }

        .map-discover-link {
            align-items: center;
            backdrop-filter: blur(12px);
            background: rgba(26, 29, 53, .88);
            border: 1px solid rgba(255, 255, 255, .18);
            border-radius: 999px;
            bottom: 1.25rem;
            box-shadow: 0 8px 28px rgba(15, 23, 42, .28);
            color: #fff;
            display: inline-flex;
            font-size: .82rem;
            font-weight: 700;
            gap: .45rem;
            left: 50%;
            padding: .7rem 1rem;
            position: absolute;
            transform: translateX(-50%);
            z-index: 1000;
        }

        .map-discover-link:hover {
            color: #fff;
            transform: translateX(-50%) translateY(-2px);
        }

        .home-introduction {
            background: var(--ny-bg);
            padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 5vw, 5rem);
        }

        .home-introduction-inner {
            margin: 0 auto;
            max-width: 1180px;
        }

        .home-introduction h1 {
            font-size: clamp(2rem, 5vw, 3.7rem);
            max-width: 900px;
        }

        .home-introduction .intro-lead {
            color: var(--ny-muted);
            font-size: clamp(1rem, 2vw, 1.2rem);
            line-height: 1.8;
            max-width: 820px;
        }

        .home-feature-grid {
            display: grid;
            gap: 1rem;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            margin: 2.5rem 0;
        }

        .home-feature {
            background: var(--ny-card);
            border: 1px solid var(--ny-border);
            border-radius: var(--ny-radius);
            padding: 1.5rem;
        }

        .home-feature i {
            color: var(--ny-primary);
            display: block;
            font-size: 1.75rem;
            margin-bottom: .8rem;
        }

        .home-feature p,
        .home-copy p,
        .home-section p,
        .home-section li {
            color: var(--ny-muted);
            line-height: 1.75;
        }

        .home-section {
            margin-top: clamp(3rem, 7vw, 5.5rem);
        }

        .home-section-heading {
            max-width: 800px;
        }

        .home-section-heading h2 {
            font-size: clamp(1.65rem, 3vw, 2.35rem);
        }

        .home-step-grid {
            display: grid;
            gap: 1rem;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            margin-top: 1.5rem;
        }

        .home-step {
            background: var(--ny-card);
            border: 1px solid var(--ny-border);
            border-radius: var(--ny-radius);
            padding: 1.5rem;
        }

        .home-step-number {
            align-items: center;
            background: rgba(var(--bs-primary-rgb), .12);
            border-radius: 50%;
            color: var(--ny-primary);
            display: inline-flex;
            font-weight: 800;
            height: 2.25rem;
            justify-content: center;
            margin-bottom: 1rem;
            width: 2.25rem;
        }

        .home-link-panel {
            align-items: center;
            background: linear-gradient(135deg, rgba(91, 61, 240, .11), rgba(20, 184, 166, .08));
            border: 1px solid var(--ny-border);
            border-radius: var(--ny-radius);
            display: flex;
            gap: 2rem;
            justify-content: space-between;
            margin-top: 2.5rem;
            padding: clamp(1.5rem, 4vw, 2.5rem);
        }

        .home-copy {
            display: grid;
            gap: 2.5rem;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            margin-top: 3rem;
        }

        #map-search-bar {
            display: none;
            left: 50%;
            max-width: min(620px, calc(100% - 2rem));
            position: absolute;
            top: 1rem;
            transform: translateX(-50%);
            width: 100%;
            z-index: 1000;
        }

        .base-map {
            filter:
                brightness(55%)
                saturate(45%)
                contrast(90%);
        }

        #map-details {
            --bs-offcanvas-width: min(440px, 92vw);
        }

        #map-details .offcanvas-body {
            line-height: 1.75;
        }

        #map-details .timeline {
            margin-top: 1rem;
        }

        #map-details .timeline-item {
            padding-bottom: 1.15rem;
        }

        #map-details .service-summary-row {
            align-items: center;
            display: grid;
            gap: .75rem;
            grid-template-columns: 76px minmax(0, 1fr);
            margin-bottom: .65rem;
        }

        #map-details .service-summary-row .badge {
            justify-self: start;
        }

        #map-details .station-board-row {
            align-items: start;
            border-bottom: 1px solid var(--ny-border-soft);
            display: grid;
            gap: .75rem;
            grid-template-columns: 48px minmax(0, 1fr) auto;
            padding: .7rem 0;
        }

        #map-details .station-board-row:last-child {
            border-bottom: 0;
        }

        @media (max-width: 991.98px) {
            .map-page .content {
                margin-left: 0;
            }
        }

        @media (max-width: 767.98px) {
            .map-hero {
                height: calc(100svh - var(--ny-topbar-h));
                min-height: 0;
            }

            .map-discover-link {
                bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
            }

            #map-search-bar {
                display: block;
            }

            .home-feature-grid,
            .home-copy,
            .home-step-grid {
                grid-template-columns: 1fr;
            }

            .home-link-panel {
                align-items: flex-start;
                flex-direction: column;
            }
        }
