/* Globals */
html{scroll-behavior: smooth;scroll-padding-top: 60px;}
body {
    background: #FFF;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-content: space-between;
    min-height: 100vh;
    color: #3f3f3f;
    font-size: 22px;
    line-height: 1.5em;
}
* {
	position: relative;
	font-family: 'Lora', serif;
	box-sizing:border-box;
}
h1,h2,h3,h4,h5,h6,nav *,.subtitle{ line-height: 1em; }
h1{
    font-weight: 500;
    margin: 0;
    font-size: 2.2em;
}
a { text-decoration:underline; transition: all .3s ease; color: #54823b; }
a:hover { color: #3fb300;  }
a h1,a h2,a h3,a h4,a h5,a h6{color:inherit;}
hr{
	margin:2em 0; border:none; border-top:2px solid #a9d590;
}


.clickable { cursor:pointer; display:block; }
.clearfix:before { content:" "; display:table; }
.clearfix:after { content:" "; display:table; clear:both; }
.wrapper { position: relative; width:100%; max-width:1400px; margin:0px auto; padding:0 1em; }
article.wrapper.content{position: relative; margin:4em auto;}
article.wrapper.content h1{
    width: 100%;
    margin: 0;
    font-size: 2.8em;
    font-weight: 400;
    line-height: 1.2em;
    text-transform: uppercase;
    text-shadow: rgb(0 0 0 / 50%) 0px 0px 0.5em;
}
article.wrapper.content-area{}
article.wrapper.content-area img{ display: inline-block; max-width: 100%; height: auto; }

.padding-vertical{padding-top:2em; padding-bottom: 2em;}
.padding-vertical:first-child{}
.padding-vertical:last-child{}

.flex{ display: flex; flex-wrap: wrap; justify-content: space-between; position: relative; }
.flex>.one-third{width:33.33%;}
.flex>.two-third{width:66.66%;}
.flex>.one-quarter{width:25%;}
.flex>.one-half{width:50%;}
.flex>.three-quarter{width:75%;}

main{width:100%;flex-grow: 1;}

.blocks section.photo{}
.blocks section.photo .photo-wrapper{
	display: flex;
    width: 100%;
    height: 100%;
}
.blocks section.photo .photo-wrapper>div{
    padding-top: 65%;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    height: 100%;
	width: 100%;
	box-shadow:#31363936 5px 5px 10px 0px;
}
.blocks section.photo .photo-wrapper>div>span{
    display:flex; 
	align-items: flex-start;
    color: #fff;
    font-size: 1.6em;
    padding: 1.5em 0.5em 0.5em 0.5em;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
	line-height:1em;
	padding-right: 30%;
}
.blocks section.photo .photo-wrapper>div>span:before{
    content: "\f04b";
    font-family: "Font Awesome 5 Pro";
    color: #e13740;
    padding: 0;
    transition: all .3s ease;
    font-weight: bold;
    margin-right: 10px;
    font-size: 22px;
    line-height: 1.7em;
}
.blocks section.photo .photo-wrapper>div>span:after{
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(0, black, transparent);
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
}
.blocks section.photo .rslides_tabs{
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 0;
    padding: 0;
    position: absolute;
    bottom: 1em;
    right: 1em;
	z-index: 2;
}
.blocks section.photo .rslides_tabs li{}
.blocks section.photo .rslides_tabs a{
    background: rgb(225 55 64 / 40%);
    color: #fff;
    width: 2em;
    height: 2em;
    font-size: 0.4em;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    text-decoration: none;
}
.blocks section.photo .rslides_tabs li.rslides_here a{background: rgb(225 55 64 / 100%);}



form fieldset div.formfields input{ height:auto; padding: 1em; border: 1px solid #ccc;margin:0 0 1em 0;}

form fieldset div.formfields textarea{height:200px; padding:1em; border: 1px solid #ccc;margin:0 0 1em 0; }
form fieldset div.formfields button{ height:auto; background: #99A285; padding:1em; margin-top:0; }
form fieldset div.formfields > div {
    padding: 0 0.4em;
}


/* Header */
section.headertop{
    position: relative;
    height: 50vh;
    width:100%;
}
.home section.headertop, .home ul.rslides li{
    height: 100vw;
    min-height: 50vh;
    max-height: 100vh;
}

header {
	border-top: 3px solid #a9d48f;
	background: rgb(255 255 255 / 0%);
	transition: all .3s ease;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    padding: 1em 0;
    z-index: 10;
}
header>*.wrapper{ display: flex; justify-content: space-between; align-items: center; }
header .logo{ align-self: flex-start; display:block;}
header .logo img{display: block; width:100%; max-width:300px; height:auto; transition: all .3s ease; }
/*header .logo:hover {animation: 1s ease 0s 1 pulse;}*/
header.sticky{
    box-shadow: #313639 0px 0px 10px -5px;
    padding: 10px 0;
    background: rgb(255 255 255 / 88%);
}

header.open{background:#fff;box-shadow: #313639 0px 5px 20px -10px;}

header.sticky .logo img, header.open .logo img{width:280px;}
.home header:after{z-index: -1;}
section.headertop.noimage:after{ display: none;}
header.sticky:after {
    opacity: 0;
}

/* Functionality related */
@keyframes opac {
    0% { display:block; opacity:0; }
    100% { opacity:1; }
}
nav#menu #toggle-menu { display:none; padding:20px;}
header nav#menu #toggle-menu {}
nav#menu label,nav#menu a { position:relative; display:block; text-decoration:none; line-height:1em; user-select:none; }
nav#menu input[type="checkbox"] {
    display: block;
    height:0px;
    opacity: 0;
}
nav#menu ul { margin: 0; padding:0; display: flex; align-items: center;}
nav#menu ul.main-menu ul.sub-menu { display:none; position:absolute; top:100%; opacity:0; }
nav#menu ul.main-menu ul.sub-menu ul { top:0; left:100%; }
nav#menu li { position:relative; display:block;animation: .6s ease 0s 1 fadeInDown; opacity: 0;animation-fill-mode: forwards; text-align: center;}
nav#menu .main-menu > li { float:left; font-weight: bold; }
@media only screen and (max-width:1000px) {
    nav#menu #toggle-menu { display:block; }
    nav#menu ul { display:none; }
    nav#menu ul.main-menu ul.sub-menu { position:static;
    background: #eee !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
        width:100% !important;
    }
    nav#menu ul.main-menu > li { float:none; }

}
@media (min-width:1001px) {
    nav#menu ul.main-menu li:hover > .sub-menu { display:block; opacity:1; animation:opac 0.25s linear; }
        nav#menu { }
}
@media (max-width:1000px) {
    nav#menu input[type="checkbox"]:checked + ul { display:block; opacity:1; animation:opac 0.25s linear;
    right: 0;
    top:100%;
    width: 100%;
    }

    nav#menu { align-self: flex-start; }


}

/* Theme-related */
nav#menu {  }
nav#menu label,
nav#menu a {
    display: block;
    color: #231f20;
    font-weight: 500;
    position: relative;

	text-transform: uppercase;
}
nav#menu label:after,nav#menu a:after {
    display: block;
    content: '';
    background: #a9d490;
    position: absolute;
    top: 70%;
    height: 5px;
    left: 1vw;
    right: 1vw;
    transition: all 0.22s ease;
    z-index: -1;
    border-radius: 5px;
}
nav#menu label:hover:after,
nav#menu a:hover:after {
	height: 100%;
	top:0%;
	left:0%;
	right:0%;
	bottom:0%;
	
}
#toggle-menu:after{ display: none !important;}
#toggle-menu:hover{color:inherit!important;}
nav#menu ul.main-menu ul.sub-menu { border:1px solid rgba(0,0,0,0.05); width:220px;
    box-shadow: #313639 0px 0px 10px -5px;
    background: #ffffffe0; overflow: hidden;
}
nav#menu ul.main-menu ul.sub-menu li { border-style:solid; border-width:0 0 1px; border-color:rgba(0,0,0,0.05);  font-size:.8em; }
nav#menu ul.main-menu ul.sub-menu li:last-child { border-width:0; }
nav#menu ul.main-menu ul.sub-menu ul { min-width:10em; }

