/* ==========================================================================
   Wise Planet Solutions — motion & interaction layer
   Sits on top of the Techzen/Elementor theme. Everything here is additive and
   switched off under prefers-reduced-motion.
   ========================================================================== */

:root {
  --wps-cyan: #30b9d3;
  --wps-indigo: #6d6cdf;
  --wps-navy: #0d173f;
  --wps-grad: linear-gradient(90deg, var(--wps-cyan) 0%, var(--wps-indigo) 100%);
  --wps-ease-out: cubic-bezier(.16, 1, .3, 1);
  --wps-ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --wps-dur: 800ms;
  --wps-dur-ui: 240ms;
  --wps-focus: 0 0 0 3px #fff, 0 0 0 6px rgba(48, 185, 211, .75);
}

/* native smooth scrolling for in-page links (replaces the theme's Lenis scroll-jacking, which made scrolling feel laggy) */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---------- Scroll progress ------------------------------------------------ */
.wps-progress {
  position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 100000;
  background: var(--wps-grad);
  transform-origin: 0 50%; transform: scaleX(0);
  pointer-events: none;
  box-shadow: 0 0 12px rgba(48, 185, 211, .55);
}

/* ---------- Scroll reveals ------------------------------------------------- */
.wps-rv {
  transition:
    opacity var(--wps-dur) var(--wps-ease-out),
    transform var(--wps-dur) var(--wps-ease-out),
    filter var(--wps-dur) var(--wps-ease-out),
    clip-path calc(var(--wps-dur) * 1.25) var(--wps-ease-out);
  transition-delay: var(--wps-d, 0ms);
  will-change: opacity, transform;
}
.wps-rv:not(.is-in) { opacity: 0; }
.wps-rv--up:not(.is-in)    { transform: translate3d(0, 48px, 0); }
.wps-rv--down:not(.is-in)  { transform: translate3d(0, -32px, 0); }
.wps-rv--left:not(.is-in)  { transform: translate3d(-64px, 0, 0); }
.wps-rv--right:not(.is-in) { transform: translate3d(64px, 0, 0); }
.wps-rv--zoom:not(.is-in)  { transform: scale(.92) translate3d(0, 28px, 0); }
.wps-rv--blur:not(.is-in)  { transform: translate3d(0, 24px, 0); filter: blur(10px); }
/* clip lives on the inner wrapper: a fully clipped target never reports as intersecting */
.wps-rv--clip { opacity: 1 !important; }
.wps-rv--clip > .elementor-widget-container {
  transition: clip-path 1100ms var(--wps-ease-out), transform 1400ms var(--wps-ease-out);
  transition-delay: var(--wps-d, 0ms);
}
.wps-rv--clip:not(.is-in) > .elementor-widget-container { clip-path: inset(0 0 100% 0 round 20px); transform: scale(1.06); }
.wps-rv--clip.is-in > .elementor-widget-container { clip-path: inset(0 0 0 0 round 0); }
.wps-rv.is-in { will-change: auto; }

/* Word-by-word heading rise */
.wps-words .wps-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.wps-words .wps-w > span {
  display: inline-block;
  transform: translate3d(0, 105%, 0) rotate(4deg);
  transform-origin: 0 100%;
  transition: transform 900ms var(--wps-ease-out);
  transition-delay: calc(var(--wps-d, 0ms) + var(--wi, 0) * 55ms);
}
.wps-words.is-in .wps-w > span { transform: none; }

/* Arrow sub-titles: arrows draw outward from the label */
.sub-text svg { transition: transform 900ms var(--wps-ease-out), opacity 900ms var(--wps-ease-out); }
.wps-sub:not(.wps-sub--in) .sub-text svg:first-child { transform: translateX(18px); opacity: 0; }
.wps-sub:not(.wps-sub--in) .sub-text svg:last-child  { transform: translateX(-18px); opacity: 0; }
.wps-sub.wps-sub--in .sub-text svg:first-child { animation: wps-nudge-l 2.8s var(--wps-ease-in-out) 1.2s infinite; }
.wps-sub.wps-sub--in .sub-text svg:last-child  { animation: wps-nudge-r 2.8s var(--wps-ease-in-out) 1.2s infinite; }
@keyframes wps-nudge-l { 0%, 100% { transform: none; } 50% { transform: translateX(-5px); } }
@keyframes wps-nudge-r { 0%, 100% { transform: none; } 50% { transform: translateX(5px); } }

