/* =========================================================================
   restore-polish.css

   Loaded after the archived stylesheets and after restore-fixes.css.

   Revision, 9 September 2026: the animations added earlier were removed at
   the client's request. Nothing on this site moves that did not move
   originally. What is left below adds no motion at all: it is the keyboard
   and touch handling the original never had, plus two small loading hints.

   Removed in this revision, and deliberately not coming back:
     - buttons lifting and pressing under the pointer
     - loan tiles and article cards lifting, thumbnails scaling
     - the sliding underline on menu items and the dropdown easing in
     - sections rising into view on scroll
     - the back-to-top button
     - smooth scrolling on anchor links
   ========================================================================= */

:root {
  --polish-navy: #123a5c;
}

/* -------------------------------------------------------------------------
   1. Keyboard users can see where they are.

   There was no visible focus state anywhere on the original. This appears
   only when tabbing; a pointer user never sees it.
   ---------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--polish-navy) !important;
  outline-offset: 3px !important;
  border-radius: 4px;
}

/* Jump straight to the content. Hidden until it takes focus. */
.polish-skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100000;
  padding: 12px 18px;
  background: var(--polish-navy);
  color: #fff;
  font: 600 15px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
  border-radius: 8px;
  text-decoration: none;
  margin-left: -9999px;
}

.polish-skip-link:focus {
  margin-left: 0;
}

/* -------------------------------------------------------------------------
   2. Comfortable targets on a phone.

   Several links and icons were well under the 44px that Apple and Google
   both publish as a comfortable thumb target.
   ---------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .jkit-button,
  .elementor-button,
  .jkit-social-icon a,
  .elementor-icon-list-item > a {
    min-height: 44px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .elementor-icon-list-item > a {
    justify-content: flex-start;
  }
}

/* -------------------------------------------------------------------------
   3. The Google reviews carousel.

   The homepage holds seven review screenshots. Elementor draws them as
   background images on empty divs and relies on its media-carousel handler
   to give those divs a height. That handler is the one file the archive
   never captured, so every box computed to 0px high and only the first
   review was ever visible, and then only by accident.

   A ratio box restores them. The background stays `contain`, so no review is
   ever cropped; a taller screenshot simply sits within the box.
   ---------------------------------------------------------------------- */
/*
   The widget also carries a 1.6x scale transform, set in the page builder,
   and its track was sized to suit it: 1140px of column was drawn as 1824px
   and 206px of phone as 330px. Scaling a carousel does not enlarge its
   track, it only pushes the ends out of view, so the sides of every review
   were cut off. The transform comes off and the track fills its column
   honestly instead.
*/
.elementor-widget-media-carousel.e-transform {
  transform: none !important;
}

.elementor-widget-media-carousel .elementor-main-swiper {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/*
   The track and its slides also carried heights chosen for the scaled
   layout: a 137px track holding 107px slides, which then clipped the
   reviews. Heights follow the content instead.
*/
.elementor-widget-media-carousel .elementor-main-swiper,
.elementor-widget-media-carousel .swiper-wrapper,
.elementor-widget-media-carousel .swiper-slide {
  height: auto !important;
}

/*
   A fixed height, tall enough that the deepest screenshot still fits inside
   it. With `contain` the picture is never cropped: a shorter review simply
   sits in the middle of the box.
*/
.elementor-carousel-image {
  width: 100%;
  height: 250px;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}

@media (max-width: 767px) {
  .elementor-carousel-image {
    height: 190px;
  }
}

/* Elementor's arrows sit outside the track and were invisible against the
   white band. */
.elementor-swiper-button {
  color: var(--polish-navy);
  opacity: 0.75;
}

.elementor-swiper-button:hover {
  opacity: 1;
}

/* -------------------------------------------------------------------------
   4. Two loading details, neither of them visible.
   ---------------------------------------------------------------------- */

/* Text stays readable while a web font is still on its way. */
@font-face {
  font-display: swap;
}

/* Images keep their proportions, so nothing jumps as they arrive. */
img {
  height: auto;
}

/* A tapped link should not flash a grey box on iOS. */
a,
button {
  -webkit-tap-highlight-color: rgba(18, 58, 92, 0.12);
}
