/*
Theme Name: Cyberfrog (Shaun)

Author: Shaun Hearnden

Version: 999999999999999999999999999999

*/

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}html{scroll-behavior:smooth;overflow-x:hidden}body{line-height:1;overflow-x:hidden;max-width:100%}a{text-decoration-skip-ink:auto}a[href^="tel"]{color:inherit;text-decoration:none}button{outline:0}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}q{display:inline;font-style:italic}q:before{content:'"';font-style:normal}q:after{content:'"';font-style:normal}textarea,input[type="text"],input[type="button"],input[type="submit"],input[type="reset"],input[type="search"],input[type="password"]{-webkit-appearance:none;appearance:none;border-radius:0}input[type="search"]{-webkit-appearance:textfield}table{border-collapse:collapse;border-spacing:0}th,td{padding:2px}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:super}sub{vertical-align:sub}dd{margin-left:20px}kbd,tt{font-family:courier;font-size:12px}ins{text-decoration:underline}del,strike,s{text-decoration:line-through}dt{font-weight:bold}address,cite,var{font-style:italic}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.sticky{}.bypostauthor{}.wp-caption{}.wp-caption-text{}.gallery-caption{}.alignright{}.alignleft{}.aligncenter{}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;word-break:normal}
.screen-reader-text:focus{background-color:#f7f7f7;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;-webkit-clip-path:none;clip-path:none;color:#007acc;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
.skip-link{left:-9999rem;top:2.5rem;z-index:999999999;text-decoration:underline}
.skip-link:focus{display:block;left:6px;top:7px;font-size:14px;font-weight:600;text-decoration:none;line-height:normal;padding:15px 23px 14px;z-index:100000;right:auto}
.visually-hidden:not(:focus):not(:active), .form-allowed-tags:not(:focus):not(:active){position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);white-space:nowrap}


body, html, div, span, a, button, input, textarea, select {  font-family: "Open Sans", sans-serif!important;}
h1, h2, h3, h4, h5, h6, #menu a, .primary-nav a, .top_bar, .footer_button, .site_cta a, .header_social, .mobile_social{font-family:"Outfit", sans-serif!important;}

strong, h1, h2, h3, h4, h5, h6{font-weight:600;}

text ul{list-style:disc; padding-left:20px;}

h1, h2, h3, h4, h5, h6, p {
    margin-top: 0; /* Removes default top margin */
    margin-bottom: 16px; /* Standard bottom margin */
    line-height: 1.5; /* Line height for readability */
}

/* Specific Heading Styles */

h1 {
    font-size: 48px;
    line-height: 1.2;
    margin-bottom: 24px; /* Extra space below larger headings */
}

h2 {
    font-size: 36px;
    line-height: 1.3;
    margin-bottom: 20px;
}

h3 {
    font-size: 30px;
    line-height: 1.4;
    margin-bottom: 18px;
}

h4 {
    font-size: 24px;
    line-height: 1.4;
    margin-bottom: 16px;
}

h5 {
    font-size: 20px;
    line-height: 1.5;
    margin-bottom: 14px;
}

h6 {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 12px;
}

/* Paragraph Styles */

p {
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 16px; /* Space between paragraphs */
}

#header{
    background:#fff;
    border-bottom:1px solid #eaf0e4;
    box-shadow:0 8px 30px rgba(25,45,27,0.06);
    padding:16px 0;
    position:relative;
    z-index:5;
}

#header .wrapper > div{
    align-items:center;
    display:flex;
    gap:30px;
    justify-content:space-between;
    padding:0 20px;
}

