.jb-google-map {
    width: 100%;
    height: var(--jb-google-map-height, 500px);
}

.jb-gmaps-notice {
    padding: 14px 16px;
    border: 1px solid #dcdcde;
    background: #fff;
}

@media (max-width: 768px) {
    .jb-google-map { min-height: 350px; }
}

/* Ochrona kontrolek Google Maps przed stylami motywu WordPress.
   Szczególnie naprawia znikający Pegman / Street View. */
.jb-google-map .gm-style img {
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
}

.jb-google-map .gm-svpc,
.jb-google-map .gm-bundled-control,
.jb-google-map .gmnoprint {
    visibility: visible !important;
    opacity: 1 !important;
}

.jb-google-map .gm-svpc {
    z-index: 1000 !important;
}

/* Elegancki, okrągły znacznik lokalizacji */
.jb-google-map-marker {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #76563d;
    border: 3px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(0,0,0,.28), 0 0 0 6px rgba(118,86,61,.18);
    transform: translateY(-4px);
    transition: transform .22s ease, box-shadow .22s ease;
    cursor: pointer;
}

.jb-google-map-marker:hover {
    transform: translateY(-4px) scale(1.08);
    box-shadow: 0 5px 18px rgba(0,0,0,.32), 0 0 0 8px rgba(118,86,61,.15);
}

.jb-google-map-marker-dot {
    width: 10px;
    height: 10px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(255,255,255,.28);
}

/* Okno informacji znacznika */
.jb-google-map-info {
    min-width: 220px;
    max-width: 300px;
    padding: 4px 2px 2px;
    color: #3f382f;
    font-family: inherit;
    line-height: 1.45;
}

.jb-google-map-info__title {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
    color: #4a3b2d;
}

.jb-google-map-info__row {
    margin: 5px 0;
    font-size: 16px;
}

.jb-google-map-info a {
    color: #765a3a;
    text-decoration: none;
}

.jb-google-map-info a:hover { text-decoration: underline; }


/* Subtelne pulsowanie markera */
.jb-google-map-marker::after {
    content: "";
    position: absolute;
    inset: -7px;
    border: 2px solid rgba(118, 86, 61, .38);
    border-radius: 50%;
    pointer-events: none;
    animation: jb-gmaps-marker-pulse 2.2s ease-out infinite;
}

