/* MachSoft homepage solutions pilot v1 — scoped to the home solutions section only. */
.solutions.solutions-v2 {
  background: #BCCCDC !important;
  padding: clamp(2.6rem, 5vw, 4.6rem) clamp(1rem, 4vw, 3.25rem) clamp(3rem, 5vw, 4.5rem);
  margin: 0;
  color: #172033;
  box-sizing: border-box;
}
.solutions-v2 *, .solutions-v2 *::before, .solutions-v2 *::after { box-sizing: border-box; }
.solutions-v2 .solutions-v2__inner { width: min(100%, 1440px); margin: 0 auto; }
.solutions-v2 .solutions-v2__intro {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  gap: clamp(1.6rem, 4vw, 3.5rem); align-items: center;
  padding: clamp(1.35rem, 3vw, 2.4rem); margin: 0 0 clamp(1.5rem, 3vw, 2.2rem);
  background: rgba(248, 250, 252, .82); border: 1px solid rgba(74, 98, 138, .17);
  border-radius: 1.25rem; box-shadow: 0 12px 28px rgba(25, 43, 67, .06);
}
.solutions-v2 .solutions-v2__intro-copy { min-width: 0; }
.solutions-v2 .solutions-v2__eyebrow {
  margin: 0 0 .7rem; color: #52647A; font-size: .8rem; font-weight: 750;
  letter-spacing: .13em; line-height: 1.4; text-transform: uppercase;
}
.solutions-v2 .solutions-v2__title {
  color: #172033; text-align: left; font-size: clamp(1.85rem, 3.1vw, 2.8rem);
  font-weight: 750; line-height: 1.12; letter-spacing: -.025em;
  margin: 0 0 1rem; padding: 0; max-width: 18ch;
}
.solutions-v2 .solutions-v2__lead {
  width: auto; max-width: 48rem; padding: 0; margin: 0 0 1.35rem;
  color: #475569; font-size: clamp(1rem, 1.2vw, 1.1rem); line-height: 1.7;
}
.solutions-v2 .solutions-v2__intro-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: 2.8rem; padding: .72rem 1rem; border-radius: .6rem;
  color: #172033; background: #F5C343; border: 1px solid #E8B431;
  text-decoration: none; font-size: .94rem; font-weight: 700; line-height: 1.2;
  box-shadow: 0 3px 0 rgba(23, 32, 51, .06);
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.solutions-v2 .solutions-v2__intro-cta i { transition: transform 180ms ease; }
.solutions-v2 .solutions-v2__intro-cta:hover { background: #FFD66C; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(23, 32, 51, .12); }
.solutions-v2 .solutions-v2__intro-cta:hover i { transform: translateX(3px); }
.solutions-v2 .solutions-v2__image-wrap {
  min-width: 0; position: relative; margin: 0; border-radius: .9rem; overflow: hidden;
  background: #12243B; box-shadow: 0 10px 24px rgba(23, 32, 51, .14); aspect-ratio: 3 / 2;
}
.solutions-v2 .solutions-v2__image-wrap img {
  display: block; width: 100%; height: 100%; min-height: 220px; max-height: 390px;
  object-fit: cover; object-position: center; filter: saturate(.88) contrast(1.02);
}
.solutions-v2 .solutions-v2__image-wrap figcaption {
  position: absolute; left: .85rem; bottom: .85rem; padding: .42rem .66rem;
  border-radius: .4rem; color: #fff; background: rgba(10, 28, 46, .82);
  font-size: .76rem; line-height: 1.3; letter-spacing: .02em; backdrop-filter: blur(5px);
}
.solutions-v2 .solutions-v2__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem;
  align-items: stretch;
}
.solutions-v2 .solutions-v2__card {
  display: flex; flex-direction: column; align-items: flex-start; min-width: 0;
  min-height: 235px; padding: 1.25rem 1.25rem 1.1rem; margin: 0;
  color: #172033; background: #F8FAFC; border: 1px solid #D5DEE8;
  border-radius: .95rem; box-shadow: 0 5px 14px rgba(29, 49, 75, .045);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.solutions-v2 .solutions-v2__card:hover,
.solutions-v2 .solutions-v2__card:focus-within {
  transform: translateY(-3px); border-color: #7C9CB9; box-shadow: 0 13px 25px rgba(29, 49, 75, .12);
}
.solutions-v2 .solutions-v2__card-icon {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 2.7rem; height: 2.7rem; margin: 0 0 1rem; border-radius: .75rem;
  color: #244F70; background: #E6EEF5; font-size: 1.12rem;
}
.solutions-v2 .solutions-v2__card h3 {
  color: #172033; text-align: left; font-size: 1.08rem; font-weight: 750;
  line-height: 1.35; margin: 0 0 .55rem; padding: 0; width: 100%;
}
.solutions-v2 .solutions-v2__card p {
  width: auto; padding: 0; margin: 0 0 1rem; color: #536477;
  font-size: .93rem; font-weight: 400; line-height: 1.57; text-align: left;
}
.solutions-v2 .solutions-v2__card-link {
  margin-top: auto; display: inline-flex; align-items: center; gap: .55rem;
  color: #245575; border-bottom: 1px solid #A8C0D2; padding: .2rem 0 .24rem;
  font-size: .91rem; line-height: 1.35; font-weight: 750; text-decoration: none;
  transition: color 180ms ease, border-color 180ms ease;
}
.solutions-v2 .solutions-v2__card-link i { font-size: .84rem; transition: transform 180ms ease; }
.solutions-v2 .solutions-v2__card-link:hover { color: #075985; border-bottom-color: #075985; }
.solutions-v2 .solutions-v2__card-link:hover i { transform: translateX(3px); }
.solutions-v2 .solutions-v2__card-link:focus-visible,
.solutions-v2 .solutions-v2__intro-cta:focus-visible { outline: 3px solid #245575; outline-offset: 3px; }
.solutions-v2 .solutions-v2__card--contact { background: #17344D; border-color: #17344D; color: #fff; }
.solutions-v2 .solutions-v2__card--contact .solutions-v2__card-icon { color: #17344D; background: #F5C343; }
.solutions-v2 .solutions-v2__card--contact h3 { color: #fff; }
.solutions-v2 .solutions-v2__card--contact p { color: #D8E3ED; }
.solutions-v2 .solutions-v2__card--contact .solutions-v2__card-link { color: #FFD66C; border-bottom-color: rgba(255, 214, 108, .7); }
.solutions-v2 .solutions-v2__card--contact .solutions-v2__card-link:hover { color: #fff; border-bottom-color: #fff; }
@media (max-width: 1200px) {
  .solutions-v2 .solutions-v2__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .solutions-v2 .solutions-v2__intro { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 1.2rem; }
  .solutions-v2 .solutions-v2__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .solutions-v2 .solutions-v2__card { min-height: 220px; }
}
@media (max-width: 620px) {
  .solutions.solutions-v2 { padding: 2rem .85rem 2.7rem; }
  .solutions-v2 .solutions-v2__intro { grid-template-columns: minmax(0, 1fr); padding: 1.15rem; border-radius: 1rem; }
  .solutions-v2 .solutions-v2__title { font-size: 1.85rem; max-width: 100%; }
  .solutions-v2 .solutions-v2__image-wrap { grid-row: 1; aspect-ratio: 16 / 9; }
  .solutions-v2 .solutions-v2__image-wrap img { min-height: 0; max-height: 260px; }
  .solutions-v2 .solutions-v2__image-wrap figcaption { font-size: .69rem; }
  .solutions-v2 .solutions-v2__grid { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .solutions-v2 .solutions-v2__card { min-height: 0; padding: 1.05rem; }
  .solutions-v2 .solutions-v2__card-icon { width: 2.45rem; height: 2.45rem; margin-bottom: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .solutions-v2 .solutions-v2__intro-cta,
  .solutions-v2 .solutions-v2__intro-cta i,
  .solutions-v2 .solutions-v2__card,
  .solutions-v2 .solutions-v2__card-link,
  .solutions-v2 .solutions-v2__card-link i { transition: none !important; }
  .solutions-v2 .solutions-v2__card:hover,
  .solutions-v2 .solutions-v2__card:focus-within,
  .solutions-v2 .solutions-v2__intro-cta:hover { transform: none; }
}

/* Home footer follows the same semantic markup and visual behavior as solution-detail pages.
   Social media icons use inline SVG, so their appearance does not depend on icon-font loading. */
body.homepage-header-pilot .footer-distributed .footer-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
}

body.homepage-header-pilot .footer-distributed .footer-icons svg {
  display: block;
  width: 18px;
  height: 18px;
  fill: currentColor;
}

/* Let the shared styles.css footer rules control the three columns and mobile stacking.
   Only guarantee normal document flow and the safe-area tail; do not reorder footer blocks. */
@media (max-width: 768px) {
  body.homepage-header-pilot footer.footer-distributed,
  body.homepage-header-pilot footer.footer-distributed > div,
  body.homepage-header-pilot footer.footer-distributed .footer-center > div {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    box-sizing: border-box;
  }

  body.homepage-header-pilot footer.footer-distributed {
    width: 100% !important;
    max-width: 100% !important;
    padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.homepage-header-pilot footer.footer-distributed .footer-icons {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    width: 100%;
  }
}

/* Root page-scroll fix v6
   The base stylesheet sets body height:100% while also hiding horizontal overflow.
   On mobile browsers this can make body behave like a constrained scroll container,
   so the document appears to stop partway through the footer. Keep the document root
   as the vertical scrolling surface and let body grow with its content. */
html {
  height: auto !important;
  min-height: 100% !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: auto !important;
}

body.homepage-header-pilot {
  height: auto !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  max-height: none !important;
  overflow-x: clip !important;
  overflow-y: visible !important;
  overscroll-behavior-y: auto !important;
}

/* Fallback for browsers without overflow:clip support. Body height remains auto,
   so the final footer rows and social links stay in document flow. */
@supports not (overflow: clip) {
  body.homepage-header-pilot {
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }
}


/* Mobile document-end clearance v7
   The previous screenshot showed the page at the very end of the visible viewport,
   with the final address lines too close to the bottom edge. Keep the root as the
   scroll surface and reserve a reliable footer tail for touch scrolling / safe areas. */
@media (max-width: 900px) {
  html:root {
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scroll-padding-bottom: 1rem !important;
  }

  body.homepage-header-pilot {
    position: static !important;
    height: auto !important;
    min-height: 100dvh !important;
    max-height: none !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  body.homepage-header-pilot #main-content,
  body.homepage-header-pilot .contact,
  body.homepage-header-pilot .contact-in {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.homepage-header-pilot footer.footer-distributed {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: calc(4rem + env(safe-area-inset-bottom, 0px)) !important;
    margin-bottom: 0 !important;
  }
}