/* ---------- Buttons -------------------------------------------------------- */
.rs-btn, .wpcf7-submit, .rstb-template-popup button, .wps-btn,
.popup-container input[type="submit"], .rs-contact-box .phone a {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  cursor: pointer;
  transition:
    transform var(--wps-dur-ui) var(--wps-ease-out),
    box-shadow var(--wps-dur-ui) var(--wps-ease-out),
    filter var(--wps-dur-ui) var(--wps-ease-out) !important;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.rs-btn:hover, .wpcf7-submit:hover, .rstb-template-popup button:hover,
.popup-container input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px -12px rgba(48, 185, 211, .75), 0 6px 14px -8px rgba(109, 108, 223, .6);
}
.rs-btn:active, .wpcf7-submit:active, .rstb-template-popup button:active,
.popup-container input[type="submit"]:active {
  transform: translateY(0) scale(.97);
  box-shadow: 0 6px 14px -10px rgba(48, 185, 211, .8);
  transition-duration: 90ms !important;
}
/* shine sweep (a JS-inserted span — the theme already uses ::before/::after) */
.wps-shine {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .45) 48%, transparent 66%);
  transform: translateX(-120%);
}
.rs-btn:hover .wps-shine, .wpcf7-submit-wrap:hover .wps-shine, .wps-shine-host:hover .wps-shine {
  transform: translateX(120%);
  transition: transform 750ms var(--wps-ease-out);
}
/* click ripple */
.wps-ripple {
  position: absolute; z-index: 4; border-radius: 50%; pointer-events: none;
  width: 16px; height: 16px; margin: -8px 0 0 -8px;
  background: rgba(255, 255, 255, .55);
  transform: scale(0); opacity: 1;
  animation: wps-ripple 650ms var(--wps-ease-out) forwards;
}
@keyframes wps-ripple { to { transform: scale(var(--wps-rs, 24)); opacity: 0; } }
/* arrow icons nudge on hover */
.rs-btn em svg, .rs-btn i { transition: transform 300ms var(--wps-ease-out); }
.rs-btn:hover em svg:last-child, .rs-btn:hover i { transform: translateX(3px); }
/* magnetic wrapper */
.wps-magnet { transition: transform 420ms var(--wps-ease-out); will-change: transform; }

/* keyboard focus — visible everywhere, never on mouse click */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, [tabindex]:focus-visible, .swiper-button-next:focus-visible, .swiper-button-prev:focus-visible {
  outline: none !important;
  box-shadow: var(--wps-focus) !important;
  border-radius: 8px;
}
.rs-btn:focus-visible { border-radius: 999px; }

/* touch targets */
@media (pointer: coarse) {
  .rs-btn, .wpcf7-submit { min-height: 48px; }
  .rstb-template-popup .popup-close, .swiper-button-next, .swiper-button-prev { min-width: 44px; min-height: 44px; }
}

/* ---------- Cards ---------------------------------------------------------- */
.wps-card {
  transition: transform 500ms var(--wps-ease-out), box-shadow 500ms var(--wps-ease-out);
  transform-style: preserve-3d;
}
.wps-card:hover {
  box-shadow: 0 30px 60px -28px rgba(13, 23, 63, .55), 0 10px 24px -14px rgba(48, 185, 211, .45);
}
.wps-card--lift:hover { transform: translateY(-8px); }
.wps-card--flat:hover { transform: none; }
.wps-card--tilt { transition-duration: 180ms, 500ms; }
.wps-glare {
  position: absolute; inset: 0; z-index: 5; pointer-events: none; border-radius: inherit;
  background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .22), transparent 45%);
  opacity: 0; transition: opacity 300ms var(--wps-ease-out);
}
.wps-card:hover .wps-glare { opacity: 1; }
/* background-image cards: slow zoom via a cloned layer */
.wps-has-bg { isolation: isolate; }
.wps-bg-layer { position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit; overflow: hidden; }
.wps-bg-layer > i {
  position: absolute; inset: 0; display: block;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  transform: scale(1.001);
  transition: transform 1400ms var(--wps-ease-out);
}
.wps-card:hover .wps-bg-layer > i { transform: scale(1.07); }

/* service card images */
.rs-addon-services .image_style img { transition: transform 900ms var(--wps-ease-out); }
.rs-addon-services:hover .image_style img { transform: scale(1.06) rotate(-1deg); }

