/*
Theme Name: SWAVE Clean 0.7.3
Theme URI: https://swavelife.com/
Author: SWAVE
Description: Staged de-TenWeb SWAVE theme. The theme owns the site header and footer; TenWeb Builder remains temporarily only for remaining body widgets/templates.
Version: 0.7.3
Text Domain: swave
*/

:root {
  --swave-text: #111111;
  --swave-muted: #666666;
  --swave-border: #e7e7e7;
  --swave-blue: #0788ff;
  --swave-bg: #ffffff;
  --swave-max: 1500px;
  --swave-header-h: 76px;
  --swave-content-gutter: clamp(28px, 4vw, 64px);
  --swave-section-y: clamp(56px, 5vw, 72px);
}

* { box-sizing: border-box; }
html { margin: 0; padding: 0; }
body {
  margin: 0;
  color: var(--swave-text);
  background: var(--swave-bg);
  font-family: "PT Sans", Arial, Helvetica, sans-serif;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
.swave-screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* =========================================================
   Stage 3 de-TenWeb: native header, footer and Connect form are authoritative.
   Keep TenWeb Builder active for body widgets, but suppress the
   two confirmed live TenWeb header templates (330 / 333).
   ========================================================= */
[data-elementor-type="twbb_header"][data-elementor-id="330"],
[data-elementor-type="twbb_header"][data-elementor-id="333"],
.elementor.elementor-330[data-elementor-type*="header"],
.elementor.elementor-333[data-elementor-type*="header"] {
  display: none !important;
}


/* Suppress the confirmed live TenWeb footer template while Builder remains active. */
[data-elementor-type="twbb_footer"][data-elementor-id="331"],
.elementor.elementor-331[data-elementor-type*="footer"],
.elementor-location-footer .elementor.elementor-331 {
  display: none !important;
}

/* =========================================================
   SWAVE shell header
   - Deliberately uses div/role markup rather than <header>/<nav>
     so old TenWeb/Elementor element selectors cannot resize it.
   - No DOM scanning or MutationObserver.
   ========================================================= */
#swave-shell-header.swave-shell-header {
  position: relative !important;
  z-index: 10000 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: var(--swave-header-h) !important;
  min-height: var(--swave-header-h) !important;
  max-height: var(--swave-header-h) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: #ffffff !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
  box-shadow: none !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  line-height: normal !important;
  isolation: isolate;
  transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}

#swave-shell-header *,
#swave-shell-header *::before,
#swave-shell-header *::after {
  box-sizing: border-box !important;
}

#swave-shell-header .swave-shell-header__inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 32px !important;
  width: min(calc(100% - 64px), var(--swave-max)) !important;
  height: var(--swave-header-h) !important;
  min-height: var(--swave-header-h) !important;
  max-height: var(--swave-header-h) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: visible !important;
}

#swave-shell-header .swave-shell-brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-decoration: none !important;
  line-height: 1 !important;
}

#swave-shell-header .swave-shell-brand img,
#swave-shell-header .swave-shell-brand .custom-logo,
#swave-shell-header .swave-logo-image {
  display: block !important;
  width: 142px !important;
  height: auto !important;
  max-width: 142px !important;
  max-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
}

#swave-shell-header .swave-brand-text {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 38px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  background: linear-gradient(90deg,#5368ff,#0db5df) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
}

#swave-shell-header .swave-shell-primary-nav {
  display: block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  overflow: visible !important;
}

#swave-shell-header .swave-shell-primary-nav > ul,
#swave-shell-header .swave-header-menu {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  list-style: none !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#swave-shell-header .swave-shell-primary-nav li {
  display: block !important;
  position: relative !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#swave-shell-header .swave-shell-primary-nav a,
#swave-shell-header .swave-shell-primary-nav a:visited {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 13px 18px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  background: transparent !important;
  border: 0 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 24px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

#swave-shell-header .swave-shell-primary-nav a:hover,
#swave-shell-header .swave-shell-primary-nav .current-menu-item > a {
  color: var(--swave-blue) !important;
  -webkit-text-fill-color: var(--swave-blue) !important;
}

#swave-shell-header.swave-shell-header--overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  background: transparent !important;
  border-bottom-color: transparent !important;
}

body.admin-bar #swave-shell-header.swave-shell-header--overlay {
  top: 32px !important;
}

#swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a,
#swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a:visited,
#swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

#swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a:hover,
#swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav .current-menu-item > a {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: .78 !important;
}

#swave-shell-header.swave-shell-header--overlay.is-scrolled {
  position: fixed !important;
  background: rgba(255,255,255,.96) !important;
  border-bottom-color: rgba(0,0,0,.08) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,.06) !important;
  backdrop-filter: blur(10px);
}

#swave-shell-header.swave-shell-header--overlay.is-scrolled .swave-shell-primary-nav a,
#swave-shell-header.swave-shell-header--overlay.is-scrolled .swave-shell-primary-nav a:visited,
#swave-shell-header.swave-shell-header--overlay.is-scrolled .swave-shell-primary-nav a * {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

#swave-shell-header .swave-shell-menu-toggle {
  display: none !important;
  appearance: none !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 8px !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
}

#swave-shell-header .swave-shell-menu-toggle > span:not(.swave-screen-reader-text) {
  display: block !important;
  width: 100% !important;
  height: 2px !important;
  margin: 6px 0 !important;
  padding: 0 !important;
  background: #222222 !important;
}

#swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-menu-toggle > span:not(.swave-screen-reader-text) {
  background: #ffffff !important;
}

/* Elementor owns the page canvas. */
.swave-main { min-height: 40vh; }
.swave-main > .swave-standard-content {
  width: min(calc(100% - 48px), 1200px);
  margin: 56px auto;
}

/* =========================================================
   SWAVE native footer — fidelity pass.
   Goal: preserve the migrated 331 footer appearance while the underlying
   implementation is theme-owned. Strong selectors isolate it from Elementor /
   TenWeb global heading, link, form and button styles.
   ========================================================= */
#swave-shell-footer.swave-shell-footer {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  color: #111111 !important;
  border: 0 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  color: #0073e6 !important;
  -webkit-text-fill-color: #0073e6 !important;
}
#swave-shell-footer,
#swave-shell-footer *,
#swave-shell-footer *::before,
#swave-shell-footer *::after {
  box-sizing: border-box !important;
}
#swave-shell-footer a,
#swave-shell-footer a:visited {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  text-decoration: none !important;
}
#swave-shell-footer a:hover {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: .68 !important;
}

#swave-shell-footer .swave-footer-main {
  width: min(calc(100% - 136px), 1536px) !important;
  margin: 0 auto !important;
  padding: 74px 0 56px !important;
  display: grid !important;
  grid-template-columns: .68fr .72fr 1.48fr 1.68fr !important;
  column-gap: clamp(34px, 3.2vw, 62px) !important;
  row-gap: 0 !important;
  align-items: start !important;
}
#swave-shell-footer .swave-footer-main > section {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
#swave-shell-footer .swave-footer-title {
  display: block !important;
  margin: 0 0 26px !important;
  padding: 0 !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 26px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

#swave-shell-footer .swave-footer-menu,
#swave-shell-footer .swave-footer-menu ul,
#swave-shell-footer .swave-footer-menu-list {
  display: block !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
#swave-shell-footer .swave-footer-menu li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#swave-shell-footer .swave-footer-menu a {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 0 22px !important;
  color: #1d1d1d !important;
  -webkit-text-fill-color: #1d1d1d !important;
  background: transparent !important;
  border: 0 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  cursor: pointer !important;
}

#swave-shell-footer .swave-footer-contact-logo {
  display: block !important;
  width: 224px !important;
  max-width: 100% !important;
  margin: 1px 0 34px !important;
  padding: 0 !important;
}
#swave-shell-footer .swave-footer-contact-logo img,
#swave-shell-footer .swave-footer-contact-logo .custom-logo,
#swave-shell-footer .swave-footer-contact-logo .swave-logo-image {
  display: block !important;
  width: 224px !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 72px !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
}
#swave-shell-footer .swave-footer-contact-logo .swave-brand-text {
  font-size: 54px !important;
  line-height: 1 !important;
}
#swave-shell-footer .swave-footer-email {
  margin: 0 !important;
  padding: 0 !important;
  color: #111111 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 17px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}
#swave-shell-footer .swave-footer-email a {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

