:root{
  --ink:#022c22;
  --muted:#4b5563;
  --paper:#f0fdf4;
  --soft:#d1fae5;
  --soft-2:#a7f3d0;
  --emerald:#10b981;
  --emerald-2:#34d399;
  --emerald-3:#047857;
  --accent:#6ee7b7;
  --line:rgba(4,120,87,.18);
  --shadow:0 24px 70px rgba(4,120,87,.16);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(110,231,183,.42), transparent 34rem),
    radial-gradient(circle at 85% 10%, rgba(16,185,129,.24), transparent 30rem),
    linear-gradient(180deg,#f0fdf4 0%,#ecfdf5 48%,#fff 100%);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.6;
}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}
img,svg{max-width:100%}
.skip-link{position:absolute;left:-999px;top:1rem;background:var(--emerald-3);color:white;padding:.7rem 1rem;border-radius:.8rem;z-index:10}
.skip-link:focus{left:1rem}
.site-header{
  position:sticky;
  top:0;
  z-index:5;
  backdrop-filter:blur(18px);
  background:rgba(240,253,244,.86);
  border-bottom:1px solid var(--line);
}
.header-inner{
  width:min(1180px,calc(100% - 2rem));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:82px;
}
.brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:900;font-size:1.35rem;letter-spacing:-.03em}
.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,var(--emerald),var(--accent));color:white;box-shadow:0 10px 26px rgba(16,185,129,.28)}
.main-nav{display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap}
.main-nav a{font-weight:800;font-size:.93rem;color:#064e3b;padding:.65rem .9rem;border-radius:999px}
.main-nav a:hover,.main-nav a.active{background:var(--soft);color:var(--emerald-3)}
.nav-cta,.button,.button-outline{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:999px;font-weight:900;transition:transform .2s ease, box-shadow .2s ease, background .2s ease}
.nav-cta{padding:.75rem 1.05rem;color:white;background:linear-gradient(135deg,var(--emerald),var(--emerald-2));box-shadow:0 12px 28px rgba(16,185,129,.24)}
.nav-cta:hover,.button:hover,.button-outline:hover{transform:translateY(-2px)}
.button{padding:.95rem 1.35rem;color:white;background:linear-gradient(135deg,var(--emerald),var(--emerald-2));box-shadow:0 16px 36px rgba(16,185,129,.24);border:0;cursor:pointer;font:inherit}
.button-outline{padding:.9rem 1.3rem;border:1px solid rgba(16,185,129,.28);background:white;color:var(--emerald-3)}
main{min-height:60vh}
.section{padding:92px 0}
.section.tight{padding:64px 0}
.container{width:min(1180px,calc(100% - 2rem));margin:0 auto}
.narrow{width:min(870px,calc(100% - 2rem));margin:0 auto}
.hero{position:relative;overflow:hidden;padding:92px 0 52px}
.hero:before{content:"";position:absolute;inset:2rem auto auto 55%;width:420px;height:420px;border-radius:42% 58% 52% 48%;background:linear-gradient(135deg,rgba(16,185,129,.18),rgba(110,231,183,.34));filter:blur(2px);z-index:-1}
.hero-grid,.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:2rem;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:.35rem;color:var(--emerald-3);background:rgba(209,250,229,.78);border:1px solid rgba(16,185,129,.2);border-radius:999px;padding:.45rem .85rem;font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}
h1,h2,h3,p{margin-top:0}
.display{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.045em;line-height:.98}
.hero h1{font-size:clamp(3.2rem,9vw,7.5rem);margin:1.25rem 0 1.4rem}
.hero h1 span:last-child,.emerald-text{color:var(--emerald)}
.lead{font-size:1.12rem;color:var(--muted);max-width:650px}
.actions{display:flex;gap:.85rem;flex-wrap:wrap;margin-top:1.65rem}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin-top:2rem;max-width:590px}
.stat{background:rgba(255,255,255,.76);border:1px solid var(--line);border-radius:22px;padding:1rem;box-shadow:0 12px 34px rgba(4,120,87,.08)}
.stat strong{display:block;font-size:2rem;line-height:1;font-family:Georgia,"Times New Roman",serif;color:var(--emerald-3)}
.stat span{font-size:.86rem;font-weight:800;color:#065f46}
.visual-card{background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:36px;padding:1.1rem;box-shadow:var(--shadow)}
.visual-inner{position:relative;min-height:430px;border-radius:28px;padding:1.2rem;overflow:hidden;background:linear-gradient(145deg,#047857,#10b981 58%,#6ee7b7)}
.visual-inner:before{content:"";position:absolute;inset:1rem;border:1px solid rgba(255,255,255,.28);border-radius:22px}
.home-shape{position:absolute;border-radius:26px;background:rgba(255,255,255,.92);box-shadow:0 20px 40px rgba(2,44,34,.25)}
.home-shape.one{width:58%;height:46%;left:11%;bottom:12%}
.home-shape.two{width:42%;height:30%;right:9%;top:12%;transform:rotate(8deg)}
.home-roof{position:absolute;left:16%;bottom:54%;width:50%;height:50px;background:#a7f3d0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.visual-label{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;background:rgba(255,255,255,.9);border-radius:20px;padding:1rem;text-align:center;font-weight:900;color:var(--emerald-3)}
.ribbon{overflow:hidden;border-block:1px solid rgba(16,185,129,.16);background:linear-gradient(90deg,var(--emerald-3),var(--emerald));color:white}
.ribbon-track{display:flex;gap:1.7rem;width:max-content;padding:.9rem 0;font-size:.84rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em;animation:marquee 28s linear infinite}
@keyframes marquee{to{transform:translateX(-50%)}}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.15rem}
.card-grid.two{grid-template-columns:repeat(2,1fr)}
.card,.service-card,.legal-card,.form-card,.quote-card,.faq-card{background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 40px rgba(4,120,87,.08)}
.card{padding:1.45rem}
.card.accent{background:linear-gradient(135deg,var(--emerald),var(--emerald-2));color:white}
.card.soft{background:var(--soft)}
.card h3{font-size:1.55rem;margin:.7rem 0 .45rem}
.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:2rem}
.section-title h2,.section-title h1{font-size:clamp(2.5rem,6vw,5rem);margin:.5rem 0 0}
.section-title p{max-width:430px;color:var(--muted);margin:0}
.icon{font-size:2.2rem}
.check-list{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:.5rem;font-weight:800}
.about-box{display:grid;gap:.8rem;margin-top:1.4rem}
.about-pill{border-radius:20px;padding:1rem 1.1rem;background:white;border:1px solid var(--line);font-weight:900;box-shadow:0 12px 34px rgba(4,120,87,.06)}
.about-pill:nth-child(1){background:#a7f3d0}.about-pill:nth-child(3){background:#10b981;color:white}
.copy-card{padding:2rem;background:white;border:1px solid var(--line);border-radius:34px;box-shadow:var(--shadow)}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}
.mini{background:var(--soft);border-radius:22px;padding:1rem;text-align:center;font-weight:900;border:1px solid var(--line)}
.services-page{background:linear-gradient(180deg,rgba(4,120,87,.98),rgba(16,185,129,.92));color:white}
.services-page .section-title p{color:rgba(255,255,255,.72)}
.filter-strip{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.2rem 0 2rem}
.filter-strip a,.filter-strip span{display:inline-flex;padding:.55rem .9rem;border-radius:999px;background:white;color:var(--emerald-3);font-weight:900;font-size:.9rem}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.service-card{padding:1.3rem;color:var(--ink);background:white;display:flex;min-height:260px;flex-direction:column}
.service-card .emoji{font-size:2.3rem}
.service-card h3{font-size:1.35rem;line-height:1.1;margin:.9rem 0 .55rem}
.service-card p{color:var(--muted);font-size:.95rem;flex:1}
.service-card .quote-link{font-weight:900;color:var(--emerald)}
.tag{display:inline-flex;align-self:flex-start;margin-top:.7rem;padding:.25rem .55rem;border-radius:999px;background:var(--soft);font-size:.72rem;font-weight:900;color:var(--emerald-3);text-transform:uppercase;letter-spacing:.08em}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.quote-card{padding:1.35rem;background:white}
.stars{color:var(--emerald);letter-spacing:.04em;font-weight:900}
.quote-card blockquote{margin:.7rem 0 1rem;font-family:Georgia,"Times New Roman",serif;font-size:1.12rem;font-weight:700;line-height:1.35}
.quote-card strong{display:block}.quote-card span{color:var(--muted);font-size:.9rem}
.faq-list{display:grid;gap:.8rem}
details.faq-card{padding:0;overflow:hidden;background:white}
details summary{cursor:pointer;list-style:none;padding:1.1rem 1.25rem;font-weight:900;display:flex;justify-content:space-between;gap:1rem}
details summary::-webkit-details-marker{display:none}
details summary:after{content:"+";font-size:1.4rem;color:var(--emerald);line-height:1}
details[open] summary:after{content:"−"}
details p{padding:0 1.25rem 1.15rem;margin:0;color:var(--muted)}
.contact-list{display:grid;gap:.85rem;margin-top:1.35rem}
.contact-item{display:flex;gap:.85rem;align-items:center;background:white;border:1px solid var(--line);border-radius:22px;padding:1rem;box-shadow:0 12px 34px rgba(4,120,87,.06)}
.contact-item .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:900}.contact-item strong{display:block}
.form-card{padding:1.5rem;background:white}
.form-card h3{font-size:1.7rem}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.field{display:grid;gap:.35rem;margin-bottom:1rem}.field.full{grid-column:1/-1}
label{font-weight:900;font-size:.92rem}
input,select,textarea{width:100%;border:1px solid rgba(4,120,87,.24);border-radius:16px;background:#f0fdf4;color:var(--ink);padding:.9rem 1rem;font:inherit}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(110,231,183,.38);border-color:var(--emerald)}
.check-row{display:flex;align-items:flex-start;gap:.7rem;font-weight:800;color:#064e3b;margin-top:1rem}.check-row input{width:20px;height:20px;margin-top:.2rem;accent-color:var(--emerald)}
.form-note{margin-top:1rem;border-radius:20px;background:var(--soft);border:1px solid var(--line);padding:1rem;text-align:center;font-weight:800;color:var(--emerald-3)}
.newsletter-hero{text-align:center;max-width:820px;margin:0 auto 2rem}.newsletter-hero h1{font-size:clamp(2.7rem,7vw,5.6rem);margin:.7rem 0}.newsletter-hero h2{font-size:clamp(2.5rem,6vw,5rem);margin:.7rem 0}.newsletter-hero p{color:var(--muted)}
.legal-card{background:white;padding:2rem}
.legal-card h1{font-size:clamp(2.5rem,6vw,5rem);margin:.6rem 0 1.2rem}.legal-card p{color:#064e3b}.legal-card strong{color:var(--emerald-3)}
.page-hero{padding:70px 0 38px;text-align:center}.page-hero h1{font-size:clamp(2.8rem,7vw,5.5rem);margin:.75rem 0}.page-hero p{color:var(--muted);max-width:720px;margin:0 auto}
.site-footer{background:#022c22;color:white;padding:64px 0 26px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem}.site-footer p{color:rgba(255,255,255,.64)}.site-footer h3{margin-bottom:.8rem}.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.site-footer a{color:rgba(255,255,255,.68);font-weight:700}.site-footer a:hover{color:white}.copyright{text-align:center;font-size:.78rem;color:rgba(255,255,255,.38);margin-top:2rem}
@media (max-width:900px){.hero-grid,.split{grid-template-columns:1fr}.visual-inner{min-height:330px}.card-grid,.card-grid.two,.service-grid,.testimonial-grid,.footer-grid{grid-template-columns:1fr 1fr}.section-title{display:block}.main-nav{order:3;width:100%;justify-content:flex-start}.header-inner{flex-wrap:wrap;padding:.75rem 0}.nav-cta{margin-left:auto}.stat-grid,.mini-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:620px){.section{padding:64px 0}.hero{padding:56px 0 36px}.stat-grid,.mini-grid,.footer-grid,.service-grid,.testimonial-grid,.card-grid,.card-grid.two,.form-grid{grid-template-columns:1fr}.nav-cta{display:none}.main-nav a{padding:.5rem .7rem}.hero h1{font-size:3.1rem}.visual-inner{min-height:280px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}