html{scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:#16201A;font-family:'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{font-family:'Plus Jakarta Sans',system-ui,sans-serif;margin:0;letter-spacing:-0.02em}
img{max-width:100%}
a{color:#21632F}
a:hover{color:#123D1C}
:focus-visible{outline:2px solid #F9C933;outline-offset:2px}
button{font-family:inherit}

/* layout helpers */
.d-only{}
.m-only{display:none !important}
.compact-logo{display:none !important}
body.scrolled .compact-logo{display:flex !important}
.ic-close{display:none}
body.menu-open .ic-open{display:none}
body.menu-open .ic-close{display:block}
#mobileMenu{display:none !important}
body.menu-open #mobileMenu{display:flex !important}
body.menu-open{overflow:hidden}
#siteHeader.shadow{box-shadow:0 10px 30px rgba(11,41,19,.25) !important}
@media (max-width:979px){
  .d-only{display:none !important}
  .m-only{display:grid !important}
  .compact-logo{display:flex !important}
}
@media (min-width:980px){ body.menu-open #mobileMenu{display:none !important} }

/* responsive grids */
.g-cols2,.g-cols3,.g-cols4,.g-cols5{grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){
  .g-cols2,.g-cols4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-cols5{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){ .g-cols3{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:1100px){
  .g-cols4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .g-cols5{grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* hover & focus states */
.fx1:hover{color:#F9C933 !important}
.fx2:hover{background:#FFD84D !important;transform:translateY(-2px) !important}
.fx3:hover{background:rgba(255,255,255,.1) !important;border-color:#fff !important}
.fx4:hover{transform:scale(1.06) !important}
.fx5:hover{background:#123D1C !important;transform:translateY(-2px) !important}
.fx6:hover{transform:scale(1.08) !important}
.fx7:hover{transform:translateY(-6px) !important;box-shadow:0 22px 50px rgba(11,41,19,.12) !important}
.fx8:hover{border-color:#21632F !important;box-shadow:0 14px 34px rgba(11,41,19,.08) !important}
.fx9:hover{filter:none !important;opacity:1 !important}
.fx10:hover{color:#F9C933 !important;padding-left:6px !important}
.fx11:hover{background:rgba(249,201,51,.08) !important;border-color:#F9C933 !important}
.fx12:focus{border-color:#21632F !important;box-shadow:0 0 0 3px rgba(249,201,51,.4) !important}
.fx13:hover{background:#EAF2EB !important}

@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *{transition:none !important} }