#swave-shell-footer .swave-footer-subscribe-copy {
  margin: -14px 0 22px !important;
  padding: 0 !important;
  max-width: 500px !important;
  color: #111111 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.42 !important;
}
#swave-shell-footer .swave-footer-subscribe .swave-subscribe-form,
#swave-shell-footer .swave-footer-subscribe form {
  max-width: 100% !important;
}
#swave-shell-footer .swave-subscribe-form {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) 124px !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: stretch !important;
}
#swave-shell-footer .swave-subscribe-email {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 50px !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 0 26px !important;
  border: 1px solid #111111 !important;
  border-radius: 5px !important;
  background: #ffffff !important;
  color: #222222 !important;
  -webkit-text-fill-color: #222222 !important;
  box-shadow: none !important;
  outline: none !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 50px !important;
  cursor: text !important;
}
#swave-shell-footer .swave-subscribe-email::placeholder {
  color: #777777 !important;
  -webkit-text-fill-color: #777777 !important;
  opacity: 1 !important;
}
#swave-shell-footer .swave-subscribe-email:focus {
  border-color: #111111 !important;
  box-shadow: 0 0 0 1px #111111 !important;
}
#swave-shell-footer .swave-subscribe-button {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 124px !important;
  min-width: 124px !important;
  height: 50px !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 0 20px !important;
  border: 1px solid #050505 !important;
  border-radius: 5px !important;
  background: #050505 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  box-shadow: none !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-transform: none !important;
  cursor: pointer !important;
  transition: opacity .15s ease !important;
}
#swave-shell-footer .swave-subscribe-button:hover {
  background: #050505 !important;
  color: #ffffff !important;
  opacity: .82 !important;
  transform: none !important;
}
#swave-shell-footer .swave-subscribe-button:active { transform: none !important; }
#swave-shell-footer .swave-subscribe-hp {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  left: -9999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
#swave-shell-footer .swave-subscribe-message {
  margin: -8px 0 12px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}
#swave-shell-footer .swave-subscribe-message--success { color: #137333 !important; }
#swave-shell-footer .swave-subscribe-message--error { color: #b3261e !important; }

#swave-shell-footer .swave-footer-bottom {
  width: min(calc(100% - 136px), 1536px) !important;
  margin: 0 auto !important;
  padding: 35px 0 48px !important;
  border-top: 1px solid #3f3f3f !important;
  display: grid !important;
  grid-template-columns: minmax(250px, 1fr) minmax(520px, 2fr) auto !important;
  align-items: start !important;
  column-gap: 36px !important;
  row-gap: 14px !important;
  color: #111111 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
}
#swave-shell-footer .swave-footer-copyright {
  margin: 0 !important;
  padding: 0 !important;
  color: #111111 !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
}
#swave-shell-footer .swave-legal-menu,
#swave-shell-footer .swave-legal-menu ul,
#swave-shell-footer .swave-legal-menu-list {
  margin: 0 !important;
  padding: 0 !important;
}
#swave-shell-footer .swave-legal-menu ul,
#swave-shell-footer .swave-legal-menu-list {
  list-style: none !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: flex-start !important;
  gap: 2px 32px !important;
}
#swave-shell-footer .swave-legal-menu li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#swave-shell-footer .swave-legal-menu a {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  background: transparent !important;
  border: 0 !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
  cursor: pointer !important;
}
#swave-shell-footer .swave-social-icons {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 18px !important;
  min-width: 90px !important;
  margin: 0 !important;
  padding: 0 !important;
}
#swave-shell-footer .swave-social-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #050505 !important;
  background: transparent !important;
  border: 0 !important;
  line-height: 1 !important;
}
#swave-shell-footer .swave-social-icon svg {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  fill: currentColor !important;
}

/* =========================================================
   Existing Elementor page compatibility retained from 0.1.3.
   These are layout rules, not header/footer patches.
   ========================================================= */
