.service-page .service-hero { min-height: 620px; }
.service-page .service-hero .hero-inner { min-height: 620px; padding-block: 65px; }
.service-page .service-hero .hero-copy { max-width: 920px; }
.service-page .service-hero h1 { font-size: clamp(44px, 4.8vw, 68px); line-height: 1.04; max-width: 920px; }
.service-page .service-hero .hero-intro { max-width: 665px; font-size: 20px; margin-top: 23px; }
.service-page .service-hero .hero-image { object-position: center; }
.service-page .service-hero { background-color: #0a2f63; }
.technical-hero-lines { position: absolute; right: 1%; top: 4%; bottom: 2%; width: 48%; color: #9cbbe4; opacity: .45; }
.technical-hero-lines svg { width: 100%; height: 100%; }
.service-page .service-process-layout.process-without-photo { display: block; }
.service-page .process-without-photo > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 35px; counter-reset: process; }
.service-page .process-without-photo .service-process-step { border-top: 3px solid var(--blue); padding-top: 25px; margin: 0; counter-increment: process; }
.service-page .process-without-photo h3::before { content: '0' counter(process); display: block; font-size: 39px; color: var(--red); margin-bottom: 18px; }
.service-page .service-hero .hero-shade { background: linear-gradient(90deg,#04162df0 0%,#04162dd1 42%,#04162d65 77%,#04162d45 100%); }
.service-page .service-hero .hero-checks { margin-top: 21px; }
.service-page .service-hero .hero-button { margin-top: 25px; }
.service-page .service-hero .hero-button small { max-width: 290px; }
.service-page .breadcrumbs { padding-block: 22px; color: var(--muted); font-size: 13px; }
.service-page .breadcrumbs ol { display: flex; flex-wrap: wrap; list-style: none; gap: 8px 13px; }
.service-page .breadcrumbs li + li::before { content: '/'; color: #7d8999; margin-right: 13px; }
.service-page .breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.service-page .breadcrumbs a:hover { color: var(--blue); }
.service-page .service-overview { padding-top: 54px; }
.service-page main h2 { font-size: clamp(34px, 3.4vw, 46px); line-height: 1.14; }
.service-page .overview-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.8fr); gap: 80px; align-items: start; }
.service-page .service-prose h2 { margin-bottom: 25px; }
.service-page .service-prose p:not(.eyebrow) { color: var(--muted); font-size: 17px; }
.service-page .service-contents { background: var(--gray-bg); padding: 28px; border-top: 3px solid var(--blue); margin-top: 32px; }
.service-page .service-contents h2 { font-size: 23px; margin-bottom: 18px; }
.service-page .service-contents nav a { display: block; padding-block: 12px; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.4; }
.service-page .service-contents nav a:hover { color: var(--blue); text-decoration: underline; }
.service-page .service-contents > .text-link { margin-top: 25px; font-size: 14px; gap: 12px; }
.service-page .specific-services { padding-top: 28px; margin-top: 28px; border-top: 1px solid var(--line); }
.service-page .specific-services h3 { font-size: 25px; }
.service-page .specific-services ul { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 11px 25px; margin-top: 22px; }
.service-page .specific-services li { line-height: 1.4; }
.service-page .specific-services a { font-size: 14px; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.service-page .service-causes > .container > h2 { max-width: 850px; margin-bottom: 32px; }
.service-page .cause-explanation { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.service-page .cause-explanation p { font-size: 17px; color: var(--muted); margin: 0; }
.service-page .service-schematic { background: #fff; border: 1px solid var(--line); padding: 28px; margin-top: 40px; min-width: 0; }
.service-page .schematic-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; margin-bottom: 20px; }
.service-page .schematic-heading h3 { font-size: 27px; color: var(--navy); max-width: 800px; }
.service-page .schematic-heading > span { font-size: 11px; color: var(--muted); white-space: nowrap; margin-top: 7px; }
.service-page .schematic-scroll { position: relative; overflow-x: auto; padding: 7px; margin-inline: -7px; }
.service-page .schematic-scroll svg { width: 100%; min-width: 640px; height: auto; max-height: 450px; }
.service-page .service-schematic figcaption { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 16px; font-size: 15px; color: var(--muted); max-width: 100%; }
.service-page .schematic-hint { display: none; margin-top: 10px; color: var(--blue); font-size: 12px; font-weight: 600; }
.service-page .service-process > .container > h2 { max-width: 950px; margin-bottom: 38px; }
.service-page .process-location { white-space: nowrap; }
.service-page .process-location { white-space: nowrap; }
.service-page .service-process-layout { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.1fr); gap: 70px; align-items: start; }
.service-page .service-photo { position: sticky; top: 110px; }
.service-page .service-photo img { width: 100%; height: auto; }
.service-page .service-photo figcaption { font-size: 12px; color: var(--muted); margin-top: 12px; }
.service-page .service-process-step { border-bottom: 1px solid var(--line); padding-bottom: 26px; margin-bottom: 26px; }
.service-page .service-process-step:last-child { margin-bottom: 0; }
.service-page .service-process-step h3 { color: var(--navy); font-size: 27px; margin-bottom: 13px; line-height: 1.2; }
.service-page .service-process-step p { color: var(--muted); font-size: 17px; }
.service-page .service-preparation { color: #fff; background: var(--navy); }
.service-page .preparation-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.25fr); gap: 90px; }
.service-page .preparation-layout > div > p { margin-top: 24px; color: #dbe5f2; }
.service-page .preparation-layout ul { list-style: none; }
.service-page .preparation-layout li { padding: 19px 0 19px 24px; position: relative; border-bottom: 1px solid #ffffff40; font-size: 17px; }
.service-page .preparation-layout li:first-child { padding-top: 0; }
.service-page .preparation-layout li::before { content: ''; width: 10px; height: 2px; background: #fff; position: absolute; left: 0; top: 33px; }
.service-page .preparation-layout li:first-child::before { top: 14px; }
.service-page .service-preparation a { color: #fff; }
.service-page .service-preparation .source-line { font-size: 13px; line-height: 1.5; }
.service-page .service-preparation .source-line a { text-decoration: underline; text-underline-offset: 3px; }
.service-page .service-preparation :focus-visible { outline-color: #fff; }
.service-page .service-tool { display: flex; align-items: center; gap: 45px; justify-content: space-between; padding: 30px; background: var(--gray-bg); border-left: 3px solid var(--red); margin-top: 40px; }
.service-page .service-tool h3 { font-size: 25px; margin-bottom: 12px; }
.service-page .service-tool p { color: var(--muted); max-width: 790px; }
.service-page .service-tool > .text-link { flex-shrink: 0; font-size: 15px; }
.service-page .related-services h2 { margin-bottom: 30px; }
.service-page .related-services .service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-page .related-services .service-card { min-height: 170px; padding: 24px; }
.service-page .related-services .card-top { margin-bottom: 18px; }
.service-page .related-services .service-card h3 { font-size: 25px; min-height: 0; max-width: 100%; }
.service-page .faq-section h2 { font-size: clamp(32px,3vw,42px); }
.service-page .faq-section .text-link { margin-top: 25px; }
.service-page .service-cta { background-image: var(--service-cta-image); }
.service-page .service-cta .cta-inner > div { max-width: 770px; }
.service-page .service-cta .cta-inner h2 { font-size: 40px; }
.service-page .service-cta .cta-inner > div > p:not(.cta-availability) { font-size: 17px; }
.service-page a[aria-current="page"] { text-decoration: underline; text-underline-offset: 3px; }
.related-guides { padding-block: 28px; border-top: 1px solid var(--line); margin-bottom: 40px; font-size: 16px; }
.related-guides strong { color: var(--navy); margin-right: 9px; }
.related-guides a { display: inline; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.related-guides a + a::before { content: ' · '; color: var(--muted); }
@media (max-width: 1080px) {
  .service-page .overview-layout { grid-template-columns: minmax(0,1.5fr) minmax(240px,.8fr); gap: 40px; }
  .service-page .service-process-layout { gap: 40px; }
  .service-page .preparation-layout { gap: 45px; }
  .service-page .cause-explanation { grid-template-columns: 1fr; gap: 20px; }
  .service-page .service-tool { gap: 25px; }
}
@media (max-width: 760px) {
  .service-page .process-without-photo > div { grid-template-columns: 1fr; gap: 25px; }
  .technical-hero-lines { width: 100%; right: -25%; opacity: .25; }
  .service-page .service-hero, .service-page .service-hero .hero-inner { min-height: 0; }
  .service-page .service-hero .hero-inner { padding-block: 48px; }
  .service-page .service-hero h1 { font-size: clamp(39px,9.7vw,58px); }
  .service-page .service-hero .hero-intro { font-size: 18px; }
  .service-page .service-hero .hero-shade { background: #04162dd1; }
  .service-page .service-hero .hero-checks { font-size: 12px; }
  .service-page .service-hero .hero-button small { max-width: 260px; }
  .service-page main h2 { font-size: 35px; }
  .service-page .breadcrumbs { font-size: 12px; padding-block: 18px; }
  .service-page .overview-layout, .service-page .service-process-layout, .service-page .preparation-layout { grid-template-columns: 1fr; gap: 30px; }
  .service-page .service-overview { padding-top: 35px; }
  .service-page .service-contents { margin-top: 0; padding: 24px; }
  .service-page .service-contents h2 { font-size: 23px; }
  .service-page .specific-services ul { grid-template-columns: 1fr; }
  .service-page .service-schematic { padding: 20px; margin-top: 30px; }
  .service-page .schematic-heading { display: block; margin-bottom: 15px; }
  .service-page .schematic-heading h3 { font-size: 25px; }
  .service-page .schematic-heading > span { display: block; margin-top: 10px; }
  .service-page .schematic-hint { display: block; }
  .service-page .service-photo { position: static; }
  .service-page .service-process-step h3 { font-size: 25px; }
  .service-page .service-tool { display: block; padding: 24px; margin-top: 30px; }
  .service-page .service-tool > .text-link { margin-top: 20px; }
  .service-page .related-services .service-grid { grid-template-columns: 1fr; gap: 16px; }
  .service-page .related-services .service-card { min-height: 0; }
  .service-page .faq-section h2 { font-size: 35px; }
  .service-page .service-cta .cta-inner h2 { font-size: 35px; }
}
@media (max-width: 380px) {
  .service-page .service-hero h1 { font-size: 38px; }
  .service-page .service-hero .hero-button small { font-size: 11px; max-width: 230px; }
  .service-page .service-hero .hero-checks { font-size: 11px; }
  .service-page .service-schematic { padding: 16px; }
}
@media print {
  .service-page .service-hero .hero-inner { min-height: 0; padding: 15pt 0; }
  .service-page .service-hero h1 { font-size: 30pt; }
  .service-page .service-preparation { color: #000; background: #fff; }
  .service-page .preparation-layout > div > p, .service-page .service-preparation a { color: #000; }
  .service-page .schematic-scroll { overflow: visible; }
  .service-page .schematic-scroll svg { min-width: 0; }
  .service-page .service-contents, .service-page .schematic-hint, .service-page .breadcrumbs { display: none; }
  .service-page .overview-layout { display: block; }
  .service-page .service-photo { position: static; }
}
