/* =========================================================
   AFDES Elections 2026
   Public Election Intelligence integration

   The Election Engine must respect the same site container as the
   surrounding Elections page. The iframe remains fully responsive and
   continues to use the same-origin height bridge.
========================================================= */

body {
    background: #ffffff;
}

.elections-coming-soon {
    background: transparent;
}

.elections-coming-soon,
#interactive-map.elections-map-section {
    max-width: 100%;
    overflow-x: clip;
}

#interactive-map.elections-map-section {
    padding-top: 32px;
}

/*
 * Authoritative integration contract:
 * the engine stays inside the parent .container instead of breaking out
 * toward the viewport edges. This keeps its left/right margins aligned
 * with the rest of the public AFDES page at every resolution.
 */
#interactive-map .elections-map-container {
    position: relative;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    transform: none !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

#interactive-map .elections-map-frame {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    min-height: 320px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
}

/* Elections 2026 flows directly into the shared newsletter/footer. */
.elections-coming-soon + .site-footer {
    margin-top: 0;
}

@media (max-width: 900px) {
    #interactive-map.elections-map-section {
        padding-top: 26px;
    }
}

@media (max-width: 600px) {
    #interactive-map.elections-map-section {
        padding-top: 22px;
    }
}

@media (max-width: 430px) {
    #interactive-map.elections-map-section {
        padding-top: 18px;
    }
}
