.service-header{
  position:fixed;
  z-index:50;
  top:0;left:0;right:0;
  height:78px;
  padding:0 28px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:28px;
  align-items:center;
  background:rgba(8,8,8,.92);
  color:#fff;
  backdrop-filter:blur(10px);
}
.service-header nav{
  display:flex;
  justify-content:center;
  gap:28px;
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.service-header nav a:hover{color:var(--acid)}
.service-brand img{width:170px;display:block}

.service-hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  color:#fff;
  background:#111;
  overflow:hidden;
}
.service-hero-image{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  transform:scale(1.025);
}
.service-hero-scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.47) 60%,rgba(0,0,0,.12)),
    linear-gradient(to top,rgba(0,0,0,.76),transparent 52%);
}
.service-hero-copy{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 56px));
  margin:auto;
  padding:150px 0 105px;
  display:grid;
  grid-template-columns:minmax(0,1.42fr) minmax(260px,.58fr);
  gap:56px;
  align-items:center;
}
.service-hero-text{min-width:0}
.service-hero-title-row{display:block}
.service-hero-glyph-panel{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
}
.service-hero-glyph{
  display:block;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.32;
  user-select:none;
  pointer-events:none;
}
.service-hero-glyph-desktop{
  width:min(100%,430px);
  height:auto;
  max-height:58vh;
}
.service-hero-glyph-mobile{display:none}

