.service-hub-page { background: var(--color-background); }
.service-hub-page .desktop-nav a[aria-current="page"], .service-hub-page .mobile-nav a[aria-current="page"] { color: var(--color-accent-dark); text-decoration: underline; text-underline-offset: 6px; }

.service-breadcrumb { display: flex; align-items: center; gap: 11px; padding-block: 22px; color: var(--color-muted); font-size: .82rem; }
.service-breadcrumb a { color: var(--color-text); }
.service-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 4px; }

.service-hero { padding-block: 22px 78px; }
.service-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 36px; }
.service-hero__copy { min-width: 0; }
.service-hero h1 { max-width: 720px; margin-bottom: 25px; font-size: clamp(2.6rem, 6vw, 4.1rem); font-weight: 400; letter-spacing: -.052em; line-height: 1.06; }
.service-hero__copy > p:not(.eyebrow) { max-width: 580px; margin-bottom: 29px; color: var(--color-text-secondary); font-size: 1.08rem; line-height: 1.65; }
.service-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 19px 28px; }
.service-hero__media { min-width: 0; margin: 0; }
.service-hero__media img { width: 100%; height: clamp(340px, 39vw, 520px); object-fit: cover; object-position: center; border-radius: var(--radius); }
.service-hero__media figcaption { padding-block: 11px; border-bottom: 1px solid var(--color-border); color: var(--color-muted); font-size: .76rem; }

