/* Stable hash-link target placed immediately before the map prozon. */
.pz-map__anchor {
    display: block;
    height: 0;
    scroll-margin-top: 1rem;
}

/* ========================================
   MAP PROZON
======================================== */
.pz-map {
    width: 100%;
    margin: 0;
    overflow: visible;
    padding-block: 0;
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--size-body);
}

.pz-map,
.pz-map * { box-sizing: border-box; }

.pz-map__inner {
    width: 100%;
    max-width: none;
    margin: 0;
}

.pz-map__card {
    width: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    padding: var(--spacing);
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-card);
    background: var(--color-card-bg);
    box-shadow: var(--shadow-card);
    color: var(--color-text);
}

.pz-map__header { margin: 0; }

.pz-map__eyebrow {
    margin: 0 0 calc(var(--spacing) * .45);
    color: var(--color-eyebrow);
    font-size: var(--size-text-small);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pz-map__title {
    margin: 0;
    padding: 0;
    color: var(--color-title);
    font-family: var(--font-title);
    font-size: var(--size-title);
    font-weight: revert;
    letter-spacing: normal;
    line-height: 1.15;
}

.pz-map__subtitle {
    max-width: none;
    margin: calc(var(--spacing) * .55) 0 0;
    color: var(--color-subtitle);
    font-family: var(--font-subtitle);
    font-size: var(--size-subtitle);
    font-weight: inherit;
    letter-spacing: normal;
    line-height: 1.45;
    opacity: 1;
    text-transform: none;
}

.pz-map__content {
    flex: 1 1 auto;
    padding: calc(var(--spacing) * .52) 0 0;
}

.pz-map__address {
    margin: 0 0 calc(var(--spacing) * .68);
    font-weight: 700;
    color: var(--color-link);
    line-height: 1.45;
}

.pz-map__actions {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--spacing) * .6);
    margin: calc(var(--spacing) * .2) 0 calc(var(--spacing) * .8);
}

.pz-map__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing) * .28);
    min-height: 2.6rem;
    padding: calc(var(--spacing) * .52) calc(var(--spacing) * .76);
    border-radius: var(--radius-button);
    font-family: var(--font-cta);
    font-size: var(--size-cta-small);
    font-weight: 800;
    line-height: 1.1;
    text-decoration: none;
    transition: transform var(--animation-duration) ease,
                box-shadow var(--animation-duration) ease,
                background-color var(--animation-duration) ease,
                color var(--animation-duration) ease;
}

.pz-map__button--primary {
    background: var(--color-cta-bg);
    color: var(--color-cta-text);
    border: 1px solid var(--color-cta-border);
}

.pz-map__button--primary:hover,
.pz-map__button--primary:focus-visible {
    background: var(--color-cta-hover-bg);
    color: var(--color-cta-hover-text);
}

.pz-map__button--secondary {
    background: var(--color-button-bg);
    color: var(--color-button-text);
    border: 1px solid var(--color-button-border);
}

.pz-map__button:hover,
.pz-map__button:focus-visible {
    transform: translateY(-1px);
    box-shadow: var(--shadow-card);
}

.pz-map__button:focus-visible,
.pz-map a:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 3px;
}

.pz-map__frame-wrap {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border: 1px solid var(--color-card-border);
    border-radius: var(--radius-card);
    background: var(--color-card-bg);
}

.pz-map__frame {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.pz-map__message {
    margin: 0;
    color: var(--color-text);
}

@media (max-width: 980px) {
    .pz-map__card { padding: calc(var(--spacing) * .75); }
}

@media (max-width: 640px) {
    .pz-map__inner { width: 100%; max-width: none; }
    .pz-map__frame-wrap { aspect-ratio: 4 / 3; }
}

@media (max-width: 420px) {
    .pz-map__card {
        padding-left: calc(var(--spacing) * .8);
        padding-right: calc(var(--spacing) * .8);
    }
    .pz-map__button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .pz-map__button { transition-duration: 0.01ms; }
    .pz-map__button:hover,
    .pz-map__button:focus-visible { transform: none; }
}
