.results-map-column {
    position: sticky;
    top: calc(4.8rem + 1rem);
    min-width: 0;
    align-self: start;
}

.results-map-backdrop {
    display: none;
}

.results-map-panel {
    padding: 0.95rem;
    border: 1px solid var(--edu-border);
    border-radius: 1.3rem;
    background: var(--edu-map-panel-background);
    box-shadow: var(--edu-shadow-soft);
}

.results-map-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.results-map-panel-copy {
    display: grid;
    gap: 0.15rem;
}

.results-map-eyebrow {
    margin: 0;
    color: var(--edu-secondary);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.results-map-title {
    margin: 0;
    color: var(--edu-ink);
    font-size: 1.14rem;
    line-height: 1.2;
}

.results-map-copy {
    margin: 0;
    color: var(--edu-ink-soft);
    font-size: 0.86rem;
    line-height: 1.5;
}

.results-map-summary {
    margin: 0.12rem 0 0;
    color: var(--edu-ink);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.35;
}

.results-map-close {
    display: none;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.55rem 0.9rem;
    border: 1px solid var(--edu-border);
    border-radius: var(--radius-pill);
    background: var(--edu-surface);
    color: var(--edu-ink);
    font: inherit;
    font-weight: 600;
}

.results-map-status {
    margin: 0 0 0.8rem;
    color: var(--edu-ink-soft);
    font-size: 0.86rem;
    line-height: 1.4;
}

.results-map-status.is-hidden {
    display: none;
}

.results-map-status.is-error {
    color: var(--edu-map-status-error);
}

.results-map-canvas {
    min-height: 24rem;
    border: 1px solid var(--edu-map-canvas-border);
    border-radius: 1.1rem;
    overflow: hidden;
    background: var(--edu-map-canvas-background);
}

.results-map-note {
    margin: 0.8rem 0 0;
    color: var(--edu-ink-soft);
    font-size: 0.82rem;
    line-height: 1.5;
}

.results-map-mobile-toggle {
    display: none;
}

.results-map-panel .maplibregl-popup {
    z-index: 3;
}

.results-map-panel .maplibregl-popup-content {
    width: max-content;
    max-width: min(18.75rem, calc(100vw - 3rem));
    padding: 0.9rem;
    border: 1px solid var(--edu-map-popup-border);
    border-radius: 1.05rem;
    background: var(--edu-map-popup-surface);
    box-shadow: var(--edu-map-popup-shadow);
    color: var(--edu-map-popup-ink);
}

.results-map-panel .maplibregl-popup-anchor-top-left .maplibregl-popup-content,
.results-map-panel .maplibregl-popup-anchor-top-right .maplibregl-popup-content,
.results-map-panel .maplibregl-popup-anchor-bottom-left .maplibregl-popup-content,
.results-map-panel .maplibregl-popup-anchor-bottom-right .maplibregl-popup-content {
    border-radius: 1.05rem;
}

.results-map-panel .maplibregl-popup-anchor-top .maplibregl-popup-tip,
.results-map-panel .maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.results-map-panel .maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
    border-bottom-color: var(--edu-map-popup-surface);
}

.results-map-panel .maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.results-map-panel .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.results-map-panel .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
    border-top-color: var(--edu-map-popup-surface);
}

.results-map-panel .maplibregl-popup-anchor-left .maplibregl-popup-tip {
    border-right-color: var(--edu-map-popup-surface);
}

.results-map-panel .maplibregl-popup-anchor-right .maplibregl-popup-tip {
    border-left-color: var(--edu-map-popup-surface);
}

.map-job-popup {
    display: grid;
    gap: 0.48rem;
    min-width: 13rem;
}

.map-job-popup.is-interactive {
    gap: 0.72rem;
}

.map-job-popup-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.7rem;
}

.map-job-popup-heading {
    display: grid;
    gap: 0.28rem;
    min-width: 0;
}

.map-job-popup-company,
.map-job-popup-type,
.map-job-popup-title,
.map-job-popup-meta,
.map-job-popup-kicker,
.map-job-popup-caption {
    margin: 0;
}

.map-job-popup-company {
    color: var(--edu-secondary);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.map-job-popup-type {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    color: var(--edu-map-popup-ink-soft);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.3;
}

.map-job-popup-emoji {
    font-size: 0.98rem;
    line-height: 1;
}

.map-job-popup-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--edu-map-popup-border);
    border-radius: var(--radius-pill);
    background: var(--edu-map-popup-close-surface);
    color: var(--edu-map-popup-ink);
    box-shadow: 0 8px 18px -16px rgba(0, 0, 0, 0.55);
    font: inherit;
    cursor: pointer;
}

.map-job-popup-close:hover,
.map-job-popup-close:focus-visible {
    border-color: var(--edu-map-popup-button-border-strong);
    background: var(--edu-map-popup-close-surface-hover);
    color: var(--edu-map-popup-ink);
}

.map-job-popup-close-icon {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
    transform: translateY(-1px);
}

.map-job-popup-title {
    color: var(--edu-map-popup-ink);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}

