:root{
  --green:#1F6F54; --dgreen:#144A38; --gold:#C8A24B; --ink:#1A1A1A;
  --grey:#5b5b5b; --cream:#F7F6F2; --lgreen:#E7F1EC; --line:#e4e0d6;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Helvetica Neue",Arial,sans-serif;color:var(--ink);line-height:1.6;background:#fff}
h1,h2,h3,.serif{font-family:Georgia,"Times New Roman",serif}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.btn{display:inline-block;background:var(--gold);color:#1A1A1A;font-weight:700;padding:14px 26px;border-radius:6px;font-size:15px;transition:.2s;cursor:pointer;border:none}
.btn:hover{background:#b8902f}
.btn.outline{background:transparent;border:2px solid #fff;color:#fff}
.btn.outline:hover{background:#fff;color:var(--dgreen)}
.btn.green{background:var(--green);color:#fff}
.btn.green:hover{background:var(--dgreen)}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:700;color:var(--gold)}

/* NAV */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
nav{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{font-family:Georgia,serif;font-weight:700;font-size:20px;color:var(--green)}
.brand span{color:var(--gold)}
.navlinks a{margin-left:26px;font-size:15px;font-weight:600;color:var(--ink)}
.navlinks a:hover,.navlinks a.active{color:var(--green)}
.navlinks .btn{color:#1A1A1A}
.navlinks .btn:hover{color:#1A1A1A}
@media(max-width:760px){.navlinks a:not(.btn){display:none}}

/* HERO (home) */
.hero{background:linear-gradient(135deg,var(--dgreen),var(--green));color:#fff;padding:90px 0 100px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;background:rgba(200,162,75,.18);border-radius:50%}
.hero h1{font-size:54px;line-height:1.08;margin:16px 0 18px;max-width:14ch}
.hero p.lead{font-size:20px;max-width:54ch;color:#dce9e2}
.hero .cta{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:760px){.hero h1{font-size:38px}}

/* BANNER (subpages) */
.banner{background:linear-gradient(135deg,var(--dgreen),var(--green));color:#fff;padding:56px 0;position:relative;overflow:hidden}
.banner:after{content:"";position:absolute;right:-90px;top:-90px;width:280px;height:280px;background:rgba(200,162,75,.16);border-radius:50%}
.banner h1{font-size:42px;margin:8px 0 8px}
.banner p{font-size:18px;color:#dce9e2;max-width:62ch}
@media(max-width:760px){.banner h1{font-size:32px}}

/* STATS */
.stats{background:var(--gold)}
.stats .row{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.stat{padding:30px 14px;border-right:1px solid rgba(0,0,0,.12)}
.stat:last-child{border-right:none}
.stat .num{font-family:Georgia,serif;font-size:40px;font-weight:700;color:var(--dgreen)}
.stat .lab{font-size:13.5px;color:#3a2f12;font-weight:600;margin-top:4px}
@media(max-width:760px){.stats .row{grid-template-columns:repeat(2,1fr)}.stat{border-bottom:1px solid rgba(0,0,0,.12)}}

section{padding:84px 0}
.section-head{text-align:center;max-width:720px;margin:0 auto 50px}
.section-head h2{font-size:38px;color:var(--green);margin:10px 0 12px}
.section-head p{color:var(--grey);font-size:18px}

/* ABOUT */
.about{display:grid;grid-template-columns:1fr 1.3fr;gap:50px;align-items:center}
.about .photo{background:var(--lgreen);border-radius:14px;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;color:var(--green);text-align:center;padding:24px;border:1px dashed #a9c7ba}
.about img.photo{object-fit:cover;object-position:center 25%;padding:0;border:1px solid var(--line);width:100%}
.about h2{font-size:34px;color:var(--green);margin-bottom:6px}
.about .role{color:var(--gold);font-weight:700;margin-bottom:18px}
.about p{color:#333;margin-bottom:14px;font-size:17px}
@media(max-width:760px){.about{grid-template-columns:1fr}}

/* CARDS / GRID */
.services{background:var(--cream)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;transition:.2s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(20,74,56,.10)}
.card .ic{width:46px;height:46px;border-radius:10px;background:var(--lgreen);color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:700;font-family:Georgia,serif;font-size:20px;margin-bottom:14px}
.card h3{font-size:19px;margin-bottom:8px;color:var(--ink)}
.card p{color:var(--grey);font-size:15px}
@media(max-width:860px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid{grid-template-columns:1fr}}

/* GROUPED SERVICES */
.grouphead{display:flex;align-items:center;gap:14px;margin:46px 0 22px}
.grouphead .pill{background:var(--green);color:#fff;font-family:Georgia,serif;font-weight:700;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.grouphead h2{font-size:26px;color:var(--green)}
.grouphead:first-of-type{margin-top:0}

/* SERVE CHIPS */
.serve .chips{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;max-width:840px;margin:0 auto}
.chip{background:var(--lgreen);color:var(--dgreen);font-weight:600;padding:14px 22px;border-radius:40px;font-size:16px;border:1px solid #cfe2da}

/* CASE STUDIES */
.cases{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.case{display:flex;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.case .big{font-family:Georgia,serif;font-size:40px;font-weight:700;color:var(--green);line-height:1;min-width:96px}
.case h3{font-size:18px;margin-bottom:6px}
.case p{color:var(--grey);font-size:15px}
.case.feature{grid-column:1/-1;background:var(--dgreen);color:#fff;border:none}
.case.feature .big{color:var(--gold);font-size:56px;min-width:150px}
.case.feature h3{color:#fff}
.case.feature p{color:#cfe2da}
@media(max-width:760px){.cases{grid-template-columns:1fr}}

/* QUOTE */
.quote{background:var(--dgreen);color:#fff;text-align:center}
.quote blockquote{font-family:Georgia,serif;font-size:27px;line-height:1.45;max-width:880px;margin:0 auto;font-style:italic}
.quote .by{margin-top:24px;color:var(--gold);font-weight:700;letter-spacing:.04em}
.quote .role2{color:#cfe2da;font-size:15px}

/* CONTACT + FORM */
.contact{background:var(--cream)}
.contact .box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:50px;text-align:center;max-width:760px;margin:0 auto}
.contact h2{font-size:34px;color:var(--green);margin-bottom:12px}
.contact p{color:var(--grey);font-size:18px;margin-bottom:8px}
.contact .line{margin:22px 0 6px;font-size:17px}
.contact .line strong{color:var(--ink)}
.contact .cta{margin-top:26px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.formwrap{max-width:680px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:40px}
.formrow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px;text-align:left}
.field.full{grid-column:1/-1}
.field label{display:block;font-weight:600;font-size:14px;margin-bottom:6px;color:var(--ink)}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid #d6d2c6;border-radius:8px;font-size:15px;font-family:inherit;background:#fff;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,111,84,.12)}
.field textarea{min-height:130px;resize:vertical}
.formwrap .btn{width:100%;font-size:16px;padding:15px}
.hp{position:absolute;left:-9999px}
@media(max-width:560px){.formrow{grid-template-columns:1fr}}

/* FOOTER */
footer{background:#11352a;color:#cfe2da;padding:40px 0;text-align:center;font-size:14px}
footer .social{margin-bottom:14px}
footer .social a{display:inline-block;margin:0 8px;color:#fff;font-weight:600;border-bottom:1px solid var(--gold);padding-bottom:2px}

.center{text-align:center}
.mt40{margin-top:40px}
