/* Captured /reference styles own the design. This file replaces layout and
   interaction state previously supplied by the WordPress runtime. */
:root { --the7-vh: 1vh; --the7-fit-height: 100dvh; }
[hidden] { display: none !important; }
.elementor-location-header { position: relative; z-index: 900; }
.elementor-location-footer { grid-area: footer; }
.elementor-location-header > section { top: 0; left: 0; width: 100%; }
.elementor-location-header { height: 0; }
@media (min-width: 1025px) {
    .elementor-location-header > section { position: fixed; }
}
.elementor-location-header .elementor-element-748fafe { top: 50% !important; transform: translateY(-50%); }
.elementor-widget-heading h1.elementor-heading-title { margin: 0; }
.elementor-element-51f1073 h1.elementor-heading-title { font: 400 40px/1 Poppins, sans-serif; }
.elementor-widget .swiper-wrapper { display: flex; align-items: stretch; gap: 10px; transition: transform .5s ease; }
.elementor-widget .swiper-slide { flex: 0 0 100%; width: 100%; min-width: 0; margin: 0; }
.elementor-main-swiper { overflow: hidden; touch-action: pan-y; }
.elementor-swiper-button { border: 0; padding: 0; background: transparent; }
.swiper-pagination-bullet { padding: 0; border: 0; cursor: pointer; }
.elementor-widget-reviews .swiper-pagination { position: absolute; }
.elementor-widget-reviews .swiper-wrapper { height: auto; }
.elementor-widget-reviews .elementor-testimonial { height: 100%; }
#mobile-menu { position: fixed; inset: 0; z-index: 10000; display: flex; justify-content: flex-end; align-items: stretch; background: transparent; }
#mobile-menu .dialog-widget-content { position: relative; margin: 0; max-width: 100%; background: white; animation: fadeIn .3s both; }
#mobile-menu .dialog-message { max-height: 100dvh; overflow: auto; }
#mobile-menu .dialog-close-button { position: absolute; top: 20px; right: 20px; z-index: 2; border: 0; padding: 0; background: transparent; cursor: pointer; }
#mobile-menu .dialog-close-button svg { width: 24px; height: 24px; }
#mobile-menu [aria-current="page"] { color: #0d363d; }
.elementor-location-footer [aria-current="page"] { color: var(--e-global-color-el_color_1_2) !important; }
body.menu-open { overflow: hidden; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.notice { padding: 12px 14px; margin: 16px 0; }
.notice.success { color: #164c2e; background: #e8f7ee; }
.notice.error, .field-error { color: #a32222; }
.field-error { display: block; }
.reveal-pending { visibility: hidden; }
.animated { animation-duration: 1.25s; animation-fill-mode: both; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInRight { from { opacity: 0; transform: translate3d(100%,0,0); } to { opacity: 1; transform: none; } }
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0,100%,0); } to { opacity: 1; transform: none; } }
@keyframes slideInUp { from { transform: translate3d(0,100%,0); } to { transform: none; } }
@keyframes zoomIn { from { opacity: 0; transform: scale3d(.3,.3,.3); } 50% { opacity: 1; } }
.animated.fadeIn { animation-name: fadeIn; }
.animated.fadeInRight { animation-name: fadeInRight; }
.animated.fadeInUp { animation-name: fadeInUp; }
.animated.slideInUp { animation-name: slideInUp; }
.animated.zoomIn { animation-name: zoomIn; }
.map-placeholder {
    min-height: 300px; display: grid; place-items: center; overflow: hidden;
    background: linear-gradient(135deg, #dce8e6, #f4f0e7); position: relative;
}
.map-placeholder::before {
    content: ""; position: absolute; inset: 0; opacity: .38;
    background: linear-gradient(28deg, transparent 47%, #fff 48% 52%, transparent 53%),
        linear-gradient(152deg, transparent 47%, #c7d7d4 48% 52%, transparent 53%);
    background-size: 82px 82px, 110px 110px;
}
.map-placeholder__button {
    position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 10px;
    min-height: 48px; padding: 12px 20px; border: 0; border-radius: 999px;
    background: #0d363d; color: #fff; font: 600 15px/1.3 Poppins, sans-serif;
    box-shadow: 0 6px 20px rgba(13, 54, 61, .2); cursor: pointer;
}
.map-placeholder__button:hover { background: #09272c; }
.map-placeholder__button:focus-visible { outline: 3px solid #f3b93c; outline-offset: 3px; }
.map-placeholder__button svg { width: 22px; height: 22px; fill: currentColor; }
.map-placeholder--loaded { display: block; background: none; }
.map-placeholder--loaded::before { display: none; }
.map-placeholder--loaded iframe { width: 100%; min-height: 300px; border: 0; }
.elementor-4476 .elementor-element.elementor-element-bfadbc6 .box-button {
    background: #664e96 !important; color: #fff !important;
}
.elementor-4476 .elementor-element.elementor-element-bfadbc6 .box-button:hover,
.elementor-4476 .elementor-element.elementor-element-bfadbc6 .box-button:focus {
    background: #513c7a !important; color: #fff !important;
}
.elementor-3990 .elementor-element.elementor-element-ca6180f .elementor-button,
.elementor-3990 .elementor-element.elementor-element-62230a9 .elementor-button {
    background: #664e96 !important; color: #fff !important;
}
.elementor-3990 .elementor-element.elementor-element-ca6180f .elementor-button:hover,
.elementor-3990 .elementor-element.elementor-element-ca6180f .elementor-button:focus,
.elementor-3990 .elementor-element.elementor-element-62230a9 .elementor-button:hover,
.elementor-3990 .elementor-element.elementor-element-62230a9 .elementor-button:focus {
    background: #513c7a !important; color: #fff !important;
}
@media (max-width: 767px) {
    .elementor-element-51f1073 h1.elementor-heading-title { font-size: 32px; line-height: 1; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
    .reveal-pending { visibility: visible; }
}

/* A compact, clearly tappable menu control; the mobile header stays on one row. */
.elementor-3912 .elementor-element.elementor-element-805fd7b .menu-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; min-width: 44px; padding: 0;
    border: 1px solid rgba(255,255,255,.35); border-radius: 10px;
    background: rgba(255,255,255,.07); color: #fff; cursor: pointer;
    transition: background .2s, border-color .2s;
}
.elementor-3912 .elementor-element.elementor-element-805fd7b .menu-toggle svg {
    width: 24px; height: 24px; fill: none; stroke: currentColor;
    stroke-width: 2; stroke-linecap: round; color: inherit;
}
.elementor-3912 .elementor-element.elementor-element-805fd7b .menu-toggle:hover,
.elementor-3912 .elementor-element.elementor-element-805fd7b .menu-toggle:active {
    background: rgba(160,137,206,.3); border-color: #a089ce;
}
.menu-toggle:focus-visible, #mobile-menu .dialog-close-button:focus-visible {
    outline: 2px solid #f3b93c; outline-offset: 3px;
}
#mobile-menu .dialog-close-button {
    width: 44px; height: 44px; display: flex; align-items: center;
    justify-content: center; top: 12px; right: 12px; border-radius: 10px;
}
#mobile-menu .dialog-close-button:hover { background: #f2f5f5; }
/* The full navigation needs more horizontal room than Elementor's tablet
   breakpoint allows. Keep the compact menu until the links and CTA fit on
   one row without wrapping. */
@media (max-width: 1279px) {
    .elementor-3912 .elementor-element.elementor-element-155aae9,
    .elementor-3912 .elementor-element.elementor-element-025d4c1 {
        display: none !important;
    }
    .elementor-3912 .elementor-element.elementor-element-805fd7b {
        display: block !important;
    }
}
@media (max-width: 767px) {
    .elementor-3912 .elementor-element.elementor-element-7d91034 {
        min-height: 68px; padding: 0 16px;
    }
    .elementor-3912 .elementor-element.elementor-element-7d91034 > .elementor-container {
        min-height: 68px; height: 68px; flex-wrap: nowrap; align-items: center; gap: 16px;
    }
    .elementor-3912 .elementor-element.elementor-element-0be55b3 {
        width: auto; min-width: 0; flex: 1;
    }
    .elementor-3912 .elementor-element.elementor-element-805d29e {
        width: 44px; flex: 0 0 44px;
    }
    .elementor-3912 .elementor-element.elementor-element-805d29e > .elementor-widget-wrap {
        padding: 0;
    }
    .elementor-3912 .elementor-element.elementor-element-813bede {
        margin: 0; width: 100%;
    }
    .elementor-3912 .elementor-element.elementor-element-813bede img {
        width: 280px; max-width: 100%; height: auto;
    }
}

/* Keep the mobile navigation legible on every inner page, including Contact. */
@media (max-width: 1024px) {
    body:not(.page-home) .elementor-location-header > section { background: #0d363d; }
    body:not(.page-home) #content .elementor-element-b81bfab { min-height: 120px; }
}
@media (max-width: 767px) {
    body:not(.page-home) #content .elementor-element-b81bfab { min-height: 68px; }
}

#wpforms-8466 .turnstile-field { clear: both; }
#wpforms-8466 #turnstile-status { font-size: 13px; line-height: 1.6; margin: 8px 0 0; }