/* benefits carousel — icons bob on hover; captions were collapsing (line-height: 0) */
.elementor-element-43093c8 figcaption.elementor-image-carousel-caption {
  line-height: 1.35 !important; margin-top: 10px; min-height: 2.7em;
}
.elementor-element-43093c8 .swiper-slide-image { transition: transform 500ms var(--wps-ease-out), filter 500ms; }
.elementor-element-43093c8 .swiper-slide:hover .swiper-slide-image {
  transform: translateY(-8px) scale(1.06);
  filter: drop-shadow(0 12px 14px rgba(48, 185, 211, .45));
}


/* FAQ rows */
.elementor-element-2ade4358 .accordion-item, .elementor-element-2ade4358 .card {
  transition: background-color 300ms, transform 300ms var(--wps-ease-out);
}
.elementor-element-2ade4358 .accordion-button, .elementor-element-2ade4358 .card-header a { transition: color 250ms, transform 300ms var(--wps-ease-out); }
.elementor-element-2ade4358 .accordion-button:hover, .elementor-element-2ade4358 .card-header a:hover { transform: translateX(8px); color: var(--wps-cyan); }

/* ---------- Kinetic big type ---------------------------------------------- */
.wps-drift { will-change: transform; }

/* ---------- Anchors under the sticky header ------------------------------- */
[id="about"], [id="stations"], [id="construction"], [id="analytics"], [id="benefits"], [id="faq"], #inquiry { scroll-margin-top: 110px; }
.wps-anchor { display: block; position: relative; top: -120px; visibility: hidden; }

/* Knowledge Center has no posts to show — hide the empty block until a blog exists */
.elementor-element-614c3ce9 { display: none !important; }

/* ---------- Page transitions ---------------------------------------------- */
.wps-curtain {
  position: fixed; inset: 0; z-index: 100001; pointer-events: none;
  display: grid; place-items: center;
  background: radial-gradient(120% 120% at 50% 100%, var(--wps-indigo) 0%, var(--wps-navy) 55%);
  clip-path: circle(0% at var(--cx, 50%) var(--cy, 50%));
  transition: clip-path 620ms var(--wps-ease-in-out);
}
.wps-curtain svg { width: 54px; height: 54px; opacity: 0; transform: translateY(12px) scale(.8); transition: opacity 400ms var(--wps-ease-out) 220ms, transform 400ms var(--wps-ease-out) 220ms; }
html.wps-leaving .wps-curtain { clip-path: circle(150% at var(--cx, 50%) var(--cy, 50%)); pointer-events: all; }
html.wps-leaving .wps-curtain svg { opacity: 1; transform: none; }

/* ---------- Cursor (fine pointers only) ------------------------------------ */
.wps-cursor {
  position: fixed; left: 0; top: 0; z-index: 100002; pointer-events: none;
  width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%;
  border: 1.5px solid rgba(48, 185, 211, .75);
  background: radial-gradient(circle, rgba(48, 185, 211, .12), transparent 70%);
  /* position comes from the JS-set `translate`; size changes use `scale` so nothing reflows */
  transition: scale 300ms var(--wps-ease-out), background-color 300ms, border-color 300ms, opacity 300ms;
  opacity: 0;
  mix-blend-mode: normal;
}
.wps-cursor.is-on { opacity: 1; }
.wps-cursor.is-hover { scale: 1.9; background-color: rgba(48, 185, 211, .12); border-color: rgba(109, 108, 223, .6); }
.wps-cursor.is-down { scale: .75; }
.wps-cursor-dot { position: fixed; left: 0; top: 0; z-index: 100002; pointer-events: none; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--wps-cyan); opacity: 0; transition: opacity 300ms; }
.wps-cursor-dot.is-on { opacity: 1; }

/* ---------- Header layout -------------------------------------------------
   From 1025px up the side columns hug their content; 1025–1200px uses the theme hamburger (nav-breakpoint-xl).
   The theme gave logo / menu / actions three fixed ~390px columns, which
   squeezed the menu into two rows. Side columns now hug their content and the
   menu takes the rest on a single line. (main header + sticky copy) */
