/* ---------------------------------------------------------------
   Responsive polish — loaded after the Webflow stylesheets.
   Only presentation: fluid type, safe spacing, tap targets.
   --------------------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img, video { max-width: 100%; height: auto; }

/* --- Hero ------------------------------------------------------ */
.hero,
.hero-2 {
  height: auto;
  min-height: 100svh;
  padding: 6rem 1.25rem 4rem;
  background-attachment: scroll;
}

.hero .container,
.hero-2 .container {
  row-gap: 1rem;
  max-width: 48rem;
  padding-left: 0;
  padding-right: 0;
}

.hero .container .image,
.hero-2 .container .image {
  width: clamp(180px, 46vw, 320px);
  height: auto;
  margin-bottom: 0;
}

.hero .paragraph,
.hero-2 .paragraph,
.paragraph-2,
.paragraph-3 {
  font-size: clamp(1.05rem, 3.4vw, 1.6875rem);
  line-height: 1.35;
  text-wrap: balance;
  margin-bottom: 0;
  max-width: 34ch;
}

/* --- Headings & body copy -------------------------------------- */
.f-h1-heading,
.f-h1-heading-2 {
  font-size: clamp(2rem, 6vw, 4rem);
  text-wrap: balance;
}

.f-h1-heading.title,
.f-h1-heading-2.title {
  font-size: clamp(1.875rem, 5.2vw, 3.125rem);
}

.f-h2-heading,
.f-h2-heading-2 {
  font-size: clamp(1.6rem, 4.4vw, 2.75rem);
  text-wrap: balance;
}

.uui-text-size-medium.cnt,
.uui-text-size-medium-8.cnt {
  width: 100%;
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 767px) {
  .uui-text-size-medium.cnt,
  .uui-text-size-medium-8.cnt {
    text-align: left;
    margin-bottom: 2rem;
  }

  /* Tighten oversized vertical rhythm on phones */
  .uui-padding-vertical-xhuge,
  .uui-padding-vertical-xhuge-2,
  .uui-padding-vertical-xhuge-3,
  .uui-padding-vertical-xhuge-4 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
}

/* --- Navigation ------------------------------------------------ */
@media screen and (max-width: 991px) {
  .w-nav-button { padding: 14px; }

  .uui-navbar07_menu.w-nav-menu {
    max-height: calc(100svh - 4.5rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2rem;
  }

  .uui-navbar07_menu-dropdown .uui-navbar07_dropdown-link,
  .uui-navbar07_link,
  .uui-navbar07_dropdown-toggle {
    min-height: 48px;
    display: flex;
    align-items: center;
  }

  .uui-navbar07_dropdown-link-list { gap: 0.25rem; }
}

/* Mega menu: two columns on small laptops, four on wide screens */
@media screen and (min-width: 992px) and (max-width: 1199px) {
  .uui-navbar07_menu-dropdown .uui-navbar07_dropdown-link-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

/* --- Grids & cards --------------------------------------------- */
@media screen and (max-width: 767px) {
  .w-layout-grid { gap: 1.25rem; }
}

/* --- Footer ---------------------------------------------------- */
@media screen and (max-width: 767px) {
  .uui-footer03_top-wrapper { row-gap: 2rem; }
  .uui-footer03_legal-link { min-height: 44px; display: inline-flex; align-items: center; }
}

/* --- Forms ----------------------------------------------------- */
@media screen and (max-width: 767px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  select,
  textarea {
    font-size: 16px; /* prevents iOS zoom-on-focus */
    width: 100%;
  }
}
