/* Service page: visible scroll choreography and restrained, readable depth. */
.service-page { --service-ease: cubic-bezier(.2,.7,.2,1); }
.service-page .page-head::after { background: linear-gradient(90deg, #a88b53 0 16%, #dae1e1 16%); }
.service-page .service-banner-copy { position: relative; }
.service-page .service-banner-copy::before {
  content: ''; display: block; width: 54px; height: 2px; background: #a88b53; margin-bottom: 30px;
}
.service-page .service-team-scenes>div {
  box-shadow: 0 20px 38px -31px #173f4659;
  transition: box-shadow .6s var(--service-ease);
}
.service-page .service-team-scenes img { transition: transform 1s var(--service-ease); }
.service-page .role-list span { border-color: #b9cecc; box-shadow: 0 8px 16px -16px #294b4b55; }
.service-page #approach, .service-page #process, .service-page #faq { scroll-margin-top: 40px; }

.service-page .support-rows { margin-top: 52px; }
.service-page .support-rows article {
  position: relative; isolation: isolate; padding: 36px 30px; gap: 30px;
  grid-template-columns: 66px minmax(0,.94fr) minmax(0,1.2fr);
  border-top-color: #d4dfdb;
  transition: background-color .38s var(--service-ease), box-shadow .38s var(--service-ease);
}
.service-page .support-rows article:last-child { border-bottom: 1px solid #d4dfdb; }
.service-page .support-rows article::before, .service-page .process-list li::after {
  content: ''; position: absolute; top: -1px; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, #a88b53, #c8d6cf);
  transform: scaleX(1); transform-origin: left;
}
.service-page.service-motion-ready .support-rows article:not([data-service-revealed])::before,
.service-page.service-motion-ready .process-list li:not([data-service-revealed])::after { transform: scaleX(0); }
.service-page .support-rows article::before, .service-page .process-list li::after {
  transition: transform .95s var(--service-ease);
}
.service-page .support-rows article::after {
  content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: #a88b53;
  transform: scaleY(0); transform-origin: top; transition: transform .4s var(--service-ease);
}
.service-page .support-rows .index-number {
  font-size: 34px; line-height: 1.45; color: #948464;
  transition: color .4s, transform .45s var(--service-ease);
}
.service-page .support-rows h3 { color: #243c3e; transition: transform .45s var(--service-ease); }
.service-page .support-rows p { color: #53676a; line-height: 2.1; }
.service-page .support-rows article>h3, .service-page .support-rows article>p { min-width: 0; }

.service-page .process-list { gap: 26px; }
.service-page .process-list li {
  position: relative; padding: 30px 27px 32px; background: #f4f7f5; border-top: 1px solid #d4dfdb;
  transition: transform .45s var(--service-ease), box-shadow .45s var(--service-ease), background-color .4s;
}
.service-page .process-list li::before { color: #896d3e; margin-bottom: 24px; }
.service-page .process-list p { color: #53676a; }
.service-page .process-list h3 { font-size: 20px; }
.service-page .info-layout .detail-table>div { transition: background-color .4s, border-color .4s; }

.service-page .faq-list summary { padding: 26px 20px; transition: background-color .35s, color .35s; }
.service-page .faq-list summary::after {
  content: '+'; display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px;
  border: 1px solid #cbd6d1; color: #315658; font: 24px/1 Arial,sans-serif;
  transition: transform .35s var(--service-ease), background-color .35s, color .35s;
}
.service-page .faq-list details[open] summary { background: #edf3ef; color: #183d42; }
.service-page .faq-list details[open] summary::after { content: '+'; transform: rotate(45deg); background: #fff; }
.service-page .faq-list details p { padding: 22px 20px 28px; color: #53676a; }
.service-page .faq-list summary:focus-visible { outline-offset: -4px; }
.service-info-icon { display: none; }

@media (hover: hover) and (pointer: fine) {
  .service-page .support-rows article:hover { background-color: #fff; box-shadow: 0 18px 32px -24px #1d444b59; z-index: 1; }
  .service-page .support-rows article:hover::after { transform: scaleY(1); }
  .service-page .support-rows article:hover .index-number { color: #32666a; transform: translateY(-2px); }
  .service-page .support-rows article:hover h3 { transform: translateX(5px); }
  .service-page .process-list li:hover { background: #fff; box-shadow: 0 20px 34px -20px #20434b45; transform: translateY(-5px); }
  .service-page .service-team-scenes>div:hover { box-shadow: 0 24px 42px -27px #173f4670; }
  .service-page .service-team-scenes>div:hover img { transform: scale(1.04); }
  .service-page .info-layout .detail-table>div:hover { background-color: #ffffffa8; border-color: #a9bbb2; }
  .service-page .faq-list summary:hover { background: #edf3ef; color: #183d42; }
}
@media(max-width:1100px) {
  .service-page .support-rows article { grid-template-columns: 50px minmax(0,.9fr) minmax(0,1.1fr); padding: 30px 22px; gap: 22px; }
  .service-page .process-list { gap: 22px; }
  .service-page .process-list li { padding: 27px 22px; }
}
@media(max-width:900px) {
  .service-information .eyebrow { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .16em; }
  .service-information .eyebrow::before { content: ''; width: 24px; height: 1px; background: currentColor; }
  .service-information h2 { font-size: clamp(21px, 5.5vw, 26px); font-weight: 700; line-height: 1.65; letter-spacing: 0; }
  .service-info-card {
    margin-top: 30px; background: #fff; border: 1px solid #d5dfda; border-top: 2px solid #a88b53;
    box-shadow: 0 16px 32px -24px #183d4233;
  }
  .service-info-card>div, .service-info-card>div:first-child {
    display: block; padding: 24px 20px; border: 0;
  }
  .service-info-card>div+div { border-top: 1px solid #e0e7e3; }
  .service-info-card dt { display: flex; align-items: center; gap: 11px; color: #243c3e; font-size: 16px; font-weight: 700; }
  .service-info-icon { display: block; flex: none; color: #937445; }
  .service-info-card dd { margin-top: 13px; color: #53676a; font-size: 14px; line-height: 1.95; }
  .service-info-card .service-info-contact { background: #edf3ef; }
  .service-info-card .service-info-link {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    color: #183d42; text-decoration: none;
  }
  .service-info-brand { display: block; font-size: 12px; margin-bottom: 4px; }
  .service-info-action { font-weight: 700; }
  .service-info-link:hover .service-info-action { text-decoration: underline; text-underline-offset: 4px; }
  .service-page .support-rows { margin-top: 32px; }
  .service-page .support-rows article { grid-template-columns: 36px minmax(0,1fr); padding: 26px 14px; gap: 12px 14px; }
  .service-page .support-rows article>p { grid-column: 2; font-size: 15px; }
  .service-page .support-rows .index-number { font-size: 27px; }
  .service-page .support-rows h3 { font-size: clamp(18px,4.6vw,21px); }
  .service-page .process-list h3 { font-size: 19px; }
  .service-page .faq-list summary { padding: 23px 32px 23px 0; gap: 0; }
  .service-page .faq-list summary::after { width: 24px; height: 24px; }
  .service-page .faq-list details p { padding: 19px 0 25px; }
  .service-page .service-banner-copy::before { margin-bottom: 22px; width: 42px; }
}
@media(prefers-reduced-motion:reduce) {
  .service-page *, .service-page *::before, .service-page *::after { animation: none !important; transition: none !important; }
  .service-page .support-rows article::before, .service-page .process-list li::after { transform: none !important; }
}
