html { scroll-behavior: smooth; }
.ec-seo-page > .ec-hero { margin-bottom: 28px; }
.ec-seo-page .ec-facts { transform: translateY(-28px); }
@media (min-width: 768px) { .ec-seo-page .ec-enquiry { transform: translateY(-28px); } }
.wrapper-navbar { position: sticky; top: 0; z-index: 1000; }
.home .wrapper-navbar { margin-bottom: -91px; }
.home .header-bottom { background: transparent !important; }
.dropdown:hover > .dropdown-menu,
.dropdown:focus-within > .dropdown-menu { display: block; }
.wpb_animate_when_almost_visible { opacity: 1 !important; }
[data-vc-full-width="true"] { left: auto !important; margin-left: calc(50% - 50vw) !important; position: relative; width: 100vw !important; }
[data-vc-full-width="true"]:not([data-vc-stretch-content]) { box-sizing: border-box; padding-left: max(0px, calc((100vw - 1110px) / 2)); padding-right: max(0px, calc((100vw - 1110px) / 2)); }
.vc_parallax { overflow: hidden; position: relative; }
.vc_parallax-inner { background-position: center; background-size: cover; left: 0; position: absolute; width: 100%; }

.hp-slider-revolution { min-height: 600px; overflow: hidden; position: relative; }
.hp-slider-revolution rs-module-wrap { display: block !important; height: 600px; position: relative; visibility: visible !important; width: 100%; }
.hp-slider-revolution rs-module,
.hp-slider-revolution rs-slides,
.hp-slider-revolution rs-slide { display: block; height: 100%; inset: 0; position: absolute; width: 100%; }
.hp-slider-revolution rs-slide:first-child { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAG0lEQVR4AWJiYGD4D8RgBOIwgllAAsQBUhAEAAAA//9Zk0qgAAAABklEQVQDACO2AQdCSU3+AAAAAElFTkSuQmCC"); visibility: visible !important; }
.hp-slider-revolution .rev-slidebg { display: none !important; }
.hp-slider-revolution rs-layer,
.hp-slider-revolution .rs-layer,
.hp-slider-revolution rs-layer img { opacity: 1 !important; visibility: visible !important; }
.hp-slider-revolution rs-slide::after { display: none; }
.home .hp-slider-revolution rs-slide::after { background: rgb(0 0 0 / 30%); content: ""; display: block; inset: 0; position: absolute; z-index: 8; }
.hp-slider-revolution #slider-6-slide-9-layer-3 { background: #a4a7a8 url("/media/emcon-hero-poster.jpg") center / cover no-repeat; }
.hp-slider-revolution #slider-5-slide-8-layer-3 { background: #a4a7a8 url("/media/emcon-hero-poster.jpg") center / cover no-repeat; }
.hp-slider-revolution #slider-7-slide-10-layer-3 { background: #a4a7a8 url("/wp-content/uploads/2022/09/thumbnail-services-video.jpg") center / cover no-repeat; }
body:not(.home) .hp-slider-revolution #slider-5-slide-8-layer-3,
body:not(.home) .hp-slider-revolution #slider-7-slide-10-layer-3 { height: 100%; inset: 0; opacity: 1 !important; position: absolute; width: 100%; z-index: 8; }
#rev_slider_7_1_wrapper rs-slide { background-image: none; }
#rev_slider_7_1_wrapper rs-slide::after { display: none; }
body:not(.home) .hp-slider-revolution .wp-hero-video { display: none; }
body:not(.home) .hp-slider-revolution { height: 100vh; margin-top: -93px; }
body:not(.home) .hp-slider-revolution rs-module-wrap { height: 100%; position: absolute; }
.page-id-1649 .vc_row-o-full-height { min-height: calc(100vh - 92px) !important; }
.page-id-494 .header-presentation { height: 300px; margin-top: -93px; }
.wpb_flexslider .flex-viewport { overflow: hidden; position: relative; }
.wpb_flexslider .slides { transform: none !important; width: 100% !important; }
.wpb_flexslider .slides > li { display: none !important; width: 100% !important; }
.wpb_flexslider .slides > li:first-child { display: block !important; }
.wpb_flexslider .slides img { display: block; height: auto; width: 100%; }
body.page-id-32 [data-vc-full-width="true"]:has(+ .vc_row-full-width + [data-vc-full-width="true"]) { padding-bottom: 20px; }

.home .hp-slider-revolution { height: 100vh; margin-top: -1px; min-height: 600px; }
@media (min-width: 768px) { .home .hp-slider-revolution { margin-top: -93px; } } /* as live WP from 768px; collapses with the sticky navbar's -91px margin. Without it a 1px white line shows above the video */
.home .hp-slider-revolution rs-module-wrap { height: 100%; position: absolute; }
.hp-slider-revolution #slider-6-slide-9-layer-3 { height: 100%; inset: 0; position: absolute; width: 100%; z-index: 8; }
.wp-hero-video { border: 0; height: 100%; pointer-events: none; width: 100%; visibility: visible; } /* background video: not clickable, so YouTube never shows its pause / "More videos" overlay. rs6.css hides rs-layer iframes until RevSlider JS shows them; there is no RevSlider JS here */
.hp-slider-revolution #slider-6-slide-9-layer-2 { height: 120px; left: 50%; position: absolute; top: 0; transform: translateX(-50%); width: 100px; z-index: 16; }
.hp-slider-revolution #slider-6-slide-9-layer-2 img { height: 100%; object-fit: contain; width: 100%; }
.hp-slider-revolution #slider-6-slide-9-layer-15 { color: #fff; font: 800 60px/60px Montserrat, sans-serif; left: 50%; position: absolute; text-align: center; text-shadow: 4px 4px 4px #000; top: calc(50% - 211px); transform: translateX(-50%); width: max-content; z-index: 9; }
.hp-slider-revolution #slider-6-slide-9-layer-20 { color: #fff; font: 700 20px/23px Montserrat, sans-serif; left: 50%; position: absolute; text-align: center; text-shadow: 4px 4px 4px #000; top: calc(50% - 78px); transform: translateX(-50%); width: min(80%, 960px); z-index: 13; }
.hp-slider-revolution #slider-6-slide-9-layer-21,
.hp-slider-revolution #slider-6-slide-9-layer-24 { display: block; font: 700 40px/173px Montserrat, sans-serif; height: 179px; position: absolute; text-align: center; text-decoration: none; top: calc(50% + 29px); width: 30%; }
.hp-slider-revolution #slider-6-slide-9-layer-21 { background: rgb(17 160 219 / 70%); color: #fff; left: 0; z-index: 11; }
.hp-slider-revolution #slider-6-slide-9-layer-24 { background: rgb(255 240 0 / 70%); color: #000; right: 0; z-index: 10; }
.hp-slider-revolution #slider-6-slide-9-layer-19 { border: 3px solid rgb(255 255 255 / 75%); border-radius: 23px; bottom: 20px; height: 55px; left: 50%; position: absolute; transform: translateX(-50%); width: 35px; z-index: 12; }
.hp-slider-revolution #slider-6-slide-9-layer-19 span:first-child { animation: mouse-wheel 1.6s infinite; background: #fff; border-radius: 50%; height: 7px; left: 11px; position: absolute; top: 10px; width: 7px; }
.home [data-vc-parallax-image$="emcon-services-home.jpg"] > .vc_parallax-inner { z-index: 1; }
@keyframes mouse-wheel { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(18px); } }

