/* Shared content must be able to shrink inside Elementor flex/grid layouts. */
.elementor .e-con, .elementor .elementor-column, .elementor .elementor-widget,
.elementor .elementor-widget-container { min-width: 0; }
.elementor .elementor-heading-title, .elementor .elementor-widget-text-editor,
.elementor .elementor-icon-list-text { overflow-wrap: anywhere; }
.elementor .elementor-widget-image img { max-width: 100%; }
.elementor .elementor-widget-text-editor table { display: block; max-width: 100%; overflow-x: auto; }
.elementor .elementor-widget-text-editor iframe { max-width: 100%; }

/* The banner previously extended to 140% of its containing block. */
.elementor-1865 .elementor-element.elementor-element-78d2827 { --width: 100%; }
.elementor-1865 .elementor-element.elementor-element-598ca55 .swiper-slide-contents { max-width: 100%; }
.elementor-1865 .elementor-element.elementor-element-598ca55 .swiper-slide-inner { padding: 0; }

/* Remove the header's negative right margin; reserve a stable logo column. */
.elementor-166 .elementor-element.elementor-element-ed5e13f {
    --margin-left: 0px; --margin-right: 0px; --width: auto; flex: 1; min-width: 0;
}
.elementor-166 .elementor-element.elementor-element-ced8c8c { --width: 140px; flex-shrink: 0; }
.elementor-166 .elementor-element.elementor-element-da1918b { --flex-wrap: nowrap; --gap: 20px; }
.elementor-13 .elementor-element.elementor-element-f83ca4e,
.elementor-13 .elementor-element.elementor-element-a58c0ff,
.elementor-13 .elementor-element.elementor-element-dc5d050 { max-width: 100%; }

@media (max-width: 1024px) {
    .elementor-166 .elementor-element.elementor-element-da1918b {
        --flex-direction: row; --padding-left: 16px; --padding-right: 16px;
    }
    .elementor-166 .elementor-element.elementor-element-ced8c8c { --width: 110px; }
    .elementor-166 .elementor-element.elementor-element-ed5e13f { --width: auto; }
    .elementor-166 .wpr-mobile-toggle { min-width: 44px; min-height: 44px; }
    .elementor-166 .wpr-mobile-menu-item, .elementor-166 .wpr-mobile-sub-menu-item {
        white-space: normal; overflow-wrap: anywhere; min-height: 44px;
    }
    .elementor-222 .elementor-element.elementor-element-6b9179f {
        --flex-wrap: wrap; --gap: 24px;
    }
    .elementor-222 .elementor-element.elementor-element-b6cf290 { --width: 100%; --min-height: 0px; }
    .elementor-222 .elementor-element.elementor-element-3e8d11f { --width: 100%; }
    .elementor-222 .elementor-element.elementor-element-36722af,
    .elementor-222 .elementor-element.elementor-element-bda9427,
    .elementor-222 .elementor-element.elementor-element-fc1fe5b,
    .elementor-222 .elementor-element.elementor-element-e092ed6 {
        --width: calc(50% - 12px); --margin-top: 0px;
    }
    .elementor-222 .elementor-element.elementor-element-916035f { --margin-top: 0px; }
    .elementor-222 .elementor-element.elementor-element-a5ce57f { --width: 100%; --min-height: 0px; }
    .elementor-222 .elementor-button { max-width: 100%; white-space: normal; }
    .elementor-2773 .elementor-element.elementor-element-5d8262bd > .elementor-widget-container,
    .elementor-2773 .elementor-element.elementor-element-61576b3 > .elementor-widget-container { margin-left: 0; margin-right: 0; }
}

