:root{
  --g900:#123F26; --g800:#165330; --g700:#1F7A3E; --g500:#3FAE4C; --g300:#8FD16B; --g100:#E8F5DC; --g50:#F4FAEC;
  --sun:#FFC72C; --sun-d:#F2A900; --cream:#FFF9EA; --ink:#1B2B20; --muted:#52645A; --line:#E4E9D8;
  --clay:#E07A4F; --sky:#BFE6F5; --white:#fff;
  --r:22px; --shadow:0 10px 30px rgba(20,63,38,.12); --shadow-s:0 4px 14px rgba(20,63,38,.10);
  --head:"Fraunces",Georgia,serif; --body:"Nunito",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--cream);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block} a{color:var(--g700)} a:hover{color:var(--g900)}
h1,h2,h3,h4{font-family:var(--head);line-height:1.15;color:var(--g900);margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5vw,3.4rem);font-weight:700} h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700} h3{font-size:1.25rem;font-weight:600}
p{margin:0 0 1em}
.wrap{width:min(1160px,92%);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--sun);color:var(--ink);padding:.6rem 1rem;z-index:100;border-radius:0 0 10px 0}.skip:focus{left:0}
:focus-visible{outline:3px solid var(--sun-d);outline-offset:3px;border-radius:6px}

