/* One visual family, with an individual subject and reading rhythm per service. */
.service-editorial :is(section[id], footer[id]) { scroll-margin-top: 90px; }
.service-editorial .hero .service-breadcrumb { padding-bottom: 12px; }
.service-editorial .hero.mode-3 .hero-media.bare {
  height: clamp(460px, 52vw, 740px);
  max-height: none;
  margin: 0 0 clamp(18px, 3vh, 34px);
  overflow: visible;
  border-radius: 0;
}
.service-editorial .hero-media.bare img { width: 100%; height: 100%; object-fit: contain; }
.service-editorial .hero-top {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: end;
  margin-top: clamp(24px, 4vh, 46px);
}
.service-editorial .hero.statement h1 { overflow-wrap: anywhere; }
.service-editorial .hero.statement h1.hero-title-long { font-size: clamp(38px, 4.7vw, 76px); }
.service-editorial .hero-meta { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.service-editorial .hero-meta p { font-size: 14px; }
.service-editorial .hero-meta p:first-child { max-width: 40ch; }
.service-editorial .hero-meta p:last-child { font-size: 12px; }
.service-editorial .hero-meta p:last-child b { font-size: 13px; }
.service-editorial .service-section p,
.service-editorial .service-section li { font-size: 16px; line-height: 1.8; }
.service-editorial .service-section .lbl { font-size: 12px; }
.service-editorial .service-jumps a { font-size: 13px; }

.service-story-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr); gap: clamp(32px, 6vw, 90px); align-items: center; }
.service-overview-copy h2 { margin: 20px 0 28px; }
.service-story-panorama .service-overview-copy { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); column-gap: clamp(32px, 6vw, 90px); margin-bottom: 44px; }
.service-story-panorama .service-overview-copy .lbl { grid-column: 1 / -1; }
.service-story-panorama .service-overview-copy h2 { margin-bottom: 0; }
.service-story-panorama .service-overview-copy p { align-self: end; }
.service-application { margin: 0; min-width: 0; }
.service-application img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: #d8dedf; }
.service-story-panorama .service-application img { aspect-ratio: 2 / 1; }
.service-application figcaption { display: flex; justify-content: space-between; gap: 20px; padding-top: 14px; font-size: 12px; line-height: 1.5; color: var(--ink-2); }
.service-application figcaption span:last-child { flex-shrink: 0; color: #747a7d; }
.service-editorial .service-facts.fact-strip { margin-top: 48px; padding-top: 30px; border-top: 1px solid #cfd0c9; }
.service-editorial .service-facts.fact-strip strong { font-size: clamp(20px, 2vw, 30px); }
.service-editorial .service-facts.fact-strip span { font-size: 13px; }
.service-editorial .service-heading > p { font-size: 16px; }
.service-editorial .service-cap-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; }
.service-editorial .cap-tag { font-size: 12px; }
.service-editorial .cap-body { padding-left: 40px; }
/* Quiet active state; the description supplies the opening and closing motion. */
.service-editorial .service-capability { padding-inline: 20px; background: transparent; }
/* Active titles follow the logo's black/blue mode. */
.service-editorial .service-capability:is([open]:not([data-accordion-managed]), .is-expanded) h3 { color: var(--ink); }
body.navy-mode .service-capability:is([open]:not([data-accordion-managed]), .is-expanded) > summary h3 { color: var(--navy); }
.service-editorial .service-capability .cap-body :is(.cap-tag, .study-descriptor) {
  display:inline-block; max-width:100%; margin-top:12px; padding:6px 12px;
  border:0; border-radius:999px; background:var(--navy); color:#fff;
  font-size:12px; line-height:1.6;
}
.service-editorial .service-capability > summary:focus-visible { outline: 2px solid var(--navy); outline-offset: -5px; }
.service-editorial .service-capability[data-accordion-managed]:not(.is-expanded) .cap-toggle { transform: none; }
.service-editorial .service-capability.is-expanded .cap-toggle { transform: rotate(45deg); }
@media (prefers-reduced-motion: reduce) {
  .service-editorial .service-capability, .service-editorial .cap-toggle { transition: none; }
}
.service-considerations { padding: clamp(28px, 3.4vw, 48px); background: #e3e7e6; border-top: 2px solid #193d55; }
.service-considerations .lbl { color: #244b60; }
.service-considerations h3 { font-size: clamp(26px, 2.3vw, 36px); line-height: 1.15; margin: 22px 0; }
.service-considerations dl { margin-top: 30px; }
.service-considerations dl > div { border-top: 1px solid #bdc8c9; padding: 20px 0; }
.service-considerations dl > div:last-child { padding-bottom: 0; }
.service-considerations dt { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.service-considerations dd { margin: 0; font-size: 14px; line-height: 1.75; color: #53616a; }
.service-editorial .service-step-grid { gap: clamp(28px, 5vw, 74px); }
.service-step-number { display: block; margin-bottom: 30px; font-family: var(--font-d); font-size: clamp(64px, 7vw, 100px); line-height: 1; font-weight: 400; letter-spacing: -.06em; color: #bac5ca; }
.service-editorial .service-step .step-top { margin-top: 0; }
.service-editorial .service-step h3 { font-size: 26px; line-height: 1.2; margin-bottom: 16px; }
.service-editorial .service-process .service-heading { grid-template-columns: minmax(0, 1fr); }
.service-editorial .service-process h2 { max-width: 24ch; }
.project-editorial { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(30px, 4.5vw, 64px); }
.project-editorial .lbl { color: #b7cbd4; }
.project-editorial h2 { color: #fff; font-size: clamp(36px, 3.7vw, 56px); margin: 30px 0 24px; max-width: 15ch; }
.service-editorial .project-editorial p { color: #cbd7de; max-width: 36ch; }
.project-signoff { display: block; padding-top: 48px; margin-top: auto; color: #9bb6c4; font-size: 12px; line-height: 1.7; }
.service-editorial .project-brief { border-left: 1px solid #ffffff20; }
.service-editorial .project-brief h3 { margin-top: 0; }
.service-editorial .project-brief li { font-size: 14px; }
.service-editorial .related-card { padding: 25px 0 0; border-top: 1px solid #afbfc5; }
.service-editorial .related-card h3 { font-size: 25px; line-height: 1.2; }
.service-editorial .related-card h3 span { transition: transform .2s; flex-shrink: 0; }
.service-editorial .related-card:hover h3 { color: #234f6b; }
.service-editorial .related-card:hover h3 span { transform: translate(3px, -3px); }
.service-editorial .related-card p { font-size: 14px; }
.service-editorial .service-section .image-disclosure { font-size: 12px; margin-top: 24px; }

/* Stimulation retains its product portfolio and uses the same image family. */
.stimulation-editorial .stimulation-application { padding-bottom: 40px; }
.stimulation-editorial .stimulation-application img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 10px; }
.stimulation-editorial .stimulation-application figcaption { display: flex; justify-content: space-between; gap: 24px; font-size: 12px; color: var(--ink-2); padding-top: 14px; }
.stimulation-editorial #chem .feat-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; }
.stimulation-editorial #chem .service-considerations { margin-top: 0; }
.stimulation-editorial #chem .bd p { font-size: 15px; }
.stimulation-editorial .dev-card .dvt { margin-top: 0; padding-top: 26px; border-top: 1px solid #c4cbd0; }
.stimulation-editorial .lf-art img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.stimulation-editorial .image-disclosure { font-size: 12px; line-height: 1.7; color: var(--ink-2); margin-top: 28px; }

@media (max-width: 1000px) {
  .service-editorial .hero-top { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .service-editorial .hero-meta { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
  .service-editorial .hero-meta p:first-child { max-width: 56ch; }
  .service-story-split { gap: 32px; }
}
@media (max-width: 900px) {
  .service-editorial .hero.mode-3 .hero-media.bare { height: auto; aspect-ratio: 3 / 2; }
  .service-editorial .hero.statement h1 { font-size: clamp(48px, 8vw, 72px); }
  .service-editorial .hero.statement h1.hero-title-long { font-size: clamp(38px, 6.5vw, 60px); }
  .service-story-split, .service-story-panorama .service-overview-copy { grid-template-columns: minmax(0, 1fr); }
  .service-story-panorama .service-overview-copy p { margin-top: 26px; }
  .service-story-split .service-application img { aspect-ratio: 3 / 2; }
  .service-editorial .service-cap-grid { gap: 32px; }
  .service-considerations { padding: 28px; }
}
@media (max-width: 650px) {
  .service-editorial .hero.statement h1 { font-size: clamp(44px, 12vw, 68px); }
  .service-editorial .hero.statement h1.hero-title-long { font-size: clamp(32px, 8.8vw, 48px); }
  .service-editorial .hero-meta { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .service-editorial .hero-meta p:first-child { font-size: 16px; }
  .service-editorial .hero-meta p:last-child { font-size: 13px; }
  .service-editorial .service-cap-grid,
  .stimulation-editorial #chem .feat-grid { grid-template-columns: minmax(0, 1fr); }
  .service-story-panorama .service-application img,
  .stimulation-editorial .stimulation-application img { aspect-ratio: 3 / 2; }
  .service-application figcaption,
  .stimulation-editorial .stimulation-application figcaption { flex-direction: column; gap: 6px; }
  .service-editorial .service-facts.fact-strip { margin-top: 30px; }
  .service-editorial .service-step-grid { gap: 34px; }
  .service-step-number { font-size: 60px; margin-bottom: 20px; }
  .service-editorial .project-brief { border-left: 0; border-top: 1px solid #ffffff20; }
  .project-signoff { padding-top: 30px; }
}

/* The quiet left rail is shared by Stimulation and every other service. */
.page-toc[data-page-nav] {
  display: block; position: fixed; left: 22px; right: auto; top: 50%; bottom: auto;
  width: 150px; max-width: none; max-height: calc(100dvh - 160px);
  transform: translateY(-50%); z-index: 85; overflow-y: auto;
  padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  opacity: 1; visibility: visible;
  transition: opacity .2s ease, visibility .2s ease;
}
.page-toc[data-page-nav].hide { transform: translateY(-50%); opacity: 0; visibility: hidden; pointer-events: none; }
.page-toc[data-page-nav] .pt-card { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.page-toc[data-page-nav] .pt-card strong { display: block; margin: 0 0 12px; color: #101114; font-size: 12px; font-weight: 700; }
.page-toc[data-page-nav] .pt-list { display: grid; gap: 0; border-left: 1px solid #dddeda; overflow: visible; }
.page-toc[data-page-nav] .pt-list a {
  display: block; position: relative; padding: 6px 0 6px 14px;
  color: #969ba2; background: transparent; border: 0; border-radius: 0;
  font-size: 12px; font-weight: 400; line-height: 1.4; white-space: normal;
}
.page-toc[data-page-nav] .pt-list a:hover,
.page-toc[data-page-nav] .pt-list a.on { color: #101114; background: transparent; }
.page-toc[data-page-nav] .pt-list a.on { font-weight: 600; }
.page-toc[data-page-nav] .pt-list a.on::before { display: block; content: ''; position: absolute; left: -1px; top: 5px; bottom: 5px; width: 2px; background: #101114; }
.page-toc[data-page-nav] .pt-list a:focus-visible { outline: 2px solid var(--navy); outline-offset: -2px; }
.pt-close, .page-toc-trigger { display: none; }
@media (min-width: 1000px) {
  .page-toc[data-page-nav].lit .pt-card strong,
  .page-toc[data-page-nav].lit .pt-list a:is(.on, :hover) { color: #fff; }
  .page-toc[data-page-nav].lit .pt-list a { color: #aab3bc; }
  .page-toc[data-page-nav].lit .pt-list { border-left-color: #ffffff40; }
  .page-toc[data-page-nav].lit .pt-list a.on::before { background: #fff; }
  .service-editorial .service-jumps { display: none; }
}
/* Dock the navigator only when it fits outside the shared 1280px content wrap. */
@media (max-width: 1679px) {
  .page-toc[data-page-nav], .page-toc[data-page-nav].hide {
    top: auto; left: 18px; bottom: calc(68px + env(safe-area-inset-bottom));
    width: 210px; max-height: calc(100dvh - 180px); padding: 24px;
    transform: none; background: var(--paper, #f4f4f2);
    border: 1px solid #dddeda; box-shadow: 0 10px 32px #00000012;
    opacity: 0; visibility: hidden; pointer-events: none;
  }
  .page-toc[data-page-nav].is-open { opacity: 1; visibility: visible; pointer-events: auto; }
  .page-toc[data-page-nav] .pt-list a { padding-top: 8px; padding-bottom: 8px; }
  .pt-close { display: block; position: absolute; top: 13px; right: 10px; width: 34px; height: 34px; border: 0; background: transparent; color: var(--ink); font-size: 22px; cursor: pointer; }
  .page-toc-trigger { display: flex; align-items: center; gap: 18px; position: fixed; left: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 85; padding: 12px 16px; border: 1px solid #d6d8d5; background: var(--paper, #f4f4f2); color: #101114; font: 600 12px var(--font); cursor: pointer; box-shadow: 0 4px 16px #0000000a; }
  .page-toc-trigger span { font-size: 16px; line-height: 1; }
  .page-toc-trigger[aria-expanded="true"] span { transform: rotate(45deg); }
  .service-editorial > .ft { padding-bottom: 80px; }
}
@media (min-width: 1000px) and (max-width: 1679px) {
  .page-toc[data-page-nav], .page-toc[data-page-nav].hide {
    background: transparent; border: 0; box-shadow: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page-toc[data-page-nav] { transition: none; }
}

/* V4 accordion descriptions align with the unnumbered disclosure titles. */
body.index-v4 .service-capability .cap-body { padding-left:0; }
