/*
  New styles go here, not in the Webflow stylesheets.
  Loaded after omalley-made.webflow.css, so rules here win.
*/

/* ---------------------------------------------------------------
   Contact modal (driven by /js/site.js)
   Matches the old Webflow interaction: open 300ms, close 250ms,
   overlay fades, panel fades and drops 1px into place.
---------------------------------------------------------------- */
.modal_main-wrapper {
  display: flex;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 0.25s;
}
.modal_main-wrapper.is-open {
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.modal_overlay,
.modal_component {
  opacity: 0;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.modal_component {
  transform: translateY(-1px);
}
.modal_main-wrapper.is-open .modal_overlay,
.modal_main-wrapper.is-open .modal_component {
  opacity: 1;
  transform: none;
  transition-duration: 0.3s;
}
.modal_component:focus {
  outline: none;
}

/* Hovering one contact link dims the others (desktop only, as before) */
@media (hover: hover) and (min-width: 992px) {
  .modal_link {
    transition: opacity 0.25s ease;
  }
  .modal_links-wrapper:has(.modal_link:hover) .modal_link:not(:hover) {
    opacity: 0.3;
  }
}

/* "Contact us" triggers are buttons now; keep them looking like the old text links */
button.modal-trigger {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-weight: 700;
  text-align: left;
}

/* ---------------------------------------------------------------
   Testimonial slider: native scroll-snap, arrows in /js/site.js
---------------------------------------------------------------- */
.testimonials_slider-mask {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  white-space: normal;
  column-gap: 2rem; /* keeps sub-pixel scroll positions from showing a sliver of the next slide */
}
.testimonials_slider-mask::-webkit-scrollbar {
  display: none;
}
.testimonials_slider-mask:focus-visible {
  outline: 2px solid var(--highlighter);
  outline-offset: 4px;
}
.testimonials_slide {
  flex: 0 0 100%;
  height: auto;
  scroll-snap-align: start;
}
button.testimonials_nav-button {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
}

/* ---------------------------------------------------------------
   Reduced motion: no movement for people who've asked for none
---------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .modal_main-wrapper,
  .modal_overlay,
  .modal_component,
  .modal_link,
  .sticky-cta_component {
    transition: none !important;
  }
  .testimonials_slider-mask {
    scroll-behavior: auto;
  }
}
