/* Shared opening sequence for individual service pages. */
.service-detail-page { background: #fff; color: #252722; }
.service-intro-hero { padding: clamp(76px, 9vw, 150px) 0 clamp(80px, 8vw, 130px); text-align: center; background: #fafaf8; }
.service-intro-hero .container { max-width: 920px; }
.service-intro-category { display: inline-block; margin: 0 0 26px; padding: 8px 19px; border: 1px solid #d4d6cc; border-radius: 999px; color: #565a49; font-size: 13px; font-weight: 650; }
.service-intro-hero h1 { max-width: 880px; margin: 0 auto 26px; font-size: clamp(38px, 5vw, 68px); line-height: 1.08; letter-spacing: -.045em; color: #252722; text-wrap: balance; }
.service-intro-lead { max-width: 660px; margin: 0 auto 35px; color: #606259; font-size: clamp(18px, 2vw, 22px); line-height: 1.65; text-wrap: balance; }
.service-intro-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; }
.service-intro-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 25px; padding: 17px 30px; min-height: 58px; border: 1px solid #31372b; border-radius: 6px; text-decoration: none; font-size: 16px; font-weight: 700; transition: background .18s, color .18s; }
.service-intro-actions .intro-primary { color: #fff; background: #31372b; }
.service-intro-actions .intro-primary:hover { background: #4b553d; }
.service-intro-actions .intro-secondary { color: #31372b; background: transparent; }
.service-intro-actions .intro-secondary:hover { background: #eaece4; }
.service-training-strip { background: #f0f1ec; border-block: 1px solid #e0e2d8; padding: 23px 0 27px; text-align: center; }
.service-training-strip p { margin: 0 0 14px; font-size: 12px; color: #64675a; letter-spacing: .025em; }
.service-training-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.service-training-links a { display: inline-flex; align-items: center; gap: 9px; border: 1px solid #d5d8cb; border-radius: 999px; background: #fafbf7; color: #3c4432; padding: 10px 16px; text-decoration: none; font-size: 12px; font-weight: 650; }
.service-training-links a:hover { border-color: #7a8466; text-decoration: underline; text-underline-offset: 4px; }
.service-training-links svg { width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: #e4e9da; flex: none; }
.service-intro-outcomes { padding: 65px 0 45px; background: #fff; }
.service-intro-outcomes .container, .service-intro-process .container { max-width: 1152px; }
.service-intro-outcomes h2 { margin-bottom: 23px; text-align: center; color: #676b60; font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.service-outcomes-band { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #dedfd8; border-radius: 10px; overflow: hidden; background: #f7f7f3; }
.service-outcomes-band > li { padding: 31px 26px; text-align: center; }
.service-outcomes-band > li + li { border-left: 1px solid #dedfd8; }
.service-outcomes-band h3 { margin: 0 0 12px; color: #515e3f; font-size: clamp(21px, 2.1vw, 28px); letter-spacing: -.025em; line-height: 1.2; text-wrap: balance; }
.service-outcomes-band p { margin: 0; color: #64675d; font-size: 14px; line-height: 1.65; }
.service-intro-process { padding: 35px 0 90px; background: #fff; }
.service-process-heading { text-align: center; margin-bottom: 30px; }
.service-process-heading .eyebrow { margin-bottom: 12px; color: #747963; }
.service-process-heading h2 { font-size: clamp(28px, 3vw, 42px); margin: 0; }
.service-process-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.service-process-panels > article { padding: 34px; background: #f7f7f3; border: 1px solid #dedfd8; border-radius: 12px; }
.service-process-panels > article:first-child { border-color: #8b967a; }
.service-process-panels .service-panel-title { margin: 0 0 28px; font-size: 23px; line-height: 1.2; letter-spacing: -.02em; }
.service-process-panels ul { list-style: disc; padding: 0 0 0 20px; margin: 0; }
.service-process-panels li { display: list-item; margin-bottom: 18px; padding-left: 4px; }
.service-process-panels li:last-child { margin-bottom: 0; }
.service-process-panels li svg { width: 29px; height: 29px; padding: 5px; flex: none; background: #e5e9dc; color: #53623e; border-radius: 6px; }
.service-process-panels li h3 { font-size: 16px; margin: 3px 0 7px; line-height: 1.4; letter-spacing: 0; }
.service-process-panels li p, .service-panel-intro { font-size: 15px; line-height: 1.7; color: #5b6054; margin: 0; }
.service-panel-intro { margin-bottom: 25px; }
.service-process-link { display: inline-block; margin-top: 30px; color: #38462b; font-size: 14px; font-weight: 650; text-underline-offset: 5px; }
.service-detail-page .service-at-a-glance { background: #f0f1ec; color: #33382c; border-block: 1px solid #dedfd8; }
.service-detail-page .service-at-a-glance dt { color: #626c52; }
.service-detail-page .service-at-a-glance dd { color: #33382c; }
@media (max-width: 740px) {
 .service-intro-hero { padding: 65px 0 70px; }
 .service-training-links { flex-direction: column; align-items: center; }
 .service-outcomes-band, .service-process-panels { grid-template-columns: 1fr; }
 .service-outcomes-band > li + li { border-left: 0; border-top: 1px solid #dedfd8; }
 .service-intro-outcomes { padding-top: 42px; }
 .service-intro-process { padding: 20px 0 55px; }
 .service-process-panels > article { padding: 26px; }
 .service-intro-actions a { padding-inline: 22px; }
}
@media (max-width: 420px) {
 .service-intro-actions { flex-direction: column; }
 .service-training-links a { font-size: 11px; padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) { .service-intro-actions a { transition: none; } }

/* Numbered priorities and readable process bullets. */
.service-outcomes-band { margin: 0; padding: 0; list-style: none; counter-reset: priority; }
.service-outcomes-band > li { counter-increment: priority; }
.service-outcomes-band > li::before { content: "0" counter(priority); display: block; margin-bottom: 15px; font-size: 32px; font-weight: 650; line-height: 1; color: #747e63; letter-spacing: -.03em; }
.service-process-panels li::marker { color: #53623e; font-size: 1.1em; }
.service-process-panels ul:has(> .service-process-step) { list-style: none; padding-left: 0; }
.service-process-panels .service-process-step { padding: 0; margin-bottom: 25px; }
.service-process-step ul { margin-top: 10px; }
.service-process-step ul li { color: #5b6054; font-size: 15px; line-height: 1.7; margin-bottom: 9px; }
/* Service-page closing sections: comparison, evidence, related work and CTA. */
.service-closing { padding: 65px 0; background: #fafaf8; color: #252722; }
.service-closing .container { max-width: 1152px; }
.service-closing header { text-align: center; margin: 0 auto 46px; max-width: 950px; }
.service-closing header h2 { font-size: clamp(30px, 3.4vw, 48px); line-height: 1.15; text-wrap: balance; margin: 0; }
.service-closing .eyebrow { color: #65714e; }
.service-closing ul { list-style: disc; padding-left: 21px; }
.service-closing li { line-height: 1.7; }
.service-closing li::marker { color: #65714e; font-weight: 700; }
.closing-comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.closing-comparison-grid article { padding: 35px; border: 1px solid #ded8cf; border-radius: 12px; background: #f3f1ed; }
.closing-comparison-grid article + article { border-color: #b4bfa5; background: #f0f3eb; }
.closing-label { display: inline-block; padding: 5px 12px; background: #e5e2da; border-radius: 20px; font-size: 12px; font-weight: 700; margin-bottom: 24px; }
.closing-comparison-grid article + article .closing-label { background: #dfe7d3; }
.closing-comparison-grid h3 { font-size: 23px; line-height: 1.3; margin-bottom: 22px; }
.closing-comparison-grid li { margin-bottom: 16px; color: #575b50; font-size: 15px; }
.closing-evidence { padding-block: 20px 65px; }
.closing-evidence .container { max-width: 800px; }
.closing-evidence ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 22px; }
.closing-evidence ol > li { display: grid; grid-template-columns: 130px 1fr; gap: 20px; padding: 27px; border: 1px solid #ddd; border-left: 3px solid #778662; border-radius: 9px; background: #fff; }
.closing-fact { font-size: 26px; font-weight: 700; color: #65714e; }
.closing-evidence h3 { font-size: 18px; margin: 4px 0 10px; }
.closing-evidence ul { font-size: 14px; color: #64675d; margin-block: 0 12px; }
.closing-link { color: #4b6036; font-size: 14px; font-weight: 650; text-underline-offset: 4px; }
.closing-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; counter-reset: related; list-style: none; padding: 0; margin: 0; }
.closing-service-grid > li { counter-increment: related; padding: 30px; background: #fff; border: 1px solid #dedfd8; border-left: 3px solid #a6b096; border-radius: 11px; }
.closing-service-grid > li::before { content: '0' counter(related); display: block; color: #7d876e; font-size: 14px; font-weight: 650; margin-bottom: 18px; }
.closing-service-grid h3 { font-size: clamp(22px, 2.4vw, 31px); line-height: 1.18; letter-spacing: -.025em; margin-bottom: 17px; }
.closing-service-grid h3 a { text-decoration: none; }
.closing-service-grid h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.closing-service-grid ul { font-size: 14px; color: #63685b; margin-bottom: 18px; }
.closing-project-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; list-style-position: inside; padding: 0; margin: 0; }
.closing-project-grid li { padding: 30px 22px; background: #f0f1ec; border: 1px solid #dedfd8; border-radius: 10px; font-size: 21px; font-weight: 650; line-height: 1.4; }
.closing-summary { background: #f0f1ec; padding-bottom: 80px; }
.closing-summary-box { max-width: 850px; margin: 0 auto 65px; border: 1px solid #d4d8cc; border-radius: 12px; background: #fff; padding: 40px; }
.closing-summary-box h2 { text-align: center; font-size: clamp(26px, 3vw, 36px); line-height: 1.2; }
.closing-summary-box > .eyebrow { text-align: center; }
.closing-summary-box ol { padding-left: 24px; margin-bottom: 0; }
.closing-summary-box ol > li { padding-left: 8px; margin-top: 24px; }
.closing-summary-box h3 { font-size: 18px; margin: 0 0 9px; line-height: 1.3; }
.closing-summary-box ul { color: #5b6054; font-size: 15px; }
.closing-cta { padding: 55px; background: #e3e8db; border: 1px solid #bdc8af; border-radius: 16px; text-align: center; scroll-margin-top: 120px; }
.closing-cta h2 { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.15; text-wrap: balance; }
.closing-cta > p { color: #4f5944; }
.closing-cta ul { max-width: 710px; margin: 25px auto 30px; text-align: left; color: #4f5944; font-size: 15px; }
.closing-cta li { margin-bottom: 12px; }
.closing-cta .intro-primary { display: inline-flex; gap: 24px; padding: 16px 28px; background: #31372b; color: #fff; text-decoration: none; font-weight: 700; border-radius: 6px; }
.closing-cta .intro-primary:hover { background: #4b553d; }
.closing-cta > .closing-link { display: block; width: fit-content; margin: 18px auto 0; }
@media (max-width: 900px) { .closing-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .closing-project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) {
 .service-closing { padding-block: 42px; }
 .service-closing header { margin-bottom: 28px; }
 .closing-comparison-grid, .closing-service-grid { grid-template-columns: 1fr; }
 .closing-comparison-grid article, .closing-service-grid > li { padding: 26px; }
 .closing-evidence ol > li { grid-template-columns: 1fr; gap: 8px; padding: 24px; }
 .closing-project-grid { gap: 12px; }
 .closing-project-grid li { padding: 22px 16px; font-size: 18px; }
 .closing-summary-box, .closing-cta { padding: 28px 22px; }
 .closing-summary-box { margin-bottom: 35px; }
}
/* Consistent neutral surfaces across every service detail page. */
.service-detail-page #main > section { background: #fff; color: #292929; }
.service-detail-page .service-training-strip { border-color: #e1e1e1; }
.service-detail-page :is(.service-outcomes-band, .service-process-panels > article, .closing-comparison-grid article, .closing-evidence ol > li, .closing-service-grid > li, .closing-project-grid li, .closing-summary-box, .closing-cta, .service-key-note) { background: #f6f6f6; border-color: #dedede; }
.service-detail-page :is(.service-intro-category, .service-training-links a, .closing-label, .closing-comparison-grid article + article .closing-label) { background: #f6f6f6; border-color: #dedede; color: #353535; }
.service-detail-page :is(.service-training-links svg, .service-process-panels li svg) { background: #e9e9e9; color: #444; }
.service-detail-page #main :is(h1,h2,h3,h4,dt,dd,.closing-fact,.eyebrow,.service-intro-category) { color: #292929; }
.service-detail-page #main :is(p,li,.service-panel-intro,.service-intro-lead) { color: #595959; }
.service-detail-page #main :is(.closing-link,.service-process-link,.accent-cyan,.service-training-links a) { color: #353535; }
.service-detail-page :is(.service-outcomes-band > li::before,.closing-service-grid > li::before) { color: #666; }
.service-detail-page #main li::marker { color: #666; }
.service-detail-page .service-outcomes-band > li + li { border-color: #dedede; }
.service-detail-page .service-at-a-glance { border-color: #e1e1e1; }
.service-detail-page :is(.service-intro-actions .intro-primary,.closing-cta .intro-primary) { background: #292929; border-color: #292929; color: #fff; }
.service-detail-page :is(.service-intro-actions .intro-primary:hover,.closing-cta .intro-primary:hover) { background: #444; }
.service-detail-page .service-intro-actions .intro-secondary { color: #292929; border-color: #aaa; }
.service-detail-page .service-intro-actions .intro-secondary:hover { background: #f6f6f6; }
/* Long-form service information: a quiet reading column. */
.service-detail-page .service-reading { padding: 30px 0 45px; }
.service-detail-page :is(.service-reading,.service-story-section,.service-estimate-section,.service-faq-section,.service-reference-section) > .container { max-width: 800px; }
.service-detail-page :is(.service-reading,.service-story-section,.service-estimate-section,.service-faq-section,.service-reference-section) { font-size: 16px; line-height: 1.85; }
.service-detail-page .service-reading h2 { margin: 42px 0 18px; padding: 24px 0 14px; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #eee; font-size: clamp(25px,3vw,31px); line-height: 1.25; letter-spacing: -.025em; }
.service-detail-page .service-reading h3 { margin: 30px 0 12px; font-size: 21px; line-height: 1.35; }
.service-detail-page .service-reading p { margin-bottom: 20px; }
.service-detail-page .service-reading :is(ul,ol) { padding-left: 24px; margin: 20px 0 28px; }
.service-detail-page .service-reading li { padding-left: 4px; margin-bottom: 15px; }
.service-detail-page .service-reading strong { color: #292929; }
.service-detail-page .service-reading a { text-underline-offset: 4px; color: #292929; }
.service-detail-page :is(.service-story-grid,.service-estimate-grid,.service-faq-layout,.service-reference-layout) { display: block; }
.service-detail-page :is(.service-story-section,.service-estimate-section,.service-faq-section,.service-reference-section) { padding-block: 35px; }
.service-detail-page :is(.service-story-title h2,.service-estimate-section h2,.service-faq-heading h2,.service-reference-section h2) { font-size: clamp(25px,3vw,31px); line-height: 1.25; text-align: left; margin-bottom: 20px; }
.service-detail-page .service-faq-heading h2 { max-width: none; font-size: clamp(18px,3vw,31px); white-space: nowrap; }
.service-detail-page :is(.service-story-section,.service-reading,.service-estimate-section,.service-faq-section,.service-reference-section) .eyebrow { display: none; }
.service-detail-page .service-key-note { margin-top: 20px; display: block; }
.service-detail-page .service-key-note > span { display: none; }
.service-detail-page .service-estimate-list { margin-top: 25px; }
.service-detail-page .service-key-note { background: transparent; border: 0; border-radius: 0; padding: 0; margin-top: 20px; display: block; }
.service-detail-page .service-researched-guide { background: #fff; padding: 0 0 35px; }
.service-detail-page .service-reading-contents { border-block: 1px solid #e5e5e5; padding: 20px 0; margin: 12px 0 35px; }
.service-detail-page .service-reading-contents h2 { padding: 0; margin: 0 0 14px; border: 0; font-size: 21px; }
.service-detail-page .service-reading-contents ul { margin: 0; }
.service-detail-page .service-reading-contents li { margin-bottom: 8px; }
.service-detail-page .service-source-link { font-size: .875em; text-underline-offset: 3px; }
.service-detail-page .service-researched-guide section { scroll-margin-top: 110px; }
