/* Cameron 10.0.29 — composant cartographique isolé des anciens styles. */
.cameron-approx-map,
.cameron-approx-map *{
    box-sizing:border-box;
}

.cameron-approx-map{
    overflow:hidden;
    border:1px solid rgba(124,33,5,.16);
    background:#f7f3ef;
    box-shadow:0 16px 34px rgba(43,24,15,.045);
}

.cameron-approx-map__viewport{
    position:relative;
    width:100%;
    height:430px;
    overflow:hidden;
    background:#e9e5e1;
}

/*
 * Le document OSM est volontairement agrandi et recadré : les contrôles et
 * l'attribution internes sortent du cadre. L'attribution reste présente dans
 * le pied du composant, tandis que la carte reste non interactive afin que la
 * zone circulaire ne puisse jamais se désynchroniser du fond.
 */
.cameron-approx-map__embed{
    position:absolute!important;
    z-index:1!important;
    top:-72px!important;
    left:-72px!important;
    display:block!important;
    width:calc(100% + 144px)!important;
    height:calc(100% + 144px)!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    opacity:1!important;
    background:#e9e5e1!important;
    filter:none!important;
    pointer-events:none!important;
    user-select:none!important;
}

.cameron-approx-map__circle{
    position:absolute!important;
    z-index:3!important;
    top:50%!important;
    left:50%!important;
    width:clamp(150px,25vw,230px)!important;
    height:clamp(150px,25vw,230px)!important;
    margin:0!important;
    padding:0!important;
    border:2px solid rgba(124,33,5,.74)!important;
    border-radius:50%!important;
    background:rgba(124,33,5,.13)!important;
    box-shadow:0 0 0 5px rgba(255,255,255,.24)!important;
    transform:translate(-50%,-50%)!important;
    pointer-events:none!important;
}

.cameron-approx-map__circle:before{
    content:"";
    position:absolute;
    inset:14%;
    border:1px solid rgba(255,255,255,.72);
    border-radius:50%;
}

.cameron-approx-map__footer{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:16px;
    min-height:64px;
    padding:13px 20px;
    border-top:1px solid rgba(124,33,5,.10);
    background:#fbf8f5;
}

.cameron-approx-map__label{
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:#7C2105;
    font-size:.61rem;
    font-weight:700;
    letter-spacing:.09em;
    line-height:1.3;
    text-transform:uppercase;
    white-space:nowrap;
}

.cameron-approx-map__label>span{
    width:9px;
    height:9px;
    border:1px solid rgba(124,33,5,.72);
    border-radius:50%;
    background:rgba(124,33,5,.13);
}

.cameron-approx-map__footer p{
    position:relative;
    margin:0!important;
    padding-left:17px;
    color:#645b55;
    font-size:.71rem;
    line-height:1.55;
}

.cameron-approx-map__footer p:before{
    content:"";
    position:absolute;
    top:.78em;
    left:0;
    width:8px;
    height:1px;
    background:#7C2105;
}

.cameron-approx-map__footer a{
    color:#776c65;
    font-size:.60rem;
    letter-spacing:.02em;
    white-space:nowrap;
}

.cameron-approx-map__footer a:hover{
    color:#7C2105;
}

@media(max-width:760px){
    .cameron-approx-map__viewport{
        height:340px;
    }

    .cameron-approx-map__embed{
        top:-58px!important;
        left:-58px!important;
        width:calc(100% + 116px)!important;
        height:calc(100% + 116px)!important;
    }

    .cameron-approx-map__circle{
        width:clamp(130px,45vw,190px)!important;
        height:clamp(130px,45vw,190px)!important;
    }

    .cameron-approx-map__footer{
        grid-template-columns:1fr;
        gap:8px;
        padding:13px 16px 14px;
    }

    .cameron-approx-map__footer p{
        padding-left:15px;
        font-size:.67rem;
    }
}
