.seo-hero{ padding-top:calc(var(--bar) + 9vh); padding-bottom:clamp(48px,7vh,88px); }
.seo-hero .label{ margin-bottom:28px; }
.seo-hero h1,
.service-hero h1,
.service-intro h2,
.service-scope h2,
.service-process h2,
.service-cta h2,
.contact-office-note h2,
.seo-copy h2,
.seo-sitemap h2,
.seo-article-body h1,
.seo-article-body h2,
.seo-card h3{
  font-family:var(--serif);
  font-weight:300;
  letter-spacing:-0.015em;
}
.seo-hero h1{ font-size:clamp(46px,7vw,104px); line-height:0.98; max-width:12ch; padding-bottom:0.08em; }
.seo-hero .lede,
.seo-article-body .lede{ font-size:clamp(19px,2vw,28px); max-width:40ch; margin-top:28px; }
.service-hero{
  position:relative;
  min-height:86vh;
  min-height:86dvh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.48fr);
  gap:clamp(30px,5vw,76px);
  align-items:center;
  padding-top:calc(var(--bar) + 7vh);
  padding-bottom:clamp(52px,8vh,92px);
  overflow:hidden;
}
.service-hero::after{
  display:none;
}
.service-hero::before{
  content:"";
  position:absolute;
  inset:auto var(--mx) 0 var(--mx);
  height:1px;
  background:var(--line);
}
.service-hero-main{ position:relative; z-index:2; max-width:820px; }
.service-hero .label{ margin-bottom:clamp(20px,3vh,34px); }
.service-hero h1{ font-size:clamp(52px,6.2vw,98px); line-height:.98; max-width:15ch; padding-bottom:.08em; text-wrap:balance; }
.service-hero .lede{ margin-top:clamp(20px,3vh,30px); max-width:36ch; font-size:clamp(18px,1.65vw,25px); line-height:1.5; color:var(--ink-70); }
.service-hero-panel{
  position:relative;
  z-index:2;
  min-height:clamp(260px,34vh,360px);
  padding:clamp(24px,3vw,38px);
  background:linear-gradient(135deg, #171717 0%, #202018 58%, #302616 100%);
  color:var(--ivory);
  border:1px solid rgba(26,26,26,.18);
  box-shadow:0 28px 70px rgba(29,25,18,.12);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
}
.service-hero-panel::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:74%;
  height:42%;
  background:linear-gradient(135deg, rgba(168,179,106,.14), rgba(168,179,106,0));
  opacity:.9;
  pointer-events:none;
}
.service-hero-panel::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(246,244,240,.12);
  pointer-events:none;
}
.service-hero-panel p{
  position:relative;
  z-index:1;
  font-family:var(--serif);
  font-size:clamp(19px,1.65vw,25px);
  font-style:italic;
  font-weight:300;
  line-height:1.45;
  color:rgba(246,244,240,.82);
}
.service-meta{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:24px;
  background:var(--line);
  border:1px solid var(--line);
}
.service-meta span{
  display:block;
  background:rgba(246,244,240,.08);
  padding:15px 13px;
  font-size:10px;
  font-weight:500;
  letter-spacing:.2em;
  line-height:1.5;
  text-transform:uppercase;
  color:rgba(246,244,240,.66);
}
.service-jump{
  padding-top:0;
  padding-bottom:clamp(38px,6vh,72px);
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1px;
  background:var(--line);
}
.service-jump a{
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px 14px;
  background:rgba(255,255,255,.62);
  color:var(--ink-70);
  font-size:10px;
  font-weight:500;
  letter-spacing:.18em;
  line-height:1.45;
  text-align:center;
  text-transform:uppercase;
  transition:background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.service-jump a:hover,
.service-jump a.is-active{
  background:var(--charcoal);
  color:var(--ivory);
}
.service-intro{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);
  gap:clamp(36px,7vw,100px);
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:clamp(80px,10vh,140px);
  padding-bottom:clamp(80px,11vh,150px);
}
.service-copy h2{ font-size:clamp(36px,5.2vw,80px); line-height:.98; max-width:11ch; }
.service-copy p{ font-size:15px; line-height:1.9; color:var(--ink-70); max-width:48ch; }
.service-copy p + p{ margin-top:18px; }
.service-proof{
  display:grid;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  box-shadow:0 24px 70px rgba(25,22,18,.08);
}
.service-proof > div{
  min-height:clamp(150px,18vh,210px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:26px;
  padding:clamp(24px,3vw,38px);
  background:rgba(255,255,255,.62);
}
.service-proof > div:first-child{
  background:var(--charcoal);
}
.service-proof span{
  display:block;
  font-size:10px;
  font-weight:500;
  letter-spacing:.22em;
  line-height:1.45;
  text-transform:uppercase;
  color:var(--bronze);
}
.service-proof > div:first-child span{ color:var(--gold); }
.service-proof strong{
  display:block;
  max-width:20ch;
  font-family:var(--serif);
  font-size:clamp(25px,2.7vw,40px);
  font-weight:300;
  line-height:1.04;
  color:var(--ink);
}
.service-proof > div:first-child strong{ color:var(--ivory); }
.service-scope{
  background:var(--stone);
  padding-top:clamp(84px,11vh,152px);
  padding-bottom:clamp(86px,12vh,164px);
}
.service-scope-head{
  display:grid;
  grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);
  gap:clamp(28px,6vw,88px);
  align-items:end;
  margin-bottom:clamp(34px,6vh,64px);
}
.service-scope h2{ font-size:clamp(36px,5vw,76px); line-height:.98; max-width:10ch; }
.service-scope-head p{ max-width:44ch; color:var(--ink-70); font-size:15px; line-height:1.85; }
.service-card-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.service-scope-card{
  min-height:240px;
  background:rgba(255,255,255,.7);
  padding:clamp(22px,2.4vw,32px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:34px;
  transition:background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.service-scope-card:nth-child(1),
.service-scope-card:hover{
  background:var(--charcoal);
  color:var(--ivory);
  transform:translateY(-4px);
}
.service-scope-card strong{
  font-family:var(--serif);
  font-size:clamp(26px,2.6vw,38px);
  font-weight:300;
  line-height:1;
}
.service-scope-card span{
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--bronze);
}
.service-scope-card:nth-child(1) span,
.service-scope-card:hover span{ color:var(--gold); }
.service-process{
  display:grid;
  grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);
  gap:clamp(34px,7vw,100px);
  align-items:start;
  padding-top:clamp(86px,12vh,160px);
  padding-bottom:clamp(86px,12vh,160px);
}
.service-process h2{ font-size:clamp(36px,5vw,72px); line-height:1; max-width:10ch; position:sticky; top:calc(var(--bar) + 38px); }
.service-process-list{ display:grid; gap:18px; }
.service-process-step{
  border:1px solid var(--line);
  background:rgba(255,255,255,.5);
  padding:clamp(22px,3vw,34px);
  display:grid;
  grid-template-columns:90px 1fr;
  gap:24px;
  transition:border-color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease);
}
.service-process-step:hover{
  border-color:rgba(111,125,94,.32);
  background:rgba(255,255,255,.82);
  transform:translateX(6px);
}
.service-process-step .num{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--bronze);
}
.service-process-step h3{
  font-family:var(--serif);
  font-size:clamp(26px,3vw,42px);
  font-weight:300;
  line-height:1;
}
.service-process-step p{
  margin-top:12px;
  max-width:46ch;
  color:var(--ink-70);
  font-size:14px;
  line-height:1.8;
}
.service-cta{
  min-height:clamp(420px,52vh,620px);
  background:linear-gradient(135deg, #171717 0%, #1f211c 48%, #2b2419 100%);
  color:var(--ivory);
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  flex-wrap:wrap;
  padding-top:clamp(80px,11vh,150px);
  padding-bottom:clamp(80px,11vh,150px);
}
.service-cta h2{ font-size:clamp(38px,5.4vw,82px); line-height:.98; max-width:11ch; }
.service-cta p{ margin-top:20px; max-width:42ch; color:rgba(246,244,240,.72); font-size:15px; line-height:1.8; }
.service-cta .seo-btn,
.service-cta .seo-link{ color:var(--ivory); border-color:rgba(246,244,240,.24); }
.service-cta .seo-btn:hover,
.service-cta .seo-link:hover{ color:var(--gold); border-color:rgba(168,179,106,.54); }
.seo-meta,
.seo-cards,
.seo-sitemap-grid{ display:grid; gap:20px; }
.seo-meta{ grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:42px; }
.seo-panel,
.seo-card,
.seo-sitemap-group,
.seo-article-side{ border:1px solid var(--line); background:rgba(255,255,255,0.45); }
.seo-panel{ padding:24px; }
.seo-panel p{ font-family:var(--serif); font-size:24px; font-weight:300; }
.seo-grid,
.contact-office-note,
.seo-article-grid{ display:grid; grid-template-columns:1fr 1fr; gap:6vw; }
.seo-copy p,
.seo-list li,
.seo-card p,
.seo-sitemap-group a,
.seo-article-body p,
.seo-article-body li,
.seo-article-side a{ font-family:var(--sans); font-size:15px; line-height:1.9; color:var(--ink-70); }
.seo-links{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.seo-btn,
.seo-link{ display:inline-flex; align-items:center; border:1px solid var(--line); padding:15px 22px; font-size:11px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; transition:border-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease); }
.seo-btn:hover,
.seo-link:hover,
.seo-card:hover{ color:var(--bronze); border-color:rgba(111,125,94,.35); transform:translateY(-2px); }
.seo-media{ min-height:420px; }
.seo-media image-slot{ height:100%; }
.seo-list{ list-style:none; border-top:1px solid var(--line); }
.seo-list li{ padding:16px 0; border-bottom:1px solid var(--line); }
.seo-cards{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.seo-card{ display:block; padding:26px; transition:transform .35s var(--ease), border-color .35s var(--ease); }
.seo-card h3{ font-size:32px; line-height:1.06; margin:12px 0 14px; }
.seo-sitemap{ border-top:1px solid var(--line); padding-top:26px; }
.seo-sitemap-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:22px; }
.seo-sitemap-group{ padding:24px; }
.seo-sitemap-group .label{ margin-bottom:14px; }
.seo-sitemap-group a{ display:block; color:var(--ink); }
.seo-sitemap-group a + a{ margin-top:10px; }
.contact-office-note{ padding-block:0 clamp(60px,9vh,120px); }
.contact-office-note h2{ font-size:clamp(34px,4.2vw,60px); line-height:1.04; }
.contact-office-note p{ font-family:var(--sans); font-size:15px; line-height:1.9; color:var(--ink-70); max-width:58ch; }
.seo-article{ padding-top:calc(var(--bar) + 9vh); }
.seo-article-side{ padding:26px; position:sticky; top:calc(var(--bar) + 30px); }
.seo-article-body h1{ font-size:clamp(42px,6.5vw,90px); line-height:1; max-width:12ch; padding-bottom:0.08em; }
.seo-article-body h2{ font-size:clamp(30px,3.6vw,52px); margin:48px 0 16px; }
.seo-article-body ul{ list-style:none; margin-top:8px; border-top:1px solid var(--line); }
.seo-article-body li{ border-bottom:1px solid var(--line); padding:15px 0; }
@media (max-width:980px){
  .service-hero,
  .service-intro,
  .service-scope-head,
  .service-process,
  .seo-meta,
  .seo-cards,
  .seo-sitemap-grid,
  .seo-grid,
  .contact-office-note,
  .seo-article-grid{ grid-template-columns:1fr; }
  .service-hero{ min-height:auto; align-items:end; }
  .service-hero h1{ max-width:13ch; }
  .service-hero .lede{ max-width:46ch; }
  .service-hero::after{ display:none; }
  .service-hero-panel{ min-height:auto; }
  .service-jump{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-card-grid{ grid-template-columns:1fr 1fr; }
  .service-process h2{ position:static; }
  .seo-article-side{ position:static; }
}
@media (max-width:640px){
  .service-hero{ padding-top:calc(var(--bar) + 7vh); }
  .service-hero h1{ font-size:clamp(44px,14vw,68px); line-height:.98; }
  .service-hero .lede{ font-size:clamp(18px,6vw,23px); }
  .service-hero-panel{ padding:26px; }
  .service-hero-panel::before{ inset:12px; }
  .service-meta,
  .service-card-grid,
  .service-jump{ grid-template-columns:1fr; }
  .service-jump a{ min-height:56px; }
  .service-intro,
  .service-scope,
  .service-process,
  .service-cta{ padding-top:64px; padding-bottom:70px; }
  .service-process-step{ grid-template-columns:1fr; gap:12px; }
  .service-cta{ align-items:flex-start; }
}
