/* geboren.am: lokale Länder-/Regionskarten */
.gam-country-locator {
    margin: .2rem 0 1rem;
    text-align: center;
    background: transparent;
    overflow: hidden;
}

.gam-country-locator img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 180px;
    object-fit: contain;
    background: transparent;
}

.gam-region-map {
    position: relative;
    max-width: 760px;
    margin: .35rem auto 1.4rem;
    text-align: center;
}

.gam-region-map-canvas {
    position: relative;
    min-height: 320px;
    text-align: center;
}

.gam-region-map:not(.is-ready) .gam-region-map-canvas::before {
    content: 'Lade Karte…';
    display: block;
    padding: 3rem 1rem;
    color: #777;
    text-align: center;
    font-style: italic;
}

.gam-region-map-svg {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 540px;
    margin: 0 auto;
    overflow: visible;
}

.gam-region-map-region {
    fill: #eceee7;
    stroke: #fff;
    stroke-width: 1.65;
    vector-effect: non-scaling-stroke;
    transition: fill .14s ease, opacity .14s ease, stroke .14s ease, filter .14s ease;
    cursor: pointer;
}

.gam-region-map-region.level-0 { fill: #eceee7; }
.gam-region-map-region.level-1 { fill: #e4e9d9; }
.gam-region-map-region.level-2 { fill: #d4dfbf; }
.gam-region-map-region.level-3 { fill: #c0cf9d; }
.gam-region-map-region.level-4 { fill: #a8bd79; }
.gam-region-map-region.level-5 { fill: #8fa85b; }

.gam-region-map-region.is-inactive {
    fill: #f1f1ed;
    opacity: .62;
    cursor: default;
}

.gam-region-map.has-highlight .gam-region-map-region:not(.is-inactive) {
    opacity: .72;
}

.gam-region-map.has-highlight .gam-region-map-region.is-highlighted {
    opacity: 1;
}

.gam-region-map-region:not(.is-inactive):hover,
.gam-region-map-region:not(.is-inactive):focus,
.gam-region-map-region.is-highlighted {
    fill: #7f994e;
    stroke: #f7f6f1;
    outline: none;
    filter: brightness(.99);
}

.gam-region-map-tooltip {
    position: absolute;
    z-index: 4;
    width: max-content;
    max-width: min(240px, calc(100% - 16px));
    padding: .26rem .44rem;
    background: rgba(250,249,245,.97);
    border: 1px solid #d1d3ca;
    box-shadow: 0 2px 7px rgba(0,0,0,.11);
    pointer-events: none;
    color: #555;
    text-align: left;
    font-size: .88em;
    line-height: 1.25;
    white-space: nowrap;
}

.gam-region-map-source {
    margin: .08rem auto 0;
    text-align: center;
    color: #b6aa8f;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .64em;
    font-weight: 400;
    line-height: 1.2;
}

.gam-region-map-source small {
    font: inherit;
}

.gam-region-map[hidden] {
    display: none !important;
}

.gam-region-map.is-error .gam-region-map-canvas::before {
    content: none;
}

.gam-region-map-error {
    margin: 0;
    padding: 2rem 1rem;
    border: 1px solid #d9ddd0;
    background: rgba(255,255,255,.35);
    color: #777;
    text-align: center;
    font-style: italic;
}

@media (max-width: 640px) {
    .gam-country-locator img {
        max-height: 155px;
    }

    .gam-region-map {
        margin-top: .15rem;
        margin-bottom: 1.15rem;
    }

    .gam-region-map-canvas {
        min-height: 260px;
    }

    .gam-region-map-svg {
        max-height: 430px;
    }

    .gam-region-map-region {
        stroke-width: 1.35;
    }

    .gam-region-map-tooltip {
        max-width: calc(100% - 16px);
        padding: .24rem .4rem;
        font-size: .84em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gam-region-map-region {
        transition: none;
    }
}