.map-job-popup-kicker {
    color: var(--edu-accent-strong);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.map-job-popup-caption {
    color: var(--edu-map-popup-ink-soft);
    font-size: 0.82rem;
    line-height: 1.45;
}

.map-job-popup-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    color: var(--edu-map-popup-ink-soft);
    font-size: 0.82rem;
    line-height: 1.35;
}

.map-job-popup-description {
    display: grid;
    gap: 0.48rem;
    padding-top: 0.2rem;
}

.map-job-popup-preview,
.map-job-popup-body-copy p,
.map-job-popup-body-fallback {
    margin: 0;
    color: var(--edu-map-popup-ink-soft);
    font-size: 0.82rem;
    line-height: 1.48;
}

.map-job-popup-toggle,
.map-job-popup-cta,
.map-job-popup-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-pill);
    font: inherit;
    text-decoration: none;
}

.map-job-popup-toggle {
    width: fit-content;
    min-height: 34px;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--edu-map-popup-button-border);
    background: var(--edu-map-popup-button-surface);
    color: var(--edu-map-popup-button-ink);
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.map-job-popup-toggle:hover,
.map-job-popup-toggle:focus-visible {
    border-color: var(--edu-map-popup-button-border-strong);
    background: var(--edu-map-popup-button-surface-hover);
    color: var(--edu-map-popup-ink);
}

.map-job-popup-description.is-loading .map-job-popup-toggle {
    cursor: wait;
    opacity: 0.84;
}

.map-job-popup-body[hidden] {
    display: none;
}

.map-job-popup-body {
    max-height: 11.5rem;
    overflow: auto;
    padding-right: 0.2rem;
}

.map-job-popup-description.is-expanded .map-job-popup-preview {
    display: none;
}

.map-job-popup-body-copy {
    display: grid;
    gap: 0.55rem;
}

.map-job-popup-cta,
.map-job-popup-status {
    min-height: 38px;
    padding: 0.45rem 0.8rem;
    border: 0;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 700;
}

.map-job-popup-cta {
    background: var(--edu-accent);
    color: var(--pico-primary-inverse);
}

.map-job-popup-cta:hover,
.map-job-popup-cta:focus-visible {
    color: var(--pico-primary-inverse);
    text-decoration: none;
    background: var(--edu-accent-strong);
}

.map-job-popup-cta--secondary {
    background: var(--edu-map-popup-button-surface);
    color: var(--edu-map-popup-button-ink);
    border: 1px solid var(--edu-map-popup-button-border);
}

.map-job-popup-cta--secondary:hover,
.map-job-popup-cta--secondary:focus-visible {
    background: var(--edu-map-popup-button-surface-hover);
    color: var(--edu-map-popup-ink);
}

.map-job-popup-status {
    background: var(--edu-map-popup-button-surface);
    border: 1px solid var(--edu-map-popup-button-border);
    color: var(--edu-map-popup-ink-soft);
}

