/* Service landing pages reuse the site's established wordmark, type and palette. */
.home-page .reference-service-details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0 2px;
}
.home-page .reference-service-details a {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 11px;
  border: 1px solid #e5e9e4;
  border-radius: 7px;
  color: #26382d;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  transition: border-color .16s ease, background .16s ease;
}
.home-page .reference-service-details a:hover {
  border-color: #a7c7b2;
  background: #f7faf7;
}
.home-page .reference-service-details span {
  flex: 0 0 auto;
  color: #526b59;
  font-size: 15px;
}
.service-page .inner-hero {
  padding: 30px 0 38px;
  background: linear-gradient(180deg, #fff 0%, #f7f8f5 100%);
}
.service-page .breadcrumb { margin-bottom: 18px; }
.service-page .service-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
  align-items: center;
  gap: clamp(30px, 5vw, 66px);
}
.service-page .service-hero-copy { max-width: 710px; }
.service-page .service-hero-copy .reference-eyebrow { margin-bottom: 11px; }
.service-page .service-hero-copy h1 {
  max-width: 730px;
  margin: 0 0 15px;
  color: #17251e;
  font: 800 clamp(34px, 4.2vw, 53px)/1.08 var(--display);
  letter-spacing: -.045em;
}
.service-page .service-lede {
  max-width: 700px;
  margin: 0;
  color: #4f5c53;
  font-size: 15px;
  line-height: 1.72;
}
.service-page .service-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 21px;
}
.service-page .service-hero-actions .button { min-height: 43px; font-size: 12px; }
.service-page .service-hero-actions .button-outline {
  border-color: #cbd7ce;
  color: #26382d;
  background: #fff;
}
.service-page .service-hero-image {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid #e4e8e1;
  border-radius: 9px;
  background: #eef2ed;
  box-shadow: 0 12px 30px rgba(26, 48, 34, .08);
}
.service-page .service-hero-image img {
  width: 100%;
  aspect-ratio: 720 / 460;
  object-fit: cover;
}
.service-page .service-hero-image figcaption {
  padding: 9px 13px;
  color: #5d685f;
  background: #fff;
  font-size: 10px;
}
.service-page .service-quick-points {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 23px 0 0;
  padding: 0;
  list-style: none;
}
.service-page .service-quick-points li {
  padding: 7px 11px;
  border: 1px solid #e1e8e0;
  border-radius: 999px;
  color: #34513d;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
}
.service-page .service-main-section { padding: 38px 0 54px; background: #fff; }
.service-page .service-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(265px, 340px);
  align-items: start;
  gap: clamp(28px, 5vw, 64px);
}
.service-page .service-main-copy { min-width: 0; }
.service-page .service-content-card { padding: 0 0 24px; margin: 0 0 24px; border-bottom: 1px solid #e7eae6; }
.service-page .service-content-card:last-child { margin-bottom: 0; }
.service-page .service-content-card h2,
.service-page .service-faq-section > .container > h2,
.service-page .other-services-section h2,
.service-page .service-related h2 {
  margin: 0 0 12px;
  color: #1b2a20;
  font: 800 clamp(22px, 2.5vw, 29px)/1.18 var(--display);
  letter-spacing: -.035em;
}
.service-page .service-content-card p,
.service-page .service-content-card li {
  color: #4e5c52;
  font-size: 14px;
  line-height: 1.75;
}
.service-page .service-content-card p { margin: 0 0 12px; }
.service-page .service-content-card p:last-child { margin-bottom: 0; }
.service-page .service-content-card ul { display: grid; gap: 7px; margin: 11px 0 0; padding-left: 20px; }
.service-page .service-content-card li::marker { color: #426d4f; }
.service-page .service-aside-card {
  position: sticky;
  top: 92px;
  padding: 22px;
  border: 1px solid #dbe7dc;
  border-radius: 9px;
  background: #f6f9f5;
}
.service-page .service-aside-card .reference-eyebrow { margin-bottom: 7px; }
.service-page .service-aside-card h2 { margin: 0 0 9px; font: 800 20px/1.25 var(--display); letter-spacing: -.025em; }
.service-page .service-aside-card > p:not(.reference-eyebrow) { margin: 0 0 12px; color: #4f5c53; font-size: 12px; line-height: 1.65; }
.service-page .service-aside-card ul { display: grid; gap: 9px; margin: 0; padding-left: 18px; color: #425247; font-size: 12px; line-height: 1.6; }
.service-page .service-aside-card li::marker { color: #456d4f; }
.service-page .service-aside-note { padding-top: 11px; margin-top: 12px !important; border-top: 1px solid #e0e8df; font-size: 11px !important; }
.service-page .service-text-link { display: inline-flex; align-items: center; gap: 7px; color: #28553a; font-size: 12px; font-weight: 800; }
.service-page .service-text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.service-page .service-faq-section { padding: 43px 0 48px; background: #f7f8f5; }
.service-page .service-faq-section .reference-eyebrow,
.service-page .other-services-section .reference-eyebrow,
.service-page .service-related .reference-eyebrow { margin-bottom: 7px; }
.service-page .service-faq-list { display: grid; gap: 9px; max-width: 900px; margin-top: 17px; }
.service-page .service-faq { padding: 15px 17px; border: 1px solid #e1e7e0; border-radius: 8px; background: #fff; }
.service-page .service-faq summary { color: #26382d; font-size: 13px; font-weight: 800; cursor: pointer; }
.service-page .service-faq p { margin: 10px 0 0; color: #566158; font-size: 13px; line-height: 1.65; }
.service-page .service-related { padding: 37px 0 40px; background: #fff; }
.service-page .related-article-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 17px 0 0; padding: 0; list-style: none; }
.service-page .related-article-list li { min-width: 0; }
.service-page .related-article-list a { display: block; height: 100%; padding: 14px 16px; border: 1px solid #e2e8e1; border-radius: 8px; color: #2c5036; background: #fbfcfa; font-size: 12px; font-weight: 700; line-height: 1.5; }
.service-page .related-article-list a:hover { border-color: #aacbb2; background: #f5faf5; }
.service-page .other-services-section { padding: 40px 0 47px; background: #fbfbfa; }
.service-page .other-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 17px; }
.service-page .other-service-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 136px; padding: 16px; border: 1px solid #e6e9e5; border-radius: 8px; background: #fff; }
.service-page .other-service-card .reference-eyebrow { font-size: 9px; }
.service-page .other-service-card h3 { margin: 0 0 13px; color: #1b2a20; font: 800 16px/1.32 var(--display); letter-spacing: -.02em; }
.service-page .other-service-card h3 a:hover { color: #426d4f; }
.service-page .other-service-card .service-text-link { margin-top: auto; font-size: 11px; }
.service-page .service-final-cta { padding: 0 0 48px; background: #fbfbfa; }
.service-page .service-final-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding: 25px 28px;
  border-radius: 9px;
  background: #203e2e;
}
.service-page .service-final-panel .reference-eyebrow { color: #d2e4d5; }
.service-page .service-final-panel h2 { margin: 0 0 7px; color: #fff; font: 800 clamp(23px, 2.6vw, 30px)/1.18 var(--display); letter-spacing: -.035em; }
.service-page .service-final-panel p:not(.reference-eyebrow) { max-width: 690px; margin: 0; color: #e2ebe3; font-size: 12px; line-height: 1.6; }
.service-page .service-final-panel .button { flex: 0 0 auto; min-height: 43px; font-size: 12px; }
@media (max-width: 940px) {
  .home-page .reference-service-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-page .service-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(250px, .8fr); gap: 26px; }
  .service-page .service-main-grid { grid-template-columns: minmax(0, 1fr) minmax(240px, 300px); gap: 25px; }
  .service-page .other-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .home-page .reference-service-details { gap: 7px; }
  .home-page .reference-service-details a { padding: 8px 9px; font-size: 10px; }
  .service-page .inner-hero { padding: 25px 0 30px; }
  .service-page .service-hero-grid { grid-template-columns: 1fr; gap: 20px; }
  .service-page .service-hero-copy h1 { font-size: clamp(33px, 9vw, 43px); }
  .service-page .service-lede { font-size: 14px; }
  .service-page .service-hero-image { max-width: 560px; }
  .service-page .service-quick-points { gap: 7px; margin-top: 16px; }
  .service-page .service-quick-points li { font-size: 10px; }
  .service-page .service-main-section { padding: 29px 0 38px; }
  .service-page .service-main-grid { grid-template-columns: 1fr; gap: 23px; }
  .service-page .service-aside-card { position: static; }
  .service-page .service-content-card { padding-bottom: 19px; margin-bottom: 20px; }
  .service-page .service-content-card p,
  .service-page .service-content-card li { font-size: 13px; }
  .service-page .service-faq-section,
  .service-page .service-related,
  .service-page .other-services-section { padding: 32px 0 36px; }
  .service-page .related-article-list,
  .service-page .other-service-grid { grid-template-columns: 1fr; }
  .service-page .service-final-cta { padding-bottom: 35px; }
  .service-page .service-final-panel { display: grid; gap: 17px; padding: 22px 19px; }
  .service-page .service-final-panel .button { width: 100%; }
}

.catalog-page .catalog-services-section { padding: 35px 0 48px; background: #fbfbfa; }
.catalog-page .reference-section-heading { margin: 0 auto 23px; text-align: center; }
.catalog-page .reference-section-heading h2 { margin: 0; color: #17251e; font: 800 clamp(25px, 2.8vw, 36px)/1.15 var(--display); letter-spacing: -.04em; }
.catalog-page .reference-section-heading > p:last-child { max-width: 760px; margin: 10px auto 0; color: #59615a; font-size: 13px; line-height: 1.6; }
.catalog-page .reference-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.catalog-page .catalog-service-card { grid-column: auto; }
.catalog-page .catalog-service-card > img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.catalog-page .catalog-service-card .reference-service-copy { min-height: 190px; padding: 15px 17px 17px; }
.catalog-page .catalog-service-card .reference-service-copy h3 { font-size: 18px; }
.catalog-page .catalog-service-card .reference-service-copy p:not(.reference-eyebrow) { font-size: 13px; }
.catalog-page .catalog-service-card .reference-service-button { font-size: 12px; }

.audience-page .audience-content { padding: 35px 0 45px; background: #fbfbfa; }
.audience-page .reference-section-heading { margin: 0 auto 24px; text-align: center; }
.audience-page .reference-section-heading h2 { margin: 0; color: #17251e; font: 800 clamp(25px, 2.8vw, 36px)/1.15 var(--display); letter-spacing: -.04em; }
.audience-page .reference-section-heading > p:last-child { max-width: 720px; margin: 10px auto 0; color: #59615a; font-size: 13px; line-height: 1.6; }
.audience-page .audience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.audience-page .audience-card { overflow: hidden; border: 1px solid #e6e9e5; border-radius: 9px; background: #fff; box-shadow: 0 4px 14px rgba(20,33,25,.035); }
.audience-page .audience-card > img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.audience-page .audience-card > div { padding: 16px 17px 18px; }
.audience-page .audience-card .reference-eyebrow { margin-bottom: 6px; font-size: 10px; }
.audience-page .audience-card h3 { margin: 0 0 8px; color: #1c2821; font: 800 18px/1.25 var(--display); letter-spacing: -.025em; }
.audience-page .audience-card p:last-child { margin: 0; color: #555e57; font-size: 12px; line-height: 1.6; }
.audience-page .audience-scope { padding: 0 0 48px; background: #fbfbfa; }
.audience-page .audience-scope-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, .75fr); align-items: center; gap: 26px; padding: 26px; border-radius: 9px; color: #fff; background: #203e2e; }
.audience-page .audience-scope-panel .reference-eyebrow { color: #d2e4d5; }
.audience-page .audience-scope-panel h2 { max-width: 640px; margin: 0 0 12px; color: #fff; font: 800 clamp(24px, 2.7vw, 32px)/1.16 var(--display); letter-spacing: -.035em; }
.audience-page .audience-scope-panel p:not(.reference-eyebrow) { max-width: 720px; margin: 0 0 10px; color: #e2ebe3; font-size: 13px; line-height: 1.65; }
.audience-page .audience-scope-panel .service-hero-actions { margin-top: 16px; }
.audience-page .audience-scope-panel .button-outline { border-color: rgba(255,255,255,.8); color: #fff; background: transparent; }
.audience-page .audience-scope-panel > img { width: 100%; height: 290px; border-radius: 7px; object-fit: cover; object-position: center 42%; }

@media (max-width: 940px) {
  .audience-page .audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audience-page .audience-scope-panel { grid-template-columns: minmax(0, 1fr) minmax(220px, .75fr); gap: 18px; padding: 22px; }
}
@media (max-width: 700px) {
  .catalog-page .catalog-services-section,
  .audience-page .audience-content { padding: 29px 0 34px; }
  .catalog-page .reference-service-grid,
  .audience-page .audience-grid { grid-template-columns: 1fr; gap: 12px; }
  .catalog-page .catalog-service-card .reference-service-copy { min-height: 0; }
  .audience-page .audience-card > div { padding: 14px; }
  .audience-page .audience-scope { padding-bottom: 35px; }
  .audience-page .audience-scope-panel { grid-template-columns: 1fr; gap: 17px; padding: 21px 18px; }
  .audience-page .audience-scope-panel > img { height: 220px; }
}