@media (min-width: 1025px) {
  .elementor-element-3de4876, .elementor-element-582c934,
  .elementor-element-77d03a9, .elementor-element-81a6287 {
    flex: 0 0 auto !important; width: auto !important; max-width: none !important;
  }
  .elementor-element-5291ad6, .elementor-element-94336c1 {
    flex: 1 1 auto !important; width: auto !important; min-width: 0 !important;
    display: flex !important; justify-content: center !important;
    padding-inline: clamp(12px, 2vw, 32px) !important;
  }
  .elementor-element-5291ad6 > .elementor-element, .elementor-element-94336c1 > .elementor-element { width: auto !important; }
  header .rstb-nav-menu.nav-horizontal > ul, .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul {
    flex-wrap: nowrap !important; justify-content: center !important;
  }
  header .rstb-nav-menu.nav-horizontal > ul > li, .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li {
    margin: 0 clamp(8px, 1.1vw, 18px) !important; white-space: nowrap;
  }
  /* menu underline that grows from the centre */
  header .rstb-nav-menu.nav-horizontal > ul > li > a .menu-item-text,
  .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li > a .menu-item-text { position: relative; }
  header .rstb-nav-menu.nav-horizontal > ul > li > a .menu-item-text::after,
  .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li > a .menu-item-text::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; border-radius: 2px;
    background: var(--wps-grad); transform: scaleX(0); transform-origin: 50% 50%;
    transition: transform 350ms var(--wps-ease-out);
  }
  header .rstb-nav-menu.nav-horizontal > ul > li:hover > a .menu-item-text::after,
  header .rstb-nav-menu.nav-horizontal > ul > li > a:focus-visible .menu-item-text::after,
  header .rstb-nav-menu.nav-horizontal > ul > li.wps-current > a .menu-item-text::after,
  .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li:hover > a .menu-item-text::after,
  .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li.wps-current > a .menu-item-text::after { transform: scaleX(1); }
}

/* ---------- Header polish -------------------------------------------------- */
.rstb-sticky-up.is-sticky { box-shadow: 0 18px 40px -26px rgba(13, 23, 63, .45); }
.rstb-sticky-up.is-sticky .elementor-widget-container { transition: none; }
.menu-item > a { transition: color 250ms, transform 250ms var(--wps-ease-out); }
.sub-menu .menu-item > a:hover, .sub-menu .menu-item > a:focus-visible { transform: translateX(6px); }

/* back-to-top */
#scrollUp { transition: transform 300ms var(--wps-ease-out), box-shadow 300ms !important; cursor: pointer; }
#scrollUp:hover { transform: translateY(-4px); box-shadow: 0 12px 26px -10px rgba(48, 185, 211, .8); }
#scrollUp:hover .arrowup { animation: wps-bob 900ms var(--wps-ease-in-out) infinite; }
@keyframes wps-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