/* top bar + header */
.topbar{background:var(--g800);color:#fff;font-size:.92rem;font-weight:700}
.topbar .wrap{display:flex;gap:1rem;justify-content:space-between;align-items:center;padding:.45rem 0;flex-wrap:wrap}
.topbar a{color:var(--sun);text-decoration:none} .topbar a:hover{text-decoration:underline;color:#fff}
.site-header{background:var(--cream);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-family:var(--head);font-size:1.55rem;font-weight:700;color:var(--g900)}
.brand b{color:var(--g700);font-weight:700;margin-left:.2em}
.brand img{width:44px;height:44px}
.nav{display:flex;align-items:center;gap:1.2rem}
.nav>a,.dd-btn{color:var(--ink);text-decoration:none;font-weight:800;font-size:.98rem;padding:.4rem .15rem;border-bottom:3px solid transparent}
.nav>a:hover,.dd-btn:hover,.nav a[aria-current=page]{border-color:var(--sun);color:var(--g900)}
.nav a.btn{border:0;padding:.7rem 1.2rem} .nav a.btn:hover{border:0}
.dd{position:relative}.dd-menu{display:none;position:absolute;top:100%;left:-1rem;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:.6rem;min-width:260px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
.dd-menu a{display:block;padding:.55rem .8rem;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:700}.dd-menu a:hover{background:var(--g100);color:var(--g900)}
.nav-toggle{display:none;background:var(--g700);color:#fff;border:0;border-radius:999px;padding:.55rem 1rem;font:800 .95rem var(--body);cursor:pointer}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--sun);color:var(--g900);font:800 1.05rem var(--body);padding:.95rem 1.7rem;border-radius:999px;text-decoration:none;border:0;cursor:pointer;box-shadow:0 5px 0 var(--sun-d);transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--sun-d);color:var(--g900)}
.btn-green{background:var(--g700);color:#fff;box-shadow:0 5px 0 var(--g900)}.btn-green:hover{color:#fff;box-shadow:0 3px 0 var(--g900)}
.btn-ghost{background:transparent;color:var(--g900);box-shadow:inset 0 0 0 2px var(--g700)}.btn-ghost:hover{background:var(--g100);box-shadow:inset 0 0 0 2px var(--g700)}
.btn-sm{padding:.6rem 1.1rem;font-size:.95rem;box-shadow:0 3px 0 var(--sun-d)}

/* hero */
.hero{background:radial-gradient(900px 380px at 85% -10%,#FFE9A8 0,transparent 60%),radial-gradient(700px 400px at -10% 90%,var(--g100) 0,transparent 60%),var(--cream);padding:3.2rem 0 4rem;overflow:hidden}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.eyebrow{display:inline-block;background:var(--g100);color:var(--g800);font-weight:800;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .85rem;border-radius:999px;margin-bottom:1rem}
.hero p.lead{font-size:1.2rem;color:var(--muted);max-width:56ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.6rem 0 1rem}
.ticks{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-weight:700;color:var(--g800)}
.ticks li::before{content:"";display:inline-block;width:1.05em;height:1.05em;margin-right:.4em;vertical-align:-.15em;background:var(--g500);border-radius:50%;box-shadow:inset 0 0 0 4px var(--g500);background:radial-gradient(circle,#fff 28%,transparent 30%),var(--g500)}
.art{border-radius:30px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;background:#fff;transform:rotate(1.2deg)}
.art img{width:100%;height:auto}
.badge{position:absolute;right:-8px;bottom:-14px;background:var(--sun);color:var(--g900);font-weight:800;padding:.8rem 1.1rem;border-radius:18px;box-shadow:var(--shadow-s);transform:rotate(-3deg);text-align:center;line-height:1.2}
.art-wrap{position:relative}

/* sections */
.section{padding:4.2rem 0}.alt{background:#fff}.green{background:var(--g800);color:#fff}.green h2,.green h3{color:#fff}
.head{max-width:720px;margin:0 auto 2.6rem;text-align:center}.head p{color:var(--muted);font-size:1.1rem}.green .head p{color:#D5EBCB}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow-s);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
a.card{text-decoration:none;color:inherit}a.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card img{width:100%;aspect-ratio:800/520;object-fit:cover}
.card .body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.card h3{margin:0}.card p{margin:0;color:var(--muted)}
.more{margin-top:auto;padding-top:.7rem;font-weight:800;color:var(--g700)}.more::after{content:" \2192"}
.services-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1.5rem}
.services-grid .card{grid-column:span 2}.services-grid .card:nth-child(4){grid-column:2 / span 2}.services-grid .card:nth-child(5){grid-column:4 / span 2}
.feat{background:#fff;border-radius:var(--r);padding:1.5rem;border:1px solid var(--line);box-shadow:var(--shadow-s)}
.feat .ic{width:52px;height:52px;border-radius:16px;background:var(--g100);display:grid;place-items:center;margin-bottom:.9rem}
.feat svg,.ic svg{width:28px;height:28px;stroke:var(--g700);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.feat h3{margin-bottom:.3rem}.feat p{margin:0;color:var(--muted)}
.green .feat{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);box-shadow:none}.green .feat p{color:#D5EBCB}.green .feat .ic{background:rgba(255,255,255,.14)}.green .feat svg{stroke:var(--sun)}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;box-shadow:var(--shadow-s)}
.steps li::before{content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--sun);color:var(--g900);font:700 1.3rem var(--head);margin-bottom:.8rem}
.steps h3{margin-bottom:.3rem}.steps p{margin:0;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.checks{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.6rem}
.checks li{padding-left:2rem;position:relative;font-weight:700}
.checks li::before{content:"";position:absolute;left:0;top:.2em;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--g500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;list-style:none;padding:0;margin:0}
.chips a{display:inline-block;background:#fff;border:2px solid var(--g100);color:var(--g800);padding:.45rem 1rem;border-radius:999px;text-decoration:none;font-weight:800;font-size:.95rem}
.chips a:hover{background:var(--sun);border-color:var(--sun);color:var(--g900)}
.split .chips{justify-content:flex-start}
.county h3{margin:1.8rem 0 .8rem}.county .chips{justify-content:flex-start}

/* faq */
.faq{max-width:820px;margin:0 auto;display:grid;gap:.8rem}
details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 1.3rem;box-shadow:var(--shadow-s)}
summary{cursor:pointer;font:700 1.12rem var(--head);padding:1.1rem 2rem 1.1rem 0;list-style:none;position:relative;color:var(--g900)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font:800 1.6rem var(--body);color:var(--g700)}
details[open] summary::after{content:"\2212"}details p{color:var(--muted);padding-bottom:1.1rem;margin:0}

/* cta band */
.cta{background:linear-gradient(135deg,var(--g700),var(--g900));color:#fff;border-radius:32px;padding:3rem;display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:var(--sun);opacity:.18}
.cta h2{color:#fff}.cta p{color:#DDF0D2;font-size:1.1rem}
.cta .formcard{background:#fff;color:var(--ink);border-radius:22px;padding:1.4rem;position:relative;z-index:1}

/* forms */
.formcard{background:#fff;border-radius:26px;padding:1.6rem;box-shadow:var(--shadow);border:1px solid var(--line)}
.formcard h2,.formcard h3{margin-bottom:.2rem}.formcard .sub{color:var(--muted);margin-bottom:1rem;font-size:.98rem}
.f{display:grid;gap:.8rem}.f .row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
label{font-weight:800;font-size:.92rem;color:var(--g900);display:grid;gap:.25rem}
input,select,textarea{font:600 1rem var(--body);padding:.75rem .9rem;border:2px solid var(--line);border-radius:12px;background:#FDFEFA;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--g500);box-shadow:0 0 0 4px var(--g100)}
.hp{position:absolute;left:-9999px}
.f .btn{width:100%}.fine{font-size:.85rem;color:var(--muted);text-align:center;margin:.2rem 0 0}
.msg{display:none;padding:.9rem 1rem;border-radius:12px;font-weight:700}.msg.show{display:block}.msg.ok{background:var(--g100);color:var(--g900)}.msg.info{background:#FFF3C9;color:#5B4300}

/* page hero (inner) */
.phero{background:radial-gradient(800px 320px at 90% -20%,#FFE9A8 0,transparent 60%),var(--g50);padding:2.6rem 0 3.4rem;border-bottom:1px solid var(--line)}
.phero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.6rem;align-items:center}
.phero p.lead{font-size:1.18rem;color:var(--muted)}
.crumbs{font-size:.9rem;font-weight:700;margin-bottom:1rem;color:var(--muted)}.crumbs a{color:var(--g700);text-decoration:none}.crumbs span{margin:0 .4rem}
.prose{max-width:760px}.prose p{font-size:1.06rem}
.note{background:var(--g100);border-left:6px solid var(--g500);border-radius:12px;padding:1rem 1.2rem;font-weight:700;color:var(--g900)}
.related{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.related .card .body{padding:.9rem 1rem 1.1rem}.related h3{font-size:1.05rem}

/* footer */
.site-footer{background:var(--g900);color:#CFE6C6;padding:3.4rem 0 6rem;margin-top:0}
.site-footer h4{color:#fff;font-size:1.05rem;margin-bottom:.8rem}.site-footer a{color:#CFE6C6;text-decoration:none}.site-footer a:hover{color:var(--sun);text-decoration:underline}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2.2rem}.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.site-footer .brand{color:#fff}.site-footer .brand b{color:var(--g300)}
.legal{border-top:1px solid rgba(255,255,255,.15);margin-top:2.4rem;padding-top:1.4rem;font-size:.9rem;display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap}
.sticky-cta{display:none}

@media (max-width:980px){
  .hero .grid,.phero .grid,.split,.cta{grid-template-columns:1fr}
  .grid3,.related{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}
  .services-grid{grid-template-columns:repeat(2,1fr)}.services-grid .card,.services-grid .card:nth-child(4),.services-grid .card:nth-child(5){grid-column:auto}
  .fgrid{grid-template-columns:1fr 1fr}
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);padding:1rem 4%;flex-direction:column;align-items:stretch;gap:.4rem;box-shadow:var(--shadow)}
  .nav.open{display:flex}.dd-menu{display:block;position:static;box-shadow:none;border:0;padding:0 0 0 .8rem;background:transparent}.dd-btn{display:none}
  .nav a.btn{margin-top:.4rem}
  .site-header .wrap{position:relative}
  .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;padding:.6rem 4%;gap:.6rem;box-shadow:0 -6px 20px rgba(0,0,0,.12)}
  .sticky-cta a{flex:1;text-align:center}
  .art{transform:none}.cta{padding:2rem}
}
@media (max-width:620px){
  body{font-size:16px}.grid3,.grid2,.related,.steps,.services-grid,.fgrid,.f .row{grid-template-columns:1fr}
  .section{padding:3rem 0}.topbar .wrap{justify-content:center;text-align:center}.badge{right:6px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
