.elementor-31 .elementor-element.elementor-element-39c1e5e{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-31 .elementor-element.elementor-element-eaf655e{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:12px;--padding-bottom:12px;--padding-left:16px;--padding-right:16px;}.elementor-31 .elementor-element.elementor-element-eaf655e:not(.elementor-motion-effects-element-type-background), .elementor-31 .elementor-element.elementor-element-eaf655e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FF4500;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-31 .elementor-element.elementor-element-84e673f{text-align:center;}.elementor-31 .elementor-element.elementor-element-84e673f .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:700;color:#FFFFFF;}.elementor-31 .elementor-element.elementor-element-bf1b53f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--padding-top:18px;--padding-bottom:18px;--padding-left:20px;--padding-right:20px;}.elementor-31 .elementor-element.elementor-element-bf1b53f:not(.elementor-motion-effects-element-type-background), .elementor-31 .elementor-element.elementor-element-bf1b53f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:rgba(34,34,34,0.8);}.elementor-31 .elementor-element.elementor-element-9071323{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-31 .elementor-element.elementor-element-cf89a77{text-align:start;}.elementor-31 .elementor-element.elementor-element-cf89a77 img{width:240px;}.elementor-31 .elementor-element.elementor-element-3cce079{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-31 .elementor-element.elementor-element-b47920d .elementor-menu-toggle{margin-left:auto;background-color:rgba(0,0,0,0);}.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu .elementor-item{font-family:"Lato", Sans-serif;font-size:15px;font-weight:700;}.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu--main .elementor-item{color:#FFFFFF;fill:#FFFFFF;}.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu--main .elementor-item:hover,
					.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu--main .elementor-item:focus{color:#FF4500;fill:#FF4500;}.elementor-31 .elementor-element.elementor-element-b47920d .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#FF4500;}.elementor-31 .elementor-element.elementor-element-b47920d div.elementor-menu-toggle{color:#F4F4F4;}.elementor-31 .elementor-element.elementor-element-b47920d div.elementor-menu-toggle svg{fill:#F4F4F4;}.elementor-31 .elementor-element.elementor-element-b47920d div.elementor-menu-toggle:hover, .elementor-31 .elementor-element.elementor-element-b47920d div.elementor-menu-toggle:focus{color:#FF4500;}.elementor-31 .elementor-element.elementor-element-b47920d div.elementor-menu-toggle:hover svg, .elementor-31 .elementor-element.elementor-element-b47920d div.elementor-menu-toggle:focus svg{fill:#FF4500;}.elementor-31 .elementor-element.elementor-element-b47920d .elementor-menu-toggle:hover, .elementor-31 .elementor-element.elementor-element-b47920d .elementor-menu-toggle:focus{background-color:rgba(0,0,0,0);}.elementor-31 .elementor-element.elementor-element-b47920d{--nav-menu-icon-size:26px;}.elementor-31 .elementor-element.elementor-element-3d8bd65{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-31 .elementor-element.elementor-element-87fe27f .elementor-button{background-color:#FF4500;font-family:"Koulen", Sans-serif;font-size:16px;text-transform:uppercase;fill:#FFFFFF;color:#FFFFFF;}.elementor-31 .elementor-element.elementor-element-87fe27f .elementor-button:hover, .elementor-31 .elementor-element.elementor-element-87fe27f .elementor-button:focus{background-color:#E11833;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-31 .elementor-element.elementor-element-9071323{--width:33.33%;}.elementor-31 .elementor-element.elementor-element-3cce079{--width:33.33%;}.elementor-31 .elementor-element.elementor-element-3d8bd65{--width:33.33%;}}/* Start custom CSS for container, class: .elementor-element-39c1e5e *//* Live header is position:fixed from page load (NOT a scroll-activated sticky). */
.elementor-31 .elementor-element.elementor-element-39c1e5e { position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 999; }
.elementor-31 .elementor-element.elementor-element-39c1e5e, .elementor-31 .elementor-element.elementor-element-39c1e5e > .e-con-inner { gap: 0 !important; }

/* build-page gives row children equal % widths (33/33/33), which wrapped the nav
   onto 5 lines. Live is ~240/631/168 of 1440. */
.elementor-element-9071323 { width: 17% !important; flex: 0 0 17% !important; }
.elementor-element-3cce079 { width: 62% !important; flex: 0 0 62% !important; }
.elementor-element-3d8bd65 { width: 21% !important; flex: 0 0 21% !important; }

/* ---- Desktop submenu ----
   SmartMenus ships and the markup is correct but never initialises the desktop
   dropdown on this install. CSS hover fallback - harmless if SmartMenus engages,
   since both just reveal the same <ul>. Live panel: #363636, orange Lato links. */
@media (min-width: 992px) {
  .elementor-element-b47920d .elementor-nav-menu--main li.menu-item-has-children { position: relative; }
  .elementor-element-b47920d .elementor-nav-menu--main li.menu-item-has-children:hover > ul.sub-menu {
    display: block !important;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    padding: 8px 0;
    background-color: #363636;
    z-index: 1000;
  }
  .elementor-element-b47920d .elementor-nav-menu--main ul.sub-menu li { width: 100%; }
  .elementor-element-b47920d .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item {
    color: #FF4500;
    font-family: "Lato", sans-serif;
    font-size: 16px;
    padding: 8px 20px;
  }
  .elementor-element-b47920d .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover {
    color: #FFFFFF;
  }
}

@media (max-width: 991px) {
  /* live mobile bar: one row, logo left / burger right, no CTA */
  .elementor-element-bf1b53f > .e-con-inner {
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
  }
  .elementor-element-9071323 { width: 60% !important; flex: 0 0 60% !important; }
  .elementor-element-3cce079 { width: 40% !important; flex: 0 0 40% !important; }
  .elementor-element-3d8bd65 { display: none !important; }

  /* Panel: anchor to the HEADER (which is the nearest positioned ancestor, being
     fixed) rather than the viewport. position:fixed put it at y=94 over the logo
     row and clipped it at 200px; absolute + top:100% drops it cleanly below. */
  .elementor-element-b47920d nav.elementor-nav-menu--dropdown {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: calc(100vh - 100%) !important;
    overflow-y: auto !important;
    background-color: #222222 !important;
  }
  .elementor-element-b47920d nav.elementor-nav-menu--dropdown a.elementor-item,
  .elementor-element-b47920d nav.elementor-nav-menu--dropdown a.elementor-sub-item {
    color: #FFFFFF !important;
  }
}


/* ---- Mobile panel horizontal anchor ----
   `position:absolute` resolves against the nearest POSITIONED ancestor. The nav
   column sits at x=304, so `left:0` was pinning the panel there, not to the
   viewport. Forcing every ancestor between the panel and the fixed header to
   `position:static` makes the header itself the containing block. */
@media (max-width: 991px) {
  .elementor-element-3cce079,
  .elementor-element-3cce079 > .e-con-inner,
  .elementor-element-b47920d,
  .elementor-element-b47920d > .elementor-widget-container { position: static !important; }

  .elementor-element-b47920d nav.elementor-nav-menu--dropdown {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    width: 100vw !important;
  }
}


/* live's logo is 240x59 in a 142px-tall header; 17% left it at 174px wide */
@media (min-width: 992px) {
  .elementor-element-9071323 { width: 21% !important; flex: 0 0 21% !important; }
  .elementor-element-3cce079 { width: 58% !important; flex: 0 0 58% !important; }
  .elementor-element-3d8bd65 { width: 21% !important; flex: 0 0 21% !important; }
}
.elementor-element-cf89a77 img { width: 240px !important; max-width: 100% !important; height: auto; }


@media (min-width: 992px) {
  .elementor-element-9071323 { width: 24% !important; flex: 0 0 24% !important; padding-left: 0 !important; }
  .elementor-element-3cce079 { width: 55% !important; flex: 0 0 55% !important; }
}


/* live header = 142px total: a ~42px alert bar + a 100px nav row.
   Padding alone overshot (186px) because the 58px logo plus the menu items'
   own vertical padding set the row's content height. Pin the row instead. */
@media (min-width: 992px) {
  .elementor-element-eaf655e { min-height: 42px; padding-top: 10px !important; padding-bottom: 10px !important; }
  .elementor-element-bf1b53f { min-height: 100px; padding-top: 0 !important; padding-bottom: 0 !important; }
  .elementor-element-bf1b53f > .e-con-inner { align-items: center !important; min-height: 100px; }
  .elementor-element-9071323 .elementor-widget-image { margin-bottom: 0; }
  .elementor-element-b47920d .elementor-nav-menu--main a.elementor-item { padding-top: 12px; padding-bottom: 12px; }
}


/* Elementor puts a boxed container's padding on its .e-con-inner, not on the
   container - the earlier override missed and left 18px top/bottom. Measured
   composition was: banner 42 + nav row 144 (inner pad 36 + nav widget 88). */
@media (min-width: 992px) {
  .elementor-element-bf1b53f > .e-con-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .elementor-element-3cce079,
  .elementor-element-9071323,
  .elementor-element-3d8bd65 { padding-top: 0 !important; padding-bottom: 0 !important; }
  .elementor-element-b47920d .elementor-nav-menu--main a.elementor-item {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}


/* widening the logo column to 24% squeezed the nav and wrapped "Make an Enquiry"
   onto a second line. Logo needs only 240px (~20% of the 1180 content box). */
@media (min-width: 992px) {
  .elementor-element-9071323 { width: 20.5% !important; flex: 0 0 20.5% !important; }
  .elementor-element-3cce079 { width: 60% !important; flex: 0 0 60% !important; }
  .elementor-element-3d8bd65 { width: 19.5% !important; flex: 0 0 19.5% !important; }
  .elementor-element-b47920d .elementor-nav-menu--main { flex-wrap: nowrap !important; }
  .elementor-element-b47920d .elementor-nav-menu--main a.elementor-item {
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: nowrap;
  }
}

/* ---- MOBILE PASS 2026-10-15 ----
   The fixed 166px header (66 alert + 100 nav row) sat over the hero H1 and,
   being 80% translucent, showed the H1 scrolling through the logo/burger.
   <=991: the alert bar scrolls away with the page and only a solid 64px nav
   row sticks. display:contents on the header wrappers makes <body> the nav
   row's containing block, so position:sticky holds for the whole page. */
@media (max-width: 991px) {
  header.elementor-location-header,
  .elementor-31 .elementor-element.elementor-element-39c1e5e { display: contents !important; }
  .elementor-31 .elementor-element.elementor-element-bf1b53f {
    position: sticky; top: 0; z-index: 999;
    background-color: #222222 !important;
    min-height: 64px; padding-top: 0 !important; padding-bottom: 0 !important;
  }
  .elementor-31 .elementor-element.elementor-element-bf1b53f > .e-con-inner { min-height: 64px; padding-top: 0 !important; padding-bottom: 0 !important; }
  .elementor-element-9071323 { align-items: flex-start !important; }
  .elementor-element-cf89a77, .elementor-element-cf89a77 .elementor-widget-container { text-align: left !important; }
  .elementor-element-cf89a77 img { width: 170px !important; }
  /* 44px tap target (was 33px) */
  .elementor-element-b47920d .elementor-menu-toggle { padding: 9px; border-radius: 6px; }
  /* Elementor's default 10px dropdown offset left a gap under the bar */
  .elementor-element-b47920d nav.elementor-nav-menu--dropdown { margin-top: 0 !important; }
}/* End custom CSS */