/* ---------- Newsletter popup ---------------------------------------------- */
.rstb-template-popup.show-popup .popup-container { animation: wps-pop 700ms var(--wps-ease-out) both; }
.rstb-template-popup.show-popup .popup-overly { animation: wps-fade 400ms ease-out both; }
@keyframes wps-pop { from { opacity: 0; transform: translateY(30px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes wps-fade { from { opacity: 0; } to { opacity: 1; } }
.rstb-template-popup .popup-close { transition: transform 300ms var(--wps-ease-out); cursor: pointer; }
.rstb-template-popup .popup-close:hover { transform: rotate(90deg); }

/* ---------- Forms ---------------------------------------------------------- */
.wpcf7-form input:not([type="checkbox"]):not([type="submit"]), .wpcf7-form textarea {
  transition: border-color 250ms, box-shadow 250ms, background-color 250ms !important;
}
.wpcf7-form input:not([type="checkbox"]):not([type="submit"]):focus, .wpcf7-form textarea:focus {
  border-color: var(--wps-cyan) !important;
  box-shadow: 0 0 0 4px rgba(48, 185, 211, .18) !important;
}
.wpcf7-form .wps-invalid { border-color: #e5484d !important; box-shadow: 0 0 0 4px rgba(229, 72, 77, .14) !important; }
.wpcf7-form .wps-tip {
  display: flex; align-items: center; gap: 6px;
  margin-top: 6px; font-size: 14px; line-height: 1.35; color: #c9262c;
  animation: wps-drop 300ms var(--wps-ease-out);
}
.wpcf7-form .wps-tip::before { content: "!"; flex: none; display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: #e5484d; color: #fff; font-size: 11px; font-weight: 700; }
.wpcf7-form.wps-shake { animation: wps-shake 420ms var(--wps-ease-out); }
@keyframes wps-shake { 20% { transform: translateX(-8px); } 40% { transform: translateX(7px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(3px); } }
@keyframes wps-drop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.wpcf7-form .wps-status {
  display: flex; gap: 12px; align-items: flex-start;
  margin-top: 16px; padding: 14px 16px; border-radius: 14px;
  font-size: 15px; line-height: 1.5;
  animation: wps-drop 350ms var(--wps-ease-out);
}
.wpcf7-form .wps-status[hidden] { display: none; }
.wpcf7-form .wps-status--ok { background: #effbfd; border: 1px solid rgba(48, 185, 211, .55); color: #0d173f; }
.wpcf7-form .wps-status--err { background: #fff1f1; border: 1px solid rgba(217, 48, 54, .45); color: #9f1d22; }
.wpcf7-form .wps-status a { color: inherit; text-decoration: underline; font-weight: 600; }
.wpcf7-form.wps-on-dark .wps-tip { color: #ff9a9d; }
.wpcf7-form.wps-on-dark .wps-invalid { border-color: #ff7a7e !important; }
.wps-check { flex: none; width: 26px; height: 26px; }
.wps-check circle { stroke-dasharray: 76; stroke-dashoffset: 76; animation: wps-draw 600ms var(--wps-ease-out) forwards; }
.wps-check path { stroke-dasharray: 24; stroke-dashoffset: 24; animation: wps-draw 400ms var(--wps-ease-out) 450ms forwards; }
@keyframes wps-draw { to { stroke-dashoffset: 0; } }
.wpcf7-form.is-sending .wpcf7-submit, .wpcf7-form.is-sending button[type="submit"] { opacity: .7; pointer-events: none; }
.wpcf7-form.is-sending .wps-spin { display: inline-block; }
.wps-spin { display: none; width: 16px; height: 16px; margin-left: 10px; vertical-align: -3px; border-radius: 50%; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; animation: wps-rot 700ms linear infinite; }
@keyframes wps-rot { to { transform: rotate(360deg); } }

/* topic chip on the contact form */
.wps-topic {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px;
  padding: 8px 14px 8px 10px; border-radius: 999px;
  background: rgba(48, 185, 211, .12); border: 1px solid rgba(48, 185, 211, .4);
  font-size: 14px; line-height: 1.3; animation: wps-drop 500ms var(--wps-ease-out);
}
.wps-topic::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wps-grad); box-shadow: 0 0 0 4px rgba(48, 185, 211, .2); }

/* ---------- Footer credit pill (Emanna Digital signature — gold stays fixed) */
.wps-copyright-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.wps-copyright-row .rstb-copyright { margin: 0; }
.footer-credit-bubble {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .45rem 1.1rem .45rem .5rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .14);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  color: rgba(255, 255, 255, .8) !important;
  font-size: .84rem; font-weight: 500; line-height: 1.2;
  text-decoration: none !important;
  transition: background 220ms var(--wps-ease-out), border-color 220ms var(--wps-ease-out),
              transform 220ms var(--wps-ease-out), box-shadow 220ms var(--wps-ease-out);
}
.footer-credit-bubble:hover, .footer-credit-bubble:focus-visible {
  background: rgba(255, 255, 255, .14);
  border-color: rgba(255, 255, 255, .32);
  transform: translateY(-1px);
  box-shadow:
    0 10px 28px -12px rgba(0, 0, 0, .5),
    0 0 0 1px rgba(169, 128, 63, .25),
    0 0 22px 4px rgba(169, 128, 63, .45),
    0 0 46px 10px rgba(169, 128, 63, .22) !important;
}
.footer-credit-bubble img { height: 24px; width: auto; display: block; transition: filter 220ms var(--wps-ease-out); }
.footer-credit-bubble:hover img, .footer-credit-bubble:focus-visible img { filter: drop-shadow(0 0 6px rgba(169, 128, 63, .65)); }
.footer-credit-bubble strong { color: #fff; font-weight: 700; }

/* five-item menu (Events & Festivals / Construction & Spike Sites / Electrolyte & Specialty / About Us / Contact):
   tighten the one-row header as the width drops; below 1201px the theme hamburger takes over.
   The phone number stays in the side panel, footer, HOT LINE pill and Contact page. */
@media (min-width: 1025px) and (max-width: 1699px) {
  /* main header + sticky copy */
  .elementor-element-044ff82, .elementor-element-6ad9110,
  .elementor-element-de862a6, .elementor-element-3fd521f { display: none !important; }
}
/* 1025–1200: theme hamburger (nav-breakpoint-xl) — keep its button at the right, next to the CTA */
@media (min-width: 1025px) and (max-width: 1200px) {
  .elementor-element-5291ad6, .elementor-element-94336c1 { justify-content: flex-end !important; }
  .elementor-element-1287bdb, .elementor-element-54cf734 { margin-left: auto !important; }
  header .elementor-widget-rstb-offcanvas, .rstb-sticky-up .elementor-widget-rstb-offcanvas { display: none !important; }
}
@media (min-width: 1201px) and (max-width: 1439px) {
  header .elementor-widget-rstb-offcanvas, .rstb-sticky-up .elementor-widget-rstb-offcanvas { display: none !important; }
  .elementor-element-5291ad6, .elementor-element-94336c1 { padding-inline: 10px !important; }
  header .rstb-nav-menu.nav-horizontal > ul > li, .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li { margin: 0 9px !important; }
  header .rstb-nav-menu.nav-horizontal > ul > li > a, .rstb-sticky-up .rstb-nav-menu.nav-horizontal > ul > li > a { font-size: 14.5px !important; }
  header .rs-button .rs-btn, .rstb-sticky-up .rs-button .rs-btn { padding-left: 18px !important; padding-right: 18px !important; }
}

/* ---------- "Trusted at events like" marquee (ported from the WTR.GURU site) --- */
.wps-trust { display: flex; flex-direction: column; align-items: stretch; gap: 22px; width: 100%; padding: clamp(28px, 4vw, 48px) 0; }
.wps-trust-label {
  display: flex; align-items: center; justify-content: center; gap: 14px; margin: 0 !important;
  font-weight: 600; font-size: 12px; line-height: 1.3; letter-spacing: .16em; text-transform: uppercase; color: rgba(13, 23, 63, .7) !important;
}
.wps-trust-label::before, .wps-trust-label::after { content: ""; width: 44px; height: 1px; background: var(--wps-grad); flex: 0 0 auto; }
.wps-trust-mq {
  display: flex; overflow: hidden; width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.wps-trust-track {
  flex: 0 0 auto; display: flex; align-items: center; gap: clamp(34px, 4vw, 60px);
  padding: 6px clamp(34px, 4vw, 60px) 6px 0 !important; margin: 0 !important; list-style: none;
  animation: wps-trust-scroll 60s linear infinite;
}
@keyframes wps-trust-scroll { to { transform: translate3d(-100%, 0, 0); } }
/* pause so a name can be read */
.wps-trust-mq:hover .wps-trust-track, .wps-trust-mq:focus-within .wps-trust-track { animation-play-state: paused; }
.wps-trust-track li {
  display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; margin: 0 !important; padding: 0 !important; white-space: nowrap;
  font-weight: 600; font-size: clamp(17px, 1.5vw, 21px); letter-spacing: -.01em; line-height: 1.2; color: var(--wps-navy);
  transition: color .35s ease, transform .5s var(--wps-ease-out);
}
.wps-trust-track li::before { display: none !important; }
.wps-trust-track li:hover { color: var(--wps-cyan); transform: translateY(-3px); }
.wps-trust-drop { width: .8em; height: .8em; flex: 0 0 auto; fill: rgba(48, 185, 211, .35); stroke: var(--wps-cyan); stroke-width: 1.4; transition: fill .35s ease; }
.wps-trust-track li:hover .wps-trust-drop { fill: var(--wps-cyan); }
/* logo items: the image replaces the droplet + name (name stays for screen readers) */
/* scoped + !important: Elementor's `.elementor img { height: auto }` otherwise wins */
.wps-trust .wps-trust-logo {
  display: block; width: auto !important; height: var(--lh, 46px) !important; max-width: 240px !important; object-fit: contain;
  filter: grayscale(1) contrast(1.05); opacity: .78; transition: filter .4s ease, opacity .4s ease;
}
.wps-trust-track li:hover .wps-trust-logo { filter: none; opacity: 1; }
.wps-trust-track li.has-logo { gap: 0; }
.wps-trust-track li.has-logo .wps-trust-drop, .wps-trust-track li.has-logo .wps-trust-name {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
}
/* white-on-transparent artwork is shown dark so it reads on the light strip */
.wps-trust-logo--white, .wps-trust-track li:hover .wps-trust-logo--white { filter: brightness(0); opacity: .8; }
@media (max-width: 575px) {
  .wps-trust-track { animation-duration: 30s; }
  .wps-trust-track li { font-size: 17px; }
  .wps-trust .wps-trust-logo { height: calc(var(--lh, 46px) * .72) !important; max-width: 170px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .wps-trust-mq { -webkit-mask-image: none; mask-image: none; overflow: visible; }
  .wps-trust-track { animation: none; flex-wrap: wrap; justify-content: center; flex: 1 1 auto; padding: 0 20px !important; gap: 14px 30px; }
  .wps-trust-track[aria-hidden="true"] { display: none; }
}

/* ---------- Footer ----------------------------------------------------------
   The WISE PLANET SOLUTIONS watermark wrapped onto two 220px lines, leaving a
   ~450px empty band. Keep it on one line, sized to the footer's width. */
.elementor-element-48efecc9 { container-type: inline-size; width: 100% !important; }
.elementor-element-48efecc9 .title {
  white-space: nowrap !important;
  font-size: 6.55cqw !important;
  line-height: 1.05 !important;
  letter-spacing: .03em !important;
  margin: 0 !important;
  text-align: center;
}
.elementor-element-48efecc9 .prelements-heading { margin: 0 !important; padding: 0 !important; }
.elementor-element-48efecc9 > .elementor-widget-container { margin: clamp(16px, 3cqw, 36px) 0 clamp(4px, 1cqw, 12px) !important; }
/* quick links become a tidy two-column list */
#menu-quick-links { display: grid !important; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px 28px; justify-content: start !important; justify-items: start !important; }
#menu-quick-links > li { margin: 0 !important; padding: 0 !important; }
#menu-quick-links > li > a { padding: 0 !important; }
#menu-quick-links a { display: inline-flex; align-items: center; min-height: 32px; transition: color 250ms, transform 300ms var(--wps-ease-out); }
#menu-quick-links a:hover, #menu-quick-links a:focus-visible { color: var(--wps-cyan) !important; transform: translateX(4px); }
@media (max-width: 575px) { #menu-quick-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* footer contact links + credit row on small screens */
.elementor-element-464a49e8 a[href^="mailto:"], .elementor-element-464a49e8 a[href^="tel:"] { transition: color 250ms; }
.elementor-element-464a49e8 a[href^="mailto:"]:hover, .elementor-element-464a49e8 a[href^="tel:"]:hover { color: var(--wps-cyan) !important; }
@media (max-width: 767px) {
  .wps-copyright-row { justify-content: center; text-align: center; }
}

/* ---------- Polish pass ---------------------------------------------------- */
/* browser surfaces in the brand palette */
::selection { background: rgba(48, 185, 211, .28); color: #0d173f; }
.elementor-element-464a49e8 ::selection, #benefits ::selection { background: rgba(48, 185, 211, .45); color: #fff; }
input, textarea { caret-color: var(--wps-cyan); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--wps-cyan); }
a { text-underline-offset: .18em; text-decoration-thickness: from-font; }
html { scrollbar-color: rgba(13, 23, 63, .35) transparent; scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #30b9d3, #6d6cdf); border-radius: 999px; border: 3px solid #f7f9fc; }

/* theme demo leftovers with nothing of the brand in them */
.elementor-element-a626680 { display: none !important; }             /* map embed pointed at the theme demo location */


/* carousel arrows: 40px hit area around the existing glyph */
.elementor-swiper-button { width: 40px !important; height: 40px !important; display: grid !important; place-items: center; border-radius: 50%; transition: background-color 250ms, transform 300ms var(--wps-ease-out); }
.elementor-swiper-button:hover { background: rgba(255, 255, 255, .12); }
.elementor-swiper-button:active { transform: scale(.92); }


/* ---------- Reduced motion ------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .wps-rv, .wps-rv > .elementor-widget-container, .wps-words .wps-w > span { transition: none !important; opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
  .wps-cursor, .wps-cursor-dot, .wps-progress { display: none !important; }
  .wps-sub .sub-text svg { animation: none !important; transform: none !important; opacity: 1 !important; }
  .wps-card, .wps-card:hover, .wps-bg-layer > i, .rs-btn:hover, .wps-magnet { transform: none !important; }
  .wps-shine, .wps-ripple { display: none !important; }
  .wps-curtain { display: none !important; }
  .rstb-template-popup.show-popup .popup-container { animation: none; }
}

/* ---------- Photo row under the hero: three slots --------------------------
   Slot 1 = construction kiosk (56a47d7d), slot 2 = PURITY (5e3b67f2), slot 3 = .wps-photo-slot--3.
   To add the third photo, swap the placeholder url below for the new image. */
.wps-photo-slot--3 {
  background-image: url("../img/photo-slot.svg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.elementor-19 .elementor-element.wps-photo-slot { --border-radius: 20px; border-radius: 20px; min-height: 506px; }
@media (min-width: 1025px) {
  .elementor-19 .elementor-element.elementor-element-4bf95eb2 { --justify-content: flex-start; gap: 20px; }
  .elementor-19 .elementor-element.elementor-element-4bf95eb2 > .elementor-element-56a47d7d { --width: calc((100% - 40px) * .5); flex: 0 0 auto; }
  .elementor-19 .elementor-element.elementor-element-4bf95eb2 > .elementor-element-5e3b67f2,
  .elementor-19 .elementor-element.elementor-element-4bf95eb2 > .wps-photo-slot { --width: calc((100% - 40px) * .25); width: var(--width); flex: 0 0 auto; }
  /* the narrower cards: keep the "2K+ Popular Usage" box and the vertical PURITY word inside their cards */
  .elementor-19 .elementor-element.elementor-element-07b319a { --width: min(248px, 45%); }
  .elementor-19 .elementor-element.elementor-element-d21edb7 { font-size: clamp(56px, 6.3vw, 88px); margin-right: -1.05em; }
  .elementor-19 .elementor-element.elementor-element-d21edb7 .elementor-heading-title { font-size: 1em; }
}
@media (max-width: 1024px) {
  .elementor-19 .elementor-element.wps-photo-slot { --width: 100%; width: 100%; min-height: 450px; }
}
@media (max-width: 767px) {
  .elementor-19 .elementor-element.wps-photo-slot { min-height: 300px; }
}

/* ---------- Contact page: inquiry type tabs + tailored fields ---------------- */
.wpcf7-form .wps-form-tabs {
  display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 26px; padding: 6px;
  border-radius: 16px; background: #fff; border: 1px solid rgba(48, 185, 211, .25);
}
.wpcf7-form .wps-form-tabs button {
  flex: 1 1 auto; margin: 0 !important; padding: 11px 16px !important; min-height: 0 !important; width: auto !important;
  border: 0 !important; border-radius: 11px !important; background: transparent !important; box-shadow: none !important;
  color: #0d173f !important; font: 600 14px/1.25 Manrope, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important;
  cursor: pointer; transition: background-color 220ms ease, color 220ms ease;
}
.wpcf7-form .wps-form-tabs button:hover { background: rgba(48, 185, 211, .12) !important; }
.wpcf7-form .wps-form-tabs button[aria-selected="true"] { background: var(--wps-grad) !important; color: #fff !important; }
.wpcf7-form .wps-form-tabs button:focus-visible { outline: 2px solid #30b9d3; outline-offset: 2px; }
.wpcf7-form select.wps-select {
  width: 100%; height: 56px; padding: 0 44px 0 15px; border: 0; border-radius: 12px; background-color: #fff;
  color: #0d173f; font: 16px Manrope, sans-serif;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2330b9d3' d='M12 13.17l4.95-4.95 1.41 1.41L12 16 5.64 9.63l1.41-1.41z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 22px;
}
.wpcf7-form select.wps-select:invalid, .wpcf7-form select.wps-select option[value=""] { color: #8a8fa3; }
.wpcf7-form input[type="date"] { min-height: 56px; }
.wps-extra-field { animation: wps-drop 400ms var(--wps-ease-out) both; }
@media (prefers-reduced-motion: reduce) { .wps-extra-field { animation: none; } }
@media (max-width: 600px) {
  .wpcf7-form .wps-form-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .wpcf7-form .wps-form-tabs button { padding: 10px 8px !important; font-size: 13px !important; }
}

/* "Pure Water. Anywhere." card (400c1d21): on phones keep the branded station in view */
@media (max-width: 767px) {
  .elementor-19 .elementor-element.elementor-element-400c1d21:not(.elementor-motion-effects-element-type-background) { background-position: center, 92% center; }
}

/* Contact page: a photo for each inquiry type, above the form title */
.wps-inquiry-photo {
  margin: 0 0 28px;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 16 / 8;
  background: linear-gradient(135deg, #30b9d3, #1b3f73);
  box-shadow: 0 18px 40px -22px rgba(27, 63, 115, .55);
}
.wps-inquiry-photo[hidden] { display: none; }
.wps-inquiry-photo img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center 40%;
}
.wps-inquiry-photo.is-in img { animation: wps-photo-in .7s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes wps-photo-in {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 767px) {
  .wps-inquiry-photo { aspect-ratio: 4 / 3; margin-bottom: 20px; border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .wps-inquiry-photo.is-in img { animation: none; }
}

/* Contact page: the email/phone card stays in view beside the long form (desktop) */
@media (min-width: 1025px) {
  /* theme's overflow-x:hidden on html/body turns body into a scroll box, which stops sticky; clip keeps the no-sideways-scroll without that */
  html:has(.elementor-9), html:has(.elementor-9) body { overflow-x: clip; overflow-y: visible; }
  .elementor-9 .elementor-element.elementor-element-6ef6c47 { position: sticky; top: 120px; }
}
