

/* Make text look crisper and more legible in all browsers */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Focus state style for keyboard navigation for the focusable elements */
*[tabindex]:focus-visible,
  input[type="file"]:focus-visible {
   outline: 0.125rem solid #4d65ff;
   outline-offset: 0.125rem;
}

/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
  margin-top: 0 !important;
}

/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
	margin-bottom: 0 !important;
}

/* Prevent all click and hover interaction with an element */
.pointer-events-off {
	pointer-events: none;
}

/* Enables all click and hover interaction with an element */
.pointer-events-on {
  pointer-events: auto;
}

/* Create a class of .div-square which maintains a 1:1 dimension of a div */
.div-square::after {
	content: "";
	display: block;
	padding-bottom: 100%;
}

/* Make sure containers never lose their center alignment */
.container, .container-full, .container-medium,.container-small, .container-large {
	margin-right: auto !important;
  margin-left: auto !important;
}

/* 
Make the following elements inherit typography styles from the parent and not have hardcoded values. 
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
*/

a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
  color: inherit;
  text-decoration: inherit;
  font-size: inherit;
}


/* Apply "..." after 3 lines of text */
.text-style-3lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}

/* Apply "..." after 2 lines of text */
.text-style-2lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* Adds inline flex display */
.display-inlineflex {
  display: inline-flex;
}

/* These classes are never overwritten */
.hide {
  display: none !important;
}

@media screen and (max-width: 991px) {
    .hide, .hide-tablet {
        display: none !important;
    }
}
  @media screen and (max-width: 767px) {
    .hide-mobile-landscape{
      display: none !important;
    }
}
  @media screen and (max-width: 479px) {
    .hide-mobile{
      display: none !important;
    }
}
 
.margin-0 {
  margin: 0rem !important;
}
  
.padding-0 {
  padding: 0rem !important;
}

.spacing-clean {
padding: 0rem !important;
margin: 0rem !important;
}

.margin-top {
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}

.padding-top {
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}
  
.margin-right {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}

.padding-right {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}

.margin-bottom {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}

.padding-bottom {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}

.margin-left {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
}
  
.padding-left {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
}
  
.margin-horizontal {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}

.padding-horizontal {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}

.margin-vertical {
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}
  
.padding-vertical {
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}


