/* Map Image Block Styles */

.map-image-block {
    position: relative;
    width: 100%;
    height: 500px; /* Based on Hero block */
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Remove top spacing when map image is first element */
.map-image-block:first-child,
.wp-block-post-content > .map-image-block:first-child,
.wp-block-group > .map-image-block:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Full width alignment - break out of container constraints */
.map-image-block.alignfull,
.wp-block-acf-map-image.alignfull,
.map-image-block[class*="alignfull"] {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
}

/* Ensure parent containers don't constrain width */
.wp-block-group .map-image-block.alignfull,
.wp-block-column .map-image-block.alignfull,
.wp-block-post-content .map-image-block.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Remove spacing from parent containers when map image is first */
.wp-block-post-content > .map-image-block:first-child,
.wp-block-group > .map-image-block:first-child {
    margin-top: 0 !important;
}

/* Remove top spacing from main container when map image is first child */
main.wp-block-group:has(.map-image-block:first-child),
main.wp-block-group > .wp-block-group:has(.map-image-block:first-child) {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Override inline styles for spacing when map image is present */
main.wp-block-group[style*="margin-top"]:has(.map-image-block:first-child) {
    margin-top: 0 !important;
}

.wp-block-group.alignfull[style*="padding-top"]:has(.map-image-block:first-child) {
    padding-top: 0 !important;
}

.map-image-media-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.map-image-link {
    display: block;
    width: 100%;
    height: 100%;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.map-image-link:hover {
    opacity: 0.9;
}

.map-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.map-image-placeholder {
    width: 100%;
    height: 100%;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    border: 2px dashed #ddd;
    font-size: 16px;
}

/* Editor Preview Mode */
.map-image-block.is-preview {
    background: #fff !important;
    border: 1px solid #ddd;
    padding: 20px;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 200px;
    height: auto;
}

.map-image-block.is-preview .map-image-media-wrapper {
    position: relative;
    min-height: 300px;
}

.map-image-block.is-preview .map-image-placeholder {
    width: 100%;
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f0f0;
    color: #666;
    font-size: 16px;
    text-align: center;
    padding: 40px;
    border: 2px dashed #ccc;
}

/* Responsive - 769px to 1440px (tablet / small desktop) */
@media (min-width: 769px) and (max-width: 1440px) {
    .map-image-block {
        height: clamp(360px, 32vw, 500px);
    }
}

/* Responsive */
@media (max-width: 768px) {
    .map-image-block {
        height: 170px;
    }
}

@media (max-width: 480px) {
    .map-image-block {
        height: 170px;
    }
}
