/* Homepage compact menu and map-preview states. Account visuals live in public-navigation.css. */

.front-home {
    --zf-home-shell-width: 1180px;
    --zf-home-shell-gutter: max(16px, calc((100vw - var(--zf-home-shell-width)) / 2));
}

@media (min-width: 901px) {
    .front-home:not(.front-home-menu-visible) .public-topbar {
        left: max(16px, calc((100vw - var(--zf-home-shell-width)) / 2 - 13px));
    }
}

.home-start-menu {
    position: fixed;
    top: 20px;
    right: var(--zf-home-shell-gutter);
    bottom: auto;
    z-index: 45;
    font-family: "Gilroy", "Manrope", ui-sans-serif, system-ui, sans-serif;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.home-start-menu.is-hidden,
.front-home.front-home-menu-visible .home-start-menu {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
}

.home-start-menu > summary {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 62px;
    padding: 10px 20px 10px 16px;
    border: 1px solid rgba(255,255,255,.52);
    border-radius: 999px;
    color: var(--zf-forest);
    background: rgba(255,250,238,.50);
    box-shadow: 0 22px 70px rgba(31,54,36,.14);
    -webkit-backdrop-filter: blur(22px) saturate(1.16);
    backdrop-filter: blur(22px) saturate(1.16);
    cursor: pointer;
    list-style: none;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -.032em;
    text-transform: uppercase;
}

.home-start-menu > summary::-webkit-details-marker { display: none; }

.home-start-menu > summary img {
    width: 22px;
    height: 22px;
    filter: none;
}

.home-start-menu-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    bottom: auto;
    width: min(330px, calc(100vw - 28px));
    padding: 14px;
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 20px;
    color: var(--zf-forest);
    background: rgba(247,240,226,.94);
    box-shadow: 0 20px 55px rgba(31,54,36,.22);
    -webkit-backdrop-filter: blur(22px) saturate(1.12);
    backdrop-filter: blur(22px) saturate(1.12);
}

.home-start-menu-panel nav {
    display: grid;
    gap: 1px;
}

.home-start-menu-panel nav a {
    padding: 8px 10px;
    border-radius: 10px;
    color: var(--zf-forest);
    text-decoration: none;
    font-weight: 700;
}

.home-start-menu-panel nav a:hover { background: rgba(255,255,255,.58); }

.home-start-menu-contacts {
    display: grid;
    justify-items: end;
    gap: 8px;
    margin-top: 12px;
    padding: 13px 10px 3px;
    border-top: 1px solid rgba(31,59,45,.14);
    text-align: right;
}

.home-start-menu-contacts a,
.home-start-menu-contacts span {
    color: rgba(16,59,45,.86);
    font-size: 15px;
    line-height: 1.35;
}

.home-start-menu-contacts a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.home-start-menu-contacts span { text-decoration: none; }

/* First-screen menu and the canonical account control share one parent pill. */
.front-home .home-start-controls {
    position: fixed;
    z-index: 46;
    top: 20px;
    right: var(--zf-home-shell-gutter);
    display: flex;
    align-items: center;
    min-height: 62px;
    padding: 0 8px 0 0;
    border: 1px solid rgba(255,255,255,.52);
    border-radius: 999px;
    background: rgba(255,250,238,.50);
    box-shadow: 0 22px 70px rgba(31,54,36,.14);
    -webkit-backdrop-filter: blur(22px) saturate(1.16);
    backdrop-filter: blur(22px) saturate(1.16);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.front-home .home-start-controls.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
}

.front-home.front-home-menu-visible .home-start-controls { display: none; }

.front-home .home-start-controls .home-start-menu {
    position: static;
    inset: auto;
    z-index: auto;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.front-home .home-start-controls .home-start-menu > summary {
    min-height: 60px;
    padding: 9px 16px;
    border: 0;
    border-radius: 999px 0 0 999px;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.front-home .home-start-controls .home-start-menu > summary:hover {
    background: rgba(255,255,255,.34);
}

.front-home .home-start-controls .home-account-slot {
    position: static;
    inset: auto;
    min-height: 44px;
    margin: 0;
    padding-left: 8px;
    border-left: 1px solid rgba(16,59,45,.12);
}

.front-home .home-start-controls .home-start-menu-panel {
    top: calc(100% + 10px);
    right: 0;
}

/* Imported map SVGs may carry their own opacity, so preview state wins explicitly. */
.public-map-preview .zf-map-plot > polygon,
.public-map-preview .zf-map-plot > path,
.public-map-preview .zf-map-plot > polyline,
.public-map-preview path.land-geojson-plot {
    fill-opacity: .40 !important;
    stroke-opacity: .40 !important;
}

.public-map-preview .zf-map-number-marker { opacity: .40 !important; }

@media (max-width: 900px) {
    .home-start-menu {
        top: 16px;
        right: 10px;
    }

    .home-start-menu > summary {
        min-height: 56px;
        padding: 8px 14px;
    }

    .home-start-menu > summary span { font-size: 15px; }

    .front-home .home-start-controls {
        top: 16px;
        right: 10px;
        height: 56px;
        min-height: 56px;
    }

    .front-home .home-start-controls .home-start-menu > summary {
        min-height: 54px;
        padding: 8px 12px;
    }

    .front-home:not(.front-home-menu-visible) .public-topbar {
        top: 16px;
        left: 10px;
        height: 56px;
        min-height: 56px;
        padding: 8px 14px 8px 12px;
    }
}
