/* WordPress-specific additions — everything visual stays in the original four files. */

/* Admin bar offset for the fixed header */
body.admin-bar .uwa-nav { top: 32px; }
@media (max-width: 782px) { body.admin-bar .uwa-nav { top: 46px; } }

/* Section visibility toggles (Section Settings tab) */
@media (min-width: 1025px) { .uwa-hide-desktop { display: none !important; } }
@media (min-width: 601px) and (max-width: 1024px) { .uwa-hide-tablet { display: none !important; } }
@media (max-width: 600px) { .uwa-hide-mobile { display: none !important; } }

/* Pagination */
.uwa-pagination { margin-top: 2.75rem; }
.uwa-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }
.uwa-pagination .page-numbers {
  min-width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0 0.9rem;
  border-radius: var(--uwa-r-full); background: var(--uwa-surface); border: 1px solid var(--uwa-border);
  font-size: var(--uwa-fs-body); font-weight: 500; color: var(--uwa-t1);
}
.uwa-pagination .page-numbers.current { background: var(--uwa-grad); border-color: transparent; color: #fff; }
.uwa-pagination a.page-numbers:hover { border-color: var(--uwa-blue); color: var(--uwa-blue); }

/* The mobile drawer's injected Back button must never appear in the desktop bar. */
.uwa-nav__back { display: none; }

/* Hero rhythm: 100vh banner on desktop with EQUAL gaps between its blocks;
   tighter fixed rhythm on smaller screens. */
.uwa-hero { min-height: 0; padding-top: calc(var(--uwa-nav-h) + 3.25rem); padding-bottom: 3.25rem; }
.uwa-hero__inner { justify-content: flex-start; gap: 2rem; }
@media (min-width: 901px) {
  .uwa-hero {
    min-height: calc(100vh - var(--uwa-marquee-h));
    min-height: calc(100svh - var(--uwa-marquee-h));
  }
  /* space-between = first block top, last block bottom, identical gaps between */
  .uwa-hero__inner { justify-content: space-between; }
  .uwa-hero__metrics { margin-top: 0; }  /* its own margin made the last gap unequal */
}
.uwa-hero__divider { margin: 0; }
@media (max-width: 1024px) {
  .uwa-hero__inner { gap: 1.75rem; }
}
@media (max-width: 600px) {
  .uwa-hero { padding-top: calc(var(--uwa-nav-h) + 2rem); padding-bottom: 2.5rem; display: flex; }
  .uwa-hero__inner { gap: 1.5rem; }
  .uwa-hero__divider { margin: 0; }
}

/* Mobile nav: full-screen drawer + roomier submenu.
   NOTE: the scrolled nav gains backdrop-filter, which makes it the containing
   block for this fixed panel — so the panel must use explicit top + viewport
   height (not bottom:0), which resolves identically in both cases. */
@media (max-width: 900px) {
  /* Anchor the drawer to the nav itself (top:100%) — immune to the blur
     containing-block issue AND to admin-bar offsets, so no gap can ever open
     between header and panel. Solid background so nothing ghosts through. */
  .uwa-nav__menu {
    position: absolute;
    top: 100%; left: 0; right: 0; bottom: auto;
    height: calc(100vh - var(--uwa-nav-h));
    height: calc(100svh - var(--uwa-nav-h));
    max-height: none;
    background: var(--uwa-bg);
  }
  body.admin-bar .uwa-nav__menu {
    height: calc(100vh - var(--uwa-nav-h) - 46px);
    height: calc(100svh - var(--uwa-nav-h) - 46px);
  }
  /* Scrolled nav shrinks to 78px — match, so no sliver shows at the bottom. */
  .uwa-nav.is-scrolled .uwa-nav__menu {
    height: calc(100vh - 78px);
    height: calc(100svh - 78px);
  }
  body.admin-bar .uwa-nav.is-scrolled .uwa-nav__menu {
    height: calc(100vh - 78px - 46px);
    height: calc(100svh - 78px - 46px);
  }
  .uwa-nav__caret { padding: 1rem 1.15rem; }  /* bigger tap target */
  .uwa-nav__sub a:last-child { border-bottom: 0; }
  /* The row divider lives on the flex:1 link, so it stopped short of the caret.
     Put it on the row container instead so it spans full width like the others. */
  .uwa-nav__has-sub { border-bottom: 1px solid var(--uwa-border); }
  .uwa-nav__has-sub .uwa-nav__link { border-bottom: 0; }
  .uwa-nav__menu.is-sub-view .uwa-nav__has-sub { border-bottom: 0; }
  /* The desktop dropdown rules (.is-open/:hover) apply translateX(-50%) with higher
     specificity than the mobile reset, shoving the open panel off-screen. */
  .uwa-nav__has-sub.is-open .uwa-nav__sub,
  .uwa-nav__has-sub:hover .uwa-nav__sub { transform: none; }

  /* ---- Two-level drawer: tapping Services slides the main menu away and
         shows only Back + the parent item + its sub links ---- */
  .uwa-nav__menu > a.uwa-nav__link,
  .uwa-nav__menu > .uwa-nav__cta-mobile { transition: transform 0.26s var(--uwa-ease), opacity 0.26s var(--uwa-ease); }
  .uwa-nav__menu.is-leaving > a.uwa-nav__link,
  .uwa-nav__menu.is-leaving > .uwa-nav__cta-mobile { transform: translateX(-48px); opacity: 0; }
  .uwa-nav__menu.is-sub-view > a.uwa-nav__link,
  .uwa-nav__menu.is-sub-view > .uwa-nav__cta-mobile { display: none; }
  .uwa-nav__menu.is-sub-view .uwa-nav__caret { display: none; }
  /* Parent row: no borders, brand-gradient text */
  .uwa-nav__menu.is-sub-view .uwa-nav__has-sub .uwa-nav__link {
    font-weight: 600; font-size: 1.05rem;
    border-top: 0; border-bottom: 0;
    background: var(--uwa-grad);
    -webkit-background-clip: text; background-clip: text;
    color: transparent; -webkit-text-fill-color: transparent;
  }
  /* Sub list: no card background, smooth staggered entrance */
  .uwa-nav__sub { background: transparent; border-radius: 0; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub { max-height: none; padding-left: 0; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a {
    font-size: 1rem; padding: 1rem 0.25rem;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    animation: uwaSubIn 0.32s var(--uwa-ease) backwards;
    transition: color 0.25s var(--uwa-ease), padding-left 0.25s var(--uwa-ease);
  }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(1) { animation-delay: 0.03s; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(2) { animation-delay: 0.07s; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(3) { animation-delay: 0.11s; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(4) { animation-delay: 0.15s; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(5) { animation-delay: 0.19s; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(6) { animation-delay: 0.23s; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:nth-child(7) { animation-delay: 0.27s; }
  /* Arrow on every service row */
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a::after {
    content: "\f054";
    font-family: "Font Awesome 6 Free"; font-weight: 900;
    font-size: 0.7rem; color: var(--uwa-t3); flex-shrink: 0;
    transition: transform 0.25s var(--uwa-ease), color 0.25s var(--uwa-ease);
  }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:hover,
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:active { color: var(--uwa-blue); padding-left: 0.35rem; }
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:hover::after,
  .uwa-nav__menu.is-sub-view .uwa-nav__sub a:active::after { transform: translateX(4px); color: var(--uwa-blue); }
  .uwa-nav__back {
    display: none; width: 100%; text-align: left;
    padding: 1rem 0.25rem; font-size: 0.95rem; font-weight: 500;
    color: var(--uwa-t2); background: none; border: 0;
    border-bottom: 1px solid var(--uwa-border); cursor: pointer;
  }
  .uwa-nav__back i { margin-right: 0.5rem; font-size: 0.8rem; }
  .uwa-nav__menu.is-sub-view .uwa-nav__back { display: block; }
}
@keyframes uwaSubIn { from { transform: translateX(36px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Testimonials slider (WP enhancement over the static 3-card grid) */
.uwa-tslider { position: relative; margin-top: var(--uwa-sp-xl); }
.uwa-tslider .uwa-testimonials {
  display: flex; overflow-x: auto; gap: 1.5rem; margin-top: 0;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding-bottom: 4px; scrollbar-width: none; -ms-overflow-style: none;
}
.uwa-tslider .uwa-testimonials::-webkit-scrollbar { display: none; }
.uwa-tslider .uwa-testimonial { flex: 0 0 calc((100% - 3rem) / 3); scroll-snap-align: start; }
@media (max-width: 1024px) { .uwa-tslider .uwa-testimonial { flex-basis: calc((100% - 1.5rem) / 2); } }
@media (max-width: 640px)  { .uwa-tslider .uwa-testimonial { flex-basis: 100%; } }
.uwa-tslider .uwa-testimonial__quote {
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical;
  overflow: hidden;
}
.uwa-tslider__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 46px; height: 46px; display: grid; place-items: center;
  border-radius: 50%; background: var(--uwa-surface); border: 1px solid var(--uwa-border);
  color: var(--uwa-t1); font-size: 0.95rem; box-shadow: var(--uwa-shadow-sm); cursor: pointer;
  transition: background var(--uwa-duration) var(--uwa-ease), color var(--uwa-duration) var(--uwa-ease), border-color var(--uwa-duration) var(--uwa-ease);
}
.uwa-tslider__arrow:hover { background: var(--uwa-grad); color: #fff; border-color: transparent; }
.uwa-tslider__arrow--prev { left: -23px; }
.uwa-tslider__arrow--next { right: -23px; }
@media (max-width: 640px) { .uwa-tslider__arrow--prev { left: -8px; } .uwa-tslider__arrow--next { right: -8px; } }
.uwa-tslider__more { display: flex; justify-content: center; margin-top: 2.2rem; }

/* Contact Form 7 — inherit the .uwa-form field design */
.uwa-form .wpcf7-form-control-wrap { display: block; }
.uwa-form textarea.uwa-input { height: 120px; min-height: 120px; resize: none; }
.uwa-form .wpcf7-not-valid-tip { display: block; margin-top: 0.35rem; font-size: 0.85rem; color: #d63638; }
.uwa-form .wpcf7-response-output { margin: 1rem 0 0; padding: 0.85rem 1.1rem; border-radius: var(--uwa-r-md); border: 1px solid var(--uwa-border) !important; font-size: var(--uwa-fs-small); }
.uwa-form form.sent .wpcf7-response-output { border-color: #28c840 !important; color: #1c7a30; }
.uwa-form form.invalid .wpcf7-response-output, .uwa-form form.failed .wpcf7-response-output { border-color: #d63638 !important; color: #a02222; }
.uwa-form .wpcf7-spinner { position: absolute; margin: 12px 0 0 12px; }

/* Default WP content images stay responsive */
.uwa-prose img { max-width: 100%; height: auto; border-radius: var(--uwa-r-md); }

/* Screen-reader text (WP a11y class) */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); }