@media (max-width: 767px) {
    .elementor-166 .elementor-element.elementor-element-6dd7983 { --padding-left: 16px; --padding-right: 16px; }
    .elementor-166 .elementor-icon-list-items { flex-wrap: wrap; }
    .elementor-1865 .elementor-element.elementor-element-598ca55 .swiper-slide {
        height: clamp(120px, 31vw, 238px);
    }
    /* Promotional slides contain baked-in text: show the whole artwork. */
    .elementor-1865 .elementor-element.elementor-element-598ca55 .swiper-slide-bg { background-size: contain; background-repeat: no-repeat; }
    .elementor-1865 .elementor-element.elementor-element-ddabfa2 .wpr-tab-content { font-size: 16px; }
    .elementor-1865 .elementor-element.elementor-element-40218983 { margin-top: 40px; margin-bottom: 30px; }
    .elementor-2540 .elementor-element.elementor-element-54402ca > .elementor-element-populated,
    .elementor-2538 .elementor-element.elementor-element-777f479 > .elementor-element-populated,
    .elementor-2320 .elementor-element.elementor-element-7f7ca26 > .elementor-element-populated,
    .elementor-2306 .elementor-element.elementor-element-38938059 > .elementor-element-populated { padding-left: 16px; padding-right: 16px; }
    .elementor-2538 .elementor-element.elementor-element-7b92b9a > .elementor-widget-container,
    .elementor-2320 .elementor-element.elementor-element-ca7d366 > .elementor-widget-container { margin-left: 0; margin-right: 0; }
    .elementor-2306 .elementor-element.elementor-element-26e339f { width: 100%; max-width: 100%; }
    .elementor .elementor-widget-text-editor .alignleft,
    .elementor .elementor-widget-text-editor .alignright { float: none; margin-left: 0; margin-right: 0; }
    .elementor input:not([type=checkbox]):not([type=radio]), .elementor select, .elementor textarea { max-width: 100%; font-size: 16px; }
}
@media (max-width: 767px) {
    .elementor-1865 .elementor-element.elementor-element-598ca55 .swiper-slide .swiper-slide-bg { background-size: contain; }
    .elementor-1865 .elementor-element.elementor-element-ddabfa2 > .elementor-widget-container > .wpr-tabs > .wpr-tabs-content-wrap > .wpr-tab-content { font-size: 16px; }
}
/* Five footer columns previously added up to more than the available width. */
@media (min-width: 1025px) {
    .elementor-222 .elementor-element.elementor-element-6b9179f { display: grid; grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr)); gap: 24px; }
    .elementor-222 .elementor-element.elementor-element-6b9179f > .e-con { --width: 100%; }
    .elementor-222 .elementor-element.elementor-element-3e8d11f { --width: 100%; }
}
@media (max-width: 1024px) {
    .elementor-166 .wpr-mobile-toggle-wrap { text-align: right; }
    .elementor-166 .wpr-mobile-nav-menu-container { max-width: calc(100vw - 16px); }
}
@media (max-width: 767px) {
    .elementor .wpr-grid-item { max-width: 100%; }
}
/* Keep the fixed back-to-top control independent of its full-width motion wrapper. */
.elementor-222 .elementor-element.elementor-element-22ce4de > .elementor-widget-container { transform: none !important; }
@media (max-width: 767px) {
    .elementor-1865 .elementor-element.elementor-widget-counter .elementor-counter-number-wrapper { font-size: clamp(22px, 6vw, 42px); }
    .elementor-1865 .elementor-element.elementor-widget-counter .elementor-counter-title { white-space: normal; }
}

@media (min-width: 768px) and (max-width: 1024px) {
 .elementor-1865 .elementor-element.elementor-widget-counter .elementor-counter-number-wrapper { font-size: clamp(28px, 4vw, 42px); }
}
.elementor-1865 .elementor-element.elementor-element-a2b6125 { --margin-left: 0px; --margin-right: 0px; }
/* Laptop-specific widget widths can otherwise inherit down to smaller screens. */
@media (max-width: 1024px) {
    .elementor .elementor-widget { max-width: 100%; }
    .elementor-2320 .elementor-element.elementor-element-cd47f0f,
    .elementor-2538 .elementor-element.elementor-element-22b8336 { width: 100%; }
    .elementor-2538 .elementor-element.elementor-element-7b92b9a > .elementor-widget-container,
    .elementor-2320 .elementor-element.elementor-element-ca7d366 > .elementor-widget-container { margin-left: 0; margin-right: 0; }
}

/* Remove inherited overlapping column margins on phones and tablets. */
@media (max-width: 1024px) {
.elementor-2773 .elementor-element.elementor-element-65d6587d > .elementor-element-populated,
.elementor-2540 .elementor-element.elementor-element-0bac8a7 > .elementor-element-populated,
.elementor-2540 .elementor-element.elementor-element-54402ca > .elementor-element-populated,
.elementor-2538 .elementor-element.elementor-element-5bfabe7 > .elementor-element-populated,
.elementor-2538 .elementor-element.elementor-element-777f479 > .elementor-element-populated,
.elementor-2320 .elementor-element.elementor-element-817fdc1 > .elementor-element-populated,
.elementor-2320 .elementor-element.elementor-element-7f7ca26 > .elementor-element-populated,
.elementor-2306 .elementor-element.elementor-element-6f0edc95 > .elementor-element-populated,
.elementor-2306 .elementor-element.elementor-element-38938059 > .elementor-element-populated,
.elementor-1865 .elementor-element.elementor-element-35d79ad6 > .elementor-element-populated,
.elementor-7 .elementor-element.elementor-element-d7ac48a > .elementor-element-populated { margin: 0; --e-column-margin-left: 0px; --e-column-margin-right: 0px; }
 .elementor-2538 .elementor-element.elementor-element-7b92b9a .elementor-button { width: 100%; max-width: 299px; height: auto; min-height: 46px; white-space: normal; }
}
