@charset "utf-8";

:root {
  --menuBg: #567249;
  --menuBgHide: rgba(100, 116, 87, 0.9);

  --homeServiceFontColor: #fff;
  --homeServiceFontSize: 1.8em;
  --homeCollaboratorsFontColor: #000;
  --homeCollaboratorsFontColorActive: #888;
  --homeCollaboratorsFontSize: 1.4em;
  
  --titleFontSize: 3em;
  --titleFontSizeMobile: 2.2em;

  --siteContentBgColor: #fff;
  --footerFontBgColor: #141b22;
  --footerFontColor: #fff;
  --footerFontSize: 1.8em;
  --footerFontSizeSub: 0.8em;
  --copyrightFontSize: 1.4em;
  --footerLanguageColor: #fff;
	--footerLanguageColorActive: #009ac5;

  --homeHeaderBgColor: #6c8333;
  --pageContentBgColor: #fff;
  --pageContentTitleBgColor: #141b22;
  --pageContentTitleFontColor: #fff;
  --pageContentTitleFontSize: 2em;
  --pageContentFontColor: #000;
  --pageContentFontColorActive: #009ac5;
  --pageContentFontSize: 1.4em;

  --contactFontColor: #fff;
  --contactFontColorActive: #fff;
  --contactErrorColor: #ff9060;
  --contactSuccessColor: #fff;
  --contactButtonColor: #fff;
  --contactButtonColorActive: #000;
  --contactSubtitleSize: 1.2em;
  --contactMessageSize: 1.6em;
}


.siteContent { transition: opacity 1s; opacity: 0; background-color: var(--siteContentBgColor); overflow: hidden; }
.siteContent.active { opacity: 1; }

.loading {
  font-size: var(--loadingFontSize); color: #fff; width: 100vw; height: 100vh; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0;
  display: flex; flex-flow: row wrap; align-items: center; justify-content: center;
  opacity: 0; animation: none;
}
.loading.active { z-index: 1; animation: flash 1s linear infinite; }
.loading > div { margin: auto auto; }

.homeMain {
  position: relative; padding: 0; margin: 0; width: 100%; height: 100vh; background: linear-gradient(to bottom, #768ea8, 30%, #fff); overflow: hidden;
}
.homeMain::before {
  content: '';
  position: absolute; z-index: 10; width: 100%; height: 100px; bottom: 0; background: linear-gradient(to bottom, transparent, 70%, var(--homeHeaderBgColor));
}
.homeMain > div.logo {
  position: absolute; z-index: 1; left: 0; right: 0; top: 500px; text-align: center;
  transition: top 1s; animation: flash 3s linear infinite; opacity: 0.5;
}
.homeMain > div.logo img {
  width: 400px; max-width: 80%;
}
.homeMain > div.grass1 {
  position: absolute; z-index: 4; width: 100%; height: 100vh; background-size: cover; background-position: center center;
  transition: top 1s; top: -10px;
}
.homeMain > div.grass2 {
  position: absolute; z-index: 3; width: 100%; height: 100vh; background-size: cover; background-position: center center;
  transition: left 1s; left: -20px;
}
.homeMain > div.grass3 {
  position: absolute; z-index: 2; width: 100%; height: 100vh; background-size: cover; background-position: center center;
  transition: left 1s; left: 20px;
}
.homeMain .button {
  position: absolute; z-index: 1; transform: translateY(380px); width: 100%; text-align: center;
  transition: opacity 1s 1s; opacity: 0;
}
.homeMain .button > div {
  display: inline-block; font-size: 2em; color: #000; background: rgba(255, 255, 255, 0.8); padding: 15px 25px; border-radius: 5px; cursor: pointer;
}

.homeService {
  width: 100%; padding: 40px; background-color: var(--homeHeaderBgColor); color: var(--homeServiceFontColor); font-size: var(--homeServiceFontSize); line-height: 1.5em; text-align: center; overflow: hidden;
}
.homeService > .title {
  font-size: var(--titleFontSize); line-height: 1.2em; padding: 0 0 10px 0;
  transition: opacity 1s, transform 1s; opacity: 0; transform: translateX(100px);
}
.homeService > .title.show {
  opacity: 1; transform: translateX(0);
}
.homeService > .text {
  transition: opacity 1s 0.2s, transform 1s 0.2s; opacity: 0; transform: translateX(100px);
}
.homeService > .text.show {
  opacity: 1; transform: translateX(0);
}
.homeService > .image {
  display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 60px; padding: 100px 20px 20px 20px;
  transition: opacity 1s 0.4s, transform 1s 0.4s; opacity: 0; transform: translateY(50px);
}
.homeService > .image.show {
  opacity: 1; transform: translateY(0);
}
.homeService > .image > div {
  position: relative; cursor: pointer;
}
.homeService > .image > div > .title {
  position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); text-shadow: 1px 1px 2px #000;
  line-height: 1.3em;
}
.homeService > .image > div img {
  max-width: 100%; border-radius: 10px;
  transition: filter 0.5s; filter: grayscale(60%);
}
.homeService > .image > div.active img, .homeService > .image > div:hover img {
  filter: grayscale(0);
}
@media only screen and (max-width:880px) {
  .homeService {
    padding: 20px 10px;
  }
	.homeService > .image {
    grid-template-columns: 1fr 1fr; grid-gap: 30px; padding: 60px 10px 20px 10px;
  }
}
@media only screen and (max-width:400px) {
  .homeService > .title {
    font-size: var(--titleFontSizeMobile);
  }
	.homeService > .image {
    grid-template-columns: 1fr; grid-gap: 20px; padding: 40px 0 20px 0;
  }
}