.service-intro { background: #fff; }
.service-intro__inner { max-width: 870px; margin-inline: auto; text-align: center; }
.service-intro .eyebrow { justify-content: center; }
.service-intro .section-title { margin-inline: auto; }
.service-intro__inner > p:not(.eyebrow) { max-width: 740px; margin: 0 auto; color: var(--color-text-secondary); font-size: 1.08rem; line-height: 1.75; }
.service-section-heading { max-width: 870px; margin: 0 auto 44px; text-align: center; }
.service-section-heading .eyebrow { justify-content: center; }
.service-section-heading .section-title { max-width: none; margin-inline: auto; }
.service-section-heading > p:not(.eyebrow) { max-width: 680px; margin: 0 auto; color: var(--color-text-secondary); font-size: 1rem; line-height: 1.65; }

.service-pillars { background: #f0f4ef; }
.service-pillars__grid { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 24px; row-gap: 0; }
.service-feature { --card-padding: 27px; display: grid; grid-row: span 6; grid-template-rows: subgrid; min-width: 0; margin-bottom: 24px; padding: 0 var(--card-padding) 31px; overflow: hidden; border-radius: var(--radius); background: var(--color-surface); }
.service-feature:last-child { margin-bottom: 0; }
.service-feature figure { position: relative; margin: 0 calc(-1 * var(--card-padding)); }
.service-feature figure img { width: 100%; height: 250px; object-fit: cover; }
.service-feature figcaption { position: absolute; right: 12px; bottom: 12px; padding: 4px 8px; border-radius: 4px; background: rgba(244,246,243,.94); color: var(--color-text); font-size: .69rem; }
.service-feature__body { display: contents; }
.service-feature__label { margin-bottom: 15px; padding-top: 30px; color: var(--color-accent-dark); font-size: .76rem; font-weight: 700; letter-spacing: .13em; }
.service-feature h3 { max-width: 18ch; margin-bottom: 16px; font-size: clamp(1.7rem, 3vw, 2.25rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.15; }
.service-feature__body > p:not(.service-feature__label) { color: var(--color-text-secondary); font-size: 1rem; line-height: 1.67; }
.service-feature__context { padding-top: 17px; border-top: 1px solid var(--color-border); }
.service-feature .text-link { align-self: end; margin-top: auto; padding-top: 9px; }

.service-orientation { background: #fff; }
.service-orientation__grid { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--color-border); }
.service-orientation__grid > div { min-width: 0; padding: 25px 0; border-bottom: 1px solid var(--color-border); }
.service-orientation__grid h3 { margin-bottom: 10px; font-size: clamp(1.35rem, 3vw, 1.75rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.2; }
.service-orientation__grid p { max-width: 51ch; margin: 0; color: var(--color-text-secondary); font-size: 1rem; }
.service-orientation__grid p a, .service-relations__grid p a { color: var(--color-ink); font-weight: 650; text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: 4px; }
.service-orientation__closing { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-top: 26px; }
.service-orientation__closing p { margin: 0; font-size: 1.04rem; }

.service-relations { background: var(--color-forest); color: #fff; }
.service-relations .eyebrow { color: #d5e2d4; }
.service-relations__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 25px; }
.service-relations__grid > div { min-width: 0; padding: 28px 0 0; border-top: 1px solid rgba(255,255,255,.3); }
.service-relations__grid h3 { margin-bottom: 14px; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 400; letter-spacing: -.03em; }
.service-relations__grid p { max-width: 50ch; margin: 0; color: #e8ede9; font-size: 1rem; line-height: 1.72; }
.service-relations__grid p a { color: #fff; text-decoration-color: #b3bfb1; }
.service-relations__note { max-width: 890px; margin: 40px auto 0; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.22); color: #dce5dc; font-size: 1rem; text-align: center; }

.service-projects { background: #fff; }
.service-projects__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.service-projects__grid .media-frame__surface { height: 330px; min-height: 0; aspect-ratio: auto; }
.service-projects__grid .project-card figcaption { min-height: 72px; }
.service-projects__grid .project-card figcaption span { font-size: .78rem; }

.service-process { background: var(--color-background); }
.service-process__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.service-process__grid > div { min-width: 0; }
.service-process__grid > div:first-child > p:not(.eyebrow) { max-width: 55ch; color: var(--color-text-secondary); font-size: 1.02rem; }
.service-process__grid .text-link { margin-top: 13px; }
.service-process__steps { border-top: 1px solid var(--color-border); }
.service-process__steps > div { padding: 18px 0; border-bottom: 1px solid var(--color-border); }
.service-process__steps h3 { margin-bottom: 5px; font-size: 1.32rem; font-weight: 500; letter-spacing: -.025em; }
.service-process__steps p { max-width: 52ch; margin: 0; color: var(--color-text-secondary); font-size: 1rem; }

.service-contexts { background: #e8ede9; }
.service-contexts__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 17px; }
.service-contexts__grid a { display: flex; flex-direction: column; min-width: 0; min-height: 225px; padding: 27px; border-radius: var(--radius-small); background: var(--color-surface); transition: background-color .2s ease; }
.service-contexts__grid a:hover { background: #fff; }
.service-contexts__grid h3 { margin-bottom: 13px; font-size: 1.55rem; font-weight: 500; letter-spacing: -.03em; }
.service-contexts__grid p { color: var(--color-text-secondary); font-size: 1rem; }
.service-contexts__grid span { margin-top: auto; font-size: .88rem; font-weight: 650; }
.service-contexts__hub { margin-top: 29px; }

.service-reading { background: #fff; }
.service-reading__grid { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--color-border); }
.service-reading__grid a { display: flex; flex-direction: column; min-width: 0; min-height: 225px; padding: 25px 0; border-bottom: 1px solid var(--color-border); }
.service-reading__grid a > span { margin-bottom: 18px; color: var(--color-accent-dark); font-size: .74rem; font-weight: 700; letter-spacing: .12em; }
.service-reading__grid h3 { max-width: 26ch; margin-bottom: 18px; font-size: clamp(1.3rem, 2.5vw, 1.7rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.27; }
.service-reading__grid em { margin-top: auto; color: var(--color-text); font-size: .88rem; font-style: normal; font-weight: 650; }
.service-reading__grid a:hover em { color: var(--color-accent-dark); }

@media (min-width: 640px) {
  .service-pillars__grid, .service-orientation__grid, .service-projects__grid, .service-relations__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-feature:nth-last-child(2) { margin-bottom: 0; }
  .service-orientation__grid > div { padding: 30px 24px; }
  .service-orientation__grid > div:nth-child(odd) { border-right: 1px solid var(--color-border); }
  .service-orientation__grid > div:nth-child(odd) { padding-left: 0; }
  .service-orientation__grid > div:nth-child(even) { padding-right: 0; }
  .service-reading__grid, .service-contexts__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .service-reading__grid a { padding: 28px 18px; border-right: 1px solid var(--color-border); }
  .service-reading__grid a:first-child { padding-left: 0; }
  .service-reading__grid a:last-child { padding-right: 0; border-right: 0; }
}
@media (min-width: 768px) {
  .service-hero { padding-block: 32px 100px; }
  .service-hero__grid, .service-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7%; }
  .service-feature figure img { height: 295px; }
  .service-feature { --card-padding: 34px; }
  .service-feature__label { padding-top: 34px; }
  .service-relations__grid { gap: 38px; }
  .service-projects__grid .media-frame__surface { height: 370px; }
}
@media (max-width: 639px) {
  .service-hero__actions .button { width: 100%; }
  .service-feature { --card-padding: 22px; }
  .service-feature figure img { height: 230px; }
}