@media (max-width: 900px) {
    body.results-map-open .site-header {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    .results-map-column {
        position: fixed;
        inset: 0;
        z-index: 60;
        display: flex;
        align-items: stretch;
        justify-content: stretch;
        padding: 0;
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--motion-base);
    }

    .results-panel.is-map-open .results-map-column {
        opacity: 1;
        pointer-events: auto;
    }

    .results-map-backdrop {
        display: block;
        position: absolute;
        inset: 0;
        border: 0;
        background: rgba(18, 29, 39, 0.38);
    }

    .results-map-panel {
        position: relative;
        width: 100%;
        max-width: none;
        min-height: 100vh;
        min-height: 100svh;
        min-height: 100dvh;
        height: 100vh;
        height: 100svh;
        height: 100dvh;
        max-height: none;
        display: block;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: var(--edu-map-panel-surface);
        box-shadow: none;
        overflow: hidden;
    }

    .results-map-close {
        display: inline-flex;
        position: absolute;
        top: calc(max(0.75rem, env(safe-area-inset-top)) + 0.22rem);
        right: max(0.8rem, env(safe-area-inset-right));
        z-index: 3;
        flex-shrink: 0;
        min-height: 34px;
        padding: 0.38rem 0.78rem;
        border: 1px solid var(--edu-map-glass-border);
        background: var(--edu-map-glass-surface);
        color: var(--edu-ink);
        box-shadow: var(--edu-map-glass-shadow);
        font-size: 0.79rem;
        line-height: 1.2;
    }

    .results-map-close:hover,
    .results-map-close:focus-visible {
        border-color: var(--edu-map-popup-button-border-strong);
        background: var(--edu-map-popup-surface-strong);
        color: var(--edu-map-popup-ink);
    }

    .results-map-panel-head {
        position: absolute;
        top: calc(max(0.75rem, env(safe-area-inset-top)) + 0.1rem);
        left: max(0.8rem, env(safe-area-inset-left));
        right: max(0.8rem, env(safe-area-inset-right));
        z-index: 2;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        margin-bottom: 0;
        gap: 0.75rem;
        padding: 0.72rem 4.8rem 0.72rem 0.82rem;
        border: 1px solid var(--edu-map-glass-border);
        border-radius: 1rem;
        background: var(--edu-map-glass-surface);
        backdrop-filter: blur(14px);
        box-shadow: var(--edu-map-glass-shadow);
    }

    .results-map-panel-copy {
        min-width: 0;
        gap: 0.18rem;
        padding-right: 0.1rem;
    }

    .results-map-eyebrow {
        color: var(--edu-map-popup-ink-soft);
        font-size: 0.69rem;
    }

    .results-map-title {
        font-size: 0.98rem;
    }

    .results-map-copy,
    .results-map-note {
        display: none;
    }

    .results-map-summary {
        margin-top: 0.12rem;
        color: var(--edu-map-popup-ink-soft);
        font-size: 0.77rem;
        font-weight: 600;
        line-height: 1.35;
    }

    .results-map-status {
        position: absolute;
        left: max(0.8rem, env(safe-area-inset-left));
        right: calc(max(0.8rem, env(safe-area-inset-right)) + 4rem);
        bottom: calc(max(0.8rem, env(safe-area-inset-bottom)) + 0.45rem);
        z-index: 2;
        margin: 0;
        padding: 0.65rem 0.8rem;
        border: 1px solid var(--edu-map-glass-border);
        border-radius: 0.9rem;
        background: var(--edu-map-glass-surface);
        backdrop-filter: blur(14px);
        box-shadow: var(--edu-map-glass-shadow);
        color: var(--edu-map-popup-ink-soft);
        font-size: 0.8rem;
        line-height: 1.35;
    }

    .results-map-panel .maplibregl-ctrl-top-right {
        top: auto;
        right: max(0.8rem, env(safe-area-inset-right));
        bottom: calc(max(0.8rem, env(safe-area-inset-bottom)) + 0.45rem);
    }

    .results-map-panel .maplibregl-ctrl-top-right .maplibregl-ctrl {
        margin: 0;
    }

    .results-map-panel .maplibregl-ctrl-group {
        overflow: hidden;
        border: 1px solid var(--edu-map-glass-border);
        border-radius: 1rem;
        background: var(--edu-map-glass-surface);
        backdrop-filter: blur(14px);
        box-shadow: var(--edu-map-glass-shadow);
    }

    .results-map-panel .maplibregl-ctrl-group:not(:empty) {
        box-shadow: var(--edu-map-glass-shadow);
    }

    .results-map-panel .maplibregl-ctrl-group button {
        width: 36px;
        height: 36px;
    }

    .results-map-panel .maplibregl-ctrl-group button + button {
        border-top-color: var(--edu-map-glass-border);
    }

    .results-map-panel .maplibregl-ctrl-icon {
        filter: var(--edu-map-control-icon-filter);
    }

    .results-map-canvas {
        position: absolute;
        inset: 0;
        min-height: 100%;
        height: 100%;
        border: 0;
        border-radius: 0;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card {
        left: 50% !important;
        right: auto !important;
        top: 42.5% !important;
        bottom: auto !important;
        display: block;
        width: min(calc(100vw - 2rem), 30rem);
        max-width: calc(100vw - 2rem);
        transform: translate(-50%, -50%) !important;
        z-index: 4;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .maplibregl-popup-tip {
        display: none;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .maplibregl-popup-content {
        width: 100%;
        max-width: none;
        min-width: 0;
        max-height: min(60dvh, 34rem);
        overflow: auto;
        padding: 1.15rem 1.15rem 1.2rem;
        border-radius: 1.2rem;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup {
        gap: 0.82rem;
        min-height: 0;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-title {
        font-size: 1.08rem;
        line-height: 1.36;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-company,
    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-type,
    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-meta,
    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-preview,
    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-body-copy p,
    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-body-fallback {
        font-size: 0.86rem;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-close {
        width: 36px;
        height: 36px;
    }

    .results-map-panel .maplibregl-popup.emploi-educ-popup--mobile-card .map-job-popup-body {
        max-height: min(36dvh, 18rem);
    }

    .results-map-mobile-toggle {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        width: 100%;
        margin-top: 1rem;
        padding: 0.75rem 1rem;
        border: 1px solid var(--edu-map-mobile-cta-border);
        border-radius: var(--radius-pill);
        background: var(--edu-map-mobile-cta-background);
        color: var(--edu-map-mobile-cta-ink);
        box-shadow: var(--edu-map-mobile-cta-shadow);
        font: inherit;
        font-size: 0.92rem;
        font-weight: 700;
        letter-spacing: 0.01em;
    }

    .results-map-mobile-toggle:hover,
    .results-map-mobile-toggle:focus-visible {
        border-color: rgba(255, 255, 255, 0.34);
        color: var(--edu-map-mobile-cta-ink);
        box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.18), var(--edu-map-mobile-cta-shadow);
        transform: translateY(-1px);
    }

    .results-panel--map.is-map-open .results-map-mobile-toggle {
        display: none;
    }
}

@media (max-width: 720px) {
    .results-map-panel-head {
        align-items: start;
        gap: 0.65rem;
        padding-right: 4.4rem;
    }

    .results-map-mobile-toggle {
        width: 100%;
    }

    .results-map-close {
        width: auto;
        max-width: 12.5rem;
    }

    .results-map-eyebrow {
        display: none;
    }
}
