/* ==========================================================================
   Nav & Footer – Shared Component Styles
   Extracted from Framer CSS + responsive overrides from styles.css.
   Loaded on every page for cross-page caching.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Navigation (.framer-ou8xH)
   -------------------------------------------------------------------------- */

/* Base display */
.framer-ou8xH.framer-1prae73,
.framer-ou8xH .framer-1prae73 {
  display: block;
}

/* Nav outer wrapper */
.framer-ou8xH.framer-v5jef7 {
  display: flex;
  flex-flow: column;
  place-content: center flex-start;
  align-items: center;
  gap: 12px;
  width: 960px;
  height: 80px;
  padding: 12px 0 0;
  position: relative;
  overflow: visible;
}

/* Inner bar — includes scroll transition */
.framer-ou8xH .framer-4j4vvm {
  z-index: 1;
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: center;
  align-items: center;
  gap: 0;
  width: 100%;
  height: 56px;
  padding: 0 4px 0 12px;
  position: relative;
  overflow: visible;
  transition: backdrop-filter 0.4s ease, -webkit-backdrop-filter 0.4s ease,
              background-color 0.4s ease, box-shadow 0.4s ease,
              border-color 0.4s ease;
  border: 1px solid transparent;
}

/* Left group (logo area) */
.framer-ou8xH .framer-5q1umm {
  display: flex;
  flex-flow: row;
  flex: 1 0 0;
  place-content: center flex-start;
  align-items: center;
  gap: 0;
  width: 1px;
  height: 100%;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Logo link wrapper */
.framer-ou8xH .framer-gsgf7v {
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: center;
  align-items: center;
  gap: 0;
  width: min-content;
  height: min-content;
  padding: 0;
  text-decoration: none;
  position: relative;
  overflow: visible;
}

/* Logo image */
.framer-ou8xH .framer-1cuegzz {
  aspect-ratio: 3.9375;
  height: var(--framer-aspect-ratio-supported, 32px);
  flex: none;
  width: 126px;
  position: relative;
}

/* Center nav links */
.framer-ou8xH .framer-1ni7j8s {
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: center;
  align-items: center;
  gap: 8px;
  width: min-content;
  height: 100%;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Individual nav-link containers */
.framer-ou8xH .framer-tcmov2-container,
.framer-ou8xH .framer-fpbs8u-container,
.framer-ou8xH .framer-8l6ir7-container,
.framer-ou8xH .framer-mw37s5-container,
.framer-ou8xH .framer-1b2r4ke-container {
  flex: none;
  width: auto;
  height: auto;
  position: relative;
}

/* Right group (CTA area) */
.framer-ou8xH .framer-112u9ki {
  display: flex;
  flex-flow: row;
  flex: 1 0 0;
  place-content: center flex-end;
  align-items: center;
  gap: 8px;
  width: 1px;
  height: 100%;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* CTA button container */
.framer-ou8xH .framer-1derri5-container {
  flex: none;
  width: auto;
  height: 48px;
  position: relative;
}

/* Hamburger tap target */
.framer-ou8xH .framer-1gfcht1 {
  aspect-ratio: 1;
  height: var(--framer-aspect-ratio-supported, 56px);
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: center;
  align-items: center;
  gap: 0;
  width: 56px;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Hamburger icon container (blocks pointer events on the SVG) */
.framer-ou8xH .framer-kyccc7-container {
  pointer-events: none;
  flex: none;
  width: 24px;
  height: 24px;
  position: relative;
}

/* Mobile nav-links container (expanded menu list) */
.framer-ou8xH .framer-i6u3r4-container {
  flex: none;
  width: 100%;
  height: auto;
  position: relative;
}

/* --- Nav Variants (Framer runtime class swaps) --- */

/* Tablet: framer-v-1cu0490 */
.framer-ou8xH.framer-v-1cu0490.framer-v5jef7 {
  padding: 80px 0 0;
}
.framer-ou8xH.framer-v-1cu0490 .framer-4j4vvm {
  max-width: 1280px;
}

/* Phone – collapsed: framer-v-8gk3nt */
.framer-ou8xH.framer-v-8gk3nt.framer-v5jef7 {
  width: 400px;
}
.framer-ou8xH.framer-v-8gk3nt .framer-4j4vvm,
.framer-ou8xH.framer-v-nlrie7 .framer-4j4vvm {
  padding: 0 8px 0 24px;
}
.framer-ou8xH.framer-v-8gk3nt .framer-1gfcht1,
.framer-ou8xH.framer-v-nlrie7 .framer-1gfcht1 {
  cursor: pointer;
}

/* Phone – expanded overlay: framer-v-nlrie7 */
.framer-ou8xH.framer-v-nlrie7.framer-v5jef7 {
  height: min-content;
  max-height: calc(var(--framer-viewport-height, 100vh) * 1);
  overscroll-behavior: contain;
  width: 400px;
  overflow: auto;
}

/* --- Scrolled state (JS adds .scrolled via IntersectionObserver) --- */
nav.framer-ou8xH.scrolled .framer-4j4vvm {
  backdrop-filter: blur(24px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
  background-color: var(--surface-nav) !important;
  border-color: var(--border-subtle);
  box-shadow:
    0 8px 32px var(--shadow-medium),
    inset 0 1px 0 var(--nav-inset-top),
    inset 0 -1px 0 var(--nav-inset-bottom);
}

/* --- Mobile nav adaptation (≤1023px) --- */
@media (max-width: 1023.98px) {
  nav.framer-ou8xH {
    max-width: 100%;
  }
  nav.framer-ou8xH .framer-4j4vvm {
    padding: 0 16px;
  }
  nav.framer-ou8xH .framer-1ni7j8s {
    display: none;
  }
  nav.framer-ou8xH .framer-112u9ki {
    display: none;
  }
  nav.framer-ou8xH .framer-5q1umm {
    flex: 1 0 0;
  }
}

/* --------------------------------------------------------------------------
   Hamburger Icon (.framer-rysu1)
   Two horizontal bars that collapse into a single dash when menu opens.
   -------------------------------------------------------------------------- */

.framer-rysu1.framer-14tn57g,
.framer-rysu1 .framer-14tn57g {
  display: block;
}

.framer-rysu1.framer-x4itgw {
  cursor: pointer;
  width: 24px;
  height: 24px;
  position: relative;
  overflow: visible;
}

/* Top bar */
.framer-rysu1 .framer-16ln8w7 {
  flex: none;
  width: 20px;
  height: 1px;
  position: absolute;
  top: calc(33.3333% - 0.5px);
  left: calc(50% - 10px);
}

/* Bottom bar */
.framer-rysu1 .framer-1rup4we {
  flex: none;
  width: 20px;
  height: 1px;
  position: absolute;
  top: calc(66.6667% - 0.5px);
  left: calc(50% - 10px);
}

/* Open variant: framer-v-l2g0yc — bars collapse to center */
.framer-rysu1.framer-v-l2g0yc.framer-x4itgw {
  aspect-ratio: 1;
  height: var(--framer-aspect-ratio-supported, 24px);
}
.framer-rysu1.framer-v-l2g0yc .framer-1rup4we,
.framer-rysu1.framer-v-l2g0yc .framer-16ln8w7 {
  top: calc(50% - 0.5px);
}

/* Framer hamburger animation (JS toggles .open) */
[data-framer-name="Mobile icon"] .framer-1rup4we,
[data-framer-name="Mobile icon"] .framer-16ln8w7 {
  transition: top 0.3s ease;
}
[data-framer-name="Mobile icon"].open .framer-1rup4we,
[data-framer-name="Mobile icon"].open .framer-16ln8w7 {
  top: calc(50% - 0.5px);
}

/* --------------------------------------------------------------------------
   Footer (.framer-8dYlN)
   -------------------------------------------------------------------------- */

/* Base display */
.framer-8dYlN.framer-w964ra,
.framer-8dYlN .framer-w964ra {
  display: block;
}

/* Outer container */
.framer-8dYlN.framer-p42k7t {
  display: flex;
  flex-flow: column;
  place-content: center flex-start;
  align-items: center;
  gap: 40px;
  width: 1440px;
  height: min-content;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Main content row */
.framer-8dYlN .framer-1ksnwjy {
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: flex-start;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  height: min-content;
  min-height: 480px;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Left column (logo + tagline) */
.framer-8dYlN .framer-u4jp5n {
  display: flex;
  flex-flow: column;
  flex: 1 0 0;
  place-content: flex-start;
  align-items: flex-start;
  gap: 0;
  width: 1px;
  max-width: 400px;
  height: min-content;
  padding: 40px;
  position: relative;
}

/* Logo row */
.framer-8dYlN .framer-135de2j {
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: center;
  align-items: center;
  gap: 0;
  width: min-content;
  height: min-content;
  padding: 0;
  position: relative;
}

/* Footer logo image */
.framer-8dYlN .framer-1n088av {
  aspect-ratio: 3.9375;
  height: var(--framer-aspect-ratio-supported, 32px);
  flex: none;
  width: 126px;
  position: relative;
}

/* Right column (links + bottom bar) */
.framer-8dYlN .framer-1gsg2v9 {
  display: flex;
  flex-flow: column;
  flex: 1 0 0;
  place-content: flex-start space-between;
  align-self: stretch;
  align-items: flex-start;
  width: 1px;
  min-width: 640px;
  height: auto;
  padding: 40px 40px 40px 0;
  position: relative;
}

/* Sitemap links row (wraps) */
.framer-8dYlN .framer-dwycy3 {
  display: flex;
  flex-flow: wrap;
  flex: none;
  place-content: flex-start;
  align-items: flex-start;
  gap: 40px;
  width: 100%;
  height: min-content;
  padding: 0 0 24px;
  position: relative;
  overflow: visible;
}

/* Link group columns */
.framer-8dYlN .framer-fpkhay,
.framer-8dYlN .framer-zcq6xp {
  display: flex;
  flex-flow: column;
  flex: none;
  place-content: flex-start;
  align-items: flex-start;
  gap: 2px;
  width: min-content;
  height: min-content;
  padding: 0 16px 0 0;
  position: relative;
  overflow: visible;
}

/* Individual link items */
.framer-8dYlN .framer-1s974iv,
.framer-8dYlN .framer-i39gti,
.framer-8dYlN .framer-1mwfuft,
.framer-8dYlN .framer-x9swhu,
.framer-8dYlN .framer-16899xq,
.framer-8dYlN .framer-1n23z5m,
.framer-8dYlN .framer-1r9ow2o,
.framer-8dYlN .framer-1ebde5n,
.framer-8dYlN .framer-jx2m0j {
  white-space: pre;
  flex: none;
  width: auto;
  height: auto;
  position: relative;
}

/* "Tools" link (custom addition, not in original Framer export) */
.framer-8dYlN .framer-tools-footer {
  white-space: pre;
  flex: none;
  width: auto;
  height: auto;
  position: relative;
}

/* Bottom bar row */
.framer-8dYlN .framer-8v2zua {
  display: flex;
  flex-flow: row;
  flex: none;
  place-content: flex-end flex-start;
  align-items: flex-end;
  gap: 0;
  width: 100%;
  height: min-content;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Copyright row */
.framer-8dYlN .framer-by3e3a {
  display: flex;
  flex-flow: row;
  flex: 1 0 0;
  place-content: flex-start;
  align-items: flex-start;
  gap: 4px;
  width: 1px;
  height: min-content;
  padding: 0 40px 0 0;
  position: relative;
  overflow: visible;
}

/* Badge container */
.framer-8dYlN .framer-knjqix-container {
  flex: none;
  width: auto;
  height: auto;
  position: relative;
}

/* Copyright text */
.framer-8dYlN .framer-1vigx8i {
  white-space: pre-wrap;
  word-break: break-word;
  word-wrap: break-word;
  flex: 1 0 0;
  width: 1px;
  height: auto;
  position: relative;
}

/* Subscription / newsletter column */
.framer-8dYlN .framer-ozn9p4 {
  display: flex;
  flex-flow: column;
  flex: 1 0 0;
  place-content: flex-start;
  align-items: flex-start;
  gap: 24px;
  width: 1px;
  min-width: 320px;
  max-width: 440px;
  height: min-content;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Input wrapper */
.framer-8dYlN .framer-sonpd6 {
  display: flex;
  flex-flow: column;
  flex: none;
  place-content: flex-start;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  max-width: 400px;
  height: min-content;
  padding: 0;
  position: relative;
  overflow: visible;
}

/* Text blocks */
.framer-8dYlN .framer-1nqdaa7,
.framer-8dYlN .framer-68s0tl {
  white-space: pre-wrap;
  word-break: break-word;
  word-wrap: break-word;
  flex: none;
  width: 100%;
  max-width: 100%;
  height: auto;
  position: relative;
}

/* --- Footer Variants (Framer runtime class swaps) --- */

/* Phone variant: framer-v-1f30o6c */
.framer-8dYlN.framer-v-1f30o6c.framer-p42k7t {
  width: 400px;
}
.framer-8dYlN.framer-v-1f30o6c .framer-1ksnwjy {
  flex-direction: column;
}
.framer-8dYlN.framer-v-1f30o6c .framer-u4jp5n {
  max-width: unset;
  flex: none;
  width: 100%;
  padding: 32px;
}
.framer-8dYlN.framer-v-1f30o6c .framer-1gsg2v9 {
  align-self: unset;
  height: min-content;
  min-width: unset;
  flex: none;
  justify-content: flex-start;
  gap: 40px;
  width: 100%;
  padding: 0 32px 32px;
}
.framer-8dYlN.framer-v-1f30o6c .framer-dwycy3 {
  padding: 0;
}
.framer-8dYlN.framer-v-1f30o6c .framer-fpkhay,
.framer-8dYlN.framer-v-1f30o6c .framer-zcq6xp {
  gap: 4px;
}
.framer-8dYlN.framer-v-1f30o6c .framer-8v2zua {
  flex-direction: column;
  align-content: flex-start;
  align-items: flex-start;
  gap: 40px;
}
.framer-8dYlN.framer-v-1f30o6c .framer-by3e3a {
  flex: none;
  order: 1;
  width: 100%;
  padding: 0;
}
.framer-8dYlN.framer-v-1f30o6c .framer-ozn9p4 {
  min-width: unset;
  flex: none;
  order: 0;
  width: 100%;
}

/* --- Mobile footer layout (≤1023px) ---
   Replicates the phone variant since Framer runtime doesn't run. */
@media (max-width: 1023.98px) {
  .framer-8dYlN .framer-1ksnwjy {
    flex-direction: column;
    min-height: unset;
  }
  .framer-8dYlN .framer-u4jp5n {
    max-width: unset;
    flex: none;
    width: 100%;
    padding: 32px;
  }
  .framer-8dYlN .framer-1gsg2v9 {
    min-width: unset;
    flex: none;
    width: 100%;
    height: min-content;
    padding: 0 32px 32px;
    gap: 40px;
    justify-content: flex-start;
  }
  .framer-8dYlN .framer-dwycy3 {
    padding: 0;
  }
  .framer-8dYlN .framer-fpkhay,
  .framer-8dYlN .framer-zcq6xp {
    gap: 4px;
  }
  .framer-8dYlN .framer-8v2zua {
    flex-direction: column;
    align-content: flex-start;
    align-items: flex-start;
    gap: 40px;
  }
  .framer-8dYlN .framer-ozn9p4 {
    order: 0;
    min-width: unset;
    flex: none;
    width: 100%;
  }
  .framer-8dYlN .framer-by3e3a {
    order: 1;
    flex: none;
    width: 100%;
    padding: 0;
  }
}
