/* Native theme components; additions only for image sizing and FAQ behavior. */
.service-grid > div { display: flex; }
.service-tile { width: 100%; display: flex; flex-direction: column; }
.service-tile__image { aspect-ratio: 16 / 10; }
.service-tile__image > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service-tile__image:hover > img { transform: scale(1.025); }
.service-tile__content { display: flex; flex-direction: column; flex: 1; }
.service-tile__content h2 { font-size: 28px; line-height: 1.3; margin: 28px 0 15px; }
.service-tile__content p { margin-bottom: 20px; }
.service-tile__content > .link { align-self: flex-start; margin-top: auto; }
.service-detail-image { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.service-faq details { border-bottom: 1px dashed rgba(0, 0, 0, .12); }
.service-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 0; font-weight: 600; color: var(--titleColor); cursor: pointer; list-style: none; }
.service-faq summary::-webkit-details-marker { display: none; }
.service-faq summary i { color: var(--primaryColor); font-size: 24px; }
.service-faq details[open] summary i { transform: rotate(45deg); }
.service-faq details p { padding-bottom: 20px; }
.service-contact-banner { margin-top: 40px; }
.service-contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.service-related { margin-top: 56px; }
.services-page main a:focus-visible, .services-page summary:focus-visible { outline: 2px solid var(--primaryColor); outline-offset: 4px; }
@media (max-width: 767px) {
  .service-tile__content h2 { font-size: 24px; margin-top: 22px; }
  .service-contact-banner { margin-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-tile__image > img { transition: none; }
  .service-tile__image:hover > img { transform: none; }
}
