/* Migration behavior and accessibility; original design styles are preserved. */
.policy-shell{max-width:820px;overflow-wrap:anywhere}.policy-shell h2{font-size:26px;line-height:1.35;margin:38px 0 16px}.policy-shell p,.policy-shell li{font-size:16px;line-height:1.8}.policy-shell a,.archive-notice a{text-decoration:underline}.review-note,.archive-notice{border-left:3px solid #6b78b3;background:#f4f5fa;padding:18px 22px;margin:24px 0;font-size:14px;line-height:1.7}.map-embed{min-height:320px;display:grid;place-content:center;text-align:center;background:#f4f5fa;padding:24px;box-sizing:border-box;font-size:15px;line-height:1.6}.map-embed p{margin:12px 0}.map-embed a{text-decoration:underline}.map-embed:has(iframe){display:block;padding:0}.map-embed iframe{display:block;width:100%;height:320px;border:0}.map-embed button{cursor:pointer;justify-self:center;font:inherit;line-height:1.4;color:#fff;background:#6b78b3;border:0;padding:10px 18px}
html{scroll-behavior:smooth}body{overflow-x:hidden}main{display:block}img{max-width:100%}.elementor-invisible{visibility:visible!important}.skip-link{position:fixed;top:-80px;left:16px;padding:12px 18px;background:white;color:#222;z-index:100000}.skip-link:focus{top:12px}:focus-visible{outline:2px solid #6b719a;outline-offset:5px}.legal-links{display:inline-block;margin-left:18px;font-size:12px}.enquiry-note{font-size:12px!important;line-height:1.8!important;color:#555;margin-top:16px}.enquiry-status{font-size:14px!important;line-height:1.7!important}.enquiry-status a{text-decoration:underline}.wpcf7 form input,.wpcf7 form select,.wpcf7 form textarea{max-width:100%;box-sizing:border-box}.wpcf7 form textarea{resize:vertical}.wpcf7 form input[type=submit]{cursor:pointer}.sticky-social a{display:inline-block}.sticky-social{position:relative;z-index:2}.nav li:hover>ul,.nav li:focus-within>ul,.nav li.services-open>ul{display:block!important;visibility:visible!important;opacity:1!important}.nav ul li a:focus{background:#f4f4f4}.header_style_wrapper{z-index:90}#site-menu{border:0;padding:50px 28px;width:min(430px,100vw);height:100dvh;max-height:100dvh;margin:0 0 0 auto;box-sizing:border-box;background:#fff;color:#222;z-index:10000}#site-menu::backdrop,.image-lightbox::backdrop{background:rgba(0,0,0,.65)}#site-menu .mobile_main_nav{display:block;margin:0;list-style:none}#site-menu .mobile_main_nav li{padding:0;list-style:none}#site-menu .mobile_main_nav a{color:#222;display:block;padding:7px 0;line-height:1.5;font-size:17px}#site-menu .mobile_main_nav .sub-menu{display:block!important;opacity:1!important;visibility:visible!important;position:static!important;margin:0 0 20px 14px;padding:0;height:auto!important;width:auto!important;background:none}#site-menu .sub-menu a{font-size:13px}#site-menu .menu-close{position:absolute;right:18px;top:10px;border:0;background:none;color:#222;font:32px Georgia;cursor:pointer;padding:5px 10px}body.menu-is-open{overflow:hidden}#toTop{display:block;opacity:1;position:fixed;right:15px;bottom:15px;z-index:80}.reveal-ready{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal-ready.revealed{opacity:1;transform:none}.static-testimonial{display:flex!important;overflow:hidden}.static-testimonial .content{position:relative!important;width:50%!important;height:auto!important;display:flex!important;align-items:center;box-sizing:border-box;padding:45px!important;opacity:1!important;visibility:visible!important;transform:none!important}.static-testimonial .content>div{position:static!important;transform:none!important;max-width:100%!important;width:100%!important;padding:0!important;opacity:1!important}.static-testimonial .slider{position:relative!important;width:50%!important;height:100%!important;overflow:hidden}.static-testimonial .slider ul:first-child{height:100%;margin:0}.static-testimonial .slider li{height:100%!important;min-height:400px;background-repeat:no-repeat;background-position:center;background-size:cover;position:absolute;inset:0;opacity:1;clip-path:none!important}.static-testimonial .slider li~li{display:none}.static-testimonial .slider ul+ul{display:none}.static-testimonial .slider.left{order:-1}.archive .header_style_wrapper{position:relative!important;height:150px;background:#fff}.archive #logo_normal .logo_wrapper{display:block!important}.archive #logo_transparent{display:none!important}.archive #main_menu>li>a,.archive #logo_right_button a,.archive #mobile_nav_icon{color:#222!important}.archive-shell{max-width:1200px;margin:0 auto;padding:60px 32px 100px}.archive-shell>h1{font-size:44px;margin-bottom:48px}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 30px}.archive-grid article img{width:100%;height:230px;object-fit:cover;display:block}.archive-grid article h2{font-size:25px;line-height:1.4;margin:24px 0 12px}.archive-grid article p{font-size:14px}.archive-grid time{font-size:12px;color:#777}.archive-pagination{display:flex;gap:12px;margin-top:45px}.archive-pagination a{padding:5px 14px;border:1px solid #ddd}.archive-pagination [aria-current=page]{background:#686b96;color:white}.missing-page{min-height:55vh}.image-lightbox{padding:40px 16px 16px;border:0;background:#111;max-width:95vw;max-height:95dvh}.image-lightbox img{display:block;max-height:82dvh;max-width:90vw;object-fit:contain}.image-lightbox button{position:absolute;right:8px;top:2px;border:0;background:none;color:white;font-size:28px;cursor:pointer}.post_header,.post_wrapper,.blog-posts-list{opacity:1!important;visibility:visible!important}.post_header.grid{transform:none!important}
@media(max-width:767px){.legal-links{display:block;margin:12px 0 0}.archive-grid{grid-template-columns:1fr}.archive-shell{padding:35px 22px 65px}.archive-shell>h1{font-size:34px}.static-testimonial{height:auto!important;flex-direction:column}.static-testimonial .content,.static-testimonial .slider{width:100%!important}.static-testimonial .content{padding:28px!important}.static-testimonial .slider{height:300px!important;min-height:300px}.static-testimonial .slider li{min-height:300px}.archive .header_style_wrapper{height:120px}.elementor-section{max-width:100%}#site-menu{max-width:100vw}.enquiry-status{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal-ready{opacity:1;transform:none}}

/* Only the service photograph moves; its overlay, copy and links stay still.
   36px overscan covers the maximum 28px movement without exposing an edge. */
.service-parallax { isolation: isolate; overflow: hidden; overflow: clip; }
.service-parallax > .service-parallax-image {
  position: absolute;
  inset: -36px 0;
  z-index: 0;
  display: block;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: cover;
}
.service-parallax > .elementor-background-overlay { z-index: 1; }
.service-parallax > .elementor-container { z-index: 2; }
@media (max-width: 767px), (prefers-reduced-motion: reduce) {
  .service-parallax > .service-parallax-image { display: none; }
}

/* Inner-page components remain usable without the old plugin runtime. */
.elementor-accordion details>.elementor-tab-title{display:block;cursor:pointer;list-style:none}
.elementor-accordion details>.elementor-tab-title::-webkit-details-marker{display:none}
.elementor-accordion details:not([open])>.elementor-tab-content{display:none!important}
.elementor-accordion details[open]>.elementor-tab-content{display:block!important}
.elementor-accordion details:not([open]) .elementor-accordion-icon-opened,
.elementor-accordion details[open] .elementor-accordion-icon-closed{display:none!important}
.elementor-accordion details[open] .elementor-accordion-icon-opened{display:inline-block!important}
.nav li.services-dismissed>ul{display:none!important;visibility:hidden!important;opacity:0!important}
.wpcf7 form label{display:block;margin-bottom:6px}
.wpcf7 form .wpcf7-form-control-wrap{display:block}
.wpcf7 form input:not([type=submit]),.wpcf7 form select,.wpcf7 form textarea{width:100%;min-width:0}
.wpcf7 form .enquiry-status:empty{display:none}
.draft-link{display:inline-block;padding:10px 18px;margin:8px 0;border:1px solid currentColor;text-decoration:none!important}
.draft-preview{margin-top:12px}.draft-preview summary{cursor:pointer}.draft-preview textarea{margin-top:14px;line-height:1.65;font-size:13px;white-space:pre-wrap}.draft-preview p{font-size:12px}
.static-testimonial{height:auto!important;min-height:600px;align-items:stretch}
.static-testimonial .content{min-height:600px}
.static-testimonial .slider{height:auto!important;align-self:stretch}
@media(max-width:767px){
  .static-testimonial{min-height:0}
  .static-testimonial .content{min-height:0}
  .static-testimonial .slider{min-height:300px;order:-1}
  .wpcf7 form input:not([type=submit]),.wpcf7 form select,.wpcf7 form textarea{font-size:16px}
}
/* Online enquiry controls share the existing form layout. */
.enquiry-security { margin: 1rem 0; max-width: 100%; }
.enquiry-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
[data-enquiry][aria-busy="true"] [type="submit"] { cursor: wait; opacity: .65; }

/* Elementor's old stretch script is absent: make page sections full width in CSS.
   Their own inner containers still control readable text and form widths. */
body.elementor-page #page_content_wrapper:not(.blog_wrapper) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
body.elementor-page #page_content_wrapper > .inner > .inner_wrapper > .sidebar_content.full_width {
  width: 100%;
  margin: 0;
  padding: 0;
}
.sticky-social {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 26px;
  padding: 0 clamp(20px, 5.25vw, 90px);
  box-sizing: border-box;
}

/* Keep both navigation groups inside the viewport and vertically aligned with
   the centred logo, without the theme's JavaScript positioning calculations. */
body.centeralign2 .header_style_wrapper {
  position: relative;
  float: none;
  top: auto;
  left: auto;
  height: auto;
  background: #fff;
}
body.centeralign2 #wrapper.transparent > .header_style_wrapper {
  position: absolute;
  top: 26px;
  left: 0;
  background: transparent;
}
body.centeralign2 .top_bar { float: none; }
body.centeralign2 #logo_wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 117px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  padding: 20px clamp(20px, 5.25vw, 90px) 28px;
}
body.centeralign2 #menu_wrapper,
body.centeralign2 #logo_right_button {
  position: static;
  width: auto;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 0;
  transform: none;
}
body.centeralign2 #menu_wrapper { grid-area: 1 / 1; justify-self: start; }
body.centeralign2 #logo_right_button {
  grid-area: 1 / 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
}
body.centeralign2 #logo_right_button .header_call_wrapper { display: block; margin: 0; }
body.centeralign2 #logo_right_button a {
  font: 600 12px/1.6 "Open Sans", Helvetica, Arial, sans-serif;
  letter-spacing: 1px;
  white-space: nowrap;
}
body.centeralign2 #logo_wrapper .logo_container {
  grid-area: 1 / 2;
  width: auto;
  height: auto;
  display: block;
}
body.centeralign2 #logo_wrapper .logo_align { display: block; }
body.centeralign2 #logo_wrapper .logo_wrapper { display: inline-block; margin: 0; }
body.centeralign2 #logo_wrapper .logo_wrapper img { display: block; width: 117px; height: auto; max-height: none; }
body.centeralign2 #logo_wrapper #logo_transparent,
body.centeralign2 #wrapper.transparent #logo_wrapper #logo_normal { display: none; }
body.centeralign2 #wrapper.transparent #logo_wrapper #logo_transparent { display: block; }
body.centeralign2 #nav_wrapper,
body.centeralign2 .nav_wrapper_inner { display: block; float: none; width: auto; height: auto; }
body.centeralign2 #menu_border_wrapper { display: block; }
body.centeralign2 #menu_wrapper #main_menu { display: flex; align-items: center; gap: 24px; }
body.centeralign2 #menu_wrapper #main_menu > li { position: relative; padding: 0; }
body.centeralign2 #menu_wrapper #main_menu > li > a { margin: 0; padding: 12px 0; white-space: nowrap; }
body.centeralign2 #menu_wrapper #main_menu > li > .sub-menu { left: 0; top: 100%; width: 270px; }
body.centeralign2 #menu_wrapper #main_menu > li:is(:hover, :focus-within, .services-open) > .sub-menu {
  height: auto;
  overflow: visible;
  transform: none;
  z-index: 99;
}
body.centeralign2 #mobile_nav_icon { display: none !important; }
body.centeralign2 #wrapper:not(.transparent) #mobile_nav_icon { color: #222; }
.nav ul li a:focus { background: #444; }

@media (max-width: 1024px) {
  body.centeralign2 #logo_wrapper { gap: 16px; padding: 18px 24px; }
  body.centeralign2 #menu_wrapper { grid-area: 1 / 3; justify-self: end; }
  body.centeralign2 #logo_right_button,
  body.centeralign2 #menu_wrapper #main_menu { display: none; }
  body.centeralign2 #mobile_nav_icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    top: 0;
    border: 0;
    font-size: 24px;
  }
  body.centeralign2 #logo_wrapper .logo_wrapper img { width: 94px; margin: auto; }
}
@media (max-width: 767px) {
  /* Override the old inline heading size so the longest word fits on phones. */
  .elementor-662 .elementor-element-6b2f183 h1 span { font-size: clamp(28px, 7vw, 45px) !important; }
  .elementor-662 .elementor-element-6b2f183 h1 { line-height: 1.25; }
}
