/* Staged services pages. Scope every rule to the service surface. */
.services-stage {
  --service-paper: var(--paper, #fffdf4);
  --service-paper-ink: var(--paper-ink, #283829);
  --service-paper-muted: var(--paper-muted, #596652);
}
.services-stage .services-shell {
  padding: clamp(40px, 5vw, 64px) 0;
}
.services-stage .services-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(230px, 0.7fr);
  gap: clamp(28px, 7vw, 96px);
  align-items: center;
}
.services-stage .services-hero h1 {
  max-width: 18ch;
  margin: 14px 0 22px;
  font-size: clamp(2.4rem, 4.5vw, 4.2rem);
  line-height: 1.03;
  letter-spacing: -0.045em;
}
.services-stage .services-hero .lede {
  max-width: 60ch;
  font-size: clamp(1.08rem, 1.75vw, 1.3rem);
  line-height: 1.6;
}
.services-stage .planned-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 7px 10px;
  border: 1px solid var(--line-strong);
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 720;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.services-stage .planned-badge::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
}
.services-stage .services-at-a-glance {
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid
    color-mix(in srgb, var(--service-paper-ink) 20%, transparent);
  background: var(--service-paper);
  color: var(--service-paper-ink);
  box-shadow: 10px 10px 0 color-mix(in srgb, var(--accent) 12%, transparent);
}
.services-stage .services-at-a-glance h2 {
  margin: 0 0 20px;
  color: var(--service-paper-ink);
  font-size: 1rem;
  letter-spacing: -0.02em;
}
.services-stage .services-at-a-glance dl {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
  margin: 0;
}
.services-stage .services-at-a-glance dt {
  color: var(--service-paper-muted);
  font-size: 0.875rem;
  font-weight: 720;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.services-stage .services-at-a-glance dd {
  margin: 3px 0 0;
  font-size: 0.96rem;
  line-height: 1.4;
}
.services-stage .services-index {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.services-stage .services-index .wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
  padding-top: 13px;
  padding-bottom: 13px;
}
.services-stage .services-index a {
  padding: 7px 0;
  color: var(--muted);
  font-size: 0.875rem;
  text-decoration: none;
}
.services-stage .services-index a:hover {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.services-stage .service-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}
.services-stage .service-card {
  display: flex;
  flex-direction: column;
  min-height: 295px;
  padding: clamp(24px, 3.2vw, 42px);
  background: var(--bg-soft);
}
.services-stage .service-card .service-number {
  margin: 0 0 auto;
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: 720;
  letter-spacing: 0.1em;
}
.services-stage .service-card h2 {
  margin: 44px 0 12px;
  font-size: clamp(1.75rem, 3.2vw, 2.65rem);
  line-height: 1;
  letter-spacing: -0.045em;
}
.services-stage .service-card p {
  max-width: 43ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}
.services-stage .service-card .card-fit {
  margin-top: 14px;
  color: var(--ink);
  font-size: 0.91rem;
}
.services-stage .service-card a {
  align-self: flex-start;
  margin-top: 22px;
  color: var(--ink);
  font-weight: 680;
  text-decoration-color: var(--accent);
  text-underline-offset: 5px;
}
.services-stage .service-card a:focus-visible,
.services-stage .services-index a:focus-visible,
.services-stage details summary:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}
.services-stage .service-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 0.32fr);
  gap: clamp(30px, 7vw, 110px);
  padding: clamp(56px, 9vw, 120px) 0;
}
.services-stage .service-content > article {
  max-width: 720px;
}
.services-stage .service-content h2 {
  margin: 0 0 18px;
  font-size: clamp(2rem, 3.4vw, 3.25rem);
  letter-spacing: -0.045em;
  line-height: 1.02;
}
.services-stage .service-content h3 {
  margin: 34px 0 11px;
  font-size: 1.12rem;
}
.services-stage .service-content p,
.services-stage .service-content li {
  line-height: 1.65;
}
.services-stage .service-content ul {
  padding-left: 1.15rem;
}
.services-stage .service-aside {
  align-self: start;
  padding: 22px;
  border-left: 2px solid var(--accent);
  background: color-mix(in srgb, var(--bg-soft) 75%, transparent);
}
.services-stage .service-aside p {
  margin: 0;
  color: var(--muted);
  font-size: 0.93rem;
  line-height: 1.55;
}
.services-stage .service-aside strong {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
}
.services-stage details {
  margin: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.services-stage details + details {
  border-top: 0;
}
.services-stage details summary {
  padding: 17px 32px 17px 0;
  cursor: pointer;
  color: var(--ink);
  font-weight: 700;
  list-style-position: outside;
}
.services-stage details > div {
  padding: 0 4px 19px 0;
}
.services-stage details ol {
  padding-left: 1.3rem;
}
.services-stage .service-example {
  margin: 34px 0;
  padding: clamp(22px, 3vw, 34px);
  background: var(--service-paper);
  color: var(--service-paper-ink);
  border: 1px solid
    color-mix(in srgb, var(--service-paper-ink) 18%, transparent);
}
.services-stage .service-example h3,
.services-stage .service-example p {
  color: inherit;
}
.services-stage .service-example .kicker {
  color: var(--service-paper-muted);
}
.services-stage .next-service {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  padding: clamp(30px, 5vw, 58px) 0;
  border-top: 1px solid var(--line);
}
.services-stage .next-service h2 {
  max-width: 15ch;
  margin: 10px 0 0;
  font-size: clamp(2rem, 4.2vw, 4rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
}
.services-stage .services-contact {
  margin-top: 34px;
}
.services-stage .services-contact .button {
  margin-top: 6px;
}
.services-stage .services-noscript {
  padding: 12px;
  margin: 0;
  color: var(--ink);
  background: var(--bg-soft);
  border-bottom: 1px solid var(--line);
  text-align: center;
}
@media (max-width: 780px) {
  .services-stage .services-hero,
  .services-stage .service-content {
    grid-template-columns: 1fr;
  }
  .services-stage .services-at-a-glance {
    max-width: 520px;
  }
  .services-stage .service-overview {
    grid-template-columns: 1fr;
  }
  .services-stage .service-content {
    gap: 38px;
  }
  .services-stage .service-aside {
    order: -1;
  }
  .services-stage .next-service {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (prefers-contrast: more) {
  .services-stage .service-card,
  .services-stage .service-example,
  .services-stage .services-at-a-glance {
    border-color: var(--line-strong);
  }
}

/* Service detail reading flow. Existing service directory styles stay scoped above. */
body.service-detail{min-width:0;background:var(--bg);color:var(--ink)}
.service-detail main>.wrap,.service-detail .services-index .wrap{max-width:1120px}
.service-detail .services-index{border-top:0}
.service-detail .services-index .wrap{align-items:center;gap:12px;padding-top:8px;padding-bottom:8px;font-size:13px;color:var(--muted)}
.service-detail .services-index a{font-size:13px}
.service-detail .services-index [aria-current]::before{content:'/';margin-right:12px;color:var(--muted)}
.service-detail .service-intro{padding-top:48px;padding-bottom:32px}
.service-detail .service-intro .eyebrow{margin:0 0 14px;font-size:12px}
.service-detail .service-intro h1{max-width:22ch;margin:0 0 18px;font-size:clamp(36px,4vw,56px);line-height:1.08;letter-spacing:-.04em}
.service-detail .service-intro .lede{max-width:66ch;margin:0;color:var(--muted);font-size:clamp(18px,1.5vw,21px);line-height:1.5}
.service-detail .service-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.service-detail .service-hero-actions .button{margin:0;min-height:44px}
.service-detail .service-availability{margin:14px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.service-detail .service-jump{display:flex;gap:6px 26px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:8px;padding-bottom:8px;margin-bottom:8px}
.service-detail .service-jump a{display:inline-flex;align-items:center;min-height:40px;padding:4px 0;font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;text-underline-offset:5px}
.service-detail .service-jump a:hover{color:var(--ink);text-decoration:underline}
.service-detail .service-section{display:grid;grid-template-columns:230px minmax(0,1fr);gap:44px;padding-top:36px;padding-bottom:36px;border-bottom:1px solid var(--line);scroll-margin-top:110px}
.service-detail .service-section-heading h2{margin:0;font-size:25px;line-height:1.18;letter-spacing:-.025em}
.service-detail .service-section-body{min-width:0}
.service-detail .service-section-body>p{max-width:70ch;margin:0 0 16px;color:var(--muted);font-size:16px;line-height:1.65}
.service-detail .service-section-body>p:last-child{margin-bottom:0}
.service-detail .service-fit{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-top:20px;color:var(--muted);font-size:15px;line-height:1.6}
.service-detail .service-fit strong{color:var(--ink)}
.service-detail .service-fit p{margin:5px 0 0}
.service-detail .service-deliverables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.service-detail .service-deliverables article{padding:20px 22px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.service-detail .service-deliverables h3{margin:0 0 8px;font-size:18px;line-height:1.3;letter-spacing:-.02em}
.service-detail .service-deliverables p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.service-detail .service-steps{counter-reset:service-step;list-style:none;margin:0;padding:0}
.service-detail .service-steps>li{counter-increment:service-step;position:relative;padding:0 0 22px 46px;margin:0;color:var(--muted);font-size:16px;line-height:1.6}
.service-detail .service-steps>li:last-child{padding-bottom:0}
.service-detail .service-steps>li::before{content:counter(service-step);position:absolute;left:0;top:0;width:29px;height:29px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-size:13px;font-weight:650}
.service-detail .service-steps strong{color:var(--ink)}
.service-detail details{margin:0;border:0;border-bottom:1px solid var(--line)}
.service-detail details:first-child{border-top:1px solid var(--line)}
.service-detail details summary{min-height:52px;padding:16px 24px 16px 2px;list-style-position:inside;font-size:16px;line-height:1.4;font-weight:600}
.service-detail details[open] summary{color:var(--accent)}
.service-detail details>div{padding:0 0 20px;color:var(--muted);font-size:15px;line-height:1.65}
.service-detail details p{margin:0 0 14px;line-height:1.65}
.service-detail details p:last-child{margin-bottom:0}
.service-detail details h3{margin:16px 0 8px;font-size:17px}
.service-detail details li{margin:7px 0;line-height:1.65}
.service-detail details .service-example{margin:12px 0;padding:18px;border-radius:8px;background:var(--surface);border-color:var(--line);box-shadow:none}
.service-detail .service-inquiry{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-top:32px;padding-bottom:32px;margin-top:12px}
.service-detail .service-inquiry h2{margin:0 0 8px;font-size:28px;line-height:1.2;letter-spacing:-.025em}
.service-detail .service-inquiry p{margin:0;color:var(--muted);font-size:15px;max-width:62ch}
.service-detail .service-inquiry .button{flex-shrink:0;min-height:44px}
.service-detail .service-related{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:28px;border-top:1px solid var(--line);font-size:15px}
.service-detail .service-related h2{font-size:20px;line-height:1.3;letter-spacing:-.02em;margin:4px 0}
.service-detail .service-related p{margin:0;color:var(--muted)}
.service-detail main a:focus-visible,.service-detail main summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:780px){
 .service-detail .service-intro{padding-top:30px;padding-bottom:26px}
 .service-detail .service-section{grid-template-columns:1fr;gap:20px;padding-top:28px;padding-bottom:28px}
 .service-detail .service-section-heading h2{font-size:24px}
 .service-detail .service-jump{gap:4px 20px}
 .service-detail .service-inquiry{align-items:flex-start;flex-direction:column}
}
@media(max-width:480px){
 .service-detail .service-intro h1{font-size:36px}
 .service-detail .service-deliverables{grid-template-columns:1fr}
 .service-detail .service-hero-actions{gap:10px}
 .service-detail .service-hero-actions .button{padding-left:16px;padding-right:16px}
 .service-detail .service-jump a{font-size:13px}
 .service-detail .service-fit,.service-detail .service-deliverables article{padding:18px}
 .service-detail .service-steps>li{padding-left:40px}
}

.service-detail .service-facts{display:grid;gap:16px;margin:0}.service-detail .service-facts dt{font-weight:650;color:var(--ink)}.service-detail .service-facts dd{margin:4px 0 0;color:var(--muted)}
