@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Karla:wght@400;500;600&display=swap');

:root{
  --bg: #FAFAF6;
  --ink: #3A3A3C;
  --ink-soft: #6A6A6C;
  --green-dark: #419639;
  --green-mid: #6EB43F;
  --green-light: #9FCF67;
  --lime: #C1D72E;
  --card: #FFFFFF;
  --sand: #EFF3E4;
  --line: #DCDFD3;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Karla', sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 40px;}
h1,h2,h3{font-family:'Fraunces', serif;font-weight:500;margin:0;letter-spacing:-0.01em;}
a{text-decoration:none;color:inherit;}

/* NAV */
nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:26px 40px;max-width:1080px;margin:0 auto;
}
.logo-img{height:34px;display:block;}
.navlinks{display:flex;gap:36px;font-size:14px;color:var(--ink-soft);}
.navlinks a.active{color:var(--green-dark);font-weight:600;}
.navlinks a:hover{color:var(--green-dark);}
.nav-cta{
  font-size:14px;padding:10px 20px;border:1px solid var(--ink);border-radius:2px;
  color:var(--ink);white-space:nowrap;
}
.nav-cta:hover{background:var(--ink);color:#fff;}

/* Generic page header (non-home pages) */
.page-header{padding:56px 0 48px;background:var(--sand);}
.page-header .eyebrow{
  font-size:13px;letter-spacing:0.06em;color:var(--green-dark);
  text-transform:uppercase;margin-bottom:16px;font-weight:600;
}
.page-header h1{font-size:42px;line-height:1.15;max-width:680px;}
.page-header p{font-size:17px;color:var(--ink-soft);max-width:600px;margin-top:18px;line-height:1.6;}

/* HERO (home only) */
.hero{padding:56px 0 0;}
.hero-inner{max-width:680px;}
.eyebrow{
  font-size:13px;letter-spacing:0.06em;color:var(--green-dark);
  text-transform:uppercase;margin-bottom:18px;font-weight:600;
}
.hero h1{font-size:52px;line-height:1.08;margin-bottom:26px;}
.hero h1 em{font-style:italic;color:var(--green-dark);}
.hero p{font-size:18px;line-height:1.65;color:var(--ink-soft);max-width:560px;margin-bottom:36px;}
.btn-row{display:flex;gap:16px;align-items:center;margin-bottom:60px;flex-wrap:wrap;}
.btn-primary{
  background:var(--green-dark);color:#fff;padding:15px 28px;border-radius:2px;
  font-size:15px;font-weight:500;display:inline-block;border:none;cursor:pointer;
  font-family:'Karla',sans-serif;
}
.btn-primary:hover{background:#357a2e;}
.btn-ghost{
  color:var(--ink);font-size:15px;padding:15px 6px;border-bottom:1px solid var(--ink);
}
.hero-scene{background:var(--sand);}
.hero-scene svg{width:100%;display:block;}

section{padding:88px 0;}
.section-head{max-width:620px;margin-bottom:52px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:34px;line-height:1.2;}
.section-head p{font-size:16px;color:var(--ink-soft);margin-top:16px;line-height:1.6;}

.audience-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.audience-card{background:var(--card);padding:32px;position:relative;}
.audience-card .swatch{width:22px;height:22px;margin-bottom:16px;}
.audience-card p{font-size:15.5px;line-height:1.55;color:var(--ink);margin:0;}

.services{background:var(--ink);color:var(--bg);}
.services .eyebrow{color:var(--green-light);}
.services .section-head h2{color:var(--bg);}
.services .section-head p{color:#B9BAB4;}
.service-row{
  border-top:1px solid #55555A;padding:34px 0;
  display:grid;grid-template-columns:280px 1fr;gap:40px;
}
.service-row:last-child{border-bottom:1px solid #55555A;}
.service-row h3{font-size:23px;color:var(--bg);margin-bottom:8px;}
.service-row .tag{font-size:13px;color:var(--green-light);}
.service-row .desc p{font-size:15.5px;color:#C7C8C2;line-height:1.6;margin:0 0 14px;}
.service-row .example{
  font-size:14px;color:#9D9E97;font-style:italic;border-left:2px solid var(--green-mid);
  padding-left:16px;line-height:1.55;
}
.service-row .list{margin:0 0 14px;padding-left:18px;}
.service-row .list li{font-size:15.5px;color:#C7C8C2;line-height:1.7;}

/* Light service block, used on services.html detail sections */
.service-block{border-top:1px solid var(--line);padding:48px 0;}
.service-block:last-child{padding-bottom:0;}
.service-block .tag{font-size:13px;color:var(--green-dark);font-weight:600;letter-spacing:0.02em;}
.service-block h2{font-size:28px;margin:0 0 16px;}
.service-block p{font-size:16px;color:var(--ink-soft);line-height:1.65;max-width:680px;}
.service-block ul{padding-left:20px;max-width:680px;margin:16px 0;}
.service-block li{font-size:15.5px;color:var(--ink);line-height:1.75;}
.service-block .example{
  margin-top:18px;font-size:14.5px;color:var(--ink-soft);font-style:italic;
  border-left:2px solid var(--green-mid);padding-left:16px;line-height:1.6;max-width:640px;
}

.timeline{position:relative;padding-left:0;}
.tl-row{
  display:grid;grid-template-columns:170px 1fr;gap:32px;
  padding:26px 0;border-top:1px solid var(--line);
  align-items:start;
}
.tl-row:last-child{border-bottom:1px solid var(--line);}
.tl-duration{font-family:'Fraunces',serif;font-size:16px;color:var(--green-dark);}
.tl-body h3{font-size:19px;margin-bottom:6px;}
.tl-body p{font-size:15px;color:var(--ink-soft);margin:0;line-height:1.55;}

.pme{background:var(--sand);}
.pme-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.pme-list{list-style:none;padding:0;margin:0;}
.pme-list li{
  font-size:15px;padding:14px 0;border-top:1px solid var(--line);color:var(--ink);
  line-height:1.5;
}
.pme-list li:last-child{border-bottom:1px solid var(--line);}
.pme-stat{font-family:'Fraunces',serif;font-size:56px;color:var(--green-dark);line-height:1;margin-bottom:12px;}
.pme-stat-label{font-size:14px;color:var(--ink-soft);max-width:280px;line-height:1.5;}

.contact{text-align:center;padding:100px 0;}
.contact h2{font-size:40px;max-width:600px;margin:0 auto 22px;line-height:1.15;}
.contact p{font-size:16px;color:var(--ink-soft);max-width:460px;margin:0 auto 36px;}

/* About page */
.about-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:64px;align-items:start;}
.about-grid p{font-size:16px;color:var(--ink-soft);line-height:1.7;margin-bottom:18px;}
.values-list{list-style:none;padding:0;margin:0;}
.values-list li{
  padding:20px 0;border-top:1px solid var(--line);
}
.values-list li:last-child{border-bottom:1px solid var(--line);}
.values-list .vtitle{font-family:'Fraunces',serif;font-size:18px;color:var(--green-dark);margin-bottom:6px;}
.values-list .vdesc{font-size:14.5px;color:var(--ink-soft);line-height:1.55;}

/* Contact page form */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.contact-info .item{margin-bottom:28px;}
.contact-info .label{font-size:13px;text-transform:uppercase;letter-spacing:0.05em;color:var(--green-dark);font-weight:600;margin-bottom:6px;}
.contact-info .value{font-size:16px;color:var(--ink);}
form.contact-form{display:flex;flex-direction:column;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-form label{font-size:13px;color:var(--ink-soft);margin-bottom:6px;display:block;}
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:2px;
  font-family:'Karla',sans-serif;font-size:15px;color:var(--ink);background:#fff;
}
.contact-form textarea{min-height:120px;resize:vertical;}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
  outline:none;border-color:var(--green-dark);
}
.privacy-note{font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.5;}

footer{background:var(--ink);color:#B9BAB4;padding:40px 0;font-size:13.5px;}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:24px;}
footer .logo-img{filter:brightness(0) invert(1);opacity:0.92;margin-bottom:10px;}
footer a{color:#B9BAB4;}
footer a:hover{color:#fff;}

@media(max-width:720px){
  .wrap{padding:0 20px;}
  nav{padding:20px;flex-wrap:wrap;gap:12px;}
  .navlinks{display:none;}
  .hero h1, .page-header h1{font-size:32px;}
  .audience-grid{grid-template-columns:1fr;}
  .service-row{grid-template-columns:1fr;gap:12px;}
  .pme-grid, .about-grid, .contact-grid{grid-template-columns:1fr;gap:32px;}
  .form-row{grid-template-columns:1fr;}
}
