:root{
  --canvas:#F6F5F2;
  --rail:#1A1D24;
  --rail-text:#F2F2F0;
  --accent:#3D7A5A;
  --line:rgba(26,29,36,.14);
  --muted:rgba(26,29,36,.68);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--canvas);
  color:var(--rail);
  font-family:'Sora',system-ui,sans-serif;
  font-weight:300;
  font-size:16px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.wordmark-text,.btn,.eyebrow,.chips li,.step-num,.foot-brand,dt,summary{font-family:'DM Sans',system-ui,sans-serif}
a{color:var(--accent)}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:50}
.skip:focus{left:8px;top:8px}

/* ---------- split shell ---------- */
.shell{display:flex;align-items:flex-start;min-height:100vh}

.rail{
  width:37%;
  flex:0 0 37%;
  background:var(--rail);
  color:var(--rail-text);
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
  padding:52px 44px;
  border-right:6px solid var(--accent);
}
.rail-inner{display:flex;flex-direction:column;gap:26px;min-height:100%}
.wordmark{display:flex;align-items:center;gap:12px;color:var(--rail-text);text-decoration:none}
.mark{width:44px;height:44px;flex:0 0 44px}
.wordmark-text{font-size:26px;font-weight:700;letter-spacing:-.02em}
.dot{color:var(--accent)}
.tagline{
  font-family:'DM Sans',sans-serif;
  font-size:clamp(22px,2.4vw,31px);
  line-height:1.26;
  font-weight:500;
  letter-spacing:-.015em;
  max-width:15ch;
}
.btn{
  display:inline-block;
  align-self:flex-start;
  background:var(--accent);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  font-size:15px;
  padding:14px 22px;
  border-radius:2px;
  border:2px solid var(--accent);
  transition:background .18s ease,color .18s ease;
}
.btn:hover{background:transparent;color:var(--accent)}
.mininav{display:flex;flex-direction:column;gap:7px;padding-top:4px;border-top:1px solid rgba(242,242,240,.16);padding-top:22px}
.mininav a{
  color:var(--rail-text);
  text-decoration:none;
  font-size:14px;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:.75;
  position:relative;
  padding-left:16px;
}
.mininav a::before{content:"";position:absolute;left:0;top:50%;width:7px;height:1px;background:var(--accent)}
.mininav a:hover{opacity:1;color:#fff}
.rail-contact{font-size:14.5px;line-height:1.75;margin-top:auto}
.rail-contact a{color:var(--rail-text);text-decoration:none;border-bottom:1px solid var(--accent)}
.rail-contact a:hover{color:#fff}
.rc-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.55;margin-bottom:6px}
.rc-addr{margin-top:10px;opacity:.85}
.rc-hours{margin-top:10px;font-size:12.5px;opacity:.55}
.social{display:flex;gap:10px}
.social a{
  width:38px;height:38px;border:1px solid rgba(242,242,240,.25);
  display:grid;place-items:center;color:var(--rail-text);border-radius:2px;transition:.18s ease;
}
.social svg{width:19px;height:19px}
.social a:hover{background:var(--accent);border-color:var(--accent);color:#fff}

/* ---------- scroll column ---------- */
.col{flex:1 1 auto;min-width:0;padding:72px 7% 0;max-width:900px}
.blk{padding-bottom:64px;border-bottom:1px solid var(--line);margin-bottom:56px}
.blk:last-of-type{border-bottom:none}
.eyebrow{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin-bottom:14px;
}
h1{font-size:clamp(29px,3.6vw,44px);line-height:1.12;letter-spacing:-.03em;font-weight:700;margin-bottom:20px}
h2{font-size:clamp(22px,2.4vw,30px);line-height:1.2;letter-spacing:-.02em;font-weight:700;margin-bottom:18px}
h3{font-size:17.5px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.col p{margin-bottom:14px;color:var(--muted)}
.col p strong{color:var(--rail);font-weight:600}
.lead{font-size:18px;line-height:1.62;color:var(--rail)!important}

.chips{list-style:none;display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.chips li{
  font-size:12.5px;font-weight:700;letter-spacing:.03em;
  border:1px solid var(--line);border-radius:999px;padding:7px 15px;background:#fff;
}

/* stacked service blocks with left accent bar */
.svc{
  border-left:4px solid var(--accent);
  padding:2px 0 2px 22px;
  margin-bottom:28px;
  transition:border-color .18s ease,transform .18s ease;
}
.svc:hover{transform:translateX(3px)}
.svc p{margin-bottom:0}
.more{margin-top:26px!important}
.more a{font-weight:600;text-decoration:none;border-bottom:2px solid var(--accent)}

/* timeline */
.timeline{list-style:none;position:relative;padding-left:40px;margin-top:8px}
.timeline::before{content:"";position:absolute;left:11px;top:6px;bottom:28px;width:2px;background:var(--line)}
.timeline li{position:relative;padding-bottom:30px}
.timeline li:last-child{padding-bottom:0}
.step-num{
  position:absolute;left:-40px;top:1px;width:24px;height:24px;border-radius:50%;
  background:var(--accent);color:#fff;display:grid;place-items:center;
  font-size:12px;font-weight:700;
}
.timeline p{margin-bottom:0}

/* quotes */
.quotes{display:grid;gap:22px}
blockquote{background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);padding:22px 24px}
blockquote p{margin-bottom:12px;color:var(--rail)!important;font-size:16.5px}
blockquote p::before{content:"\201C"}
blockquote p::after{content:"\201D"}
cite{font-style:normal;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-weight:600}

/* rows (dl) */
.rows{border-top:1px solid var(--line)}
.rows>div{display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.rows dt{font-weight:700;font-size:15.5px;flex:1 1 220px}
.rows dd{color:var(--muted);font-size:15px;flex:1 1 240px;text-align:right}

/* faq */
details{border:1px solid var(--line);background:#fff;padding:14px 18px;margin-bottom:10px}
summary{cursor:pointer;font-weight:700;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:14px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent);font-weight:700}
details[open] summary::after{content:"\2013"}
details p{margin:12px 0 2px}

/* form */
.form{margin-top:24px;display:flex;flex-direction:column;gap:16px;max-width:620px}
.form .row{display:flex;gap:16px;flex-wrap:wrap}
.form .row>label{flex:1 1 200px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--rail)}
.form input,.form select,.form textarea{
  font-family:'Sora',sans-serif;font-size:15px;font-weight:300;color:var(--rail);
  background:#fff;border:1px solid var(--line);border-radius:2px;padding:12px 13px;width:100%;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.form textarea{resize:vertical}
.check{flex-direction:row!important;align-items:flex-start;gap:10px;text-transform:none!important;font-weight:300!important;font-size:13.5px!important;color:var(--muted)!important;letter-spacing:0!important}
.check input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--accent)}
.btn-solid{border:2px solid var(--accent);cursor:pointer;align-self:flex-start;font-family:'DM Sans',sans-serif}
.formnote{font-size:14px;min-height:20px;margin:0!important}
.formnote.ok{color:var(--accent);font-weight:600}
.formnote.err{color:var(--rail);font-weight:600}
.form .invalid{border-color:var(--accent);background:rgba(61,122,90,.06)}

/* footer */
.foot{background:var(--rail);color:var(--rail-text);margin:40px -7% 0;padding:42px 7% 26px}
.foot-grid{display:flex;flex-wrap:wrap;gap:30px 48px;padding-bottom:26px;border-bottom:1px solid rgba(242,242,240,.16)}
.foot-grid>div{flex:1 1 180px}
.foot p{font-size:14.5px;color:rgba(242,242,240,.75);margin:0}
.foot-brand{font-size:12px!important;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)!important;margin-bottom:10px!important;font-weight:700}
.foot a{color:var(--rail-text);text-decoration:none}
.foot a:hover{border-bottom:1px solid var(--accent)}
.foot-bottom{padding-top:20px;font-size:13px!important}

/* responsive */
@media (max-width:980px){
  .shell{display:block}
  .rail{
    width:100%;flex:none;position:static;height:auto;overflow:visible;
    padding:38px 26px 34px;border-right:none;border-bottom:6px solid var(--accent);
  }
  .rail-inner{gap:20px}
  .tagline{max-width:22ch}
  .rail-contact{margin-top:6px}
  .col{max-width:none;padding:48px 26px 0}
  .foot{margin:34px -26px 0;padding:36px 26px 24px}
}
@media (max-width:520px){
  .rows dd{text-align:left}
  .wordmark-text{font-size:23px}
  .col{padding:38px 20px 0}
  .foot{margin:30px -20px 0;padding:32px 20px 22px}
  .rail{padding:32px 20px 30px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .svc:hover{transform:none}
}