.elementor > .e-con.e-con-boxed {
  padding-left: var(--swave-content-gutter) !important;
  padding-right: var(--swave-content-gutter) !important;
}
.page-id-297 .elementor > .e-con.e-con-boxed:not(.elementor-element-fz5md6qp):not(.elementor-element-qk7xt2yd),
.page-id-299 .elementor > .e-con.e-con-boxed,
.page-id-301 .elementor > .e-con.e-con-boxed:not(.elementor-element-dlg7i2uc) {
  padding-top: var(--swave-section-y) !important;
  padding-bottom: var(--swave-section-y) !important;
}
.page-id-299 .elementor-element-595d76b3 {
  padding-top: 48px !important;
  padding-bottom: 52px !important;
}
.page-id-301 .elementor-element-dlg7i2uc {
  min-height: clamp(720px, calc(100vh - var(--swave-header-h)), 900px) !important;
}
.page-id-297 .elementor-widget-text-editor p,
.page-id-299 .elementor-widget-text-editor p,
.page-id-301 .elementor-widget-text-editor p {
  margin-top: 0;
  margin-bottom: 1.05em;
}
.page-id-297 .elementor-widget-text-editor p:last-child,
.page-id-299 .elementor-widget-text-editor p:last-child,
.page-id-301 .elementor-widget-text-editor p:last-child {
  margin-bottom: 0;
}

/* About value-card alignment retained from 0.1.3. */
.page-id-299 .elementor-element-595d76b3 .elementor-widget-icon-box { height: 100% !important; }
.page-id-299 .elementor-element-595d76b3 .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  align-items: center !important;
}
.page-id-299 .elementor-element-595d76b3 .elementor-icon-box-icon {
  min-height: 74px !important;
  margin-bottom: 18px !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
}
.page-id-299 .elementor-element-595d76b3 .elementor-icon-box-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
}
.page-id-299 .elementor-element-595d76b3 .elementor-icon-box-title {
  min-height: 38px !important;
  margin: 0 0 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.page-id-299 .elementor-element-595d76b3 .elementor-icon-box-description { margin: 0 !important; }

/* WooCommerce baseline */
.woocommerce .swave-main,
.woocommerce-page .swave-main {
  width: min(calc(100% - 48px), 1280px);
  margin: 48px auto;
}

/* 404 */
.swave-404 {
  width: min(calc(100% - 48px), 900px);
  margin: 120px auto;
  text-align: center;
}
.swave-404 h1 { font-size: clamp(48px, 8vw, 96px); margin: 0 0 18px; }
.swave-404 p { font-size: 20px; color: var(--swave-muted); }
.swave-button {
  display: inline-block;
  margin-top: 18px;
  padding: 13px 24px;
  background: #111;
  color: #fff;
  text-decoration: none;
  border-radius: 2px;
}

@media (max-width: 980px) {
  :root {
    --swave-header-h: 68px;
    --swave-content-gutter: 32px;
    --swave-section-y: 56px;
  }

  #swave-shell-header .swave-shell-header__inner {
    width: calc(100% - 32px) !important;
    gap: 16px !important;
  }
  #swave-shell-header .swave-shell-brand img,
  #swave-shell-header .swave-shell-brand .custom-logo,
  #swave-shell-header .swave-logo-image {
    width: 126px !important;
    max-width: 126px !important;
    max-height: 38px !important;
  }
  #swave-shell-header .swave-shell-menu-toggle { display: block !important; }
  #swave-shell-header .swave-shell-primary-nav {
    position: absolute !important;
    top: 100% !important;
    left: 16px !important;
    right: 16px !important;
    display: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 8px 0 !important;
    background: #ffffff !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    border-radius: 12px !important;
    box-shadow: 0 16px 40px rgba(0,0,0,.13) !important;
    overflow: hidden !important;
  }
  #swave-shell-header .swave-shell-primary-nav.is-open { display: block !important; }
  #swave-shell-header .swave-shell-primary-nav > ul,
  #swave-shell-header .swave-header-menu {
    display: block !important;
    width: 100% !important;
  }
  #swave-shell-header .swave-shell-primary-nav a,
  #swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a,
  #swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a:visited,
  #swave-shell-header.swave-shell-header--overlay:not(.is-scrolled) .swave-shell-primary-nav a * {
    color: #222222 !important;
    -webkit-text-fill-color: #222222 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    padding: 14px 18px !important;
  }
  body.admin-bar #swave-shell-header.swave-shell-header--overlay { top: 46px !important; }

  #swave-shell-footer .swave-footer-main {
    width: calc(100% - 56px) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 44px 48px !important;
    padding: 58px 0 46px !important;
  }
  #swave-shell-footer .swave-footer-subscribe {
    grid-column: 1 / -1 !important;
    max-width: 620px !important;
  }
  #swave-shell-footer .swave-footer-bottom {
    width: calc(100% - 56px) !important;
    grid-template-columns: 1fr !important;
    text-align: center !important;
    padding: 30px 0 38px !important;
  }
  #swave-shell-footer .swave-footer-copyright { white-space: normal !important; }
  #swave-shell-footer .swave-legal-menu ul,
  #swave-shell-footer .swave-legal-menu-list { justify-content: center !important; }
  #swave-shell-footer .swave-social-icons { justify-content: center !important; }

  .page-id-301 .elementor-element-dlg7i2uc { min-height: 720px !important; }
}

