.elementor-20491 .elementor-element.elementor-element-9a30cb0:not(.elementor-motion-effects-element-type-background), .elementor-20491 .elementor-element.elementor-element-9a30cb0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:transparent;background-image:linear-gradient(180deg, #001736 0%, #043F91 100%);}.elementor-20491 .elementor-element.elementor-element-9a30cb0 > .elementor-background-overlay{background-color:#01193B;background-image:url("https://www.railstate.com/wp-content/uploads/2025/04/banner-background.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;opacity:0.11;transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-20491 .elementor-element.elementor-element-9a30cb0{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;overflow:visible;}.elementor-bc-flex-widget .elementor-20491 .elementor-element.elementor-element-5e04c2d4.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-20491 .elementor-element.elementor-element-5e04c2d4.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-20491 .elementor-element.elementor-element-5e04c2d4 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-bottom:20px;}.elementor-20491 .elementor-element.elementor-element-5e04c2d4 > .elementor-element-populated{padding:100px 15px 50px 015px;}.elementor-20491 .elementor-element.elementor-element-f5082b2 .elementor-heading-title{font-size:16px;font-weight:800;letter-spacing:1.5px;color:var( --e-global-color-primary );}.elementor-20491 .elementor-element.elementor-element-6ea1e704 .elementor-heading-title{font-family:"Plus Jakarta Sans", Plus Jakarta Sans;font-size:60px;font-weight:700;line-height:110%;letter-spacing:-2%;color:#FFFFFF;}.elementor-20491 .elementor-element.elementor-element-2e3d75f7 > .elementor-widget-container{margin:10px 0px 0px 0px;}.elementor-20491 .elementor-element.elementor-element-2e3d75f7 .elementor-heading-title{font-family:"Plus Jakarta Sans", Plus Jakarta Sans;font-size:20px;font-weight:500;line-height:160%;word-spacing:-0.5%;color:#FFFFFF;}.elementor-bc-flex-widget .elementor-20491 .elementor-element.elementor-element-383b9c78.elementor-column .elementor-widget-wrap{align-items:center;}.elementor-20491 .elementor-element.elementor-element-383b9c78.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:center;align-items:center;}.elementor-20491 .elementor-element.elementor-element-383b9c78.elementor-column > .elementor-widget-wrap{justify-content:flex-end;}.elementor-20491 .elementor-element.elementor-element-383b9c78 > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:30px 8px 50px 0px;}.elementor-20491 .elementor-element.elementor-element-383b9c78 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-20491 .elementor-element.elementor-element-56e55161 img{pointer-events:all;}.elementor-20491 .elementor-element.elementor-element-0fff1f4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;overflow:visible;}.elementor-20491 .elementor-element.elementor-element-1c2a2bc{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;overflow:visible;}@media(min-width:768px){.elementor-20491 .elementor-element.elementor-element-5e04c2d4{width:53%;}.elementor-20491 .elementor-element.elementor-element-383b9c78{width:46.96%;}}@media(max-width:1024px) and (min-width:768px){.elementor-20491 .elementor-element.elementor-element-5e04c2d4{width:100%;}.elementor-20491 .elementor-element.elementor-element-383b9c78{width:100%;}}@media(max-width:1024px){.elementor-20491 .elementor-element.elementor-element-5e04c2d4 > .elementor-element-populated{padding:50px 15px 0px 15px;}.elementor-20491 .elementor-element.elementor-element-6ea1e704 .elementor-heading-title{font-size:50px;}.elementor-20491 .elementor-element.elementor-element-383b9c78.elementor-column > .elementor-widget-wrap{justify-content:flex-start;}.elementor-20491 .elementor-element.elementor-element-383b9c78 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:0px 15px 30px 15px;}}@media(max-width:767px){.elementor-20491 .elementor-element.elementor-element-5e04c2d4 > .elementor-element-populated{padding:30px 15px 0px 15px;}.elementor-20491 .elementor-element.elementor-element-6ea1e704 .elementor-heading-title{font-size:25px;line-height:1.3em;}.elementor-20491 .elementor-element.elementor-element-2e3d75f7 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-20491 .elementor-element.elementor-element-2e3d75f7 .elementor-heading-title{font-size:15px;}.elementor-20491 .elementor-element.elementor-element-383b9c78 > .elementor-element-populated{padding:0px 15px 110px 15px;}}/* Start custom CSS for container, class: .elementor-element-0fff1f4 *//* Style for the overall container for better layout control */
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #mapbox-container {
    position: relative; /* Essential for positioning map and controls inside it */
    width: 100%; /* Or a fixed width like 800px */
    height: 600px; /* Set a fixed height for the map container */
    margin: 0 auto; /* Center the container if it has a fixed width */
    overflow: hidden; /* Hide anything that goes outside */
}

/* Styles for the Mapbox map itself */
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #map {
    position: absolute; /* Allows it to fill the container */
    top: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background-color: #f0f0f0; /* Fallback background color */
}

/* Styles for the slider and date label container */
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #slider-container {
    position: absolute;
    bottom: 20px; /* Distance from bottom of the map container */
    left: 50%;
    transform: translateX(-50%); /* Centers horizontally */
    background-color: rgba(255, 255, 255, 0.9); /* Semi-transparent white background */
    padding: 10px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
    z-index: 10; /* Ensures it's above the map */
    display: flex;
    align-items: center;
    gap: 15px;
}
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #slider {
    width: 300px;
}
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #date-label {
    font-family: sans-serif;
    font-weight: bold;
    color: #333;
}

/* Styles for the Play/Pause button */
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #play-pause-button {
    position: absolute;
    bottom: 70px; /* Positioned above the slider */
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    padding: 8px 15px;
    background-color: #007bff; /* Blue button color */
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-family: sans-serif;
    font-size: 14px;
    transition: background-color 0.3s ease;
}
.elementor-20491 .elementor-element.elementor-element-0fff1f4 #play-pause-button:hover {
    background-color: #0056b3;
}/* End custom CSS */