.enquiry-status { border: 2px solid; display: none; margin: 20px 0; padding: 15px; }
#enquiry-sent:target { border-color: #46b450; color: #237a2c; display: block; }
#enquiry-error:target { border-color: #dc3232; color: #b12020; display: block; }
.enquiry-honeypot { left: -10000px; position: absolute; }
.wpcf7 { min-height: 832px; }
.wpb_map_wraper { position: relative; }
.wpb_map_wraper iframe { border: 0; display: block; height: 100%; inset: 0; min-height: 0; position: absolute; width: 100%; }
.robogallery-gallery-1675,
.robogallery-gallery-1679,
.robogallery-gallery-1681,
.robogallery-gallery-1683 { display: block !important; }
.robo_gallery { display: grid; grid-template-columns: repeat(5, 20%); width: 100%; }
.robo_gallery > .rbs-img { display: block !important; height: auto !important; margin: 0 !important; padding-bottom: 15px; position: static !important; transform: translateX(-15px); width: calc(100% - 1px) !important; }
.rbs-img-thumbs { aspect-ratio: 1; background-position: center; background-repeat: no-repeat; display: block; margin-left: 15px; position: relative; width: calc(100% - 15px); }
.rbs-img-thumbs::before { background: var(--thumb) center / cover no-repeat; content: ""; inset: 0; position: absolute; }
.rbs-img-content { box-sizing: border-box; display: block !important; font: 500 16px/17px Montserrat, sans-serif; margin-left: 15px; padding: 20px; text-align: center; width: calc(100% - 15px); }
.static-gallery-more { display: flex; flex-direction: column; grid-column: 1 / -1; margin-top: 10px; }
.static-gallery-more > summary { cursor: pointer; display: block; height: 47px; line-height: 47px; list-style: none; text-align: left; }
.static-gallery-more .rbs-imges-load-more { background: #eee; color: #666; display: inline-block; font: 300 14px/30px "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; height: 32px; margin: 0 5px 15px 0; padding: 0 25.6px; }
.static-gallery-more .rbs-imges-load-more::before { content: "Load More"; }
.static-gallery-more > summary::-webkit-details-marker { display: none; }
.static-gallery-more > summary { display: none; } /* 2026-09-30: every photo is shown (no JS), so the 'Load More' button did nothing */
.static-gallery-extra { display: none; grid-template-columns: repeat(5, 20%); order: 1; }
.robogallery-gallery-1675 .static-gallery-extra,
.robogallery-gallery-1681 .static-gallery-extra { display: grid; }
body.page-id-1509 .robogallery-gallery-1675 .static-gallery-extra { display: none; }
.static-gallery-extra > .rbs-img { display: block !important; height: auto !important; margin: 0 !important; padding-bottom: 15px; position: static !important; transform: translateX(-15px); width: calc(100% - 1px) !important; }
.static-gallery-extra > .rbs-img:nth-child(n + 9) { display: none !important; }
.robogallery-gallery-1683 .robo_gallery { grid-template-columns: repeat(2, 50%); }
body.page-id-10 .wpb_flexslider .slides > li:first-child { display: none !important; }
body.page-id-10 .vc_custom_1663932527925 .slides > li:nth-child(3),
body.page-id-10 .vc_custom_1663936460305 .slides > li:nth-child(3),
body.page-id-10 .vc_custom_1663933144991 .slides > li:nth-child(3),
body.page-id-10 .vc_custom_1644768570057 .wpb_flexslider .slides > li:nth-child(3) { display: block !important; }

@media (max-width: 767px) {
  .wrapper-navbar { margin-top: -1px; }
  .home .wrapper-navbar { margin-bottom: 0; }
  .home .header-bottom { background: #fff !important; }
  .wrapper-navbar .navbar { min-height: 73px; }
  .wrapper-navbar .navbar .container-fluid { align-items: center; display: flex; min-height: 73px; position: relative; }
  .wrapper-navbar .navbar-toggler { display: block !important; margin: 0 0 0 16px; order: -1; }
  body .wrapper-navbar .navbar-brand { height: 57px; left: 50%; line-height: 12px; margin: 0 !important; padding: 4.5px 0; position: absolute; top: 8px; transform: translateX(-50%); width: 175px; }
  body .wrapper-navbar .navbar-brand .brand-default,
  body.desktop-mode.light-colors-overlay .wrapper-navbar .navbar-brand > img.brand-light,
  body .wrapper-navbar .navbar-brand .brand-dark { display: none !important; }
  body .wrapper-navbar .navbar-brand { left: calc(50% + 10px); }
  body .wrapper-navbar .navbar-brand .brand-mobile { display: block !important; height: 48px; left: 0; margin: 0 !important; position: absolute; top: 4.5px; width: 175px; }
  .wrapper-navbar .extra-elements__mobile { margin-left: auto; order: 3; }
  #navbarNavDropdown { background: #fff; box-shadow: 0 6px 12px rgb(0 0 0 / 18%); display: none !important; left: 0; max-height: calc(100vh - 73px); overflow: auto; padding: 10px 20px 20px; position: absolute; right: 0; top: 73px; z-index: 1001; }
  .navbar-toggler:focus ~ #navbarNavDropdown,
  #navbarNavDropdown:focus-within { display: block !important; }
  #navbarNavDropdown .navbar-nav { display: block; }
  #navbarNavDropdown .dropdown-menu { border: 0; box-shadow: none; display: block; padding-left: 18px; position: static; }
  #navbarNavDropdown .nav-link { min-height: 44px; padding: 14px 8px; }
  .home .hp-slider-revolution { height: 100vh; min-height: 600px; }
  body:not(.home) .hp-slider-revolution { height: 100vh; margin-top: 0; }
  .page-id-1649 .vc_row-o-full-height { min-height: calc(100vh - 93px) !important; }
  .page-id-494 .header-presentation { height: 281.33px; margin-top: -2px; }
  body.page-id-494 .header-presentation h1 { font-size: 40px !important; line-height: 56px !important; }
  body.page-id-494 .header-presentation p { font-size: 20px !important; line-height: 28px !important; }
  body.desktop-mode.light-colors-overlay.colors-overlay-enabled.page-id-494 .navbar.nav-portfolio > a.navbar-brand { color: rgb(0 0 0 / 90%) !important; }
  .page-id-494 .nav-portfolio .nav-link,
  .page-id-494 .nav-portfolio .nav-link .sr-only { color: rgb(0 0 0 / 50%) !important; }
  body.page-id-494 #portfolio-filter .navbar-brand { color: rgb(0 0 0 / 90%) !important; }
  body.page-id-494 #portfolio-filter .nav-link,
  body.page-id-494 #portfolio-filter .nav-link .sr-only { color: rgb(0 0 0 / 50%) !important; }
  .hp-slider-revolution #slider-6-slide-9-layer-2 { height: 98px; width: 81px; }
  .hp-slider-revolution #slider-6-slide-9-layer-15 { font-size: 23px; line-height: 19px; top: calc(50% - 81px); }
  .hp-slider-revolution #slider-6-slide-9-layer-20 { font-size: 10px; left: 50%; line-height: 7px; top: calc(50% - 27px); width: 407%; }
  .hp-slider-revolution #slider-6-slide-9-layer-21,
  .hp-slider-revolution #slider-6-slide-9-layer-24 { font-size: 12px; height: 61px; line-height: 55px; right: auto; width: 30%; }
  .hp-slider-revolution #slider-6-slide-9-layer-21 { left: 35%; top: calc(50% + 10px); }
  .hp-slider-revolution #slider-6-slide-9-layer-24 { left: 35%; top: calc(50% + 75px); }
  .hp-slider-revolution #slider-6-slide-9-layer-19 { bottom: 6px; height: 20px; width: 14px; }
  .hp-slider-revolution #slider-6-slide-9-layer-19 span:first-child { height: 3px; left: 3px; top: 3px; width: 3px; }
  [data-vc-full-width="true"] { left: auto !important; margin-left: calc(50% - 50vw) !important; width: 100vw !important; }
  .robo_gallery { grid-template-columns: repeat(2, 50%); }
  .static-gallery-extra,
  .robogallery-gallery-1675 .static-gallery-extra,
  .robogallery-gallery-1681 .static-gallery-extra,
  body.page-id-1509 .robogallery-gallery-1675 .static-gallery-extra { display: grid; grid-template-columns: repeat(2, 50%); }
  .static-gallery-extra > .rbs-img:nth-child(n + 9) { display: block !important; }
  body.page-id-1509 :is(.robogallery-gallery-1675, .robogallery-gallery-1681) :is(.static-gallery-more, .static-gallery-extra) { display: contents; }
  body.page-id-1509 :is(.robogallery-gallery-1675, .robogallery-gallery-1681) .robo_gallery { grid-auto-flow: row; grid-auto-rows: 17px; }
  body.page-id-1509 :is(.robogallery-gallery-1675, .robogallery-gallery-1681) .rbs-img { --gallery-span: 13; grid-row-end: span var(--gallery-span); height: calc(var(--gallery-span) * 17px) !important; }
  body.page-id-1509 :is(.robogallery-gallery-1675, .robogallery-gallery-1681) .rbs-img-content { height: 57px; overflow: hidden; }
  body.page-id-1509 .robogallery-gallery-1675 .robo_gallery > .rbs-img:is(:nth-child(8), :nth-child(14), :nth-child(15)),
  body.page-id-1509 .robogallery-gallery-1675 .static-gallery-extra > .rbs-img:is(:nth-child(6), :nth-child(13), :nth-child(19), :nth-child(31), :nth-child(36), :nth-child(38), :nth-child(51), :nth-child(57), :nth-child(76), :nth-child(77), :nth-child(78), :nth-child(81), :nth-child(84), :nth-child(96), :nth-child(99), :nth-child(100), :nth-child(112), :nth-child(113)),
  body.page-id-1509 .robogallery-gallery-1681 .robo_gallery > .rbs-img:is(:nth-child(1), :nth-child(4), :nth-child(5), :nth-child(7), :nth-child(14), :nth-child(15), :nth-child(17)),
  body.page-id-1509 .robogallery-gallery-1681 .static-gallery-extra > .rbs-img:is(:nth-child(2), :nth-child(9), :nth-child(30), :nth-child(41), :nth-child(44), :nth-child(46), :nth-child(49), :nth-child(50), :nth-child(51), :nth-child(53), :nth-child(54)) { --gallery-span: 14; }
  body.page-id-1509 :is(.robogallery-gallery-1675, .robogallery-gallery-1681) .rbs-img[style*="--gallery-span: 14"] .rbs-img-content { height: 74px; }
  body.page-id-1509 .robogallery-gallery-1675 .robo_gallery > .rbs-img:is(:nth-child(8), :nth-child(14), :nth-child(15)) .rbs-img-content,
  body.page-id-1509 .robogallery-gallery-1675 .static-gallery-extra > .rbs-img:is(:nth-child(6), :nth-child(13), :nth-child(19), :nth-child(31), :nth-child(36), :nth-child(38), :nth-child(51), :nth-child(57), :nth-child(76), :nth-child(77), :nth-child(78), :nth-child(81), :nth-child(84), :nth-child(96), :nth-child(99), :nth-child(100), :nth-child(112), :nth-child(113)) .rbs-img-content,
  body.page-id-1509 .robogallery-gallery-1681 .robo_gallery > .rbs-img:is(:nth-child(1), :nth-child(4), :nth-child(5), :nth-child(7), :nth-child(14), :nth-child(15), :nth-child(17)) .rbs-img-content,
  body.page-id-1509 .robogallery-gallery-1681 .static-gallery-extra > .rbs-img:is(:nth-child(2), :nth-child(9), :nth-child(30), :nth-child(41), :nth-child(44), :nth-child(46), :nth-child(49), :nth-child(50), :nth-child(51), :nth-child(53), :nth-child(54)) .rbs-img-content { height: 74px; }
  .static-gallery-more > summary { display: none; order: 2 !important; }
  .wpcf7 { min-height: 831px; }
  .emcon-native-tabs-solid #emcon-solid-light .vc_tta-panel-heading,
  .emcon-native-tabs-hollow #emcon-hollow-light .vc_tta-panel-heading { transform: translateY(19px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hp-slider-revolution #slider-6-slide-9-layer-19 span:first-child { animation: none; }
}

/* Hero clip fills the slide the way RevSlider's background video did. */
rs-layer video.wp-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Owner request 2026-09-19: no YouTube icon in the hero; a plain link to the full video sits under the tiles. */
.hp-slider-revolution .hero-video-link { bottom: 150px; color: #fff; font: 600 16px/1.4 Montserrat, sans-serif; left: 50%; position: absolute; text-decoration: none; text-shadow: 2px 2px 4px #000; transform: translateX(-50%); white-space: nowrap; z-index: 14; }
.hp-slider-revolution .hero-video-link:hover, .hp-slider-revolution .hero-video-link:focus-visible { text-decoration: underline; }