html{scroll-behavior:smooth} [hidden]{display:none!important}.gr-skip{position:fixed;left:12px;top:-100px;z-index:99999;background:#fff;color:#111;padding:12px}.gr-skip:focus{top:12px}.gr-generic{padding:260px 24px 100px}.gr-footer-widget{width:100%}.gr-footer-widget a{color:inherit}.gr-footer-widget ul{padding-left:0;list-style:none}.gr-footer-widget .widget-title{font-family:var(--text--heading)}
.navbar-full_nav-dropdown-head{background:transparent;border:0;font:inherit;color:inherit;text-transform:inherit;text-align:left}.nav-menu-link-wrap{align-items:center}.nav-menu-link-wrap>.dropdown{margin:0}.dropdown-list .navbar-full_nav-dropdown-link{display:block}.gr-open>.w-dropdown-list{display:block}.gr-open>.w-dropdown-toggle .w-icon-dropdown-toggle{transform:rotate(180deg)}
.tri-footer-quicklink-wrap>a{display:block}.tri-footer_legal-wrap>a{white-space:normal}.gr-slider-mask{display:flex;overflow:hidden;scroll-snap-type:x mandatory}.gr-slider-mask>.w-slide{flex-shrink:0;scroll-snap-align:start}.testimonials_swipper-wrap>.w-slide{flex-basis:100%;width:100%}.gr-slide-dot{border:0;cursor:pointer;padding:0}.gr-slide-dot[aria-current=true]{background:var(--button)}
/* Elements no longer wait for an external animation framework to become visible. */
.a-fade-in,.scale-in,.hero_block{opacity:1;transform:none}.w-background-video video{background-size:cover;background-position:50% 50%}.intra-contact_form-fields{opacity:1}.wpcf7-form-control-wrap{display:block}.gr-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gr-contact-fields .gr-full{grid-column:1/-1}.gr-contact-fields .intra-contact_text-field{width:100%;margin-bottom:0}.gr-contact-fields textarea{min-height:150px}.gr-consent{font-size:13px;line-height:1.5}.gr-consent .wpcf7-list-item{margin:0 0 12px}.gr-consent label{display:flex;align-items:flex-start;gap:10px;font-weight:400}.gr-consent input[type=checkbox]{flex:0 0 auto;width:18px;height:18px;accent-color:var(--button);margin-top:3px}.wpcf7-not-valid-tip{font-size:13px}.wpcf7-response-output{margin:16px 0!important}.wpcf7-spinner{vertical-align:middle}.filters_form input[type=checkbox]{width:18px;height:18px;accent-color:var(--button);position:static;opacity:1;margin-right:8px}.filters_form .w-checkbox{display:flex;align-items:center}.filters_form .w-form-done,.filters_form .w-form-fail{display:none}
.gr-before-after{position:relative;overflow:hidden;--gr-reveal:50%}.gr-before-after>img{width:100%;display:block}.gr-before-after>.gr-after{position:absolute;inset:0;height:100%;object-fit:cover;clip-path:inset(0 calc(100% - var(--gr-reveal)) 0 0)}.gr-before-after>input[type=range]{position:absolute;left:5%;bottom:12px;width:90%;z-index:3;accent-color:var(--button)}
@media(max-width:991px){.gr-nav-open .w-nav-menu{display:block;position:absolute;top:100%;left:0;right:0;width:100%;background:var(--backgrounds);max-height:calc(100dvh - 100px);overflow:auto;color:var(--black);padding:20px}.gr-nav-open .nav-menu-link-wrap{display:flex;flex-direction:column;gap:14px;align-items:stretch}.gr-nav-open .navbar-full_nav-link,.gr-nav-open .navbar-full_nav-dropdown-head{color:var(--black);width:100%;text-align:left}.gr-nav-open .nav-menu-top-row{display:none}.gr-nav-open .dropdown-list{position:static;width:100%;min-width:0}.gr-nav-open .nav-menu-container{width:100%}.gr-generic{padding-top:160px}.gr-filters-open .filters_filters-wrapper{display:block}.gr-filters-open .filters_filters-form-block{display:block}}
@media(max-width:479px){.gr-contact-fields{grid-template-columns:1fr}.gr-contact-fields .gr-full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:991px){.gr-filters-open .filters_filters-wrapper{transform:translateY(0);height:100dvh}}

/* Reusable Classic Editor style classes. */
.gr-container{width:min(1120px,92%);margin-inline:auto}.gr-section{padding:64px 0}.gr-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.gr-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gr-card{padding:28px;border-radius:20px;background:#f5eeee}.gr-lead{font-size:1.2em;line-height:1.6}.gr-small{font-size:.85em}.gr-center{text-align:center}.gr-button{display:inline-block}@media(max-width:767px){.gr-grid-2,.gr-grid-3{grid-template-columns:1fr}.gr-section{padding:40px 0}}

/* Migration 1.1.2: restore the source header geometry and scroll colours. */
.navbar_component{--gr-scroll:0;background-color:rgba(var(--gr-header-r,255),var(--gr-header-g,255),var(--gr-header-r,255),var(--gr-scroll));}
.admin-bar .navbar_component{top:32px}
.navbar_component .navbar{background:transparent}
.navbar_component .nav-menu-top-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;}
.navbar_component .navbar-full_nav-phone-wrap{justify-self:start}
.navbar_component .navbar-full_nav-logo,.navbar_component .navbar-full_nav-logo.w--current{width:auto;max-width:100%;justify-self:center;display:block;float:none;font-size:0;line-height:1}
.navbar_component .navbar-full_nav-logo .image-55{display:block;width:auto;max-width:100%;height:calc(var(--gr-logo-height,73px) + (var(--gr-logo-height-scrolled,60px) - var(--gr-logo-height,73px))*var(--gr-scroll));object-fit:contain;margin-inline:auto;}
.navbar_component .nav-menu-top-row>.button{justify-self:end}
/* These cards had inline opacity:0 but no Webflow animation ID. */
.services-item-2{opacity:1!important;transform:none!important}
@media(max-width:991px){
 .navbar_component .tablet-nav-logo-link,.navbar_component .tablet-nav-logo-link.w--current{position:relative;display:block;flex:0 0 auto;width:var(--gr-mobile-logo-height,60px);height:var(--gr-mobile-logo-height,60px);margin:8px 0 8px 20px}
 .navbar_component .nav-logo-blue-tablet{position:static;display:block;width:100%;height:100%;opacity:1;object-fit:contain}
 .navbar_component .nav-menu-top-row{display:none}
 .gr-nav-open .nav-menu-container{padding-top:0;padding-bottom:0}
 .gr-nav-open .nav-menu-link-wrap{margin:0;width:100%}
 .gr-nav-open .w-nav-menu{background:var(--tertiary-color,#406440);color:#fff}
 .gr-nav-open .navbar-full_nav-link,.gr-nav-open .navbar-full_nav-dropdown-head{color:#fff}
}
@media(max-width:782px){.admin-bar .navbar_component{top:46px}}
@media(max-width:600px){.admin-bar .navbar_component{top:max(0px,calc(46px - var(--gr-scroll-y,0px)))}}

/* 1.1.3: source typography, hover states and FAQ motion. */
.navbar_component .navbar-full_nav-link,
.navbar_component .navbar-full_nav-dropdown-head,
.navbar_component .navbar-full_accordion-text{font-family:var(--text--heading);font-size:1.4rem;font-weight:400;letter-spacing:1.2px;text-transform:uppercase}
@media(min-width:992px){
 .navbar_component .nav-menu-top-row{grid-template-columns:.25fr 1fr 1fr}
 .navbar_component .navbar-full_nav-phone-wrap{justify-self:end}
 .navbar_component .navbar-full_nav-logo,.navbar_component .navbar-full_nav-logo.w--current{width:380px;max-width:100%;justify-self:end}
}
@media(max-width:767px){.navbar_component .navbar-full_nav-link,.navbar_component .navbar-full_nav-dropdown-head,.navbar_component .navbar-full_accordion-text{font-size:1.125rem}}
.services-item-2 .services-item-content-overlay{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1s ease,visibility 0s 1s}
.services-item-2 .services-inner-content-wrap{opacity:0;transform:translateY(50px);transition:opacity 1s ease,transform 1s ease;max-height:100%;overflow-y:auto}
.services-item-2 .services-img{transform:scale(1);transition:transform 1s ease}
.services-item-2 .services-title-wrap-2{opacity:1;pointer-events:none;transition:opacity 1s ease}
.services-item-2.gr-card-open .services-item-content-overlay{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.services-item-2.gr-card-open .services-inner-content-wrap{opacity:1;transform:translateY(0)}
.services-item-2.gr-card-open .services-img{transform:scale(1.1)}
.services-item-2.gr-card-open .services-title-wrap-2{opacity:0}
.faq_accordian-item>.faq_accordian-dropdown{display:block;height:0;overflow:hidden;transition:height .4s ease-out}
.faq_accordian-item>.faq_accordian-dropdown .faq_accordian-content{opacity:0;transform:translateY(-10px);transition:opacity .3s ease,transform .4s ease-out}
.faq_accordian-item.gr-open>.faq_accordian-dropdown .faq_accordian-content{opacity:1;transform:translateY(0)}
.faq_accordian-toggle .icon-1x1-medium{transition:transform .4s ease-out}
.faq_accordian-item.gr-open>.faq_accordian-toggle .icon-1x1-medium{transform:rotate(180deg)}
.tri-footer_default-link .tri-footer_link-arrow{opacity:0;transform:translateX(-10px);transition:opacity .3s ease,transform .3s ease}
.tri-footer_default-link:hover .tri-footer_link-arrow,.tri-footer_default-link:focus-visible .tri-footer_link-arrow{opacity:1;transform:translateX(0)}

/* 1.1.5: independent service tags and mobile dropdown cascade. */
.related-services-wrap .tag-collection-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:5px 8px;background:transparent}
.related-services-wrap .tag-collection-list>.tag{display:inline-flex;flex:0 1 auto;width:auto;max-width:100%;margin:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:991px){
 .navbar_component .w-nav.gr-nav-open .w-nav-menu{display:block;z-index:1000}
 .navbar_component .w-nav .w-nav-button{cursor:pointer;position:relative;z-index:1001;touch-action:manipulation}
}

/* Linked blog images and headings preserve the existing card appearance. */
.filter-card_image-wrapper.gr-post-image-link{display:block;color:inherit;text-decoration:none}
.categories-card-title>.gr-post-title-link{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:none}
.categories-card-title>.gr-post-title-link:hover{text-decoration:underline;text-underline-offset:.15em}
.gr-post-image-link:focus-visible,.gr-post-title-link:focus-visible{outline:2px solid var(--button);outline-offset:4px}

/* 1.1.8: HTML intrinsic dimensions reserve space, not a fixed rendered height.
   Keep this base selector weak so existing cover/hero/card heights still win. */
img { height: auto; }
/* Restore the original service FAQ landscape crop at every breakpoint. */
.div-block-339 > .image-54 {
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* 1.1.9: long desktop service menus scroll within the visible viewport.
   Mobile keeps its existing single scrolling navigation container. */
@media (min-width: 992px) {
 .navbar_component .dropdown > .dropdown-list {
  box-sizing: border-box;
  max-height: var(--gr-dropdown-space, calc(100vh - 180px));
  max-height: var(--gr-dropdown-space, calc(100dvh - 180px));
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  scrollbar-width: auto;
  scrollbar-color: #ba9d70 #406440;
 }
 .navbar_component .dropdown-list > a { flex-shrink: 0; }
}

/* 1.1.10: Classic Editor may leave bare text inside rich-text containers.
   Give those containers the same body color as their paragraph children. */
.featured_text-wrap .text-rich-text,
.section-3 .text-rich-text { color: var(--black, #1a1a1a); }

/* 1.1.11: match the scroll container to its service links, including gaps. */
.navbar_component .dropdown > .dropdown-list,
.navbar_component .dropdown > .dropdown-list.w--open {
 background-color: var(--tertiary-color, #406440);
}

/* 1.1.13: modal filters keep the underlying mobile page still. */
@media(max-width:991px){body.gr-filters-open{overflow:hidden}}

/* 1.1.14: body-level mobile filter dialog, independently scrolling service list. */
@media(max-width:991px){
 body.gr-filters-open>.filters_filters-wrapper{position:fixed;inset:0;z-index:100000;box-sizing:border-box;width:100%;height:100vh;height:100dvh;max-height:100dvh;padding:24px 20px max(12px,env(safe-area-inset-bottom));overflow:hidden;transform:none;background:#fff;display:flex;flex-direction:column;color:#1a1a1a}
 body.gr-filters-open>.filters_filters-wrapper .filters_form-block{display:flex;flex:1;min-height:0;width:100%}
 body.gr-filters-open>.filters_filters-wrapper .filters_form{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}
 body.gr-filters-open>.filters_filters-wrapper .filters_form-header{flex-shrink:0;padding-right:48px;margin-bottom:12px}
 body.gr-filters-open>.filters_filters-wrapper .filters_results-wrapper{flex-shrink:0}
 body.gr-filters-open>.filters_filters-wrapper .filters_scroll-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;height:auto;padding:0;overflow:hidden}
 body.gr-filters-open>.filters_filters-wrapper .filters_filter-group-list{order:1;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:8px 4px 16px}
 body.gr-filters-open>.filters_filters-wrapper .filters_tablet-modal-menu{order:2;position:static;flex-shrink:0;width:100%;margin:0;padding:12px 0;display:flex;background:#fff}
 body.gr-filters-open>.filters_filters-wrapper .filters_tablet-modal-close-button{position:absolute;top:12px;right:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;z-index:2;color:#406440;touch-action:manipulation}
 body.gr-filters-open .navbar_component{pointer-events:none}
}

/* 1.1.15: the legacy form z-index must not cover the dialog close control. */
@media(max-width:991px){
 body.gr-filters-open>.filters_filters-wrapper .filters_form-block{z-index:auto}
 body.gr-filters-open>.filters_filters-wrapper .filters_tablet-modal-close-button{z-index:1001;pointer-events:auto}
 body.gr-filters-open>.filters_filters-wrapper .filters_tablet-modal-close-button>*{pointer-events:none}
}
