:root{
  --green:#5aa332; --green-dark:#3f7d22; --green-soft:#eef5e8;
  --blue:#2d5ca6; --head:#355f8c; --ink:#1c2320; --body:#4c554f; --muted:#8a938c;
  --bg:#ffffff; --bg-soft:#f5f8f2; --line:#e7ebe2;
  --radius:0; --shadow:none;
  --maxw:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--body);
  font-family:"Open Sans",-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  font-size:17px; line-height:1.75; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:"Montserrat",sans-serif; color:var(--ink); line-height:1.18; margin:0;}
h1,h2{color:var(--head);}
.lead h2, .intro h1{color:var(--head);}
p{margin:0 0 1.1em;}
a{color:var(--blue); text-decoration:none;}
img{max-width:100%; display:block;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.container.narrow{max-width:780px;}

/* ---------- Header ---------- */
.site-header{position:sticky; top:0; z-index:50; background:#fff;
  border-bottom:1px solid var(--line);}
.header-inner{display:flex; align-items:center; justify-content:space-between; height:84px;}
.logo img{height:42px; width:auto;}
.nav{display:flex; gap:34px; align-items:center;}
.nav a{font-family:"Montserrat",sans-serif; font-weight:500; font-size:.82rem;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink); position:relative; padding:6px 0;}
.nav a::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--green); transition:width .25s ease;}
.nav a:hover::after,.nav a.active::after{width:100%;}
.nav a.active{color:var(--green-dark);}
.nav-toggle{display:none; border:0; background:none; cursor:pointer; padding:8px;}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:.25s;}

/* ---------- Hero ---------- */
.hero{padding:38px 0 8px;}
.hero figure{margin:0; background:#fff; border:1px solid var(--line); padding:8px;
  box-shadow:0 2px 16px -7px rgba(28,35,32,.20);}
.hero img{width:100%; height:auto; display:block;}

/* ---------- Eyebrow + dividers (logo X motif) ---------- */
.eyebrow{display:inline-flex; align-items:center; gap:10px; font-family:"Montserrat",sans-serif;
  font-weight:600; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--green-dark); margin-bottom:14px;}
.eyebrow .x{color:var(--blue); font-weight:700; transform:scaleX(.9);}
.mark{display:flex; align-items:center; justify-content:center; gap:0; margin:6px 0 0;
  font-family:"Montserrat",sans-serif; font-weight:700; font-size:1.1rem;}
.mark .g{color:var(--green);} .mark .b{color:var(--blue);}