.top_bar{background:#243f27; color:#fff; display:block; font-size:15px; letter-spacing:.2px;}
.top_bar .wrapper > div{display:flex; justify-content:space-between; align-items:center; padding:9px 20px;}
.top_bar a{color:#fff; font-weight:700; margin-left:22px;}
.top_bar i{color:#b1c388; margin-right:6px;}

a{text-decoration:none;}

#logo{max-width:90px;display:inline-block;}
#logo img{width:100%;}
.wrapper{max-width:1400px; display:block; margin:0 auto; position: relative; z-index: 2;}

#menu{display:flex; justify-content:flex-end; margin-left:auto;}
.primary-nav ul{align-items:center; display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end;}
.primary-nav a{
    color:#17341f;
    display:block;
    font-size:16px;
    font-weight:800;
    line-height:1;
    padding:13px 17px;
    text-transform:uppercase;
    border-radius:50px;
    letter-spacing:.7px;
    transition:background-color .2s ease, color .2s ease;
}
.primary-nav a:hover,
.primary-nav a:focus{
    background:#325235;
    color:#fff;
}
.header_social{align-items:center; background:#325235; border:1px solid #325235; border-radius:50%; color:#fff; display:flex; font-size:18px; height:42px; justify-content:center; margin-left:-14px; width:42px; transition:background-color .2s ease, color .2s ease, transform .2s ease;}
.header_social:hover,.header_social:focus{background:#203923; color:#fff; transform:translateY(-2px);}
.primary-nav a.menu_social{
    align-items:center;
    background:var(--pnw-green);
    color:#fff;
    display:flex;
    font-size:17px;
    height:42px;
    justify-content:center;
    margin-left:8px;
    padding:0;
    width:42px;
}
.primary-nav a.menu_social:hover,
.primary-nav a.menu_social:focus{background:var(--pnw-green-dark); color:#fff;}

.mobile_open{display:none; color:#325235; cursor:pointer; font-size:28px;}
.mobile_menu{display:none; position:fixed; width:100%; height:100%; top:0; left:0; z-index:99999; background:#f7faf4; text-align:center; padding:75px 25px 35px 25px;}
.mobile_menu:before{content:''; position:absolute; width:100%; height:110px; top:0; left:0; background:#325235;}
.mobile_menu > img{width:150px; display:block; margin:0 auto 32px auto; position:relative; z-index:2; background:#fff; border-radius:50%; padding:8px;}
.mobile_menu #menu{display:block; position:relative; z-index:2;}
.mobile_menu #menu a{display:block; color:#17341f; font-size:26px; font-weight:800; margin-bottom:20px; text-transform:uppercase; letter-spacing:.8px;}
.mobile_menu #menu a.mobile_menu_social{align-items:center; background:var(--pnw-green); border-radius:50%; color:#fff; display:flex; font-size:24px; height:52px; justify-content:center; margin:10px auto 0 auto; width:52px;}
.mobile_close{position:absolute; top:23px; right:7%; color:#fff; font-size:34px; z-index:3; cursor:pointer;}
.mobile_phone,.mobile_phone:visited{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); background:#325235; color:#fff!important; border-radius:50px; padding:12px 28px; font-size:20px; z-index:2; width:260px;}
.mobile_phone i{margin-right:8px;}
.mobile_social{align-items:center; background:#325235; border-radius:50%; color:#fff; display:flex; font-size:24px; height:52px; justify-content:center; margin:10px auto 0 auto; position:relative; width:52px; z-index:2;}

@media (max-width: 700px) {
    .top_bar .wrapper > div{display:block; text-align:center;}
    .top_bar span{display:block; margin-bottom:5px;}
    .top_bar a{display:inline-block; margin:3px 8px;}
    #header .wrapper > div{
        align-items:center;
        flex-direction:row;
        gap:15px;
    }
    #logo{max-width:72px;}
    #header #menu{display:none;}
    .header_social{display:none;}
    .mobile_open{display:block;}
}

.top_banner{
    
    display:block; width:100%; background:#00000010; position: relative;

    padding:235px 0 275px 0;
    
    
}

.small_banner{padding:90px 0 115px 0;}
.small_banner .grady{opacity:.72;}
.small_banner .wrapper span{display:block; max-width:860px; margin:0 auto;}
.small_banner h1{font-size:46px; margin-bottom:14px;}
.small_banner p{font-size:19px; margin:12px auto 0 auto; max-width:820px;}

.top_banner > img{
    
    
        
        position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    object-fit: cover;
    height: 100%;
    object-position: 50% 50%;
    
    
}

/* dark green #325235 */
/* light green #b1c388  */



.top_banner .grady {
    background: #325235;
    opacity: 0.66;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    z-index: 1;
}


.home_services{background:#fff; padding:165px 0 150px 0; position: relative; display:block;min-height:400px; overflow:hidden;}
.home_services h2{color:#325235; font-size:42px; margin-bottom:35px;}
.home_services > .wrapper{position:relative; z-index:2;}
.home_services .wrapper > div:nth-of-type(even) .image{
    
    order:-1;
    
    
}
.home_services .wrapper > div{
    
       display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 70px; /* Adjust the gap between grid items as needed */
    margin-bottom:60px;
    
}
.home_services .wrapper > div:last-child{margin-bottom:0;}
.home_services .text{padding:70px 60px 70px 0;}
.home_services .wrapper > div:nth-of-type(even) .text{padding:70px 0 70px 60px;}
.home_services .text h3{color:#244b2a; font-size:34px; margin-bottom:14px; letter-spacing:.2px;}
.home_services .text p{color:#333; font-size:18px;}
.home_services .text a, .about_snippet .text a, .dual_links a, .contact_form input[type="submit"], .contact_form button[type="submit"], .contact_form .gform_button, .quick_form input[type="submit"], .quick_form button[type="submit"], .quick_form .gform_button{
    background:#325235; color:#fff; padding:11px 34px 11px 26px; border-radius:50px; margin-top:20px; display:inline-block; font-size:19px; position:relative;
}
.home_services .text a:after, .about_snippet .text a:after, .dual_links a:after{
    content:'';
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    width:8px;
    height:8px;
    display:inline-block;
    transform:rotate(45deg);
    margin-left:12px;
    position:relative;
    top:-1px;
}
.white_button:after{color:#333;}
.home_services .image{position:relative; background:#88888880; min-height:360px; overflow:hidden; border-radius:18px;}
.home_services .image img{
    
        
        position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    object-fit: cover;
    height: 100%;
    object-position: 50% 50%;
    
}

.about_snippet{background:#f7faf4; padding:145px 0 105px 0; text-align:center; display:block; position: relative; overflow:hidden;}
.about_snippet .wrapper{max-width:900px;}
.about_snippet .wrapper > div{display:block;}
.about_snippet .about_circle{width:190px; height:190px; border-radius:50%; overflow:hidden; display:block; margin:0 auto 35px auto; min-height:0;}
.about_snippet .text{max-width:760px; display:block; margin:0 auto;}
.about_snippet .text h2{color:#325235;}

.small_banner{padding:105px 0 175px 0;}
.small_banner .wrapper{max-width:900px; text-align:center;}
.about_page_content{background:#fff; padding:80px 0;}
.about_page_content .wrapper{max-width:1000px;}
.about_page_content .text{padding:0;}
.service_opening{text-align:center; padding:92px 0 78px 0; background:#f7faf4!important; border-bottom:1px solid #e1ead8;}
.service_opening .wrapper{max-width:1000px;}
.service_opening h2{color:#244b2a;}
.contact_page{background:#fff; padding:105px 0 95px 0;}
.contact_page .wrapper > div{
    
       display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 80px; /* Adjust the gap between grid items as needed */
    align-items:stretch;
    
}
.contact_page .contact_details{padding:0; display:flex; flex-direction:column; height:100%; min-height:0;}
.contact_page .contact_details a{color:#325235; font-weight:700;}
.contact_page .contact_details i{color:#325235; width:24px; text-align:center; margin-right:8px;}
.contact_cards{display:grid; gap:14px; margin:26px 0;}
.contact_card{align-items:center; background:#f7faf4; border:1px solid #e1ead8; border-radius:14px; color:#17341f!important; display:flex; gap:16px; padding:18px 20px;}
.contact_card i{align-items:center; background:#325235; border-radius:50%; color:#fff!important; display:flex; flex:0 0 44px; height:44px; justify-content:center; margin:0!important; width:44px!important;}
.contact_card span{display:block; line-height:1.5;}
.contact_card strong{color:#244b2a; display:block; font-size:14px; letter-spacing:.5px; margin-bottom:2px; text-transform:uppercase;}
.contact_card:hover{border-color:#b1c388;}
.contact_form, .quick_form{background:#f7faf4; border:1px solid #e1ead8; border-radius:18px; padding:34px;}
.contact_form input, .contact_form textarea, .contact_form select, .quick_form input, .quick_form textarea, .quick_form select{border:1px solid #d8e2cf!important; border-radius:50px!important; padding:12px 20px!important; background:#fff!important;}
.contact_form textarea, .quick_form textarea{border-radius:16px!important;}
.contact_form input[type="submit"], .contact_form button[type="submit"], .contact_form .gform_button, .quick_form input[type="submit"], .quick_form button[type="submit"], .quick_form .gform_button{
    border:none!important;
}
.map_embed{border-radius:8px; overflow:hidden; margin-top:25px;}
.map_embed iframe{width:100%; height:300px; display:block; border:0;}
.contact_page .map_embed{flex:1 1 auto; min-height:360px;}
.contact_page .map_embed iframe{height:100%; min-height:100%;}
.service_quick_contact{background:#eef4e8; padding:140px 0 100px 0; position:relative; overflow:hidden;}
.service_quick_contact .wrapper > div{align-items:center; display:grid; gap:70px; grid-template-columns:.9fr 1.1fr;}
.service_quick_contact h2{color:#244b2a; font-size:36px;}
.small_label{color:#325235; display:block; font-weight:800; letter-spacing:1.4px; margin-bottom:12px; text-transform:uppercase;}
.quick_links{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px;}
.quick_links a{align-items:center; background:#fff; border:1px solid #dfe9d5; border-radius:50px; color:#17341f; display:flex; font-weight:800; gap:8px; padding:12px 18px;}
.quick_links i{color:#325235;}
.site_cta {
    background: #b1c388;
    padding: 200px 0 0px 0;
    position: relative;
    overflow: hidden;
}

.site_cta .wrapper > div{align-items:center; display:grid; gap:40px; grid-template-columns:1fr auto;}
.site_cta h2{color:#17341f; margin-bottom:8px;}
.site_cta p{color:#213924; font-size:18px; margin-bottom:0;}
.site_cta_links{display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end;}
.site_cta_links a{background:#325235; border-radius:50px; color:#fff; display:inline-block; font-size:18px; font-weight:800; padding:12px 24px;}
.site_cta_links a:last-child{background:#fff; color:#244b2a;}

.top_banner h1, .top_banner p, .top_banner h2{color:#fff;text-shadow: 2px 1px 2px rgba(0,0,0,0.6);}
.dual_links{display:block; margin-top:40px;}
.opening {padding:60px 0;}

.opening p{font-size:19px;}

.white_button{background:#fff; color:#17341f;}
a.light_green{background:#b1c388;}
a.dark_green{background:#325235; color:#fff;}

.opening.light_green{background:#b1c388;}
.service_opening.light_green{background:#fff!important;}
.opening.dark_green{background:#325235;}


.reviews.dark_green{background:#325235;    padding: 200px 0 80px 0;display:block; position:relative; overflow:hidden;}
.reviews_intro{margin:0 auto 35px auto; max-width:780px; text-align:center;}
.reviews_intro span{color:#b1c388; display:block; font-weight:800; letter-spacing:1.2px; margin-bottom:10px; text-transform:uppercase;}
.reviews_intro h2{color:#fff; margin-bottom:8px;}
.reviews_intro p{color:#eef4ea; font-size:18px; margin-bottom:0;}

.dual_links a{ padding:11px 30px; border-radius:50px; margin-right:15px; display:inline-block; font-size:20px; font-weight:800; border:2px solid transparent;}
.dual_links a.white_button{background:#fff!important; color:#17341f!important;}
.dual_links a.green_button{background:#b1c388!important; color:#17341f!important;}
.dual_links a.white_button:after,.dual_links a.green_button:after{color:#17341f;}

.top_banner p{font-size:20px;max-width:1000px; margin:30px 0;}

.top_banner h2{font-size:25px;}
.ti-widget.ti-goog .ti-rating-text, .ti-widget.ti-goog .ti-rating-text strong:not(.ti-rating-large), .ti-widget.ti-goog .ti-rating-text strong a, .ti-widget.ti-goog .ti-rating-text strong span, .ti-widget.ti-goog .ti-rating-text span strong, .ti-widget.ti-goog .ti-rating-text span, .ti-widget.ti-goog .ti-footer, .ti-widget.ti-goog .ti-footer strong:not(.ti-rating-large), .ti-widget.ti-goog .ti-footer span, .ti-widget.ti-goog .ti-footer strong a {
    font-size: 15px;
    color: #ffffff!important;
}
strong.ti-rating.ti-rating-large {
    color: #fff;
}

#footer{background:#203923; color:#fff; position:relative; overflow:hidden;}
#footer:before{content:''; position:absolute; width:420px; height:420px; border-radius:50%; background:#b1c38818; right:-120px; top:-180px;}
.footer_main{padding:65px 0 55px 0;}
.footer_main .wrapper > div{
    
       display: grid;
    grid-template-columns: 2fr 1fr 1.4fr;
    gap: 60px; /* Adjust the gap between grid items as needed */
    
}
.footer_main h3, .footer_main h4{color:#fff; margin-bottom:12px;}
.footer_main p{color:#eef4ea;}
.footer_main a{color:#fff; display:block; margin-bottom:10px;}
.footer_main i{color:#b1c388; width:22px; margin-right:8px;}
.footer_contact_line{align-items:center; display:flex; gap:9px; margin-bottom:12px;}
.footer_contact_line i{flex:0 0 22px; margin:0;}
.footer_contact_line a,.footer_contact_line span{margin:0!important;}
.footer_logo{background:#fff; border-radius:50%; display:block; margin-bottom:18px; max-width:112px; padding:6px; width:100%;}
.footer_button{background:#b1c388; color:#17341f!important; display:inline-block!important; border-radius:50px; padding:11px 24px; margin-top:10px; font-weight:800;}
#copyright{background:#1b2d1d; color:#dce8d8; text-align:center; padding:14px; font-size:14px;}
#copyright a{color:#fff; margin-left:10px;}

@media (max-width: 800px) {
    .wrapper{max-width:90%;}
    .home_services{padding:95px 0 110px 0;}
    .home_services h2{font-size:34px;}
    .home_services .wrapper > div{grid-template-columns: repeat(1, 1fr); gap:30px; margin-bottom:25px;}
    .home_services .wrapper > div:nth-of-type(even) .image{order:0;}
    .home_services .text, .home_services .wrapper > div:nth-of-type(even) .text{padding:0;}
    .home_services .text h3{font-size:26px;}
    .home_services .image{height:250px; min-height:0;}
    .about_snippet{padding:105px 0 70px 0;}
    .about_snippet .about_circle{width:150px; height:150px;}
    .small_banner{padding:72px 0 125px 0;}
    .about_page_content{padding:50px 0;}
    .contact_page{padding:50px 0;}
    .contact_page .wrapper > div{grid-template-columns: repeat(1, 1fr); gap:30px;}
    .contact_form, .quick_form{padding:24px;}
    .map_embed iframe{height:240px;}
    .service_quick_contact{padding:105px 0 70px 0;}
    .service_quick_contact .wrapper > div{grid-template-columns: repeat(1, 1fr); gap:30px;}
    .site_cta{padding:105px 0 65px 0;}
    .site_cta .wrapper > div{grid-template-columns: repeat(1, 1fr); text-align:center;}
    .site_cta_links{justify-content:center;}
    .footer_main .wrapper > div{grid-template-columns: repeat(1, 1fr); gap:25px;}
    #copyright a{display:block; margin:8px 0 0 0;}
}

/* PNW uniform refresh */
:root{
    --pnw-ink:#1f2f28;
    --pnw-green:#2f5644;
    --pnw-green-dark:#1f3b2f;
    --pnw-sage:#d9e0c9;
    --pnw-sage-soft:#f4f6ef;
    --pnw-border:#d9e4cf;
    --pnw-white:#ffffff;
}

body{background:var(--pnw-white); color:var(--pnw-ink);}
#header{border-bottom:1px solid #edf0e8; box-shadow:none;}
.top_bar,.mobile_menu:before,.primary-nav a:hover,.primary-nav a:focus,.header_social,.mobile_social,.mobile_phone,.contact_card i,.home_services .text a,.about_snippet .text a,.contact_form input[type="submit"],.contact_form button[type="submit"],.contact_form .gform_button,.quick_form input[type="submit"],.quick_form button[type="submit"],.quick_form .gform_button,.site_cta_links a,.reviews.dark_green{background:var(--pnw-green);}
.header_social{border-color:var(--pnw-green);}
.top_bar i,.footer_main i,.reviews_intro span,.quick_links i{color:var(--pnw-sage);}
.primary-nav a,.home_services h2,.home_services .text h3,.about_snippet .text h2,.service_opening h2,.contact_card strong,.small_label{color:var(--pnw-green-dark);}
.top_banner .grady{background:var(--pnw-green-dark); opacity:.62;}
.small_banner .grady{opacity:.7;}

.site_wave{
    bottom:-1px;
    display:block;
    height:190px;
    left:50%;
    pointer-events:none;
    position:absolute;
    transform:translateX(-50%);
    width:calc(100vw + 2px);
    z-index:1;
}
.site_wave path{fill:var(--pnw-white);}
.site_wave--top{
    bottom:auto;
    top:-1px;
    transform:translateX(-50%) rotate(180deg);
}
.site_wave--white path{fill:var(--pnw-white);}
.site_wave--sage path{fill:var(--pnw-sage);}
.site_wave--soft path{fill:var(--pnw-sage-soft);}
.site_wave--green path{fill:var(--pnw-green);}
.about_snippet > .wrapper,
.service_quick_contact > .wrapper,
.site_cta > .wrapper,
.reviews.dark_green > .wrapper{position:relative; z-index:2;}

.home_services .wrapper > div.section_intro{
    display:block;
    margin:0 auto 70px auto;
    max-width:760px;
    text-align:center;
}
.section_intro h2{
    margin-bottom:14px;
    text-align:center;
}
.section_intro p{
    color:#3f5147;
    font-size:19px;
    line-height:1.7;
    margin:0 auto;
    max-width:700px;
    text-align:center;
}

a,
button,
input[type="submit"],
.gform_button{
    transition:background-color .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.home_services .text a:hover,
.about_snippet .text a:hover,
.dual_links a:hover,
.site_cta_links a:hover,
.footer_button:hover,
.quick_links a:hover,
.contact_form .gform_button:hover,
.quick_form .gform_button:hover,
.contact_form input[type="submit"]:hover,
.quick_form input[type="submit"]:hover{
    transform:translateY(-2px);
}
.home_services .text a:hover,
.about_snippet .text a:hover,
.site_cta_links a:hover,
.contact_form input[type="submit"]:hover,
.quick_form input[type="submit"]:hover,
.contact_form .gform_button:hover,
.quick_form .gform_button:hover{
    box-shadow:0 10px 24px rgba(31,59,47,.16);
}

.opening.light_green,.site_cta{background:var(--pnw-sage);}
.service_opening{background:var(--pnw-sage-soft)!important; border-bottom:1px solid var(--pnw-border);}
.home_services{padding-top:165px;}
.home_services .image{border-radius:12px;}
.about_snippet,.contact_form,.quick_form,.contact_card,.service_quick_contact{background:var(--pnw-sage-soft);}
.contact_card,.contact_form,.quick_form{border:1px solid var(--pnw-border);}
.contact_cards{gap:16px;}
.contact_card{border-radius:12px; padding:16px 18px;}
.contact_card i{height:40px; width:40px!important; flex-basis:40px;}

.contact_form,.quick_form{border-radius:14px; padding:34px;}
.contact_form .gfield_label,.quick_form .gfield_label,.contact_form legend,.quick_form legend{display:none!important;}
.contact_form .gfield,.quick_form .gfield{margin-bottom:14px!important;}
.contact_form input,.contact_form textarea,.contact_form select,.quick_form input,.quick_form textarea,.quick_form select{
    background:var(--pnw-white)!important;
    border:1px solid var(--pnw-border)!important;
    border-radius:8px!important;
    color:var(--pnw-ink)!important;
    font-size:16px!important;
    min-height:52px!important;
    padding:14px 16px!important;
    width:100%!important;
}
.contact_form textarea,.quick_form textarea{border-radius:8px!important; min-height:170px!important;}
.contact_form input::placeholder,.contact_form textarea::placeholder,.quick_form input::placeholder,.quick_form textarea::placeholder{color:#718173; opacity:1;}
.contact_form input[type="submit"],.contact_form button[type="submit"],.contact_form .gform_button,.quick_form input[type="submit"],.quick_form button[type="submit"],.quick_form .gform_button{
    background:var(--pnw-green)!important;
    border-radius:50px!important;
    color:#fff!important;
    font-weight:800!important;
    min-height:0!important;
    padding:13px 30px!important;
    width:auto!important;
}
.gform_required_legend{display:none!important;}

.contact_page .contact_form{
    background:var(--pnw-green-dark);
    border:0;
    border-radius:8px;
    color:#fff;
    padding:42px;
    display:flex;
    flex-direction:column;
    height:100%;
}
.form_intro{margin-bottom:26px;}
.form_intro span{
    color:var(--pnw-sage);
    display:block;
    font-family:"Outfit", sans-serif!important;
    font-size:14px;
    font-weight:800;
    letter-spacing:1.4px;
    margin-bottom:8px;
    text-transform:uppercase;
}
.form_intro h2{color:#fff; font-size:30px; line-height:1.25; margin-bottom:8px;}
.form_intro p{color:#edf3e8; font-size:17px; margin-bottom:0;}
.contact_page .contact_form input,
.contact_page .contact_form textarea,
.contact_page .contact_form select{
    background:#fff!important;
    border:1px solid rgba(255,255,255,.22)!important;
    color:var(--pnw-ink)!important;
}
.contact_page .contact_form input[type="submit"],
.contact_page .contact_form button[type="submit"],
.contact_page .contact_form .gform_button{
    background:var(--pnw-sage)!important;
    background-image:url("data:image/svg+xml,%3Csvg%20width%3D%2718%27%20height%3D%2718%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M22%202L11%2013%27%20stroke%3D%27%231f2f28%27%20stroke-width%3D%272.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3Cpath%20d%3D%27M22%202L15%2022L11%2013L2%209L22%202Z%27%20stroke%3D%27%231f2f28%27%20stroke-width%3D%272.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E")!important;
    background-position:right 24px center!important;
    background-repeat:no-repeat!important;
    background-size:17px 17px!important;
    color:var(--pnw-ink)!important;
    padding-right:54px!important;
}
.service_quick_contact{background:#fff; padding:120px 0 100px 0;}
.service_quick_contact .text{max-width:620px;}
.service_quick_contact .text h2{color:var(--pnw-green-dark);}
.service_quick_contact .text p{font-size:18px;}
.service_quick_contact .quick_links a{border-color:#c8d4bb;}
.service_quick_contact .quick_form{
    background:var(--pnw-sage-soft);
    border:1px solid var(--pnw-border);
    color:var(--pnw-ink);
}
.service_quick_contact .quick_form .form_intro span,
.service_quick_contact .quick_form .form_intro h2{display:none;}
.service_quick_contact .quick_form .form_intro{margin-bottom:18px;}
.service_quick_contact .quick_form .form_intro p{color:var(--pnw-green-dark); font-size:17px;}

@media (min-width:1201px) and (max-width:1500px){
    .wrapper{max-width:1180px;}
    #logo{max-width:112px;}
    .primary-nav a{font-size:15px; padding:12px 13px;}
    .top_banner{padding:205px 0 245px 0;}
    .home_services .wrapper > div{gap:48px;}
    .home_services .text{padding:48px 36px 48px 0;}
    .home_services .wrapper > div:nth-of-type(even) .text{padding:48px 0 48px 36px;}
    .contact_page .wrapper > div{gap:52px;}
    .service_quick_contact .wrapper > div{gap:48px;}
}

@media (min-width:901px) and (max-width:1200px){
    .wrapper{max-width:90%;}
    .top_bar{font-size:14px;}
    #header .wrapper > div{gap:18px; padding:0;}
    #logo{max-width:104px;}
    .primary-nav ul{gap:4px;}
    .primary-nav a{font-size:14px; padding:11px 10px; letter-spacing:.4px;}
    .header_social{height:38px; width:38px; margin-left:-6px;}
    .top_banner{padding:180px 0 220px 0;}
    .small_banner{padding:82px 0 145px 0;}
    .site_wave{height:145px;}
    .home_services{padding:135px 0 110px 0;}
    .home_services .wrapper > div{gap:34px; margin-bottom:42px;}
    .home_services .text,
    .home_services .wrapper > div:nth-of-type(even) .text{padding:28px 0;}
    .home_services .text h3{font-size:29px;}
    .home_services .text p{font-size:16px;}
    .contact_page{padding:82px 0;}
    .contact_page .wrapper > div{gap:34px; grid-template-columns:.9fr 1.1fr;}
    .contact_page .contact_form,
    .service_quick_contact .quick_form{padding:32px;}
    .service_quick_contact{padding:125px 0 82px 0;}
    .service_quick_contact .wrapper > div{gap:34px; grid-template-columns:.85fr 1.15fr;}
    .site_cta .wrapper > div{gap:24px;}
    .site_cta_links a{font-size:16px; padding:11px 18px;}
}

@media (min-width:801px) and (max-width:900px){
    .wrapper{max-width:90%;}
    #header .wrapper > div{gap:14px; padding:0;}
    #logo{max-width:96px;}
    .primary-nav a{font-size:13px; padding:10px 8px;}
    .top_bar .wrapper > div{padding-left:0; padding-right:0;}
    .top_bar a{margin-left:12px;}
    .top_banner{padding:165px 0 205px 0;}
    .site_wave{height:128px;}
    .home_services .wrapper > div,
    .contact_page .wrapper > div,
    .service_quick_contact .wrapper > div{
        grid-template-columns:1fr;
        gap:34px;
    }
    .home_services .wrapper > div:nth-of-type(even) .image{order:0;}
    .home_services .text,
    .home_services .wrapper > div:nth-of-type(even) .text{padding:0;}
    .contact_page .contact_form,
    .service_quick_contact .quick_form{padding:32px;}
    .site_cta .wrapper > div{grid-template-columns:1fr; text-align:center;}
    .site_cta_links{justify-content:center;}
}

.site_cta h2,.site_cta p,.site_cta_links a:last-child,.dual_links a.green_button{color:var(--pnw-ink)!important;}
.site_cta_links a:last-child,.dual_links a.green_button{background:var(--pnw-white)!important;}
.dual_links a.white_button{background:var(--pnw-white)!important;}
.dual_links a.green_button{background:var(--pnw-sage)!important;}
#footer{background:var(--pnw-green-dark);}
#copyright{background:#17291f;}
.footer_button{background:var(--pnw-sage); color:var(--pnw-ink)!important;}

@media (max-width:800px){
    .site_wave{height:115px;}
    .mobile_phone,.mobile_phone:visited{color:#fff!important;}
    .contact_form,.quick_form{padding:22px;}
    .contact_page .contact_form,
    .service_quick_contact .quick_form{padding:26px;}
    .form_intro h2{font-size:24px;}
    .form_intro p{font-size:16px;}
}

/* Spacing polish */
.top_banner{padding:220px 0 250px 0; overflow:hidden;}
.top_banner.small_banner{padding:118px 0 165px 0;}
.opening{padding:72px 0 68px 0;}
.opening .wrapper{max-width:1120px;}
.home_services{padding:132px 0 122px 0;}
.home_services .wrapper > div.section_intro{
    margin:0 auto 78px auto;
    max-width:780px;
    padding:0 20px;
}
.section_intro h2{font-size:44px; margin-bottom:12px;}
.section_intro p{font-size:18px; line-height:1.75; max-width:690px;}
.home_services .wrapper > div:not(.section_intro){
    align-items:center;
    gap:72px;
    margin-bottom:86px;
}
.home_services .text,
.home_services .wrapper > div:nth-of-type(even) .text{padding:36px 0;}
.home_services .image{min-height:390px;}
.about_snippet{padding:112px 0 104px 0;}
.about_page_content{padding:92px 0;}
.service_opening{padding:76px 0 70px 0;}
.contact_page{padding:96px 0;}
.service_quick_contact{background:#fff; padding:96px 0 100px 0;}
.service_quick_contact .wrapper > div{align-items:center; gap:72px;}
.service_quick_contact .quick_form{background:var(--pnw-sage-soft);}
.site_cta{padding:178px 0 84px 0;}
.reviews.dark_green{padding:178px 0 84px 0;}

@media (min-width:1201px) and (max-width:1500px){
    .top_banner{padding:190px 0 220px 0;}
    .top_banner.small_banner{padding:105px 0 148px 0;}
    .opening{padding:62px 0 58px 0;}
    .home_services{padding:118px 0 108px 0;}
    .home_services .wrapper > div.section_intro{margin-bottom:64px;}
    .home_services .wrapper > div:not(.section_intro){gap:54px; margin-bottom:66px;}
    .home_services .image{min-height:340px;}
    .about_snippet{padding:96px 0 88px 0;}
    .about_page_content{padding:78px 0;}
    .service_opening{padding:64px 0 58px 0;}
    .contact_page{padding:78px 0;}
    .service_quick_contact{padding:82px 0 86px 0;}
    .site_cta{padding:150px 0 72px 0;}
    .reviews.dark_green{padding:150px 0 76px 0;}
}

@media (min-width:801px) and (max-width:1200px){
    .top_banner{padding:165px 0 190px 0;}
    .top_banner.small_banner{padding:88px 0 130px 0;}
    .top_banner h1{font-size:40px;}
    .top_banner p{font-size:18px;}
    .opening{padding:54px 0;}
    .home_services{padding:94px 0 90px 0;}
    .home_services .wrapper > div.section_intro{margin-bottom:54px; max-width:680px;}
    .section_intro h2{font-size:38px;}
    .section_intro p{font-size:17px;}
    .home_services .wrapper > div:not(.section_intro){gap:38px; margin-bottom:54px;}
    .home_services .image{min-height:310px;}
    .about_snippet{padding:82px 0 78px 0;}
    .about_page_content{padding:64px 0;}
    .service_opening{padding:56px 0 52px 0;}
    .contact_page{padding:68px 0;}
    .service_quick_contact{padding:68px 0 72px 0;}
    .site_cta{padding:124px 0 64px 0;}
    .reviews.dark_green{padding:124px 0 70px 0;}
}

@media (max-width:800px){
    .top_banner{padding:126px 0 150px 0;}
    .top_banner.small_banner{padding:74px 0 118px 0;}
    .top_banner h1{font-size:32px;}
    .top_banner h2{font-size:22px;}
    .top_banner p{font-size:16px; margin:18px auto;}
    .opening{padding:42px 0 44px 0;}
    .opening p{font-size:16px;}
    .home_services{padding:72px 0 78px 0;}
    .home_services .wrapper > div.section_intro{
        margin-bottom:44px;
        padding:0;
    }
    .section_intro h2{font-size:31px; margin-bottom:10px;}
    .section_intro p{font-size:16px; line-height:1.65;}
    .home_services .wrapper > div:not(.section_intro){gap:24px; margin-bottom:46px;}
    .home_services .image{height:260px; min-height:0;}
    .about_snippet{padding:66px 0 62px 0;}
    .about_page_content{padding:48px 0;}
    .service_opening{padding:44px 0;}
    .contact_page{padding:48px 0;}
    .service_quick_contact{padding:56px 0 64px 0;}
    .service_quick_contact .wrapper > div{gap:28px;}
    .site_cta{padding:92px 0 52px 0;}
    .reviews.dark_green{padding:94px 0 58px 0;}
}

/* Final tidy requested */
.site_cta{padding:200px 0 0 0;}
.about_snippet{
    background:#fff!important;
    padding:96px 0 92px 0;
}
.about_snippet .about_circle{
    height:235px;
    margin-bottom:34px;
    width:235px;
}
.home_services{
    padding-top:178px;
}
.home_services .wrapper > div.section_intro{
    margin:0 auto 74px auto;
    max-width:820px;
    text-align:center;
}
.home_services .wrapper > div.section_intro p{
    margin:0 auto;
    max-width:720px;
}
.service_quick_contact{
    padding:56px 0 86px 0;
}
/*
.service_quick_contact + .site_cta{
    padding:84px 0 0 0;
}
*/
.service_quick_contact + .site_cta .site_wave--top{
    display:none;
}
.about_page_circle{
    border-radius:50%;
    height:220px;
    margin:0 auto 34px auto;
    overflow:hidden;
    position:relative;
    width:220px;
}
.about_page_circle img{
    height:100%;
    left:0;
    object-fit:cover;
    object-position:50% 50%;
    position:absolute;
    top:0;
    width:100%;
}

@media (min-width:1201px) and (max-width:1500px){
    .site_cta{padding:200px 0 0 0;}
    .home_services{padding-top:154px;}
    .about_snippet{padding:86px 0 84px 0;}
    .about_snippet .about_circle{height:220px; width:220px;}
    .service_quick_contact{padding:48px 0 78px 0;}
/*    .service_quick_contact + .site_cta{padding:76px 0 0 0;}*/
}

@media (min-width:801px) and (max-width:1200px){
    .site_cta{padding:124px 0 64px 0;}
    .home_services{padding-top:124px;}
    .home_services .wrapper > div.section_intro{margin-bottom:58px;}
    .about_snippet{padding:72px 0 70px 0;}
    .about_snippet .about_circle{height:200px; width:200px;}
    .about_page_circle{height:190px; width:190px;}
    .service_quick_contact{padding:46px 0 70px 0;}
/*    .service_quick_contact + .site_cta{padding:68px 0 48px 0;}*/
}

@media (max-width:800px){
    .site_cta{padding:92px 0 52px 0;}
    .home_services{padding:96px 0 76px 0;}
    .home_services .wrapper > div.section_intro{margin-bottom:42px;}
    .about_snippet{padding:58px 0 58px 0;}
    .about_snippet .about_circle{height:176px; margin-bottom:26px; width:176px;}
    .about_page_circle{height:170px; margin-bottom:24px; width:170px;}
    .service_quick_contact{padding:40px 0 58px 0;}
/*    .service_quick_contact + .site_cta{padding:58px 0 48px 0;}*/
}

/* Softer mobile waves */
@media (max-width:800px){
    .site_wave{
        height:58px;
    }
    .top_banner .site_wave{
        height:72px;
    }
    .site_cta{
        padding:66px 0 38px 0;
    }
    .site_cta .wrapper > div{
        gap:22px;
    }
    .site_cta h2{
        font-size:30px;
        line-height:1.25;
        margin:0 auto 12px auto;
        max-width:390px;
    }
    .site_cta p{
        font-size:16px;
        line-height:1.58;
        margin:0 auto;
        max-width:380px;
    }
    .site_cta_links{
        gap:12px;
        justify-content:center;
    }
    .site_cta_links a{
        font-size:15px;
        padding:11px 18px;
    }
    .reviews.dark_green{
        padding:68px 0 48px 0;
    }
    .reviews_intro{
        margin-bottom:26px;
    }
    .reviews_intro h2{
        font-size:30px;
        line-height:1.25;
        margin:0 auto 12px auto;
        max-width:390px;
    }
    .reviews_intro p{
        font-size:16px;
        line-height:1.58;
        margin:0 auto;
        max-width:380px;
    }
/*
    .service_quick_contact + .site_cta{
        padding:50px 0 38px 0;
    }
*/
}

/* Final mobile padding and About crop tidy */
.about_snippet{
    padding-top:128px;
}
.about_snippet .about_circle{
    position:relative;
}
.about_snippet .about_circle img{
    height:100%;
    left:0;
    object-fit:cover;
    object-position:50% 50%;
    position:absolute;
    top:0;
    width:100%;
}

@media (min-width:1201px) and (max-width:1500px){
    .about_snippet{
        padding-top:112px;
    }
}

@media (min-width:801px) and (max-width:1200px){
    .about_snippet{
        padding-top:96px;
    }
}

@media (max-width:800px){
    .about_snippet{
        padding:92px 0 62px 0;
    }
    .site_cta{
        padding:86px 0 42px 0;
    }
    .reviews.dark_green{
        padding:88px 0 52px 0;
    }
/*
    .service_quick_contact + .site_cta{
        padding:72px 0 42px 0;
    }
*/
}

/* Final mobile tidy */
@media (max-width:800px){
    .wrapper{
        max-width:90%!important;
    }
    .mobile_menu #menu a.mobile_menu_social{
        align-items:center;
        background:#fff!important;
        color:var(--pnw-green)!important;
        display:flex;
        height:46px;
        justify-content:center;
        left:7%;
        margin:0;
        position:fixed;
        top:19px;
        width:46px;
        z-index:4;
    }
    .top_banner p{
        font-size:18px!important;
        line-height:1.6;
    }
    .small_banner p{
        font-size:18px!important;
    }
    .home_services{
        padding-bottom:42px;
    }
    .home_services .wrapper > div:not(.section_intro){
        margin-bottom:30px;
    }
    .home_services .wrapper > div:last-child{
        margin-bottom:0;
    }
    .service_quick_contact{
        padding-top:26px;
    }
    .contact_page .wrapper > div{
        align-items:start;
        gap:28px!important;
    }
    .contact_page .contact_details{
        display:block;
        height:auto;
        min-height:0;
    }
    .contact_page .map_embed{
        flex:none;
        height:230px;
        margin-top:18px;
        min-height:0;
        width:100%;
    }
    .contact_page .map_embed iframe{
        height:230px!important;
        min-height:0!important;
        width:100%!important;
    }
    .contact_page .contact_form{
        margin-top:0;
    }
}

/* Contact map desktop tidy */
.contact_card:not(a) span{
    font-weight:700;
}

@media (min-width:1201px){
    .contact_page .contact_details{
        display:flex;
        flex-direction:column;
        height:100%;
    }
    .contact_page .map_embed{
        flex:0 0 305px;
        height:305px;
        margin-top:28px;
        min-height:305px;
        width:100%;
    }
    .contact_page .map_embed iframe{
        height:305px!important;
        min-height:305px!important;
        width:100%!important;
    }
}

@media (min-width:901px) and (max-width:1200px){
    .contact_page .map_embed{
        flex:0 0 285px;
        height:285px;
        margin-top:24px;
        min-height:285px;
        width:100%;
    }
    .contact_page .map_embed iframe{
        height:285px!important;
        min-height:285px!important;
        width:100%!important;
    }
}

@media (min-width:801px) and (max-width:900px){
    .contact_page .map_embed{
        flex:none;
        height:310px;
        margin-top:22px;
        min-height:310px;
        width:100%;
    }
    .contact_page .map_embed iframe{
        height:310px!important;
        min-height:310px!important;
        width:100%!important;
    }
}

/* About and service spacing tidy */
.about_page_content,
.about_page_content .text,
.about_page_content .text h1,
.about_page_content .text h2,
.about_page_content .text h3,
.about_page_content .text p,
.about_snippet .text,
.about_snippet .text h2,
.about_snippet .text p{
    text-align:center;
}
.about_page_content .text{
    margin:0 auto;
    max-width:900px;
}
.about_page_content .text p,
.about_snippet .text p{
    margin-left:auto;
    margin-right:auto;
}
.about_page_circle{
    height:250px;
    width:250px;
}
.about_snippet .about_circle{
    height:255px;
    width:255px;
}
body.page-template-TEMPLATE-service-parent .home_services,
body.page-template-TEMPLATE-service-detail .home_services{
    padding-bottom:58px;
}
body.page-template-TEMPLATE-service-parent .service_quick_contact,
body.page-template-TEMPLATE-service-detail .service_quick_contact{
    padding-top:30px;
}

@media (min-width:1201px) and (max-width:1500px){
    body.page-template-TEMPLATE-service-parent .home_services,
    body.page-template-TEMPLATE-service-detail .home_services{
        padding-bottom:48px;
    }
    body.page-template-TEMPLATE-service-parent .service_quick_contact,
    body.page-template-TEMPLATE-service-detail .service_quick_contact{
        padding-top:24px;
    }
}

@media (min-width:801px) and (max-width:1200px){
    .about_page_circle{
        height:215px;
        width:215px;
    }
    .about_snippet .about_circle{
        height:220px;
        width:220px;
    }
    body.page-template-TEMPLATE-service-parent .home_services,
    body.page-template-TEMPLATE-service-detail .home_services{
        padding-bottom:44px;
    }
    body.page-template-TEMPLATE-service-parent .service_quick_contact,
    body.page-template-TEMPLATE-service-detail .service_quick_contact{
        padding-top:24px;
    }
}

@media (max-width:800px){
    .about_page_circle{
        height:190px;
        width:190px;
    }
    .about_snippet .about_circle{
        height:195px;
        width:195px;
    }
    body.page-template-TEMPLATE-service-parent .home_services,
    body.page-template-TEMPLATE-service-detail .home_services{
        padding-top:42px;
        padding-bottom:28px;
    }
    body.page-template-TEMPLATE-service-parent .home_services .wrapper > div:not(.section_intro),
    body.page-template-TEMPLATE-service-detail .home_services .wrapper > div:not(.section_intro){
        gap:18px!important;
        margin-bottom:24px;
    }
    body.page-template-TEMPLATE-service-parent .service_quick_contact,
    body.page-template-TEMPLATE-service-detail .service_quick_contact{
        padding-top:18px;
    }
}

/* Homepage About soft green */
.home .about_snippet{
    background:var(--pnw-sage-soft)!important;
}
.home .about_snippet .site_wave--white path{
    fill:#fff!important;
}

/* Internal product opening soft wave */
body.page-template-TEMPLATE-service-parent .service_opening,
body.page-template-TEMPLATE-service-detail .service_opening{
    background:var(--pnw-sage-soft)!important;
    border-bottom:1px solid var(--pnw-border);
    padding:78px 0 72px 0;
    position:relative;
}
body.page-template-TEMPLATE-service-parent .service_opening > .wrapper,
body.page-template-TEMPLATE-service-detail .service_opening > .wrapper{
    position:relative;
    z-index:2;
}

@media (min-width:1201px) and (max-width:1500px){
    body.page-template-TEMPLATE-service-parent .service_opening,
    body.page-template-TEMPLATE-service-detail .service_opening{
        padding:68px 0 62px 0;
    }
}

@media (min-width:801px) and (max-width:1200px){
    body.page-template-TEMPLATE-service-parent .service_opening,
    body.page-template-TEMPLATE-service-detail .service_opening{
        padding:58px 0 54px 0;
    }
}

@media (max-width:800px){
    body.page-template-TEMPLATE-service-parent .service_opening,
    body.page-template-TEMPLATE-service-detail .service_opening{
        padding:44px 0 42px 0;
    }
}

/* Homepage spacing corrections */
.home .opening.light_green{
    padding:54px 0 62px 0;
}
.home .home_services{
    padding-top:220px;
}
.home .home_services .wrapper > div.section_intro{
    margin-bottom:78px;
}
.home .about_snippet{
    background:var(--pnw-sage-soft)!important;
    padding:132px 0 58px 0;
}
.home .about_snippet .site_wave{
    height:118px;
}
.home .about_snippet .site_wave--white path{
    fill:#fff!important;
}
.home .about_snippet .about_circle{
    height:230px;
    margin-bottom:28px;
    width:230px;
}

@media (min-width:1201px) and (max-width:1500px){
    .home .opening.light_green{
        padding:48px 0 56px 0;
    }
    .home .home_services{
        padding-top:190px;
    }
    .home .about_snippet{
        padding:118px 0 52px 0;
    }
    .home .about_snippet .site_wave{
        height:104px;
    }
}

@media (min-width:801px) and (max-width:1200px){
    .home .opening.light_green{
        padding:46px 0 50px 0;
    }
    .home .home_services{
        padding-top:150px;
    }
    .home .about_snippet{
        padding:96px 0 48px 0;
    }
    .home .about_snippet .site_wave{
        height:90px;
    }
}

@media (max-width:800px){
    .home .opening.light_green{
        padding:38px 0 42px 0;
    }
    .home .home_services{
        padding-top:104px;
    }
    .home .about_snippet{
        padding:78px 0 42px 0;
    }
    .home .about_snippet .site_wave{
        height:58px;
    }
}

/* Internal CTA wave restore */
body:not(.home) .service_quick_contact + .site_cta .site_wave--top{
    display:block;
}
body:not(.home) .service_quick_contact + .site_cta .site_wave--top path{
    fill:#fff!important;
}


/* Service page spacing tighten */
body.page-template-TEMPLATE-service-parent .service_opening,
body.page-template-TEMPLATE-service-detail .service_opening{
    padding:0px 0 50px 0;
}
body.page-template-TEMPLATE-service-parent .home_services,
body.page-template-TEMPLATE-service-detail .home_services{
    padding-top:92px;
    padding-bottom:48px;
}
body.page-template-TEMPLATE-service-parent .home_services .site_wave,
body.page-template-TEMPLATE-service-detail .home_services .site_wave{
    height:112px;
}
body.page-template-TEMPLATE-service-parent .home_services .wrapper > div:not(.section_intro),
body.page-template-TEMPLATE-service-detail .home_services .wrapper > div:not(.section_intro){
    gap:54px;
    margin-bottom:54px;
}

@media (min-width:1201px) and (max-width:1500px){
    body.page-template-TEMPLATE-service-parent .service_opening,
    body.page-template-TEMPLATE-service-detail .service_opening{
        padding:46px 0 44px 0;
    }
    body.page-template-TEMPLATE-service-parent .home_services,
    body.page-template-TEMPLATE-service-detail .home_services{
        padding-top:78px;
        padding-bottom:42px;
    }
    body.page-template-TEMPLATE-service-parent .home_services .site_wave,
    body.page-template-TEMPLATE-service-detail .home_services .site_wave{
        height:98px;
    }
}

@media (min-width:801px) and (max-width:1200px){
    body.page-template-TEMPLATE-service-parent .service_opening,
    body.page-template-TEMPLATE-service-detail .service_opening{
        padding:42px 0 40px 0;
    }
    body.page-template-TEMPLATE-service-parent .home_services,
    body.page-template-TEMPLATE-service-detail .home_services{
        padding-top:66px;
        padding-bottom:36px;
    }
    body.page-template-TEMPLATE-service-parent .home_services .site_wave,
    body.page-template-TEMPLATE-service-detail .home_services .site_wave{
        height:82px;
    }
    body.page-template-TEMPLATE-service-parent .home_services .wrapper > div:not(.section_intro),
    body.page-template-TEMPLATE-service-detail .home_services .wrapper > div:not(.section_intro){
        gap:34px;
        margin-bottom:40px;
    }
}

@media (max-width:800px){
    body.page-template-TEMPLATE-service-parent .service_opening,
    body.page-template-TEMPLATE-service-detail .service_opening{
        padding:34px 0 34px 0;
    }
    body.page-template-TEMPLATE-service-parent .home_services,
    body.page-template-TEMPLATE-service-detail .home_services{
        padding-top:48px;
        padding-bottom:28px;
    }
    body.page-template-TEMPLATE-service-parent .home_services .site_wave,
    body.page-template-TEMPLATE-service-detail .home_services .site_wave{
        height:56px;
    }
}


/* Mobile header and homepage spacing tighten */
@media (max-width:800px){
    #header{
        padding:6px 0;
    }
    .home .opening.light_green{
        padding:28px 0 24px 0;
    }
    .home .home_services{
        padding-top:54px;
        padding-bottom:54px;
    }
    .home .home_services .site_wave{
        height:42px;
    }
    .home .home_services .wrapper > div.section_intro{
        margin-bottom:30px;
    }
    .home .home_services .wrapper > div:not(.section_intro){
        margin-bottom:34px;
    }
}

@media (max-width:700px){
    #header{
        padding:6px 0;
    }
}


/* Mobile form spacing tidy */
@media (max-width:800px){
    .contact_form,
    .quick_form,
    .contact_page .contact_form,
    .service_quick_contact .quick_form{
        border-radius:10px;
        padding:18px;
    }
    .form_intro{
        margin-bottom:16px;
    }
    .form_intro p{
        font-size:15px;
        line-height:1.55;
    }
    .contact_form .gfield,
    .quick_form .gfield{
        margin-bottom:10px!important;
    }
    .contact_form input,
    .contact_form textarea,
    .contact_form select,
    .quick_form input,
    .quick_form textarea,
    .quick_form select{
        font-size:15px!important;
        min-height:46px!important;
        padding:11px 14px!important;
    }
    .contact_form textarea,
    .quick_form textarea{
        min-height:130px!important;
    }
    .contact_form input[type="submit"],
    .contact_form button[type="submit"],
    .contact_form .gform_button,
    .quick_form input[type="submit"],
    .quick_form button[type="submit"],
    .quick_form .gform_button{
        margin-top:6px!important;
        padding:12px 24px!important;
    }
}

@media (max-width:420px){
    .contact_form,
    .quick_form,
    .contact_page .contact_form,
    .service_quick_contact .quick_form{
        padding:16px;
    }
}


/* Homepage services to about gap tighten */
.home .home_services{
    padding-bottom:34px;
}
.home .about_snippet{
    padding-top:98px;
}
.home .about_snippet .site_wave{
    height:92px;
}

@media (min-width:1201px) and (max-width:1500px){
    .home .home_services{
        padding-bottom:30px;
    }
    .home .about_snippet{
        padding-top:84px;
    }
    .home .about_snippet .site_wave{
        height:82px;
    }
}

@media (min-width:801px) and (max-width:1200px){
    .home .home_services{
        padding-bottom:28px;
    }
    .home .about_snippet{
        padding-top:72px;
    }
    .home .about_snippet .site_wave{
        height:68px;
    }
}

/* Individual product details and gallery */
.product_detail_section{
    background:#fff;
    padding:78px 0 44px 0;
}
.product_detail_intro{
    margin:0 auto;
    max-width:860px;
    text-align:center;
}
.product_detail_intro h2{
    color:var(--pnw-green-dark);
    font-size:40px;
    line-height:1.25;
    margin-bottom:14px;
}
.product_detail_intro p{
    color:#31463a;
    font-size:18px;
    line-height:1.75;
    margin-left:auto;
    margin-right:auto;
    max-width:780px;
}
.product_detail_points{
    display:grid;
    gap:12px;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    margin:30px auto;
    max-width:820px;
    text-align:left;
}
.product_detail_points li{
    align-items:flex-start;
    background:var(--pnw-sage-soft);
    border:1px solid var(--pnw-border);
    border-radius:8px;
    color:var(--pnw-ink);
    display:flex;
    font-size:16px;
    gap:10px;
    line-height:1.5;
    padding:14px 16px;
}
.product_detail_points li:before{
    background:var(--pnw-green);
    border-radius:50%;
    content:'';
    flex:0 0 8px;
    height:8px;
    margin-top:8px;
    width:8px;
}
.product_gallery_section{
    background:#fff;
    overflow:hidden;
    padding:42px 0 88px 0;
}
.product_gallery_heading{
    margin:0 auto 30px auto;
    max-width:760px;
    padding:0 20px;
    text-align:center;
}
.product_gallery_heading h2{
    color:var(--pnw-green-dark);
    font-size:38px;
    line-height:1.25;
    margin-bottom:10px;
}
.product_gallery_heading p{
    color:#3f5147;
    font-size:17px;
    line-height:1.65;
    margin:0 auto;
    max-width:660px;
}
.product_gallery_slider{
    position:relative;
    width:100%;
}
.product_gallery_viewport{
    overflow:hidden;
    width:100%;
}
.product_gallery_track{
    display:flex;
    gap:22px;
    padding:0 7vw;
    transition:transform .45s ease;
    will-change:transform;
}
.product_gallery_slide{
    aspect-ratio:4 / 3;
    border-radius:8px;
    flex:0 0 31vw;
    min-width:360px;
    overflow:hidden;
    position:relative;
}
.product_gallery_slide img{
    display:block;
    height:100%;
    object-fit:cover;
    width:100%;
}
.product_gallery_nav{
    align-items:center;
    background:var(--pnw-green);
    border:0;
    border-radius:50%;
    color:#fff;
    cursor:pointer;
    display:flex;
    font-size:18px;
    height:48px;
    justify-content:center;
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:48px;
    z-index:3;
}
.product_gallery_nav--prev{left:24px;}
.product_gallery_nav--next{right:24px;}
.product_gallery_nav:hover,
.product_gallery_nav:focus{
    background:var(--pnw-green-dark);
}

@media (max-width:1100px){
    .product_detail_section{padding:64px 0 34px 0;}
    .product_detail_intro h2{font-size:34px;}
    .product_gallery_slide{
        flex-basis:44vw;
        min-width:300px;
    }
}

@media (max-width:700px){
    .product_detail_section{padding:48px 0 28px 0;}
    .product_detail_intro{text-align:left;}
    .product_detail_intro h2{font-size:29px;}
    .product_detail_intro p{font-size:16px;}
    .product_detail_points{
        gap:10px;
        grid-template-columns:1fr;
        margin:22px 0;
    }
    .product_gallery_section{padding:30px 0 58px 0;}
    .product_gallery_heading{text-align:left;}
    .product_gallery_heading h2{font-size:28px;}
    .product_gallery_track{
        gap:14px;
        padding:0 20px;
    }
    .product_gallery_slide{
        flex-basis:calc(100vw - 40px);
        min-width:0;
    }
    .product_gallery_nav{
        height:40px;
        width:40px;
    }
    .product_gallery_nav--prev{left:12px;}
    .product_gallery_nav--next{right:12px;}
}

/* Product detail visual refinements */
.product_detail_section{
    background:var(--pnw-sage-soft);
}
.product_detail_points li{
    background:#fff;
}
.product_gallery_track{
    padding-left:0;
    padding-right:0;
}
.product_gallery_slide{
    flex-basis:32vw;
    min-width:0;
}

@media (max-width:1100px){
    .product_gallery_slide{
        flex-basis:48vw;
    }
}

@media (max-width:700px){
    .product_gallery_track{
        padding-left:0;
        padding-right:0;
    }
    .product_gallery_slide{
        flex-basis:100vw;
    }
}

/* About team profiles */
.about_team_profiles{
    margin:62px auto 0 auto;
    max-width:1120px;
}
.about_team_intro{
    margin:0 auto 34px auto;
    max-width:760px;
    text-align:center;
}
.about_team_intro h2{
    color:var(--pnw-green-dark);
    font-size:38px;
    line-height:1.25;
    margin-bottom:10px;
}
.about_team_intro p,
.home_about_note{
    color:#33483c;
    font-size:17px;
    line-height:1.7;
}
.about_team_grid{
    display:grid;
    gap:28px;
    grid-template-columns:repeat(2, minmax(0, 1fr));
}
.about_team_card{
    align-items:flex-start;
    background:var(--pnw-sage-soft);
    border:1px solid var(--pnw-border);
    border-radius:10px;
    display:grid;
    gap:24px;
    grid-template-columns:150px 1fr;
    padding:28px;
    text-align:left;
}
.about_team_circle{
    align-items:center;
    aspect-ratio:1;
    background:var(--pnw-green);
    border-radius:50%;
    color:#fff;
    display:flex;
    font-family:"Outfit", sans-serif!important;
    font-size:42px;
    font-weight:800;
    justify-content:center;
    overflow:hidden;
    width:150px;
}
.about_team_circle img{
    height:100%;
    object-fit:cover;
    width:100%;
}
.about_team_text h3{
    color:var(--pnw-green-dark);
    font-size:25px;
    line-height:1.25;
    margin-bottom:2px;
}
.about_team_text > strong{
    color:var(--pnw-green);
    display:block;
    font-family:"Outfit", sans-serif!important;
    font-size:15px;
    letter-spacing:.5px;
    margin-bottom:12px;
    text-transform:uppercase;
}
.about_team_text p{
    font-size:16px;
    line-height:1.65;
    margin-bottom:12px;
    text-align:left;
}
.home_about_note{
    margin:18px auto 0 auto!important;
    max-width:720px;
}

@media (max-width:900px){
    .about_team_grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:650px){
    .about_team_profiles{
        margin-top:42px;
    }
    .about_team_intro{text-align:left;}
    .about_team_intro h2{font-size:30px;}
    .about_team_card{
        grid-template-columns:1fr;
        padding:22px;
        text-align:left;
    }
    .about_team_circle{
        width:132px;
    }
}

/* About team card layout refinement */
.about_team_card{
    background:#fff;
    display:block;
    padding:34px 32px;
    text-align:center;
}
.about_team_circle{
    margin:0 auto 22px auto;
}
.about_team_text,
.about_team_text p{
    text-align:center;
}
.about_team_text p{
    margin-left:auto;
    margin-right:auto;
    max-width:520px;
}

@media (max-width:650px){
    .about_team_card{
        padding:28px 22px;
    }
}

/* Gallery page */
.gallery_page{
    background:#fff;
    padding:86px 0 96px 0;
}
.gallery_page_intro{
    margin:0 auto 34px auto;
    max-width:760px;
    text-align:center;
}
.gallery_page_intro p{
    color:#3f5147;
    font-size:18px;
    line-height:1.7;
    margin:0 auto;
}
.pnw_gallery_grid{
    display:grid;
    gap:16px;
    grid-template-columns:repeat(5, minmax(0, 1fr));
}
.pnw_gallery_item{
    aspect-ratio:1 / 1;
    background:var(--pnw-sage-soft);
    border-radius:8px;
    display:block;
    overflow:hidden;
    position:relative;
}
.pnw_gallery_item:focus{
    outline:3px solid var(--pnw-sage);
    outline-offset:3px;
}
.pnw_gallery_item img{
    height:100%;
    left:0;
    object-fit:cover;
    position:absolute;
    top:0;
    transition:transform .28s ease, filter .28s ease;
    width:100%;
}
.pnw_gallery_item:hover img,
.pnw_gallery_item:focus img{
    filter:saturate(1.08);
    transform:scale(1.04);
}

@media (min-width:801px) and (max-width:1200px){
    .gallery_page{padding:68px 0 76px 0;}
    .pnw_gallery_grid{grid-template-columns:repeat(3, minmax(0, 1fr));}
}

@media (max-width:800px){
    .gallery_page{padding:48px 0 58px 0;}
    .gallery_page_intro{margin-bottom:26px;}
    .gallery_page_intro p{font-size:16px;}
    .pnw_gallery_grid{gap:12px; grid-template-columns:repeat(2, minmax(0, 1fr));}
}
.product_gallery_lightbox{
    display:block;
    height:100%;
    width:100%;
}