/*
 * Hub Negozi: componente persistente del prodotto.
 * La hero spiega il ruolo della pagina; mappa, filtri e card attività sono il
 * modulo GeoDirectory condiviso già usato in Esplora.
 */
body.mmc-shops-hub-page {
    background: var(--mmc-color-background);
}

.mmc-shops-hub,
.mmc-shops-hub * {
    box-sizing: border-box;
}

.mmc-shops-hub {
    background: var(--mmc-color-background);
    color: var(--mmc-color-text);
    margin-inline: calc(50% - 50vw);
    max-width: 100vw;
    overflow: hidden;
    padding-bottom: var(--mmc-section-space);
    width: 100vw;
}

.mmc-shops-hub__hero-shell {
    padding-top: var(--mmc-section-space-compact);
}

.mmc-shops-hub__hero {
    align-items: flex-end;
    border-radius: 18px;
    display: flex;
    min-height: clamp(300px, 38vw, 470px);
    overflow: hidden;
    padding: clamp(24px, 4.5vw, 54px);
    position: relative;
}

.mmc-shops-hub__hero-media,
.mmc-shops-hub__hero-overlay {
    inset: 0;
    position: absolute;
}

.mmc-shops-hub__hero-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    object-position: center;
    width: 100%;
}

.mmc-shops-hub__hero-overlay {
    background: linear-gradient(90deg, rgba(7, 24, 51, .92) 0%, rgba(7, 24, 51, .72) 43%, rgba(7, 24, 51, .16) 78%, rgba(7, 24, 51, .05) 100%);
}

.mmc-shops-hub__hero-copy {
    color: #fff;
    max-width: min(650px, 58%);
    position: relative;
    z-index: 1;
}

.mmc-shops-hub__eyebrow {
    color: #fff4e6;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .12em;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.mmc-shops-hub__hero h1 {
    color: #fff4e6;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 5.5vw, 4.6rem);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: .98;
    margin: 0;
    text-shadow: 0 5px 26px rgba(7, 24, 51, .36);
}

.mmc-shops-hub__hero-copy > p:last-child {
    color: rgba(255, 255, 255, .92);
    font-size: clamp(.96rem, 1.8vw, 1.13rem);
    line-height: 1.55;
    margin: 18px 0 0;
    max-width: 580px;
}

.mmc-shops-hub__map-section {
    margin-top: var(--mmc-section-space);
}

/* The page owns the vertical rhythm; avoid a second full-width background
 * break around the shared map component. */
.mmc-shops-hub__map-section .mmc-explore-map {
    margin-top: 0;
}

@media (max-width: 767px) {
    .mmc-shops-hub {
        padding-bottom: 0;
    }

    .mmc-shops-hub__hero-shell {
        padding-inline: 0;
        padding-top: 0;
    }

    .mmc-shops-hub__hero {
        border-radius: 0 0 24px 24px;
        min-height: 300px;
        padding: 26px 20px 30px;
    }

    .mmc-shops-hub__hero-media img {
        object-position: 62% center;
    }

    .mmc-shops-hub__hero-overlay {
        background: linear-gradient(180deg, rgba(7, 24, 51, .16) 8%, rgba(7, 24, 51, .92) 100%);
    }

    .mmc-shops-hub__hero-copy {
        max-width: 100%;
    }

    .mmc-shops-hub__hero h1 {
        font-size: clamp(2.2rem, 11vw, 3.35rem);
        line-height: 1;
    }

    .mmc-shops-hub__hero-copy > p:last-child {
        font-size: .94rem;
        line-height: 1.48;
        margin-top: 14px;
    }

    .mmc-shops-hub__map-section {
        margin-top: var(--mmc-section-space);
    }
}

/* Persistent "Aperti adesso" section. */
.mmc-shops-hub__open-now {
    margin-top: 8px;
}
.mmc-shops-hub__open-now .mmc-open-now {
    padding-top: 18px;
    padding-bottom: 10px;
}

/* On the shops hub the frame and the actual Leaflet canvas must have exactly
 * the same height. GeoDirectory can otherwise leave a visible strip of the
 * canvas background below the map on some mobile browsers. */
.mmc-shops-hub-page .mmc-explore-map__canvas {
    height: clamp(290px, 38vh, 340px);
    min-height: clamp(290px, 38vh, 340px);
}
.mmc-shops-hub-page .mmc-explore-map__map,
.mmc-shops-hub-page .mmc-explore-map__map > div,
.mmc-shops-hub-page .mmc-explore-map__map .geodir-map-wrap,
.mmc-shops-hub-page .mmc-explore-map__map .geodir_map_container,
.mmc-shops-hub-page .mmc-explore-map__map .stick_trigger_container,
.mmc-shops-hub-page .mmc-explore-map__map .geodir-map-canvas,
.mmc-shops-hub-page .mmc-explore-map__map .leaflet-container {
    box-sizing: border-box !important;
    height: 100% !important;
    margin: 0 !important;
    min-height: 100% !important;
    padding: 0 !important;
}

@media (min-width: 768px) {
    .mmc-shops-hub-page .mmc-explore-map__canvas {
        height: 360px;
        min-height: 360px;
    }
}

@media (min-width: 1024px) {
    .mmc-shops-hub-page .mmc-explore-map__canvas {
        height: 390px;
        min-height: 390px;
    }
}

@media (max-width: 767px) {
    .mmc-shops-hub__open-now { margin-top: 0; }
    .mmc-shops-hub__open-now .mmc-open-now { padding-top: 16px; }
}
