/* Keep existing Elementor designs within the viewport. */
html,body { max-width:100%; }
.elementor .e-con,.elementor .elementor-widget { min-width:0; }
.elementor-location-header .menu-con:before { width:100%; pointer-events:none; }
.elementor .elementor-widget-n-carousel { width:100%; max-width:100%; }
.elementor .e-n-carousel.swiper { width:100%; max-width:100%; overflow:hidden; }
.elementor .auth-inner-sec { max-width:100%; }
.elementor img { max-width:100%; }
@media(min-width:1025px) and (max-width:1300px) {
 .elementor-57 .elementor-element.elementor-element-ebf80a1 { --width:22%; }
 .elementor-57 .elementor-element.elementor-element-7b3244e { --width:78%; }
 .elementor-57 .elementor-nav-menu--main .elementor-item { padding-inline:14px; white-space:nowrap; }
 .elementor-57 .elementor-element.elementor-element-2b72f2e .elementor-button { padding:16px 22px; white-space:nowrap; }
 .elementor-21 .elementor-element.elementor-element-5f6eb66 .elementor-heading-title { font-size:clamp(38px,4.3vw,56px); line-height:1.12; }
}
@media(max-width:1024px) {
 .elementor-location-header .e-con-inner { flex-direction:row; align-items:center; flex-wrap:nowrap; }
 .elementor-57 .elementor-element.elementor-element-ebf80a1 { --width:30%; }
 .elementor-57 .elementor-element.elementor-element-7b3244e { --width:70%; }
 .elementor-57 .elementor-element.elementor-element-ac22843 { flex-direction:row; align-items:center; justify-content:flex-end; }
 .elementor-location-header .elementor-widget-nav-menu { position:static; }
 .elementor-location-header .elementor-nav-menu--dropdown { left:auto!important; right:0; width:min(90vw,360px)!important; }
 .elementor-location-header .elementor-nav-menu--dropdown.elementor-active { top:100%; z-index:100; }
 .elementor-location-header .elementor-button { white-space:nowrap; }
}
@media(max-width:767px) {
 .elementor-location-header .elementor-widget-image img { max-width:100px; }
 .elementor-location-header .elementor-button { font-size:11px!important; padding:12px 16px!important; }
 .elementor-location-header .menu-con { gap:10px; padding:10px; }
 .elementor-21 .elementor-element.elementor-element-92b8b2a { --margin-top:0px; --padding-top:40px; background-image:none!important; }
 .elementor-21 .elementor-element.elementor-element-5f6eb66 .elementor-heading-title { font-size:36px; line-height:1.15; }
 .elementor .e-con { --container-max-width:100%; }
 .elementor .auth-inner-sec { width:100%; }
 .elementor .e-con-inner { max-width:100%; }
 .elementor-location-footer .elementor-icon-list-items { flex-wrap:wrap; }
}
/* Header controls must remain above the decorative menu surface. */
.elementor-location-header .menu-con > .elementor-widget { position:relative; z-index:2; }
@media(max-width:1024px) {
 .elementor-57 .elementor-element.elementor-element-eb34d0d > .e-con-inner { flex-wrap:nowrap!important; flex-direction:row!important; gap:12px; }
 .elementor-57 .elementor-element.elementor-element-ebf80a1 { flex:0 0 27%; }
 .elementor-57 .elementor-element.elementor-element-7b3244e { flex:1 1 0%; }
 .elementor-57 .elementor-element.elementor-element-ac22843 { flex-wrap:nowrap!important; min-height:64px; }
 .elementor-location-header .elementor-widget-nav-menu { flex:0 0 40px; width:40px!important; position:static; }
 .elementor-location-header .elementor-widget-button { flex:0 1 auto; width:auto!important; }
 .elementor-location-header .menu-con:before { border-radius:40px; }
 .elementor-location-header .elementor-menu-toggle { position:relative; z-index:3; color:#222; }
}
@media(max-width:1024px) {
 .elementor-location-header .menu-con > .elementor-widget-nav-menu { position:static!important; }
 .elementor-location-header nav.elementor-nav-menu--dropdown { position:absolute!important; top:calc(100% + 10px)!important; right:0!important; left:auto!important; width:min(355px,calc(100vw - 30px))!important; margin:0!important; z-index:100; border-radius:16px; box-shadow:0 8px 28px #0002; background:white; }
 .elementor-location-header nav.elementor-nav-menu--dropdown .elementor-item { padding:16px 22px; }
}
/* Interior page titles need contrast over their photographs. */
:is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child { --margin-top:0px; --padding-top:60px; --padding-bottom:60px; box-shadow:inset 0 0 0 1000px #0005; }
:is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child .elementor-heading-title { color:white!important; text-shadow:0 2px 12px #0008; }
@media(max-width:767px) {
 :is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child { --min-height:260px; --padding-top:55px; --padding-bottom:55px; }
 :is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child .elementor-heading-title { font-size:38px; line-height:1.15; text-align:center; }
}
:is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child { background-size:cover!important; background-position:center!important; }
:is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child > .e-con-inner { align-items:center; justify-content:center; }
:is(.elementor-23,.elementor-24,.elementor-25,.elementor-26,.elementor-27) > .e-con:first-child .elementor-widget-heading { width:100%; text-align:center; }