/*header.sticky nav#menu label, header.sticky nav#menu a, header.open nav#menu label, header.open nav#menu a{color:#000;}*/
@media only screen and (max-width:1000px) {
    nav#menu ul {  }
    nav#menu ul.main-menu {  }
    nav#menu ul.main-menu li { border-style:solid; border-width:0 0 1px; border-color:rgba(0,0,0,.1);  }
    nav#menu ul.main-menu>li:last-child { border-width:0; }
    header>*.wrapper{ align-items: flex-start; }
    nav#menu label, nav#menu a{ text-align:right; padding:1em; }
	nav#menu label:after, nav#menu a:after{ display: none;}
}
@media only screen and (min-width:1000px) {
    /*nav#menu ul.main-menu ul.sub-menu label i.fa-chevron-right-or-down::before { content:"\f054";}*/
    nav#menu label, nav#menu a{padding: 1em 1vw}
}

@media screen and (max-width: 1000px) {

}
@media screen and (max-width: 760px) {
    
}

/* ResponsiveSlides */
.dynamic-headers{ position: relative;left: 0;top: 0;width: 100%;z-index:0; }
ul.rslides { position: relative; list-style: none; overflow: hidden; width: 100%; padding: 0; margin: 0; }
ul.rslides li { -webkit-backface-visibility: hidden; position: absolute; display: none; width: 100%; left: 0; top: 0; 
    height: 50vh;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

ul.rslides:after {
    content: '';
    display: block;
    position: absolute;
    z-index: 2;
    background:linear-gradient(0deg, rgb(255 255 255 / 0%) 10%, rgb(255 255 255 / 90%) 100%);
    right: 0;
    left: 0;
    top: 0px;
    height: 200px;
    opacity: 1;
    transition: opacity .3s ease;
}
ul.rslides li:first-child { position: relative; display: block; float: left; }


/* Aligned Gallery*/
.int-gallery h2{margin-top:0;}
.int-gallery{ overflow: hidden; }
.aligned-gallery { list-style:none; margin:0; padding: 0px; overflow: hidden; max-width: 100vw;
margin-left:-10px; margin-right:-10px;
}
.aligned-gallery li {display:block;float:left;margin: 0px;width: inherit;padding: 0px; transition:0.3s;}
.aligned-gallery li:hover {/* box-shadow: 0px 10px 11px -8px rgba(0, 0, 0, 0.41); */}
.aligned-gallery li:before {display:none;}
.aligned-gallery li a { display:block; cursor:zoom-in}
.aligned-gallery li a img { display:block; margin:8px !important; border-radius: 3px; box-shadow: 2px 2px 20px -10px rgb(0 0 0);}

#gallery-categories {
	list-style: none;
	padding: 0;
	margin: 2em 0 0 0;
	display: flex;
	flex-wrap: wrap;
	gap:1em;
}
#gallery-categories li {
	width: CALC(33% - 0.5em);
	display: block;
	padding: 0;
}
#gallery-categories li a {
	position: relative;
	display: block;
}
#gallery-categories li a span {
    position: absolute;
    right: 0;
    bottom: 0;
    background: #000000a3;
    padding: 0.4em;
    color: white;
    width: 100%;
    text-align: center;
}
#gallery-categories li a img {
	display: block;
	width: 100%;
	height: auto;
	box-shadow: #00000036 5px 5px 10px 0px;
}
#gallery-categories.clearfix:before, #gallery-categories.clearfix:after {
	content: none;
	display: none;
}
.galleryback{ margin: 1em 0;}
.galleryback i{}
.galleryback a{}
	@media screen and (max-width: 780px) {
        #gallery-categories{ flex-wrap:wrap; }
		#gallery-categories li {float:none;display:block;margin: 10px auto 10px auto;width: 100%;}
	}