.homeCollaborators {
  width: 100%; padding: 40px; background-color: #fff; color: var(--homeCollaboratorsFontColor); text-align: center; overflow: hidden;
}
.homeCollaborators > .title {
  font-size: var(--titleFontSize); line-height: 1.2em; padding: 0 0 40px 0;
  transition: opacity 1s, transform 1s; opacity: 0; transform: translateX(100px);
}
.homeCollaborators > .title.show {
  opacity: 1; transform: translateX(0);
}
.homeCollaborators > .items {
  transition: opacity 1s, transform 1s; opacity: 0; transform: translateX(100px); display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 20px;
  font-size: var(--homeCollaboratorsFontSize); line-height: 1.5em;
}
.homeCollaborators > .items.show {
  opacity: 1; transform: translateX(0);
}
.homeCollaborators > .items > div {
  padding: 10px;
}
.homeCollaborators > .items img {
  max-width: 80%; max-height: 140px; padding: 0 0 20px 0;
}
.homeCollaborators > .items > div a {
  color: var(--homeCollaboratorsFontColor); transition: color 0.5s;
}
.homeCollaborators > .items > div a:hover, .homeCollaborators > .items > div a.active {
  color: var(--homeCollaboratorsFontColorActive);
}

@media only screen and (max-width:600px) {
  .homeCollaborators > .items {
    grid-template-columns: 1fr 1fr;
  }
}
@media only screen and (max-width:500px) {
  .homeCollaborators > .items {
    grid-template-columns: 1fr;
  }
}


