/* 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-eyebrow);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;

    font-family: var(--font-eyebrow);}

.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);

    font-family: var(--font-cta);
    font-size: var(--size-cta-small);}

.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);

    font-family: var(--font-button);
    font-size: var(--size-button);}

.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; }
}


/* ========================================
   MAP CONVENIENCE EDITOR
======================================== */
.pz-map__editor { display:grid; gap:var(--spacing); }
.pz-map__editor-preview { display:grid; gap:calc(var(--spacing) * .45); }
.pz-map__editor-kicker { margin:0; color:var(--color-eyebrow); font-family:var(--font-eyebrow); font-size:var(--size-eyebrow); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.pz-map__editor-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--spacing); padding-top:var(--spacing); border-top:1px solid var(--color-card-border); }
.pz-map__editor-title { margin:.25rem 0 0; color:var(--color-title); font-family:var(--font-title); font-size:var(--size-title); line-height:1.15; }
.pz-map__editor-status { margin:0; padding:.55rem .75rem; border:1px solid var(--color-card-border); border-radius:var(--radius-button); background:color-mix(in srgb, var(--color-accent) 12%, var(--color-card-bg)); color:var(--color-text); font-family:var(--font-body); }
.pz-map__editor-status.is-empty { visibility:hidden; }
.pz-map__editor-form { display:grid; grid-template-columns:1fr 1fr; gap:var(--spacing); 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); }
.pz-map__editor-field { display:grid; gap:.4rem; color:var(--color-text); font-family:var(--font-body); font-size:var(--size-body); font-weight:700; }
.pz-map__editor-field--wide { grid-column:1 / -1; }
.pz-map__editor-field input, .pz-map__editor-field textarea { width:100%; box-sizing:border-box; padding:.7rem .8rem; border:1px solid var(--color-input-border); border-radius:var(--radius-button); background:var(--color-input-bg); color:var(--color-input-text); font:inherit; font-weight:400; }
.pz-map__editor-field textarea { resize:vertical; }
.pz-map__editor-field input:focus-visible, .pz-map__editor-field textarea:focus-visible, .pz-map__save:focus-visible { outline:2px solid var(--color-focus); outline-offset:3px; }
.pz-map__editor-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--spacing); }
.pz-map__save { min-height:2.6rem; padding:calc(var(--spacing) * .52) calc(var(--spacing) * .76); border:1px solid var(--color-button-border); border-radius:var(--radius-button); background:var(--color-button-bg); color:var(--color-button-text); font-family:var(--font-button); font-size:var(--size-button); font-weight:800; cursor:pointer; }
.pz-map__editor-help { margin:0; color:var(--color-text); font-family:var(--font-text-small); font-size:var(--size-text-small); }
@media (max-width:640px) { .pz-map__editor-form { grid-template-columns:1fr; } .pz-map__editor-field--wide { grid-column:auto; } }
