/* Presentation only: all layout and content remain editable native Elementor nodes. */
.elementor-location-header {
    position:sticky;
    top:0;
    z-index:1000;
    background:#fff;
    box-shadow:0 4px 20px -14px rgba(17,38,56,.24);
}
body.admin-bar .elementor-location-header {top:32px;}
html {scroll-padding-top:136px;}
.ce-inner-hero {
    background-image:url('design/london-ontario-skyline.svg');
    background-repeat:no-repeat;
    background-position:right bottom;
    background-size:min(100%,1100px) auto;
}
@media(max-width:1024px) {
    .elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
        max-height:calc(100dvh - 110px) !important;
        overflow-y:auto;
        overscroll-behavior:contain;
    }
    .ce-inner-hero {background-size:1000px auto;}
    html {scroll-padding-top:100px;}
}
@media(max-width:782px) {body.admin-bar .elementor-location-header {top:46px;}}
@media(max-width:600px) {body.admin-bar .elementor-location-header {top:0;}}
@media(max-width:767px) {
    .elementor .ce-inner-hero {
        background-size:100% 100%,760px auto;
        /* Fade behind small-screen headings, retaining the skyline at the base. */
        background-image:linear-gradient(180deg,rgba(243,247,249,.82),rgba(243,247,249,.5)),url('design/london-ontario-skyline.svg') !important;
    }
}
.ce-card {
    transition: transform .32s cubic-bezier(.22,.61,.36,1), box-shadow .32s ease, border-color .32s ease;
    text-decoration: none;
    color: inherit;
    isolation: isolate;
}
a.ce-card { cursor: pointer; }
.ce-card:focus-visible { outline: 3px solid #008ed4; outline-offset: 5px; }
.ce-card .elementor-icon { transition: transform .32s ease, color .32s ease; }
.ce-service-card { height: 100%; }
.ce-service-media { width: 100%; max-width: none; overflow: hidden; margin: 0; padding: 0; }
.ce-service-media > .elementor-widget-container { width: 100%; overflow: hidden; }
.ce-service-media img {
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    object-position: center;
    border-radius: 0 !important;
    transition: transform .65s cubic-bezier(.22,.61,.36,1), filter .45s ease;
}
.ce-service-card > .e-con { flex-grow: 1; }
.ce-service-card .ce-card-link { margin-top:auto !important; padding-top:8px; }
.ce-card .ce-card-link { transition: color .25s ease; }
.elementor-post { transition:transform .32s cubic-bezier(.22,.61,.36,1),box-shadow .32s ease; }
.elementor-post .elementor-post__thumbnail { overflow:hidden; border-radius:12px; }
.elementor-post .elementor-post__thumbnail img { transition:transform .65s ease; }
.ce-footer-brand .elementor-widget-image img { filter: brightness(0) invert(1); }
.ce-footer-brand .elementor-heading-title,
.ce-footer-brand .elementor-heading-title a { color: #fff !important; }
.elementor-location-header .elementor-button { color: #fff !important; }
.ce-hero { overflow: hidden; position: relative; isolation: isolate; }
.ce-hero::before {
    content: '';
    position: absolute;
    width: 65%; height: 110%; right: -12%; top: -5%;
    background: radial-gradient(ellipse, rgba(0,142,212,.09), transparent 66%);
    pointer-events: none;
    z-index: -1;
    animation: ce-ambient-drift 18s ease-in-out infinite alternate;
}
.ce-hero-photo { animation: ce-hero-float 9s ease-in-out infinite; }
.ce-hero-badge { animation: ce-badge-float 7s ease-in-out infinite; }
@keyframes ce-hero-float { 0%,100% {transform:translate3d(0,0,0)} 50% {transform:translate3d(0,-9px,0)} }
@keyframes ce-badge-float { 0%,100% {transform:translate3d(0,0,0)} 50% {transform:translate3d(0,5px,0)} }
@keyframes ce-ambient-drift { from {transform:translate3d(-4%,2%,0) scale(.95)} to {transform:translate3d(5%,-3%,0) scale(1.08)} }
@media (hover:hover) and (pointer:fine) {
    .ce-card:hover { transform: translateY(-6px); border-color:#AACDDF; box-shadow:0 16px 36px -12px rgba(17,38,56,.22); }
    .ce-card:hover .ce-service-media img { transform:scale(1.045); filter:saturate(1.04); }
    .ce-card:hover .elementor-icon { transform:translateY(-2px); }
    .ce-card:hover .ce-card-link .elementor-heading-title { color:#008ed4; }
    .elementor-post:hover { transform:translateY(-5px); }
    .elementor-post:hover .elementor-post__thumbnail img { transform:translate(-50%,-50%) scale(1.04); }
}
@media (prefers-reduced-motion:reduce) {
    .ce-hero::before,.ce-hero-photo,.ce-hero-badge {animation:none !important;}
    .ce-card,.ce-card .elementor-icon,.ce-service-media img,.ce-card .ce-card-link,.elementor-post,.elementor-post .elementor-post__thumbnail img {transition:none !important;}
    .ce-card:hover,.ce-card:hover .ce-service-media img,.ce-card:hover .elementor-icon,.elementor-post:hover {transform:none !important;}
    .elementor-post:hover .elementor-post__thumbnail img {transform:translate(-50%,-50%) !important;}
}