@keyframes jb-gmaps-marker-pulse {
    0%   { transform: scale(.82); opacity: .75; }
    65%  { transform: scale(1.28); opacity: 0; }
    100% { transform: scale(1.28); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .jb-google-map-marker::after { animation: none; }
}

.jb-google-map-info__tagline {
    margin: -2px 0 10px;
    font-size: 16px;
    font-style: italic;
    color: #6f665f;
}

.jb-google-map-info__heart {
    color: #c62828;
    font-style: normal;
    font-size: 15px;
    line-height: 1;
}

.jb-google-map-info__row a[href^="tel:"] {
    font-weight: 600;
}


/* Typografia okna informacji – ograniczona wyłącznie do tej wtyczki */
.jb-google-map .jb-google-map-info,
.jb-google-map .jb-google-map-info *,
.jb-google-map .gm-style-iw,
.jb-google-map .gm-style-iw * {
    font-family: "Lato", Arial, sans-serif !important;
}

.jb-google-map .jb-google-map-info__title {
    font-weight: 600;
    letter-spacing: .01em;
}

.jb-google-map .jb-google-map-info__tagline {
    font-weight: 500;
}

.jb-google-map .jb-google-map-info__row {
    font-weight: 500;
}


/* Izolacja stylów: reguły ograniczone do kontenera wtyczki */
.jb-google-map,
.jb-google-map *,
.jb-google-map *::before,
.jb-google-map *::after {
    box-sizing: border-box;
}

/* Nie naruszamy fontów i elementów poza kontenerem mapy. */


/* Finalna typografia okna informacji */
.jb-google-map .jb-google-map-info__title {
    font-size: 18px;
    line-height: 1.35;
}

.jb-google-map .jb-google-map-info__tagline,
.jb-google-map .jb-google-map-info__row {
    font-size: 16px;
    line-height: 1.55;
}

/* Czerwone serce – symbol Unicode, bez emoji zależnego od systemu */
.jb-google-map .jb-google-map-info__heart {
    display: inline-block;
    color: #d32f2f !important;
    font-family: Arial, sans-serif !important;
    font-size: 17px;
    font-style: normal;
    font-weight: 700;
    line-height: 1;
    vertical-align: -1px;
}


/* Wersja 1.6.0: Lato jest ładowane przez samą wtyczkę. */
.jb-google-map .jb-google-map-info,
.jb-google-map .jb-google-map-info *,
.jb-google-map .gm-style-iw,
.jb-google-map .gm-style-iw * {
    font-family: "Lato", sans-serif !important;
}

.jb-google-map .jb-google-map-info__tagline,
.jb-google-map .jb-google-map-info__row {
    font-weight: 500 !important;
}

.jb-google-map .jb-google-map-info__title,
.jb-google-map .jb-google-map-info__row a[href^="tel:"] {
    font-weight: 600 !important;
}

.jb-google-map .jb-google-map-info__heart {
    display: inline-flex !important;
    align-items: center;
    margin-left: 3px;
    vertical-align: -2px;
}

.jb-google-map .jb-google-map-info__heart svg {
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    fill: #d32f2f !important;
    color: #d32f2f !important;
    opacity: 1 !important;
    filter: none !important;
}

.jb-google-map .jb-google-map-info__heart svg path {
    fill: #d32f2f !important;
}


/* Wersja 1.6.1 – finalne proporcje i kolory okna */
.jb-google-map .jb-google-map-info__title {
    font-size: 17px !important;
    font-weight: 500 !important;
    color: #000000 !important;
}

.jb-google-map .jb-google-map-info__tagline,
.jb-google-map .jb-google-map-info__row {
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #000000 !important;
}

/* Telefon i e-mail w dotychczasowym brązowym akcencie */
.jb-google-map .jb-google-map-info__row a[href^="tel:"],
.jb-google-map .jb-google-map-info__row a[href^="mailto:"] {
    font-weight: 400 !important;
    color: #4a3b2d !important;
}


/* Wersja 1.6.2 – kompaktowa typografia */
.jb-google-map .jb-google-map-info__title {
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    margin-bottom: 6px !important;
}

.jb-google-map .jb-google-map-info__tagline,
.jb-google-map .jb-google-map-info__row,
.jb-google-map .jb-google-map-info__row a {
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

.jb-google-map .jb-google-map-info__tagline {
    margin-top: 0 !important;
    margin-bottom: 7px !important;
}

.jb-google-map .jb-google-map-info__row {
    margin-top: 3px !important;
    margin-bottom: 3px !important;
}


/* Wersja 1.6.3 – treść okna */
.jb-google-map .jb-google-map-info__tagline,
.jb-google-map .jb-google-map-info__row,
.jb-google-map .jb-google-map-info__row a {
    font-size: 13px !important;
    font-weight: 400 !important;
}


/* Wersja 1.6.4 – motto */
.jb-google-map .jb-google-map-info__tagline {
    font-size: 14px !important;
}


/* Wersja 1.6.5 – kolor znacznika */
.jb-google-map .jb-google-map-marker {
    background: #6C5336 !important;
    box-shadow: 0 4px 14px rgba(0,0,0,.28), 0 0 0 6px rgba(108,83,54,.18) !important;
}

.jb-google-map .jb-google-map-marker:hover {
    box-shadow: 0 5px 18px rgba(0,0,0,.32), 0 0 0 8px rgba(108,83,54,.15) !important;
}

.jb-google-map .jb-google-map-marker::after {
    border-color: rgba(108,83,54,.38) !important;
}