.service-hero-copy h1{
  margin:0;
  max-width:11ch;
  font-size:clamp(4rem,8vw,8.5rem);
  line-height:.84;
  letter-spacing:-.06em;
  text-transform:uppercase;
}
.service-hero-text>p:not(.eyebrow){
  max-width:700px;
  margin:30px 0;
  font-size:clamp(1.05rem,1.6vw,1.4rem);
}
.service-hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.service-next{
  position:absolute;
  z-index:3;
  right:28px;
  bottom:28px;
  display:flex;
  gap:12px;
  color:#fff;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.service-intro,
.service-grid-section,
.related-services{
  width:min(1180px,calc(100% - 56px));
  margin:auto;
}

/* WHAT WE DO: heading first, copy below */
.service-intro{
  display:grid;
  grid-template-columns:1fr;
  gap:44px;
  padding:105px 0;
}
.service-intro-heading{
  max-width:100%;
}
.service-intro h2,
.service-side-heading h2,
.related-services h2,
.service-cta h2{
  margin:0;
  font-size:clamp(2.8rem,5.4vw,6rem);
  line-height:.9;
  letter-spacing:-.05em;
  text-transform:uppercase;
}
.service-intro-heading h2{max-width:none}
/* WHAT WE DO: accessible, single-open editorial accordion */
.service-intro-accordion{border-top:1px solid var(--line)}
.service-intro-detail{border-bottom:1px solid var(--line)}
.service-intro-detail summary{
  display:grid;grid-template-columns:58px minmax(0,1fr) 42px;
  align-items:center;gap:20px;min-height:106px;padding:22px 8px;
  cursor:pointer;list-style:none;transition:background .2s ease;
}
.service-intro-detail summary::-webkit-details-marker{display:none}
.service-intro-detail summary:hover{background:rgba(0,0,0,.035)}
.service-intro-detail summary:focus-visible{outline:2px solid #829b00;outline-offset:-2px}
.service-intro-number{align-self:center;color:#819900;font-size:.83rem;font-weight:700;letter-spacing:.12em}
.service-intro-label{font-size:clamp(1.5rem,3.2vw,3.1rem);line-height:1;letter-spacing:-.04em;font-weight:700;text-transform:uppercase}
.service-intro-toggle{position:relative;width:34px;height:34px;justify-self:end}
.service-intro-toggle::before,.service-intro-toggle::after{content:"";position:absolute;top:50%;left:50%;width:22px;height:2px;background:currentColor;transform:translate(-50%,-50%);transition:transform .25s ease}
.service-intro-toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.service-intro-detail[open] .service-intro-toggle::after{transform:translate(-50%,-50%) rotate(0)}
.service-intro-detail[open] summary{color:#111}
.service-intro-detail-body{padding:0 74px 34px 86px;max-width:940px}
.service-intro-detail-body p{margin:0;font-size:clamp(1.05rem,1.5vw,1.22rem);line-height:1.7}
@media(max-width:580px){
 .service-intro-detail summary{grid-template-columns:32px minmax(0,1fr) 30px;gap:12px;min-height:82px;padding:18px 0}
 .service-intro-label{font-size:clamp(1.3rem,6vw,2rem)}
 .service-intro-detail-body{padding:0 10px 26px 44px}
 .service-intro-toggle{width:26px;height:26px}
}

/* CAPABILITIES: heading above, 4 cards then 3 cards */
.service-split{
  padding:105px max(28px,calc((100vw - 1180px)/2));
}
.service-split.dark{
  display:grid;
  grid-template-columns:1fr;
  gap:55px;
  background:#111;
  color:#fff;
}
.capabilities-section .service-side-heading{
  max-width:100%;
}
.capabilities-section .service-side-heading h2{
  max-width:none;
}
.service-steps{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:0;
  border:0;
  outline:0;
  background:none;
}
/* Equal-width cards: four on top, three centered below. */
.service-steps > article{grid-column:span 2}
@media (min-width:1101px){
  .service-steps:has(> article:nth-child(7):last-child) > article:nth-child(5){grid-column:2 / span 2}
  .service-steps:has(> article:nth-child(7):last-child) > article:nth-child(6){grid-column:4 / span 2}
  .service-steps:has(> article:nth-child(7):last-child) > article:nth-child(7){grid-column:6 / span 2}
}

.service-steps article{
  min-height:300px;
  padding:24px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.25);
  outline:0;
  margin:0;
}

.service-steps span{
  color:var(--acid);
  font-size:.75rem;
  letter-spacing:.1em;
}
.service-steps h3{
  margin:70px 0 14px;
  font-size:1.55rem;
  line-height:1;
  text-transform:uppercase;
}
.service-steps p{color:#d1d1cc}

.service-grid-section{
  padding:105px 0;
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:70px;
}
.deliverable-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.deliverable-grid article{
  min-height:220px;
  padding:25px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.deliverable-grid h3{
  margin:70px 0 12px;
  font-size:1.55rem;
  line-height:1;
  text-transform:uppercase;
}

/* WHO WE SUPPORT: editorial image fade with overlapping light content */
.image-band{
  display:grid;
  grid-template-columns:minmax(0, 54%) minmax(0, 46%);
  gap:0;
  width:min(1180px,calc(100% - 56px));
  margin:64px auto;
  padding:28px;
  background:#f2f1ed;
  color:#111;
  isolation:isolate;
}
.service-band-image{
  position:relative;
  min-height:570px;
  background-position:center;
  background-size:cover;
  overflow:hidden;
}
.service-band-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to right,transparent 43%,rgba(242,241,237,.42) 68%,#f2f1ed 100%);
  pointer-events:none;
}
.service-band-copy{
  position:relative;
  z-index:1;
  margin-left:-82px;
  padding:62px 30px 62px 18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#111;
}
.service-band-copy h2{
  margin:0 0 24px;
  font-size:clamp(2.5rem,4vw,4.4rem);
  line-height:.95;
  text-transform:uppercase;
}
.service-band-copy ul{
  margin:0;
  padding:0;
  list-style:none;
}
.service-band-copy li{
  padding:12px 0;
  border-top:1px solid rgba(17,17,17,.24);
  font-size:1rem;
}
.service-band-copy li:last-child{border-bottom:1px solid rgba(17,17,17,.24)}
.service-band-action{margin-top:28px}
.service-band-action a{
  display:inline-block;
  color:#111;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.service-band-action a:hover{color:#667d00}

.service-pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.service-pricing-grid article{
  min-height:330px;
  padding:25px;
  border:1px solid #111;
  display:flex;
  flex-direction:column;
}
.service-pricing-grid h3{
  margin:26px 0 12px;
  font-size:2rem;
  line-height:1;
  text-transform:uppercase;
}
.service-price{
  margin-top:auto;
  font-size:1.35rem;
  font-weight:700;
}

/* RELATED SERVICES: deliberately shorter */
.related-services{
  padding:72px 0;
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:70px;
  border-top:1px solid var(--line);
}
.related-services h2{
  font-size:clamp(2.5rem,4.5vw,4.8rem);
}
.related-links{border-top:1px solid var(--line)}
.related-links a{
  padding:17px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid var(--line);
}
.related-links span{
  font-size:1.3rem;
  font-weight:600;
}
.related-links strong{
  color:#667d00;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}

/* FINAL CTA: shorter, less dominant */
.service-cta{
  padding:72px max(28px,calc((100vw - 1180px)/2));
  background:var(--acid);
}
.service-cta h2{
  max-width:14ch;
  font-size:clamp(2.6rem,4.5vw,4.8rem);
}
.service-cta>p:not(.eyebrow){
  max-width:650px;
  margin:20px 0 25px;
  font-size:1.05rem;
}

.service-footer{
  background:#0a0a0a;
  color:#fff;
  padding:52px 28px;
}
.service-footer-inner{
  width:min(1180px,100%);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
.service-footer .service-brand{
  flex:0 0 auto;
}
.service-footer .service-brand img{
  width:150px;
  display:block;
}
.service-footer-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:28px;
  flex-wrap:wrap;
}
.service-footer-links a{
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.service-footer-links a:hover{color:var(--acid)}

@media(max-width:1100px){
  .service-hero-copy{grid-template-columns:minmax(0,1.55fr) minmax(220px,.45fr);gap:36px}
  .service-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-steps article{grid-column:auto !important}
}

@media(max-width:900px){
  .service-header{grid-template-columns:1fr auto}
  .service-header nav{display:none}
  .service-brand img{width:145px}

  .service-hero-copy{
    display:block;
    width:min(100% - 42px,760px);
    padding:132px 0 88px;
  }
  .service-hero-glyph-panel{display:none}
  .service-hero-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
  }
  .service-hero-title-row h1{
    min-width:0;
    max-width:none;
    flex:1;
  }
  .service-hero-glyph-mobile{
    display:block;
    flex:0 0 auto;
    width:clamp(76px,15vw,118px);
    max-height:118px;
    opacity:.4;
  }

  .service-grid-section,
  .related-services{
    grid-template-columns:1fr;
    gap:42px;
  }

  .service-split.dark{
    grid-template-columns:1fr;
    gap:42px;
  }

  .service-steps,
  .deliverable-grid{
    grid-template-columns:1fr 1fr;
  }

  .image-band{grid-template-columns:1fr;padding:22px;margin:48px auto}
  .service-band-image{min-height:340px}
  .service-band-image::after{background:linear-gradient(to bottom,transparent 40%,#f2f1ed 100%)}
  .service-band-copy{margin:-65px 0 0;padding:18px 12px 32px}
  .service-pricing-grid{grid-template-columns:1fr}
  .service-prose-list{grid-template-columns:1fr}
  .service-footer-inner{align-items:flex-start}
  .service-footer-links{gap:18px 24px}
}

@media(max-width:580px){
  .service-header{padding:0 14px}
  .service-header .button{padding:11px 12px;font-size:.62rem}
  .service-hero-copy{
    width:calc(100% - 34px);
    padding-top:118px;
  }
  .service-hero-title-row{
    gap:14px;
    align-items:flex-start;
  }
  .service-hero-title-row h1{
    font-size:clamp(2.6rem,12vw,3.6rem);
    line-height:.88;
  }
  .service-hero-glyph-mobile{
    width:72px;
    max-height:82px;
    margin-top:2px;
  }

  .service-intro,
  .service-grid-section,
  .related-services{
    width:calc(100% - 34px);
    padding:70px 0;
  }

  .service-split{padding:70px 17px}
  .image-band{width:calc(100% - 34px);padding:12px}
  .service-steps,
  .deliverable-grid{grid-template-columns:1fr}
  .service-next{display:none}
  .service-band-image{min-height:260px}
  .service-band-copy{padding:12px 12px 28px;margin-top:-45px}
  .service-cta{padding:60px 17px}
  .service-footer{padding:38px 17px}
  .service-footer-inner{
    flex-direction:column;
    gap:28px;
  }
  .service-footer-links{justify-content:flex-start}
}


/* Shared service-page footer: centered brand and navigation */
.service-footer .service-footer-inner {
  width: min(1180px, 100%);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 26px;
  text-align: center;
}
.service-footer .service-footer-links {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px 28px;
}
@media (max-width: 580px) {
  .service-footer .service-footer-inner { align-items: center; }
  .service-footer .service-footer-links { justify-content: center; }
}

/* Override the generic footer grid from styles.css.
   Without this, the service footer's only child occupies column one. */
.service-footer {
  display: block;
  width: 100%;
  box-sizing: border-box;
}
.service-footer > .service-footer-inner {
  width: min(1180px, 100%);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.service-footer > .service-footer-inner > .service-brand { margin-inline: auto; }
.service-footer > .service-footer-inner > .service-footer-links {
  justify-content: center;
  width: 100%;
}