/* Footer */
footer {
    align-self: flex-end;
    width: 100%; 
	background: #a9d490 url('/templates/client/images/background-map.jpg') repeat 70% 70%;
    position: relative;
	overflow: hidden;
}

footer>.wrapper{
	background:#a9d490;
	background:linear-gradient(90deg, #a9d490, transparent);
	padding-top:1em;
	padding-bottom:1em;
}
footer>.wrapper:before{
    content: '';
    background: #a9d490;
    width: calc( 50vw - 610px);
    height: 100%;
    display: block;
    position: absolute;
    right: 100%;
    top: 0;
}
footer .address, footer .phone{ padding-left:1.5em; }
footer .address i, footer .phone i{
    position: absolute;
    left: 0em;
    line-height: 1.5em;
}
footer .address a{ font-size: 0.8em; }
footer>.wrapper a{ color:#000; font-weight: bold; }
footer .bottom{
	font-size: 0.8em;
    text-align: center;
    background: #55833b;
    color: #a9d490;
    padding: 1em;
}

.location-photo{
	background:url('/uploads/images/main-office.jpg') no-repeat center;
	background-size: cover;
}
@media (max-width:600px) {
	footer{	background-image: none; }
	footer>.wrapper{ background: #a9d490; }
}


@media (max-width:1000px) {
	header{ padding: 10px 0; }
    header .logo img{width:100%; max-width: 200px; }
    header .logo{
		margin-top: 5px; 
        position: absolute;
        z-index: 10;
    }
    header.sticky .logo img{}
    nav#menu{width:100%;}
	#contact-page .two-quarter{ width:100%;}
	.location-photo{width:100% !important; padding-top:75%; margin-top:1em; }
	footer{ font-size: .8em; }
}

@media (max-width:768px) {
    body{font-size: 1.2em; line-height: 1.3em;}

	.flex{flex-wrap:wrap !important;}
    .flex>.two-third,.flex>.one-third{
        width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border: none !important;
    }

	
	footer{ font-size: 1em;}
    footer .wrapper>div.flex{ }
    footer .wrapper>div.flex>div{justify-content: center !important; text-align: center;}

    footer .wrapper>div.flex .address,footer .wrapper>div.flex .social{width:100%;}
    footer .wrapper>div.flex  .sitemap {
		width: auto;
		margin: 2em auto;
	}

    .content-pic{width:100%; margin:1em 0 !important;}
    .locations>li{width:100%;}

    article2.wrapper{ padding:0 !important; }
    article2.wrapper>*{ padding:1em !important; }



	
}
@media (max-width:400px) {
    body{font-size: 1.1em; line-height: 1.2em;}

}