@media (max-width: 600px) {
  :root {
    --swave-content-gutter: 20px;
    --swave-section-y: 44px;
  }
  #swave-shell-footer .swave-footer-main {
    width: calc(100% - 40px) !important;
    grid-template-columns: 1fr !important;
    text-align: left !important;
    gap: 38px !important;
    padding: 48px 0 40px !important;
  }
  #swave-shell-footer .swave-footer-subscribe { grid-column: auto !important; }
  #swave-shell-footer .swave-footer-title { font-size: 24px !important; margin-bottom: 20px !important; }
  #swave-shell-footer .swave-footer-contact-logo { margin-left: 0 !important; margin-right: 0 !important; }
  #swave-shell-footer .swave-footer-subscribe-copy { margin-left: 0 !important; margin-right: 0 !important; }
  #swave-shell-footer .swave-subscribe-form {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  #swave-shell-footer .swave-subscribe-button { width: 100% !important; }
  #swave-shell-footer .swave-footer-bottom {
    width: calc(100% - 40px) !important;
    text-align: left !important;
  }
  #swave-shell-footer .swave-legal-menu ul,
  #swave-shell-footer .swave-legal-menu-list { justify-content: flex-start !important; gap: 8px 20px !important; }
  #swave-shell-footer .swave-social-icons { justify-content: flex-start !important; }
  .swave-subscribe-form { grid-template-columns: 1fr; }
  .swave-subscribe-button { width: 100%; }
  .page-id-301 .elementor-element-dlg7i2uc { min-height: auto !important; }
  .page-id-299 .elementor-element-595d76b3 {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
}


/* ================================================================
   Native Connect form — TenWeb twbb_form replacement on page 301.
   Keeps the existing page layout while restoring normal browser
   controls/cursors and removing the TenWeb form dependency.
   ================================================================ */
.swave-connect-native,
.swave-connect-native * {
  box-sizing: border-box !important;
}

.swave-connect-native {
  width: 100% !important;
  color: #111 !important;
  font-family: "PT Sans", Arial, sans-serif !important;
}

.swave-connect-intro {
  margin: 0 0 34px !important;
}

