
.services-test-page .services-column-grid { --service-column-gap: clamp(32px, 3vw, 56px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--service-column-gap); margin-top: var(--section-spacing); }
.services-test-page .service-column { position: relative; display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; min-width: 0; text-align: left; }
.services-test-page .service-column-copy { display: contents; }
.services-test-page .service-column h2 { font-size: calc(42 * var(--layout-unit)); }
.services-test-page .service-column dl { align-self: start; margin-top: var(--space-related); padding: 0; padding-left: clamp(12px, 1.25vw, 24px); }
.services-test-page .service-column dl > div + div { margin-top: calc(10 * var(--layout-unit)); }
.services-test-page .service-column dt { font-size: max(1rem, calc(19 * var(--layout-unit))); font-weight: 400; color: var(--color-foreground); }
.services-test-page .service-column dd { font-size: max(.9375rem, calc(16 * var(--layout-unit))); font-weight: 200; line-height: 1.55; color: var(--color-foreground); }
.services-test-page .service-column dt a { font-weight: 400; }
.services-test-page .service-column dt a:is(:hover, :focus-visible) { font-weight: 700; }
.services-test-page .service-column dt a span { white-space: nowrap; }
.services-test-page .service-column + .service-column::before { content: ''; position: absolute; top: 0; bottom: 0; left: calc(var(--service-column-gap) / -2); width: 1px; background: #888; pointer-events: none; }
@media (min-width: 761px) and (max-width: 1200px) {
  .services-test-page .services-column-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 64px; }
  .services-test-page .service-column:nth-child(3)::before { content: none; }
  .services-test-page .service-column dt { font-size: 1rem; }
  .services-test-page .service-column dd { font-size: .9375rem; }
}
@media (max-width: 760px) {
  .services-test-page .services-column-grid { grid-template-columns: minmax(0, 1fr); row-gap: 48px; }
  .services-test-page .service-column { display: block; }
  .services-test-page .service-column-copy { display: block; }
  .services-test-page .service-column h2 { font-size: calc(28 * var(--layout-unit)); }
  .services-test-page .service-column dl { margin-top: 40px; }
  .services-test-page .service-column dl > div + div { margin-top: calc(14 * var(--layout-unit)); }
  .services-test-page .service-column dt { font-size: 1rem; }
  .services-test-page .service-column dd { font-size: .9375rem; line-height: 1.55; }
  .services-test-page .service-column + .service-column::before { top: -24px; bottom: auto; left: 0; width: 100%; height: 1px; }
}


.services-test-page .service-column::before { transition: opacity var(--reveal-duration, 520ms) ease; }
.scroll-reveals .services-test-page .service-column:has(.scroll-reveal:not(.scroll-revealed))::before { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .services-test-page .service-column::before { transition: none; } }


.services-test-page { --service-reveal-interval: 160ms; --service-reveal-delay-cap: 480ms; }
.services-test-page .service-column dl > div { --reveal-duration: 800ms; }


.services-test-page .services-faq summary { height: auto; white-space: normal; overflow: visible; }
.services-test-page .services-faq summary .faq-question { display: block; flex: 1 1 0; min-width: 0; font-size: inherit; font-weight: inherit; line-height: inherit; overflow-wrap: break-word; transform: none; }

.services-test-page .services-faq details[open] summary .faq-question { transform: none; }

.services-test-page main { padding-bottom: var(--section-spacing); }


.service-description-toggle { display: none; }
.service-description-toggle .toggle-icon { display: none; }
.service-notes-enabled .service-description-row dd {
  display: grid; grid-template-rows: 0fr; margin: 0; padding: 0;
  visibility: hidden; opacity: 0;
  transition: grid-template-rows 220ms ease, opacity 220ms ease, visibility 220ms;
}
.service-note-content { min-height: 0; overflow: hidden; }
.service-note-copy { padding-top: var(--space-related); }
.service-notes-enabled .service-description-row.description-open dd {
  grid-template-rows: 1fr; visibility: visible; opacity: 1;
}
@media (hover: none), (pointer: coarse), (max-width: 760px) {
  .service-notes-enabled .service-description-row dt { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .service-description-toggle { display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .service-notes-enabled .service-description-row dd { transition: none; }
}
@media (max-width: 760px) {
  .service-name { display: block; }
  .service-description-toggle .service-toggle-label { display: none; }
  .service-description-toggle .toggle-icon { display: inline-block; }
  .service-description-toggle[aria-expanded="true"] .toggle-icon { transform: rotate(45deg); }
  .service-note-copy { padding-top: max(0px, calc(25px - var(--service-control-inset, 0px))); }
}
