/* RESET & NORMALIZE */
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,main,menu,nav,output,ruby,section,summary,time,mark,audio,video{
  margin:0;
  padding:0;
  border:0;
  font:inherit;
  font-size:100%;
  vertical-align:baseline;
  box-sizing:border-box;
}
html{box-sizing:border-box;scroll-behavior:smooth;}
*,*:before,*:after{box-sizing:inherit;}
body{
  line-height:1.6;
  background:#F4F4F0;
  color:#22332D;
  font-family:'Roboto',Arial,sans-serif;
  font-size:16px;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  word-break:break-word;
}
img{max-width:100%;display:block;}
a{color:#1A4D2E;text-decoration:none;transition:color .2s;}
a:active,a:focus{outline:none;text-decoration:underline;}
a:hover{color:#5A8763;text-decoration:underline;}
ul,ol{list-style:none;}

/* TYPOGRAPHY */
h1,h2,h3,h4,h5,h6{
  font-family:'Montserrat',Arial,sans-serif;
  color:#1A4D2E;
  font-weight:700;
  line-height:1.2;
  margin-bottom:18px;
}
h1{font-size:2.5rem;margin-bottom:20px;}
h2{font-size:2rem;margin-bottom:18px;}
h3{font-size:1.5rem;margin-bottom:14px;}
h4{font-size:1.25rem;}
h5{font-size:1rem;}
h6{font-size:.95rem;}
p{margin-bottom:18px;max-width:700px;}
strong{font-weight:700;}

/* BASIC LAYOUT */
.container {
  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  flex-direction:column;
}
.content-wrapper {
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.section, .hero-section, .features-section, .cta-section,.about-section,.testimonials-section,.contact-section, .solutions-section,.services-section, .process-section, .legal-section, .thanks-section {
  margin-bottom:60px;
  padding:40px 20px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 2px 12px 0 rgba(34,62,54,0.07);
  display:flex;
  flex-direction:column;
  gap:20px;
  position:relative;
}

.section:last-child, .thanks-section:last-child {
  margin-bottom:0;
}

/* HEADER */
header {
  background: #fff;
  border-bottom: 1px solid #e4eae3;
  font-family:'Montserrat',Arial,sans-serif;
}
header .container {
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  min-height:75px;
  gap:18px;
}
.logo img{height:48px;width:auto;}

header nav {
  display:flex;
  flex-direction:row;
  gap:24px;
  align-items:center;
}
header nav a {
  font-weight:500;
  font-size:1rem;
  color:#1A4D2E;
  padding:8px 0;
  transition:color .2s;
}
header nav a:hover,header nav a:focus{color:#88C070;}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:24px;
  padding:12px 28px;
  font-size:1rem;
  font-weight:600;
  letter-spacing:0.03em;
  border:none;
  cursor:pointer;
  transition:all .18s cubic-bezier(.55,.1,.85,.4),box-shadow .22s;
  text-align:center;
  background:none;
  outline:none;
  box-shadow:0 1px 5px 0 rgba(34,77,46,0.06);
}
.btn.primary{
  background:#1A4D2E;
  color:#fff;
  border:1.5px solid #1A4D2E;
}
.btn.primary:hover,.btn.primary:focus{
  background:#185D43;
  color:#fff;
  box-shadow:0 4px 16px 0 rgba(26,77,46,.13);
}
.btn.secondary{
  background:#88C070;
  color:#1A4D2E;
  border:1.5px solid #88C070;
}
.btn.secondary:hover,.btn.secondary:focus{
  background:#77B060;
  color:#173C25;
  box-shadow:0 4px 16px 0 rgba(136,192,112,.09);
}
.btn:active{transform:scale(.98);}

/* MOBILE MENU */
.mobile-menu-toggle {
  display:none;
  background:none;
  border:none;
  font-size:2.1rem;
  cursor:pointer;
  color:#1A4D2E;
  margin-left:4px;
  z-index:1002;
  transition:color .15s;
}
.mobile-menu-toggle:hover,.mobile-menu-toggle:focus{color:#88C070;}
.mobile-menu {
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:rgba(244,244,240,0.97);
  z-index:1200;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.61,.08,.27,1.02);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding-top:48px;
  width:100vw;
  height:100vh;
}
.mobile-menu.active{
  transform:translateX(0);
}
.mobile-menu-close{
  position:absolute;
  top:20px; right:32px;
  background:transparent;
  border:none;
  font-size:2.3rem;
  color:#1A4D2E;
  cursor:pointer;
  z-index:1201;
  transition:color .15s;
}
.mobile-menu-close:focus,.mobile-menu-close:hover{color:#88C070;}
.mobile-nav{
  display:flex;
  flex-direction:column;
  gap:26px;
  align-items:center;
  margin-top:56px;
  width:100%;
}
.mobile-nav a{
  font-family:'Montserrat',Arial,sans-serif;
  color:#1A4D2E;
  font-size:1.22rem;
  font-weight:600;
  padding:15px 0;
  border-bottom:1px solid #e5ebdf;
  width:80vw;
  max-width:330px;
  text-align:left;
  transition:background .17s, color .17s;
}
.mobile-nav a:last-child{border:none;}
.mobile-nav a:active,.mobile-nav a:focus,.mobile-nav a:hover{background:#EDF5E8;color:#185D43;}

@media (max-width:960px){
  header nav{display:none;}
  .mobile-menu-toggle{display:inline-block;}
  header .btn.primary{display:none;}
}
@media (min-width:961px){
  .mobile-menu{display:none!important;}
}

/* SECTIONS & UTILITIES */
.hero-section {
  background:#E6F3EA;
  align-items:center;
  text-align:left;
  min-height:310px;
  gap:20px;
}
.hero-section h1{font-size:2.6rem;color:#1A4D2E;letter-spacing:-.01em;}
.hero-section p{font-size:1.2rem;margin-bottom:18px;color:#406254;}
.hero-section .btn{margin-top:18px;}
@media (max-width:500px){
  .hero-section h1{font-size:2rem;}
  .hero-section{padding:32px 8px;}
}

.features-section, .features-section .content-wrapper, .benefits-list, .usp-list {
  background:#fff;
  border-radius:18px;
  box-shadow:0 2px 10px 0 rgba(34,62,54,0.08);
  gap:20px;
}
.feature-grid, .usp-list, .solutions-grid, .benefits-list, .service-list, .workshop-list, .facts-list, .solution-benefits, .process-steps, .core-values, .sustainability-list, .contact-details {
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  flex-direction:row;
  align-items:flex-start;
}
.feature-grid li, .usp-list li, .benefits-list li, .solutions-grid li {
  background:#F8FBF6;
  border-radius:16px;
  box-shadow:0 1.5px 8px 0 rgba(136,192,112,0.045);
  padding:24px 20px 18px 20px;
  min-width:210px;
  flex:1 1 230px;
  font-size:1.07rem;
  line-height:1.5;
  color:#22332D;
  transition:box-shadow .18s;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin-bottom:20px;
  gap:10px;
}
.feature-grid li:hover, .usp-list li:hover, .benefits-list li:hover, .solutions-grid li:hover {
  box-shadow:0 2.5px 16px 0 rgba(136,192,112,0.09);
}
.feature-grid img, .usp-list img, .benefits-list img, .solutions-grid img {
  width:38px; height:38px; margin-bottom:8px;
}

.facts-list {
  flex-direction:row;
  gap:34px;
  margin-top:10px;
}
.facts-list li{
  background: #E6F3EA;
  border-radius: 14px;
  padding: 18px 20px;
  min-width:100px;
  text-align:center;
  font-size:1.12rem;
  color:#1A4D2E;
  font-family:'Montserrat',Arial,sans-serif;
}

.testimonials-section .testimonial-card{
  background:#fff;
  color:#22332D;
  font-size:1.12rem;
  border-radius:16px;
  box-shadow:0 2px 14px 0 rgba(34,77,46,0.13);
  margin-bottom:20px;
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:flex-start;
  padding:20px 26px;
  max-width:590px;
  min-width:230px;
  transition:box-shadow .18s;
}
.testimonials-section .testimonial-card:hover{
  box-shadow:0 4.5px 24px 0 rgba(26,77,46,0.10);
}
.testimonials-section footer {
  font-size:1rem;
  font-family:'Montserrat',Arial,sans-serif;
  color:#406254;
  margin-top:10px;
  opacity:.92;
}

.cta-section {
  background:#E6F3EA;
  display:flex;
  text-align:center;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:18px;
}
.cta-section h2{margin-bottom:6px;letter-spacing:0}
.cta-section a.btn{margin-top:10px;}

/* SERVICES & WORKSHOPS */
.services-section .service-list, .workshop-list{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
}
.service-list li, .workshop-list li{
  background:#F8FBF6;
  border-radius:15px;
  padding:26px 22px;
  margin-bottom:20px;
  min-width:210px;
  font-size:1.08rem;
  color:#22332D;
  flex:1 1 230px;
  box-shadow:0 1.5px 7px 0 rgba(136,192,112,0.07);
  display:flex;
  flex-direction:column;
  gap:8px;
  transition:box-shadow .18s;
}
.service-list li:hover, .workshop-list li:hover{
  box-shadow:0 5px 16px 0 rgba(136,192,112,0.13);
}
.service-list img {width:36px; height:36px; margin-bottom:4px;}
.price{color:#1A4D2E; font-weight:600; font-size:1.03rem; margin-top:8px;}

/* SOLUTIONS SECTION */
.solutions-grid li{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.solution-benefits{
  margin-top:14px;
  gap:18px;
  flex-wrap:wrap;
  font-size:1.01rem;
  color:#22332D;
}
.solution-benefits li{
  background:#EDF5E8;
  border-radius:13px;
  padding:14px 18px;
  flex:1 0 180px;
}

.process-section{
  background:#F8FBF6;
  border-radius:16px;
  box-shadow:0 1.5px 7px 0 rgba(136,192,112,0.07);
}
.process-steps{
  flex-direction:column;
  gap:14px;
  margin-top:16px;
}
.process-steps li{
  font-size:1.09rem;
  color:#22332D;
  padding-left:4px;
  margin-bottom:2px;
}
.process-steps li strong{color:#1A4D2E;}

/* ABOUT, LEGAL, THANKS */
.about-section .core-values, .sustainability-list{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:16px;
  color:#22332D;
  font-size:1.07rem;
  padding-left:2px;
}
.legal-section {
  background:#fff;
  border-radius:14px;
  box-shadow:0 1.5px 8px 0 rgba(34,77,46,0.09);
  color:#22332D;
  font-size:1rem;
  line-height:1.7;
}
.legal-section ul{
  flex-direction:column;
  gap:10px;
  padding-left:15px;
  margin-bottom:16px;
  list-style:disc inside;
}
.legal-section h1, .legal-section h2{margin-top:16px;}

.thanks-section {
  background:#E6F3EA;
  text-align:center;
  align-items:center;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.thanks-section a{margin-top:8px;}

/* CONTACT PAGE */
.contact-section .content-wrapper{
  flex-direction:column;
  gap:34px;
}
.text-section{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.contact-details{
  flex-direction:column;
  gap:12px;
}
.contact-details li{
  display:flex;
  align-items:center;
  gap:9px;
  background:#F8FBF6;
  border-radius:10px;
  padding:11px 18px;
  color:#22332D;
  font-size:1.04rem;
}
.contact-details img{width:21px;height:21px;display:inline-block;}

.map-placeholder{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
  background:#fff;
  border-radius:12px;
  box-shadow:0 1.5px 6px 0 rgba(136,192,112,0.04);
  padding:14px 10px;
  margin-top:8px;
  min-width:170px;
  color:#22332D;
}

/* FOOTER */
footer{
  background:#E6F3EA;
  min-height:70px;
  display:flex;
  align-items:center;
  margin-top:30px;
  border-top:1px solid #e0ecd8;
}
footer .container{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
}
footer nav{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:.98rem;
  flex-wrap:wrap;
}
footer nav a{color:#4A735D; opacity:.96; padding:6px 2px;}
footer nav a:hover{color:#1A4D2E;}
footer p{font-size:.96rem; color:#5D7666; opacity:.90;}

/* SPACING & FLEX UTILITIES (strict flex only) */
.card-container{
  display: flex;
  flex-wrap:wrap;
  gap:24px;
}
.card{
  background:#fff;
  border-radius:14px;
  box-shadow:0 1.5px 7px 0 rgba(34,77,46,0.08);
  margin-bottom:20px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:24px;
}
.content-grid{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  justify-content:space-between;
}
.text-image-section{
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap;
}
.testimonial-card{
  display:flex;
  align-items:center;
  gap:20px;
  padding:20px;
  background:#fff;
  color:#22332D;
  box-shadow:0 2px 14px 0 rgba(34,77,46,0.12);
}
.feature-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:15px;
}

/* COOKIE CONSENT BANNER */
.cookie-banner{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:1500;
  background:#ffffff;
  border-top:1px solid #e0ecd8;
  box-shadow:0 -2px 18px 0 rgba(26,77,46,0.09);
  display:flex;
  flex-direction:row;
  justify-content:space-between;
  align-items:center;
  padding:20px 32px;
  gap:20px;
  font-size:1rem;
  color:#22332D;
  animation:cookieSlideUp .8s cubic-bezier(.6,.23,.53,1.13);
}
@keyframes cookieSlideUp{
  from{transform:translateY(100%);opacity:0}
  to{transform:translateY(0);opacity:1}
}
.cookie-banner__text{
  flex:1 1 260px;
  max-width:690px;
  font-size:1.04rem;
}
.cookie-banner__actions{
  display:flex;
  gap:14px;
  align-items:center;
}
.cookie-banner button{
  font-family:'Montserrat',Arial,sans-serif;
  font-size:.99rem;
  border:none;
  padding:10px 22px;
  border-radius:20px;
  margin:0 0 0 4px;
  cursor:pointer;
  transition:all .14s;
  background:#EDF5E8;
  color:#1A4D2E;
  font-weight:500;
}
.cookie-banner button.accept{
  background:#88C070;
  color:#fff;
}
.cookie-banner button.accept:hover{background:#77B060;}
.cookie-banner button.reject{
  background:#ede6e6;
  color:#446E55;
}
.cookie-banner button.reject:hover{background:#e2c7c7;}
.cookie-banner button.settings{
  background:#fff; color:#1A4D2E; border:1.2px solid #C3DCC0;
}
.cookie-banner button.settings:hover{background:#E6F3EA;}

/* COOKIE SETTINGS MODAL */
.cookie-modal-overlay{
  position:fixed;
  left:0; top:0; right:0; bottom:0;
  background:rgba(34,51,45,0.2);
  z-index:1600;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:fadeIn .4s;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.cookie-modal{
  min-width:320px;
  max-width:98vw;
  width:400px;
  background:#fff;
  border-radius:18px;
  padding:32px 24px 18px 24px;
  box-shadow:0 12px 62px 0 rgba(34,77,46,0.12);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.cookie-modal h2{
  font-size:1.25rem;
  margin-bottom:12px;
}
.cookie-modal .cookie-category{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  margin-bottom:12px;
}
.cookie-modal label{
  font-size:1rem;
  color:#22332D;
}
.cookie-modal .toggle {
  appearance:none;
  width:38px; height:20px;
  border-radius:12px;
  background:#E6F3EA;
  position:relative;
  outline:none;
  cursor:pointer;
  transition:background .17s;
}
.cookie-modal .toggle:checked{background:#88C070;}
.cookie-modal .toggle::before{
  content: '';
  position:absolute;
  left:3px; top:3px;
  width:14px; height:14px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px 0 rgba(34,77,46,0.07);
  transition:transform .18s;
  transform:translateX(0);
}
.cookie-modal .toggle:checked::before{
  transform:translateX(16px);
}
.cookie-modal .cookie-modal-actions{
  width:100%;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:15px;
  margin-top:15px;
}

.cookie-modal .close-modal {
  position:absolute;
  top:14px; right:22px;
  background:none;
  border:none;
  font-size:1.3rem;
  font-weight:700;
  color:#406254;
  cursor:pointer;
  z-index:1601;
  transition:color .14s;
}
.cookie-modal .close-modal:hover{color:#1A4D2E;}

/* GENERAL MICRO-INTERACTIONS */
.card, .feature-grid li, .usp-list li, .service-list li, .workshop-list li {
  transition:box-shadow .18s;
}
.card:hover, .feature-grid li:hover, .usp-list li:hover, .service-list li:hover, .workshop-list li:hover {
  box-shadow:0 7px 28px 0 rgba(130,188,100,0.12);
}

.btn,.cookie-banner button,.mobile-menu-toggle,.mobile-menu-close,.cookie-modal .close-modal{
  transition:background .14s, color .15s, box-shadow .19s,transform .12s;
}
.btn:focus, .cookie-banner button:focus, .mobile-menu-toggle:focus, .mobile-menu-close:focus, .cookie-modal .close-modal:focus {
  outline:2px solid #88C070;
  outline-offset:1.5px;
}

/* ACCESSIBILITY & CONTRAST IN TESTIMONIALS/REVIEW */
.testimonial-card p,
.testimonial-card footer {
  background:none;
  color:#23322D;
}

/* RESPONSIVE DESIGN */
@media (max-width: 1200px){
  .container{max-width:980px;}
}
@media (max-width:900px){
  .feature-grid, .usp-list, .solutions-grid, .service-list, .workshop-list, .benefits-list, .facts-list, .solution-benefits{
    flex-direction:column;
    gap:22px;
  }
  .card, .feature-grid li, .usp-list li, .solutions-grid li, .service-list li, .workshop-list li{
    min-width:160px;
    max-width:100%;
    width:100%;
  }
}
@media (max-width: 768px){
  .container{max-width:650px;padding:0 10px;}
  .hero-section,.section,.features-section, .cta-section, .about-section, .testimonials-section, .contact-section,.solutions-section,.services-section,.process-section, .legal-section, .thanks-section{
    padding:28px 7px;
  }
  .text-image-section, .content-grid{flex-direction:column;gap:19px;}
  .facts-list{gap:14px;flex-direction:column;align-items:flex-start;}
  .feature-grid, .usp-list, .solutions-grid, .service-list, .workshop-list, .benefits-list, .solution-benefits{flex-direction:column;gap:17px;}
    .cookie-banner, .cookie-banner__actions {
      flex-direction: column;
    }
}
@media (max-width:480px){
  h1{font-size:1.45rem;}
  h2{font-size:1.14rem;}
  header .container{padding:10px 6px;min-height:55px;}
  .logo img{height:37px;}
}
/** Hide cookie banner on accept (add .hidden class with JS). **/
.cookie-banner.hidden{display:none;}
.cookie-modal-overlay.hidden{display:none;}

/* Z-INDEX LAYERS */
header, .cookie-banner{z-index:100;}
.mobile-menu{z-index:1200;}
.cookie-modal-overlay{z-index:1600;}

/* END OF STYLE.CS */