.swave-connect-intro h2 {
  margin: 0 0 20px !important;
  color: #111 !important;
  font-family: "PT Sans", Arial, sans-serif !important;
  font-size: clamp(30px, 3vw, 46px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
}

.swave-connect-intro p {
  margin: 0 0 14px !important;
  color: #222 !important;
  font-family: "PT Sans", Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

.swave-connect-form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 32px !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.swave-connect-field {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: 0 0 26px !important;
}

.swave-connect-field label {
  display: block !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  color: #111 !important;
  font-family: "PT Sans", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  cursor: default !important;
}

.swave-connect-form input[type="text"],
.swave-connect-form input[type="email"],
.swave-connect-form select,
.swave-connect-form textarea {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 30px !important;
  border: 1px solid #111 !important;
  border-radius: 6px !important;
  outline: none !important;
  background: #fff !important;
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
  box-shadow: none !important;
  font-family: "PT Sans", Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.swave-connect-form input[type="text"],
.swave-connect-form input[type="email"],
.swave-connect-form select {
  height: 58px !important;
}

.swave-connect-form input[type="text"],
.swave-connect-form input[type="email"],
.swave-connect-form textarea {
  cursor: text !important;
}

.swave-connect-form select {
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-right: 58px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 24px center !important;
  background-size: 14px 9px !important;
}

.swave-connect-form textarea {
  min-height: 170px !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  resize: vertical !important;
}

.swave-connect-form input::placeholder,
.swave-connect-form textarea::placeholder {
  color: #717171 !important;
  -webkit-text-fill-color: #717171 !important;
  opacity: 1 !important;
}

.swave-connect-form input:focus,
.swave-connect-form select:focus,
.swave-connect-form textarea:focus {
  border-color: #111 !important;
  box-shadow: none !important;
  outline: none !important;
}

.swave-connect-native,
.swave-connect-form,
.swave-connect-field,
.swave-connect-acceptance {
  position: relative !important;
  z-index: 5 !important;
  pointer-events: auto !important;
}

.swave-connect-form select,
.swave-connect-form option,
.swave-connect-acceptance,
.swave-connect-acceptance input[type="checkbox"],
.swave-connect-acceptance a {
  pointer-events: auto !important;
}

.swave-connect-acceptance {
  grid-column: 1 !important;
  justify-self: start !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #0073e6 !important;
  font-family: "PT Sans", Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}


.swave-connect-acceptance > span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.45 !important;
}

.swave-connect-acceptance input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center !important;
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  accent-color: #111 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.swave-connect-acceptance a,
.swave-connect-acceptance a:visited {
  color: #0073e6 !important;
  -webkit-text-fill-color: #0073e6 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.swave-connect-acceptance a:hover {
  text-decoration: underline !important;
}

.swave-connect-submit {
  grid-column: 1 !important;
  justify-self: start !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 218px !important;
  min-height: 54px !important;
  margin: 14px 0 0 0 !important;
  padding: 12px 28px !important;
  border: 1px solid var(--swave-blue) !important;
  border-radius: 5px !important;
  background: var(--swave-blue) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  box-shadow: none !important;
  font-family: "PT Sans", Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.swave-connect-submit:hover,
.swave-connect-submit:focus {
  background: #0076df !important;
  border-color: #0076df !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.swave-connect-message {
  margin: 0 0 24px !important;
  padding: 14px 16px !important;
  border-radius: 4px !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
}

.swave-connect-message--success {
  border: 1px solid #b7d8c0 !important;
  background: #f1fbf4 !important;
  color: #1f5f31 !important;
}

.swave-connect-message--error {
  border: 1px solid #e2b9b9 !important;
  background: #fff5f5 !important;
  color: #8a2525 !important;
}

.swave-connect-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 767px) {
  .swave-connect-intro { margin-bottom: 28px !important; }
  .swave-connect-intro h2 { font-size: 32px !important; }
  .swave-connect-intro p { font-size: 16px !important; }
  .swave-connect-form { grid-template-columns: 1fr !important; row-gap: 18px !important; }
  .swave-connect-field { grid-column: 1 !important; margin-bottom: 22px !important; }
  .swave-connect-field label { font-size: 17px !important; }
  .swave-connect-acceptance { grid-column: 1 !important; margin: 0 !important; }
  .swave-connect-submit { grid-column: 1 !important; justify-self: stretch !important; margin-top: 0 !important; }
  .swave-connect-form input[type="text"],
  .swave-connect-form input[type="email"],
  .swave-connect-form select,
  .swave-connect-form textarea { font-size: 16px !important; padding-left: 18px !important; padding-right: 18px !important; }
  .swave-connect-submit { width: 100% !important; }
}


/* ================================================================
   Native Partners slider — TenWeb twbb_slides replacement on page 303.
   Fidelity target: same three full-height image slides, centered white copy,
   white CTA, bottom dots, horizontal image transition, and copy hidden while
   the images are moving between slides.
   ================================================================ */
.page-id-303 .elementor-element-hzei10qu,
.page-id-303 .elementor-element-hzei10qu > .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.swave-partners-slider,
.swave-partners-slider * {
  box-sizing: border-box !important;
}

.swave-partners-slider {
  position: relative !important;
  width: 100% !important;
  height: 100vh !important;
  min-height: 620px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #0a2532 !important;
  color: #fff !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  isolation: isolate !important;
}

.swave-partners-slider__track {
  position: absolute !important;
  inset: 0 !important;
  overflow: hidden !important;
}

.swave-partners-slide {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: hidden !important;
  transform: translate3d(100%,0,0) !important;
  transition: transform .82s cubic-bezier(.65,0,.35,1) !important;
  will-change: transform !important;
}

.swave-partners-slide.is-active,
.swave-partners-slide.is-entering,
.swave-partners-slide.is-leaving {
  visibility: visible !important;
}

.swave-partners-slide.is-active {
  z-index: 3 !important;
  transform: translate3d(0,0,0) !important;
}

.swave-partners-slide.is-entering {
  z-index: 4 !important;
  transform: translate3d(100%,0,0) !important;
}

.swave-partners-slide.is-settled {
  transform: none !important;
  will-change: auto !important;
}


.swave-partners-slide.is-leaving {
  z-index: 2 !important;
  transform: translate3d(-100%,0,0) !important;
}

.swave-partners-slide__media,
.swave-partners-slide__shade {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.swave-partners-slide__media {
  z-index: 0 !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  transform: scale(1.015) !important;
  transform-origin: center center !important;
  will-change: transform !important;
}

.swave-partners-slide.is-active .swave-partners-slide__media {
  animation: swavePartnersKenBurns 7s linear both !important;
}

.swave-partners-slide__shade {
  z-index: 1 !important;
  background: rgba(0,0,0,.34) !important;
  pointer-events: none !important;
}

.swave-partners-slide__content {
  position: relative !important;
  z-index: 2 !important;
  width: min(66%, 1120px) !important;
  margin: 0 auto !important;
  padding: 24px 0 54px !important;
  text-align: center !important;
  color: #fff !important;
  opacity: 0 !important;
  transform: none !important;
  transition: opacity .20s ease !important;
  pointer-events: none !important;
}

/* New copy appears only after the horizontal image motion is under way. */
.swave-partners-slide.is-active .swave-partners-slide__content {
  opacity: 1 !important;
  transform: none !important;
  transition-delay: .42s !important;
  pointer-events: auto !important;
}

.swave-partners-slide__content h2 {
  margin: 0 0 20px !important;
  padding: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: clamp(42px, 3.6vw, 60px) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -.015em !important;
  text-transform: none !important;
  text-shadow: none !important;
}

.swave-partners-slide__content p {
  max-width: 1080px !important;
  margin: 0 auto 24px !important;
  padding: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.42 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}

.swave-partners-slide__button,
.swave-partners-slide__button:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 128px !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: 12px 26px !important;
  border: 1px solid rgba(255,255,255,.92) !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: #161616 !important;
  -webkit-text-fill-color: #161616 !important;
  box-shadow: none !important;
  font-family: "PT Sans", Arial, Helvetica, sans-serif !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: background-color .18s ease, color .18s ease !important;
}

.swave-partners-slide__button:hover,
.swave-partners-slide__button:focus-visible {
  background: #f1f1f1 !important;
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
}

.swave-partners-slider__dots {
  position: absolute !important;
  z-index: 8 !important;
  left: 50% !important;
  bottom: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px !important;
  margin: 0 !important;
  padding: 10px !important;
  transform: translateX(-50%) !important;
}

.swave-partners-slider__dot {
  display: block !important;
  width: 6px !important;
  height: 6px !important;
  min-width: 6px !important;
  min-height: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(12,34,43,.66) !important;
  box-shadow: none !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.swave-partners-slider__dot.is-active {
  background: #fff !important;
}

@keyframes swavePartnersKenBurns {
  from { transform: scale(1.015); }
  to   { transform: scale(1.07); }
}

@media (max-width: 980px) {
  .swave-partners-slider { min-height: 560px !important; }
  .swave-partners-slide__content {
    width: min(calc(100% - 64px), 850px) !important;
    padding-bottom: 44px !important;
  }
  .swave-partners-slide__content h2 {
    font-size: clamp(36px, 6vw, 52px) !important;
  }
  .swave-partners-slide__content p {
    font-size: 18px !important;
  }
}

@media (max-width: 600px) {
  .swave-partners-slider {
    height: min(100svh, 760px) !important;
    min-height: 620px !important;
  }
  .swave-partners-slide__content {
    width: calc(100% - 40px) !important;
    padding: 18px 0 38px !important;
  }
  .swave-partners-slide__content h2 {
    margin-bottom: 16px !important;
    font-size: 36px !important;
    line-height: 1.08 !important;
  }
  .swave-partners-slide__content p {
    margin-bottom: 22px !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
  }
  .swave-partners-slide__button {
    min-width: 124px !important;
    min-height: 48px !important;
    padding: 11px 22px !important;
  }
  .swave-partners-slider__dots { bottom: 10px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .swave-partners-slide,
  .swave-partners-slide__content,
  .swave-partners-slide__media {
    transition: none !important;
    animation: none !important;
  }
}