.footer {
  background: var(--footerFontBgColor); min-height: 300px; position: relative;
  transition: opacity 1s; opacity: 1;
}
.footer.show {
  opacity: 1;
}
.footer > .content {
  display: grid; grid-template-columns: 1fr 240px; grid-gap: 0;
}
.footer > .content > .right {
  text-align: right;
}
.footer .language {
  padding: 50px 40px 20px 10px; font-size: var(--footerFontSizeSub); color: var(--footerLanguageColor);
}
.footer .language > a {
  color: var(--footerLanguageColor); transition: color 1s;
}
.footer .language > a.active, .footer .language > a:hover {
  color: var(--footerLanguageColorActive);
}
.footer .menu {
  padding: 40px 20px 10px 40px; 
  display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 0;
}
.footer .menu > div {
  font-size: var(--footerFontSize); line-height: 1.5em; color: var(--footerLanguageColor); padding: 5px;
}
.footer .menu > div .sub {
  font-size: var(--footerFontSizeSub); line-height: 1.3em; padding: 3px 10px 3px 25px; position: relative;
}
.footer .menu > div .sub::before {
  content: '- '; position: absolute; left: 8px;
}
.footer .menu a {
  color: var(--footerLanguageColor); transition: color 1s;
}
.footer .menu a.active, .footer .menu a:hover {
  color: var(--footerLanguageColorActive);
}
.footer .copyright {
  padding: 20px;
  font-size: var(--copyrightFontSize); color: var(--footerFontColor); line-height: 1.2em; text-align: center;
}
.footer .media > div {
  padding: 5px 40px 5px 20px; 
}
.footer .media > div img {
  height: 40px;
}
@media only screen and (max-width:940px) {
  .footer > .content {
    grid-template-columns: 1fr;
  }
  .footer > .content > .left {
    flex-grow: unset; width: 100%;
  }
  .footer > .content > .right {
    width: 100%; text-align: center;
  }
  .footer .menu {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
  .footer .media > div {
    display: inline-block;
  }
  .footer .language {
    padding: 20px 20px 20px 20px;
  }
}


.pageContent {
  background-color: var(--pageContentBgColor); overflow: hidden;
}
.pageContent a {
  color: var(--pageContentFontColor); transition: color 1s;
}
.pageContent a.active, .pageContent a:hover {
  color: var(--pageContentFontColorActive);
}
.pageContent > .header {
  height: 600px; background-size: cover; background-position: center center; position: relative;
  transition: filter 2s 0.5s; filter: grayscale(100%);
}
.pageContent > .header.show {
  filter: grayscale(0);
}
.pageContent > .header::before {
  content: '';
  position: absolute; z-index: 10; width: 100%; height: 100px; bottom: 0; background: linear-gradient(to bottom, transparent, 70%, var(--pageContentBgColor));
}
.pageContent > .content {
  background-color: var(--pageContentBgColor); min-height: 400px; padding: 40px;
  transition: opacity 1s 0.2s, transform 1s 0.2s; opacity: 0; transform: translateX(100px);
}
.pageContent > .content.show {
  opacity: 1; transform: translateX(0);
}
.pageContent > .content > .title {
  display: inline-block; background-color: var(--pageContentTitleBgColor); padding: 20px 30px;
  color: var(--pageContentTitleFontColor); font-size: var(--pageContentTitleFontSize); line-height: 1.2em;
}
.pageContent > .content > .text {
  display: inline-block; color: var(--pageContentFontColor); font-size: var(--pageContentFontSize); line-height: 1.2em; padding: 20px 20px;
}
.pageContent > .content > .list {
  display: block; color: var(--pageContentFontColor); font-size: var(--pageContentFontSize); line-height: 1.5em; padding: 20px 20px;
}
.pageContent > .content > .list > .heading {
  padding: 0 0 10px 0;
}
.pageContent > .content > .list > .items {
  padding: 5px 10px; display: grid; grid-template-columns: 30px 1fr; grid-gap: 10px;
}
.pageContent > .content > .list > .items.level2 {
  margin: 0 0 0 30px; grid-template-columns: 30px 1fr;
}
.pageContent > .content > .list .icon {
  height: 20px; padding: 0 10px; vertical-align: text-top;
}
.pageContent > .content > .logo {
  text-align: center; padding: 80px 10px 40px 10px;
}
.pageContent > .content > .logo img {
  max-width: 100%;
}
.pageContent > .content > .br {
  display: block; height: 30px;
}
.pageContent > .content > .homeCollaborators {
  padding: 80px 40px 40px 40px;
}
.pageContent > .content > .homeService {
  background-color: var(--pageContentBgColor); color: var(--pageContentFontColor);
}
.pageContent > .content > .homeService > .image > div > .title {
  color: var(--homeServiceFontColor);
}
@media only screen and (max-width:940px) {
  .pageContent > .content {
    padding: 40px 20px;
  }
}



.pageContent > .content > .contact {
  display: block; color: var(--pageContentFontColor); font-size: var(--pageContentTitleFontSize); line-height: 1.2em; padding: 20px 20px 20px 240px;
}
.pageContent > .content > .contact > div {
  padding: 10px 0; display: grid; grid-template-columns: 140px 1fr; grid-gap: 20px;
}
.pageContent > .content > .contact > .subtitle {
  font-size: var(--contactSubtitleSize); font-weight: bold; grid-template-columns: 1fr; border-bottom: #000 1px solid; margin: 0 0 30px 0;
}
.pageContent > .content > .contactForm {
  background-color: var(--homeHeaderBgColor);
}
.pageContent > .content > .contactForm > .success {
  color: var(--contactSuccessColor); font-size: var(--contactMessageSize); padding: 40px; text-align: center;
}
.pageContent > .content > .contactForm > .success {
  color: var(--contactSuccessColor); font-size: var(--contactMessageSize); padding: 40px; text-align: center;
}
.formContent.contactUsForm {
  padding: 20px 40px 20px 20px; color: var(--contactFontColor);
}
.formContent.contactUsForm > .field > div input,
.formContent.contactUsForm > .field > div textarea,
.formContent.contactUsForm > .field > div select,
.formContent.contactUsForm > .field > div > .text {
  color: var(--contactFontColor);
}
.formContent.contactUsForm > .field > div .error {
  color: var(--contactErrorColor);
}
.formContent.contactUsForm > .field > div input[type="button"] {
  background-color: transparent; color: var(--contactButtonColor); border: var(--contactButtonColor) 3px solid;
  transition: color 0.5s, background 0.5s;
}
.formContent.contactUsForm > .field > div input[type="button"]:hover {
  background-color: var(--contactButtonColor); color: var(--contactButtonColorActive);
}
.formContent.contactUsForm > .button > div {
	background-color: transparent; color: var(--contactButtonColor); border: var(--contactButtonColor) 3px solid;
  transition: background 0.5s;
}
.formContent.contactUsForm > .button > div:hover {
  background-color: var(--contactButtonColor);
}
.formContent.contactUsForm > .button > div input {
  background-color: transparent; color: var(--contactButtonColor);
  transition: color 0.5s;
}
.formContent.contactUsForm > .button > div:hover input {
  color: var(--contactButtonColorActive);
}
@media only screen and (max-width:940px) {
  .pageContent > .content > .contact {
    padding: 20px 20px 20px 20px;
  }
  .formContent.contactUsForm {
    padding: 20px 20px 20px 10px;
  }
}
@media only screen and (max-width:680px) {
  .pageContent > .content > .contact > div {
    grid-template-columns: 1fr; padding: 20px 0;
  }
}


@keyframes flash {
  50% {
    opacity: 1;
  }
}