/* Porto dell'Amore – OpenStreetMap footer integration */
.site-footer__grid--map{
    align-items:stretch;
}

.site-footer__map-card{
    position:relative;
    min-width:0;
    min-height:21rem;
    overflow:hidden;
    isolation:isolate;
    background:var(--c-oliva);
}

.site-footer__map-frame{
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    border:0;
    background:#e8ddc7;
    filter:saturate(.72) sepia(.14) contrast(.92) brightness(.72);
}

.site-footer__map-scrim{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
        linear-gradient(90deg,rgba(63,57,42,.41) 0%,rgba(63,57,42,.33) 48%,rgba(63,57,42,.25) 100%),
        linear-gradient(180deg,rgba(63,57,42,.1),rgba(63,57,42,.21));
}

.site-footer__map-content{
    position:relative;
    z-index:3;
    min-height:100%;
    padding:1rem 1.15rem;
    pointer-events:none;
}

.site-footer__map-content a{
    pointer-events:auto;
}

.site-footer__map-card--ready .site-footer__brand,
.site-footer__map-card--ready .site-footer__address,
.site-footer__map-card--ready .site-footer__heading,
.site-footer__map-card--ready .site-footer__map-content p,
.site-footer__map-card--ready .site-footer__map-content a{
    text-shadow:0 1px 3px rgba(20,18,12,.72);
}

.site-footer__map-label{
    position:absolute;
    left:52%;
    top:64%;
    z-index:2;
    max-width:16rem;
    transform:translate(-50%,-50%);
    padding:.38rem .65rem;
    border:1px solid rgba(252,249,242,.42);
    border-radius:999px;
    background:rgba(63,57,42,.82);
    color:var(--c-carta);
    font-family:var(--f-body);
    font-size:.75rem;
    font-weight:700;
    line-height:1.25;
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    pointer-events:none;
    box-shadow:0 4px 16px rgba(20,18,12,.22);
}

.site-footer__hours-column{
    min-width:0;
}

@media(min-width:48em){
    .site-footer__grid--map{
        grid-template-columns:minmax(0,2fr) minmax(17rem,1fr);
        gap:3rem;
    }

    .site-footer__map-content{
        display:grid;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        align-content:start;
        gap:3rem;
    }
}

@media(max-width:47.9375em){
    .site-footer__map-card{
        min-height:26rem;
    }

    .site-footer__map-content{
        display:grid;
        gap:1.5rem;
        padding:1.15rem;
    }

    .site-footer__map-label{
        left:50%;
        top:74%;
    }
}

@media(prefers-reduced-motion:reduce){
    .site-footer__map-frame{
        scroll-behavior:auto;
    }
}
