/* Service layouts, scoped to avoid changing articles and other pages. */
.service-detail .shell,
.service-overview .shell { width: calc(100% - 64px); max-width: 1200px; padding: 0; margin-inline: auto; }
.service-detail .service-layout { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(280px, 1fr); column-gap: 56px; padding-top: 48px; padding-bottom: 56px; align-items: start; }
.service-detail .page-hero { grid-column: 1; grid-row: 1; padding: 0 0 36px; min-width: 0; }
.service-detail .page-hero::before,
.service-detail .page-hero::after { display: none; }
.service-detail .page-hero__title { font-size: clamp(38px, 4.1vw, 60px); line-height: 1.08; max-width: 100%; margin: 24px 0 0; overflow-wrap: break-word; }
.service-detail .page-hero__lede { font-size: 18px; line-height: 1.7; color: #46513e; margin-top: 22px; max-width: 65ch; }
.service-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 24px; margin-top: 28px; }
.service-detail .service-button { display: inline-flex; justify-content: space-between; align-items: center; gap: 20px; background: #172015; color: #f5f8ef; padding: 15px 20px; min-height: 48px; border: 1px solid #172015; border-radius: 6px; font-size: 15px; font-weight: 600; line-height: 1.4; text-decoration: none; transition: background .2s; }
.service-detail .service-button:hover { background: #34482a; }
.service-detail .service-button span { flex-shrink: 0; }
.service-detail .service-text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; line-height: 1.5; font-weight: 600; color: #3d542b; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.service-detail .service-kicker { font-size: 11px; font-weight: 600; line-height: 1.5; letter-spacing: .12em; margin: 0 0 16px; color: #536344; }
.service-detail .service-summary { grid-column: 2; grid-row: 1 / span 2; align-self: stretch; min-width: 0; }
.service-summary-card { position: sticky; top: 28px; padding: 28px; border: 1px solid #c5ceba; border-top: 4px solid #718855; border-radius: 8px; background: #e7ecdf; }
.service-detail .service-summary h2 { font-size: 28px; line-height: 1.15; letter-spacing: -.035em; margin: 0 0 24px; }
.service-summary dl { margin: 0; }
.service-summary dl > div { padding: 18px 0; border-top: 1px solid #c4ceba; }
.service-summary dt { font-size: 12px; font-weight: 700; color: #3f5133; margin-bottom: 7px; }
.service-summary dd { margin: 0; font-size: 15px; line-height: 1.65; color: #394431; }
.service-summary .service-text-link { margin-top: 10px; }
.service-detail .service-content { grid-column: 1; grid-row: 2; min-width: 0; }
.service-detail .service-content .shell { width: 100%; max-width: none; padding: 0; }
.service-detail .service-content .section { padding: 30px 0; }
.service-detail .section-head { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #c7cebb; }
.service-detail .section-title { font-size: clamp(27px, 2.6vw, 34px); line-height: 1.2; letter-spacing: -.04em; }
.service-detail .about-body { max-width: none; color: #3e4937; }
.service-detail .about-body p,
.service-detail .about-body p:first-child { font-size: 17px; line-height: 1.75; color: #3e4937; margin: 0 0 20px; }
.service-detail .about-body p:first-child::first-letter { font-family: inherit; font-size: inherit; line-height: inherit; float: none; margin: 0; color: inherit; }
.service-detail .expertise { display: grid; grid-template-columns: minmax(140px, .85fr) minmax(0, 1.8fr); background: #fafbf6; border: 1px solid #c7cebb; border-radius: 8px; margin-top: 24px; }
.service-detail .expertise-cell { margin: 0; color: #3e4937; padding: 18px; font-size: 15px; line-height: 1.65; border-bottom: 1px solid #dde2d5; }
.service-detail .expertise-cell.label { color: #354b28; font-size: 12px; line-height: 1.65; font-weight: 700; letter-spacing: .04em; background: #e8eedf; }
.service-detail .expertise-cell:nth-last-child(-n+2) { border-bottom: 0; }
.service-detail .about-body ul { margin: 0; padding-left: 22px; }
.service-detail .about-body li { color: #3e4937; margin: 12px 0; padding-left: 4px; font-size: 17px; line-height: 1.7; }
.service-detail .about-body li::marker { color: #536f2a; }
.service-detail .service-cta { background: #d4f878; border-block: 1px solid #bbd95f; padding: 48px 0; }
.service-detail .service-cta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.service-detail .service-cta h2 { max-width: 15ch; font-size: clamp(32px, 3.7vw, 48px); line-height: 1.1; }
.service-detail .service-cta p:not(.service-kicker) { font-size: 17px; line-height: 1.75; color: #304025; margin: 0 0 24px; }
.service-detail .service-cta .service-text-link { display: flex; width: fit-content; margin-top: 12px; }
.service-detail .service-related { padding: 48px 0 64px; }
.service-detail .service-related .section-head { align-items: baseline; }
.service-detail .related-services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.service-detail .related-service-card { padding: 24px; border-radius: 8px; min-width: 0; }
.service-detail .related-service-card strong { font-size: 25px; }
.service-detail .related-service-card > span:not(.mono) { color: #46513e; font-size: 15px; line-height: 1.65; }
.service-detail .related-service-card .mono { color: #536344; }
.service-detail .service-content .case-study { padding: 28px; border-radius: 8px; margin: 18px 0; }
.service-detail .service-content .case-grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
.service-detail .service-content .case-title { font-size: 32px; }
.service-detail .service-content .case-deck { font-size: 16px; color: #d0dac8; }
.service-detail .service-content .case-figure { max-width: 100%; margin: 0; }
.service-detail .service-content .case-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.service-detail .service-content .metric .k { color: #d0dac8; font-size: 13px; }
.service-detail .social-list { margin-top: 24px; }
.service-detail .social-row { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 8px 16px; padding: 20px 0; background: transparent; }
.service-detail .social-row::before { display: none; }
.service-detail .social-row:hover * { color: inherit !important; }
.service-detail .social-num { grid-column: 1; grid-row: 1; color: #536f2a; }
.service-detail .social-name { grid-column: 2; font-size: 23px; line-height: 1.25; }
.service-detail .social-handle { grid-column: 2; font-size: 15px; line-height: 1.7; color: #46513e; overflow-wrap: anywhere; }
.service-detail .social-arrow { display: none; }
.service-detail .service-content .section-head { text-align: left; }
.service-detail a:focus-visible,
.service-overview a:focus-visible { outline: 3px solid #426326; outline-offset: 4px; }
.service-overview .page-hero__lede { color: #46513e; }
.service-overview .service-index-grid { gap: 22px; }
.service-overview .service-index-grid > .post { padding: 0; border-radius: 8px; }
.service-overview .service-index-grid .post-link { padding: 28px; }
.service-overview .service-index-grid .post-meta { padding: 0; margin: 0 0 22px; color: #526344; }
.service-overview .service-index-grid .post-title { margin: 0 0 16px; font-size: 30px; }
.service-overview .service-index-grid .post-dek { margin: 0 0 24px; font-size: 16px; line-height: 1.7; color: #46513e; }
.service-overview .service-index-grid .post-footer { margin: auto 0 0; padding-top: 18px; color: #3d542b; }
@media (max-width: 1000px) {
  .service-detail .service-layout { column-gap: 32px; grid-template-columns: minmax(0,1.8fr) minmax(260px,1fr); }
  .service-summary-card { padding: 22px; }
}
@media (max-width: 900px) {
  .service-detail .service-layout { grid-template-columns: minmax(0,1fr); padding-top: 32px; padding-bottom: 32px; }
  .service-detail .page-hero { grid-column: 1; grid-row: 1; }
  .service-detail .service-summary { grid-column: 1; grid-row: 2; margin-bottom: 12px; }
  .service-summary-card { position: static; }
  .service-summary dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
  .service-detail .service-content { grid-column: 1; grid-row: 3; }
  .service-detail .service-cta-grid { gap: 32px; }
}
@media (max-width: 600px) {
  .service-detail .shell,.service-overview .shell { width: calc(100% - 40px); }
  .service-detail .page-hero__title { font-size: 38px; }
  .service-detail .page-hero__lede { font-size: 17px; }
  .service-hero-actions { align-items: stretch; flex-direction: column; gap: 8px; }
  .service-detail .service-button { width: 100%; }
  .service-summary dl { display: block; }
  .service-detail .service-content .section { padding: 24px 0; }
  .service-detail .expertise { grid-template-columns: minmax(0,1fr); }
  .service-detail .expertise-cell.label { padding: 16px 18px 6px; border-bottom: 0; }
  .service-detail .expertise-cell:not(.label) { padding: 10px 18px 16px; }
  .service-detail .service-cta-grid,.service-detail .related-services-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .service-detail .service-cta { padding: 36px 0; }
  .service-detail .service-related .section-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .service-detail .service-content .case-study { padding: 22px; }
  .service-detail .service-content .case-metrics { grid-template-columns: minmax(0,1fr); }
  .service-overview .service-index-grid .post-link { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-detail .service-button { transition: none; }
}

/* Keep reading alignment consistent and avoid implying static process rows are clickable. */
.service-detail .page-hero,
.service-detail .page-hero__title,
.service-detail .page-hero__lede,
.service-detail .section-head .section-title { text-align: left; }
.service-detail .breadcrumb { justify-content: flex-start; }
.service-detail .social-row { cursor: default; transition: none; }
.service-detail .social-row:hover { padding-left: 0; }
