:root{
  --canvas:#f6f4ef;
  --surface:#ffffff;
  --tint:#edeae2;
  --ink:#22282a;
  --muted:#5a6360;
  --green:#2f5d4a;
  --green-deep:#1d3b2f;
  --clay:#a4643c;
  --rule:#d8d3c8;
  --serif:"Libre Baskerville","Crimson Text",Georgia,"Times New Roman",serif;
  --grotesk:Rubik,"Helvetica Neue",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--canvas);color:var(--ink);
  font-family:var(--grotesk);font-size:17px;line-height:1.62;
  overflow-x:hidden;
}
img{max-width:100%;}
a{color:var(--green);text-decoration:none;border-bottom:1px solid rgba(47,93,74,.35);}
a:hover{border-bottom-color:var(--green);}
a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.24;margin:0;}
p{margin:0 0 16px;}
p:last-child{margin-bottom:0;}
.shell{max-width:1240px;margin:0 auto;padding:0 24px;}
.measure{max-width:68ch;}
.ridge{display:block;width:72px;height:18px;background:url("/assets/ridge-rule.svg") left center/72px 18px no-repeat;margin:0 0 12px;}
.label{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-family:var(--grotesk);}
.fact{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--clay);font-family:var(--grotesk);white-space:nowrap;}
.skip{position:absolute;left:-9999px;}
.skip:focus{position:static;display:inline-block;padding:8px 12px;background:var(--green);color:#fff;}

/* ---- module 1 : compact utility header ---- */
.utility{background:var(--green-deep);color:#cfd8cf;}
.utility a{color:#e8ede8;border-bottom-color:rgba(232,237,232,.4);}
.utility__in{display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:space-between;
  padding:9px 0;font-size:12px;letter-spacing:.09em;text-transform:uppercase;}
.masthead{background:var(--surface);border-bottom:1px solid var(--rule);}
.masthead__in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0;}
.wordmark{font-family:var(--serif);font-size:26px;letter-spacing:.02em;color:var(--ink);border:0;white-space:nowrap;}
.nav{display:flex;align-items:center;justify-content:flex-end;gap:20px;flex-wrap:wrap;}
.nav a{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid transparent;padding:4px 0;}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--green);color:var(--green);}
.nav .btn{background:var(--green);color:#fff;border:0;padding:10px 15px;border-radius:2px;}
.nav .btn:hover{background:var(--green-deep);color:#fff;}

/* ---- module 2 : left-titled full-bleed banner ---- */
.banner{position:relative;background:var(--green-deep);}
.banner__img{display:block;width:100%;height:480px;object-fit:cover;}
.banner__scrim{position:absolute;inset:0;background:rgba(0,0,0,.30);}
.banner__panel{position:absolute;left:0;right:0;bottom:0;}
.banner__panel .shell{padding-bottom:46px;}
.banner__inner{max-width:58%;}
.banner__eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#e6e9e5;margin:0 0 12px;}
.banner h1{font-size:44px;color:#fff;letter-spacing:.01em;}
.banner__note{margin:16px 0 0;font-size:13px;color:#e6e9e5;letter-spacing:.04em;}

/* ---- module 3 : offset opening panel ---- */
.offset{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start;}
.section{padding:56px 0;}
.section--tint{background:var(--tint);}
.section--paper{background:var(--surface);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.welcome h2{font-size:30px;margin:0 0 22px;}
.welcome__aside{background:var(--surface);border-top:3px solid var(--green);padding:24px;}
.welcome__aside h3{font-size:19px;margin:0 0 12px;}
.welcome__aside p{font-size:15px;color:var(--muted);}
.focuslist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px;}
.focuslist li{font-size:13px;letter-spacing:.02em;color:var(--ink);
  border:1px solid var(--rule);border-left:2px solid var(--green);padding:5px 10px;background:var(--canvas);}
.linklist{list-style:none;margin:18px 0 0;padding:0;}
.linklist li{border-top:1px solid var(--rule);}
.linklist a{display:block;padding:12px 0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border:0;}

/* ---- module 4 : varied content rows ---- */
.narrative{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start;}
.pull{font-family:var(--serif);font-size:25px;line-height:1.35;color:var(--green-deep);margin:0;}
.narrative h2{font-size:27px;margin:0 0 18px;}
.benefits{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;align-items:start;}
.benefits ul{list-style:none;margin:0;padding:0;}
.benefits li{padding:9px 0 9px 30px;border-bottom:1px solid var(--rule);
  background:url("/assets/ridge-bullet.svg") left 14px/14px 12px no-repeat;font-size:16px;}
.benefits li:last-child{border-bottom:0;}
.objections{margin-top:8px;}
.objections h2{font-size:27px;margin:0 0 6px;}
.objlist{list-style:none;margin:22px 0 0;padding:0;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 48px;}
.objlist li{border-top:1px solid var(--rule);padding:14px 0;display:flex;gap:14px;align-items:baseline;}
.objlist .n{font-family:var(--serif);font-size:15px;color:var(--clay);min-width:22px;}
.objlist a{font-size:16px;border:0;color:var(--ink);}
.objlist a:hover{color:var(--green);}

/* ---- module 5 : role-specific collection grid ---- */
.register{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 48px;margin-top:26px;}
.register__row{border-top:2px solid var(--green);padding:18px 0 22px;}
.register__top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;}
.register__row h3{font-size:20px;}
.register__row p{font-size:15px;color:var(--muted);margin:10px 0 0;}
.register__row a{font-size:12px;letter-spacing:.09em;text-transform:uppercase;border:0;display:inline-block;margin-top:12px;}
.partners{margin-top:44px;border-top:1px solid var(--rule);padding-top:26px;}
.partners__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:16px;}
.partners__item{border-left:2px solid var(--clay);padding:2px 0 2px 14px;}
.partners__item strong{font-family:var(--serif);font-weight:400;font-size:17px;display:block;}
.partners__item span{font-size:13px;color:var(--muted);display:block;margin-top:2px;}
.partners__foot{margin-top:22px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;}

/* ---- module 6 : contact / location ---- */
.offices{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;margin-top:24px;}
.office{border-top:1px solid var(--rule);padding-top:18px;}
.office h3{font-size:19px;margin:0 0 8px;}
.office address{font-style:normal;font-size:16px;line-height:1.6;}
.facts{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 40px;}
.facts li{font-size:15px;}
.facts .label{margin:0 0 2px;}

/* ---- module 7 : grouped footer ---- */
.foot{background:var(--green-deep);color:#dfe6df;margin-top:0;padding:48px 0 26px;}
.foot a{color:#eef2ee;border-bottom-color:rgba(238,242,238,.35);}
.foot__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;}
.foot h2{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-family:var(--grotesk);
  color:#a8bdae;margin:0 0 14px;}
.foot ul{list-style:none;margin:0;padding:0;}
.foot li{margin:0 0 9px;font-size:15px;line-height:1.5;}
.foot__bar{margin-top:36px;border-top:1px solid rgba(223,230,223,.22);padding-top:18px;
  display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;
  font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#a8bdae;}

/* ---- inner-page grammar (data-polish-detail) ---- */
.pagehead{background:var(--surface);border-bottom:1px solid var(--rule);padding:40px 0 34px;}
.crumb{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;}
.crumb a{border:0;color:var(--muted);}
.crumb a:hover{color:var(--green);}
.pagehead h1{font-size:36px;max-width:20ch;}
.pagehead .dek{margin:14px 0 0;font-size:17px;color:var(--muted);max-width:62ch;}
.detail{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start;padding:52px 0;}
.railstack{position:sticky;top:20px;display:flex;flex-direction:column;gap:20px;}
.rail{background:var(--surface);border-top:3px solid var(--green);padding:22px 24px;}
.rail--offices{border-top-color:var(--clay);}
.rail--offices address{font-style:normal;font-size:15px;line-height:1.55;}
.railnote{margin:16px 0 0;font-size:13px;color:var(--muted);line-height:1.5;}
.rail h2{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-family:var(--grotesk);color:var(--muted);margin:0 0 14px;}
.rail ul{list-style:none;margin:0;padding:0;}
.rail li{border-top:1px solid var(--rule);padding:10px 0;font-size:15px;}
.rail li:first-child{border-top:0;padding-top:0;}
.rail .fact{display:block;margin-bottom:2px;white-space:normal;}
.entry{border-top:1px solid var(--rule);padding:26px 0 6px;}
.entry:first-of-type{border-top:0;padding-top:0;}
.entry h2{font-size:23px;margin:0 0 14px;}
.entry h3{font-size:20px;margin:0 0 12px;}
.entry ul{margin:0 0 16px;padding-left:20px;}
.entry li{margin:0 0 6px;}
.numbered{counter-reset:obj;}
.numbered .entry h2::before{counter-increment:obj;content:counter(obj) ". ";color:var(--clay);font-size:18px;}
.related{border-top:1px solid var(--rule);padding:28px 0 56px;}
.related ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 32px;}
.related a{font-size:13px;letter-spacing:.08em;text-transform:uppercase;border:0;}
.directory{list-style:none;margin:0;padding:0;}
.directory li{border-top:1px solid var(--rule);padding:18px 0;display:flex;flex-wrap:wrap;
  justify-content:space-between;gap:6px 24px;align-items:baseline;}
.directory strong{font-family:var(--serif);font-weight:400;font-size:20px;}
.directory span{font-size:15px;color:var(--muted);}
.notfound{padding:72px 0 96px;}
.notfound h1{font-size:34px;margin:0 0 16px;}

/* ---- responsive ---- */
@media (max-width:1080px){
  .banner__img{height:400px;}
  .banner h1{font-size:38px;}
  .banner__inner{max-width:72%;}
  .offset,.narrative,.detail{gap:36px;}
  .partners__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:860px){
  .offset,.narrative,.benefits,.register,.objlist,.offices,.detail{grid-template-columns:minmax(0,1fr);}
  .register{gap:0;}
  .railstack{position:static;}
  .offices{gap:28px;}
  .detail{gap:32px;}
  .banner__inner{max-width:100%;}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pull{font-size:22px;}
}
@media (max-width:600px){
  body{font-size:16px;}
  .shell{padding:0 18px;}
  .utility__in{flex-direction:column;gap:4px;padding:8px 0;font-size:11px;}
  .masthead__in{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 0;}
  .wordmark{font-size:23px;}
  .nav{justify-content:flex-start;gap:14px;font-size:13px;}
  .nav a{font-size:13px;padding:6px 0;min-height:44px;display:flex;align-items:center;}
  .nav .btn{min-height:44px;display:flex;align-items:center;}
  .banner__img{height:250px;}
  .banner h1{font-size:28px;}
  .banner__panel .shell{padding-bottom:26px;}
  .section{padding:40px 0;}
  .welcome h2{font-size:25px;}
  .narrative h2,.objections h2{font-size:23px;}
  .pagehead h1{font-size:29px;}
  .pagehead{padding:30px 0 26px;}
  .detail{padding:36px 0;}
  .linklist a{min-height:44px;display:flex;align-items:center;}
  .foot__grid{grid-template-columns:minmax(0,1fr);gap:26px;}
  .register__top{flex-direction:column;gap:4px;}
  .fact{white-space:normal;}
  .facts{gap:14px 28px;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;}
}