/* ---------- Sections ---------- */
.section{padding:62px 0;}
.section.soft{background:var(--bg-soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.lead h2{font-size:clamp(1.5rem,3.2vw,2.15rem); font-weight:700; margin-bottom:.5em;}
.intro{max-width:760px;}
.intro h1{font-size:clamp(2rem,4.8vw,3rem); font-weight:700; letter-spacing:-.01em; margin-bottom:.4em;}

/* ---------- Split rows ---------- */
.split{display:grid; grid-template-columns:1.15fr .85fr; gap:54px; align-items:center;}
.split + .split{margin-top:62px;}
.split.reverse .split-media{order:-1;}
.split-media{background:#fff; border:1px solid var(--line); padding:8px;
  box-shadow:0 2px 16px -7px rgba(28,35,32,.20);}
.split-media img{width:100%; height:auto; display:block;}
.split h1, .split h2{font-size:clamp(1.35rem,2.6vw,1.8rem); font-weight:700; margin-bottom:.55em;}

/* ---------- Service cards ---------- */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:42px;}
.card{background:var(--bg); border:1px solid var(--line);
  padding:30px 28px; transition:border-color .2s, background .2s;}
.card:hover{border-color:var(--green); background:var(--green-soft);}
.card h3{display:flex; align-items:center; gap:10px; font-size:1.08rem; font-weight:600; margin-bottom:16px;}
.card h3 .x{color:var(--green); font-weight:700;}
.card ul{list-style:none; margin:0; padding:0;}
.card li{position:relative; padding-left:22px; margin-bottom:11px; font-size:.95rem; line-height:1.6;}
.card li::before{content:"\203A"; position:absolute; left:0; top:-1px; color:var(--green); font-weight:700;}

/* ---------- Contact (page hero) ---------- */
.page-hero{padding:48px 0 8px; position:relative;}
.ph-back{margin-bottom:18px;}
.ph-back a{font-family:"Montserrat",sans-serif; font-weight:500; font-size:.8rem;
  letter-spacing:.04em; color:var(--muted);}
.ph-back a:hover{color:var(--green-dark);}
.page-hero h1{font-size:clamp(1.9rem,4.2vw,2.7rem); font-weight:700; letter-spacing:-.01em; margin:6px 0 .5em; max-width:780px;}
.page-hero .em{color:var(--green-dark);}
.ph-sub{font-size:1.06rem; max-width:560px;}

/* ---------- Contact (form + sidebar) ---------- */
.contact-layout{display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:start;}
form .field{margin-bottom:20px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
form label{display:block; font-family:"Montserrat",sans-serif; font-weight:500; font-size:.74rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:8px;}
.req{color:var(--green); margin-left:2px;}
form input, form textarea, form select{width:100%; padding:14px 16px; border:1px solid var(--line);
  border-radius:0; font:inherit; font-size:1rem; color:var(--ink); background:#fff; transition:border-color .2s, box-shadow .2s;}
form select{appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23355f8c' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; padding-right:40px;}
form textarea{min-height:150px; resize:vertical;}
form input:focus, form textarea:focus, form select:focus{outline:none; border-color:var(--green);
  box-shadow:0 0 0 3px rgba(90,163,50,.15);}
.field-consent{margin:6px 0 24px;}
.consent-label{display:flex; gap:12px; align-items:flex-start; cursor:pointer;}
.consent-label input{width:18px; height:18px; margin-top:3px; flex:none; accent-color:var(--green);}
.consent-label span{font-size:.9rem; color:var(--body); line-height:1.55;}
.btn{display:inline-flex; align-items:center; gap:10px; border:0; cursor:pointer;
  background:var(--green); color:#fff; font-family:"Montserrat",sans-serif; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; font-size:.82rem; padding:15px 34px;
  border-radius:0; transition:background .2s;}
.btn:hover{background:var(--green-dark);}
.btn .arr{transition:transform .2s;}
.btn:hover .arr{transform:translateX(3px);}
.form-note{margin-top:16px; font-size:.85rem; color:var(--muted);}
.cf-turnstile{margin:4px 0 22px;}
.form-status{padding:14px 18px; margin-bottom:24px; font-size:.95rem; border:1px solid;}
.form-status.ok{background:var(--green-soft); border-color:var(--green); color:var(--green-dark);}
.form-status.err{background:#fbeeee; border-color:#d99; color:#a33;}

/* sidebar */
.contact-sidebar{display:flex; flex-direction:column; gap:18px;}
.cs-block{border:1px solid var(--line); background:var(--bg); padding:24px 24px;}
.cs-icon{color:var(--green-dark); margin-bottom:12px;}
.cs-block h2{font-size:1rem; font-weight:600; color:var(--ink); margin-bottom:8px;}
.cs-block p{font-size:.92rem; margin:0 0 12px;}
.cs-link{display:inline-flex; align-items:center; gap:6px; font-family:"Montserrat",sans-serif;
  font-weight:600; font-size:.9rem; color:var(--green-dark);}
.cs-link span{transition:transform .2s;}
.cs-link:hover span{transform:translateX(3px);}
.cs-levels h2{margin-bottom:14px;}
.cs-level-row{display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:12px 0; border-top:1px solid var(--line); color:var(--ink);}
.cs-level-row:first-of-type{border-top:none;}
.cs-level-row strong{font-family:"Montserrat",sans-serif; font-weight:600; font-size:.95rem;}
.cs-level-row .cls-desc{font-size:.82rem; color:var(--muted); text-align:right;}
.cs-level-row:hover strong{color:var(--green-dark);}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-soft); color:var(--body); margin-top:10px; border-top:1px solid var(--line);}
.footer-top{display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; padding-top:54px; padding-bottom:34px;}
.footer-brand{max-width:320px;}
.footer-brand img{height:40px; margin-bottom:16px;}
.footer-brand p{font-size:.95rem; color:var(--body); margin:0;}
.footer-col h2{color:var(--ink); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:16px;}
.footer-col ul{list-style:none; margin:0; padding:0;}
.footer-col li{margin-bottom:10px; color:var(--body);}
.footer-col a{color:var(--body); font-size:.95rem;}
.footer-col a:hover{color:var(--green-dark);}
.footer-bottom{border-top:1px solid var(--line); padding-top:20px; padding-bottom:20px; display:flex;
  flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; font-size:.85rem; color:var(--muted);}
.footer-bottom a{color:#7f887f;} .footer-bottom a:hover{color:var(--green);}

/* ---------- Responsive ---------- */
@media (max-width:880px){
  .nav{position:fixed; inset:84px 0 auto 0; background:#fff; flex-direction:column; gap:0;
    border-bottom:1px solid var(--line); padding:8px 24px 18px; transform:translateY(-130%);
    transition:transform .3s ease; box-shadow:var(--shadow);}
  .nav.open{transform:translateY(0);}
  .nav a{padding:14px 0; width:100%; border-bottom:1px solid var(--line); letter-spacing:.1em;}
  .nav a::after{display:none;}
  .nav-toggle{display:block;}
  .split{grid-template-columns:1fr; gap:30px;}
  .split.reverse .split-media{order:0;}
  .cards{grid-template-columns:1fr;}
  .contact-layout{grid-template-columns:1fr; gap:34px;}
  .field-row{grid-template-columns:1fr; gap:0;}
}
@media (min-width:881px) and (max-width:1040px){
  .cards{grid-template-columns:repeat(2,1fr);}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important; scroll-behavior:auto!important;}}
