/* FixMobi 4.0 - responsive, navigation and lab corrections. Load AFTER redesign.css. */
:root { --fm-navy: #101b37; --fm-blue: #526bff; --fm-cyan: #4ed9e8; }
html { max-width:100%; overflow-x:clip; scroll-padding-top:110px; }
body { max-width:100%; overflow-x:clip; }
body.menu-open { overflow:hidden; }
[id] { scroll-margin-top:108px; }
button, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible, a:focus-visible { outline:3px solid #56befe; outline-offset:3px; }

/* Opaque, correct-sized navigation overlay instead of a translucent 60px-tall layer. */
.site-header { isolation:isolate; }
.nav-links a { text-decoration:none; }
.menu-toggle { flex-shrink:0; }

/* The white-footer-logo bug came from filter:brightness(0) invert(1). */
.footer .brand-logo { filter:none!important; }
.footer-brand .brand { width:fit-content; }
.footer .footer-main { align-items:start; }
.footer-bottom a { white-space:nowrap; }

/* The two floating controls should be visually consistent, but never obscure large portions of content. */
.messenger-float { display:flex; align-items:center; border-radius:100px!important; text-decoration:none; }
.messenger-float .messenger-icon { font-family:Arial,sans-serif; }
.back-to-top { background:#16264e!important; border:1px solid #536dff!important; color:#bfeeff!important; border-radius:14px!important; font-family:Arial,sans-serif; }
.back-to-top:hover { color:#fff!important; background:#526bff!important; }

@media(min-width:1060px) {
  .hero { min-height:0!important; padding-top:75px!important; padding-bottom:95px!important; }
}
body.footer-in-view .messenger-float,
body.footer-in-view .back-to-top { opacity:0!important;pointer-events:none!important;transform:translateY(12px)!important; }
/* Give the lab and its board a coherent centered coordinate system at ALL widths. */
.hero { min-width:0; }
.hero:before { inset:0!important; width:100%!important; max-width:100%!important; }
.hero .hero-lab-wrap {
  position:relative!important; top:auto!important; margin-top:10px!important;
  transform:none!important; align-self:center!important;
  min-width:0!important; min-height:0!important; height:auto!important;
  width:100%; display:flex!important; align-items:center!important; justify-content:center!important;
  overflow:visible!important; border-radius:0!important; background:transparent!important;
}
.hero .hero-lab-wrap .precision-lab {
  position:relative!important; inset:auto!important; margin:0 auto!important;
  width:min(100%,500px)!important; height:420px!important;
  min-height:0!important; padding:20px!important; box-sizing:border-box;
  border-radius:25px!important;
  overflow:hidden!important;
}
.hero-lab-wrap .precision-top { font-size:10px; letter-spacing:.085em; }
.hero-lab-wrap .precision-board {
  box-sizing:border-box; min-height:0!important; width:100%; margin:13px 0;
  flex:1 1 auto; overflow:hidden; border-radius:19px;
}
/* Chip, silver shield and connector now share the same center point. */
.hero-lab-wrap .precision-board .precision-circuit {
  left:50%!important; top:50%!important; width:59%!important; height:72%!important;
  transform:translate(-50%,-50%)!important; box-sizing:border-box;
}
.hero-lab-wrap .precision-board .precision-cover {
  left:50%!important; top:50%!important; right:auto!important;
  width:59%!important; height:72%!important; max-width:none!important;
  transform:translate(-50%,-50%)!important;
  border-radius:15px!important;
  z-index:7!important;
}
.hero-lab-wrap .precision-board .precision-cover.lifted,
.hero-lab-wrap .precision-lab.is-unscrewed .precision-cover {
  transform:translate(-93%,-155%) rotate(-16deg) scale(.8)!important; opacity:0!important;
}
.hero-lab-wrap .precision-board .precision-screw {
  left:calc(20.5% + 12px)!important; top:calc(14% + 12px)!important;
  width:40px!important; height:40px!important;
  z-index:15!important;
}
.hero-lab-wrap .precision-board .precision-connector {
  left:50%!important; top:50%!important; right:auto!important; bottom:auto!important;
  z-index:10!important;
}
.hero-lab-wrap .precision-lab.is-unscrewed .precision-connector { z-index:16!important; }
/* Horizontal driver: tip touches screw, grip points toward the free upper-right area. */
.hero-lab-wrap .precision-board .precision-tool {
  left:calc(20.5% + 36px)!important; top:calc(14% + 24px)!important;
  width:128px!important; height:14px!important;
  border-radius:5px!important;
  background:linear-gradient(180deg,#f4faff 0%,#9ac8f5 28%,#4775ad 64%,#b9daf7 100%)!important;
  box-shadow:0 4px 10px #041222aa!important;
  transform:rotate(-31deg)!important;
  transform-origin:0 50%!important;
  opacity:.96!important; z-index:13!important;
  pointer-events:none!important;
}
.hero-lab-wrap .precision-board .precision-tool:before {
  content:''; position:absolute; left:auto!important; right:-9px!important;
  top:-8px!important; width:55px!important; height:30px!important;
  border-radius:10px!important;
  background:linear-gradient(180deg,#8cbbf9 0%,#315d9f 32%,#1a376d 75%,#628bd1 100%)!important;
  border:1px solid #99c2fa!important;
  box-shadow:inset 0 0 0 3px #1e447c,0 5px 10px #07142baa!important;
}
.hero-lab-wrap .precision-board .precision-tool:after {
  content:''; position:absolute; left:-12px!important; top:3px!important;
  bottom:auto!important; right:auto!important;
  width:15px!important; height:7px!important;
  border:0!important; border-radius:2px;
  background:linear-gradient(180deg,#d8eaff,#7896ad)!important;
}
.hero-lab-wrap .precision-lab.is-unscrewed .precision-tool { opacity:0!important; }
.hero-lab-wrap .precision-footer { gap:12px; line-height:1.45; }
.hero-lab-wrap .precision-footer #precision-message { flex:1; min-width:0; }
.hero-lab-wrap .precision-footer button { min-width:39px; min-height:39px; flex:none; }

/* Tighter value cards with readable headings. */
.benefit { display:flex; flex-direction:column; }
.benefit p { max-width:35ch; }

/* Polish iconography across secondary sections. */
.device-tile i { font-family:Arial,sans-serif; font-style:normal; }
.device-tile b, .device-tile small { overflow-wrap:anywhere; }
.data-lab .dl-file svg { display:block; }

@media (max-width:1050px) and (min-width:761px) {
  /* The menu becomes mobile before the links begin to collide. */
  .hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; }
  .hero .hero-lab-wrap .precision-lab { height:370px!important; padding:15px!important; }
  .hero-lab-wrap .precision-board .precision-tool { width:100px!important; }
  .hero h1 { font-size:clamp(43px,5.6vw,64px)!important; }
}

@media (max-width:760px) {
  html { scroll-padding-top:82px; }
  .site-header {
    z-index:1000!important; background:#fff!important;
    backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
    box-shadow:0 8px 25px #1a327512!important;
  }
  .site-header.is-scrolled { background:#fff!important; }
  .site-header .nav { min-height:76px!important; height:76px!important; }
  .menu-toggle { z-index:1002!important; display:block; width:46px;height:46px; }
  .menu-toggle span { background:#152345!important; }
  .nav-links {
    position:absolute!important; inset:100% 0 auto!important;
    width:100vw!important; max-width:100vw!important;
    height:calc(100dvh - 76px)!important;
    padding:18px max(22px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left))!important;
    margin:0!important; box-sizing:border-box!important;
    z-index:1001!important;
    background:#fff!important;
    box-shadow:0 24px 60px #11234b30;
    overflow-y:auto!important; overscroll-behavior:contain;
    display:flex!important; flex-direction:column!important; gap:0!important; align-items:stretch!important;
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(-10px)!important;
    transition:opacity .22s ease, transform .22s ease,visibility .22s!important;
  }
  .nav-links.is-open {
    opacity:1!important; visibility:visible!important; pointer-events:auto!important;
    transform:translateY(0)!important;
  }
  .nav-links>a:not(.nav-cta) {
    font-size:19px!important; font-weight:650!important;
    color:#172544!important; padding:19px 6px!important;
    border-bottom:1px solid #e7edfa!important;
    line-height:1.3;
  }
  .nav-links>a.active { color:var(--fm-blue)!important; }
  .nav-links>a:not(.nav-cta):active { color:var(--fm-blue)!important; }
  .nav-links .nav-cta {
    display:block!important; margin:27px 0 0!important;
    padding:18px 20px!important; text-align:center!important;
    width:100%!important; border-radius:14px!important; background:#142750!important;
    color:#fff!important; font-size:18px!important;
  }
  .nav-links .nav-cta span { color:#8cceff; }
  body.menu-open .messenger-float, body.menu-open .back-to-top { opacity:0!important;pointer-events:none!important; }

  .hero { padding-top:43px!important; padding-bottom:70px!important; gap:24px!important; }
  .hero-copy { padding:0!important; }
  .hero h1 { font-size:clamp(43px,10.2vw,58px)!important; line-height:1.075!important; overflow-wrap:normal; }
  .hero-lead { font-size:16px!important; line-height:1.65!important; }
  .hero-actions { display:flex; gap:17px!important; flex-wrap:wrap; }
  .hero-actions .button { max-width:100%; text-align:center; }
  .hero .hero-lab-wrap { margin:12px auto 0!important; width:100%!important; height:auto!important; }
  .hero .hero-lab-wrap .precision-lab { width:100%!important; height:350px!important; padding:16px!important; }
  .hero-lab-wrap .precision-board { margin:10px 0!important; }
  .hero-lab-wrap .precision-board .precision-circuit,
  .hero-lab-wrap .precision-board .precision-cover { width:61%!important;height:74%!important; }
  .hero-lab-wrap .precision-board .precision-screw {
    left:calc(19.5% + 9px)!important; top:calc(13% + 9px)!important;
    width:34px!important; height:34px!important;
  }
  .hero-lab-wrap .precision-board .precision-tool {
    left:calc(19.5% + 29px)!important; top:calc(13% + 21px)!important;
    width:105px!important; height:12px!important;
  }
  .hero-lab-wrap .precision-board .precision-tool:before {
    width:44px!important; height:26px!important; top:-7px!important;
  }
  .hero-lab-wrap .precision-board .precision-connector { width:72px!important;height:53px!important; }
  .hero-lab-wrap .precision-top { font-size:9px!important; line-height:1.3; }
  .hero-lab-wrap .precision-footer { font-size:10px!important; }

  .messenger-float {
    width:52px!important; height:52px!important; padding:0!important; bottom:15px!important;left:15px!important;
    justify-content:center!important; border-radius:16px!important; z-index:45!important;
    box-shadow:0 7px 20px #385bca4b!important;
  }
  .messenger-float .messenger-icon {
    width:31px; height:31px; flex:none; background:#fff;
    color:var(--fm-blue); font-size:19px;
  }
  .messenger-float>span:last-child { display:none!important; }
  body.lab-in-view .messenger-float,
  body.lab-in-view .back-to-top { opacity:0!important; pointer-events:none!important; transform:translateY(15px)!important; }
  .back-to-top {
    bottom:15px!important;right:15px!important;width:49px!important;height:49px!important;
    border-radius:16px!important;font-size:22px!important;
  }
  .footer .brand-logo { width:190px!important; }

  .benefits-section { padding:66px 0!important; }
  .benefit-grid { gap:12px!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .benefit {
    border-radius:17px!important; min-height:0!important; padding:18px 15px 20px!important;
  }
  .benefit-icon { width:40px!important;height:40px!important; font-size:22px!important; }
  .benefit h3 { font-size:18px!important; margin:14px 0 7px!important; line-height:1.22!important;letter-spacing:-.03em; }
  .benefit p { font-size:13px!important; line-height:1.5!important; }
  .device-grid { gap:12px!important; }
  .device-tile { padding:17px 12px!important; gap:8px!important; border-radius:18px!important; }
  .device-tile b { font-size:14px!important; line-height:1.2!important; }
  .device-tile small { font-size:11px!important; line-height:1.35!important; color:#c1cee8!important; }
  .device-tile i { font-size:16px!important; }
  .tile-symbol { flex:none; background:#2b4477!important; }
  .tile-caption { font-size:13px!important; }

  .footer { padding-top:52px!important; }
  .footer-main { gap:28px 22px!important; padding-bottom:36px!important; }
  .footer-brand p { margin-top:14px!important; }
  .footer-social { grid-column:1/-1; }
  .footer-social p { max-width:25ch; }
  .footer-bottom { padding-bottom:25px!important; font-size:12px!important; }
  .footer-col a, .footer-col span, .footer-social>a { font-size:13px!important; }
  .section-heading h2, .repair-copy h2, .data-copy h2, .faq-intro h2, .editorial-copy h2 {
    overflow-wrap:normal; line-height:1.12!important;
  }
}

@media (max-width:420px) {
  .container { width:calc(100% - 32px)!important; }
  .hero h1 { font-size:clamp(42px,10.5vw,48px)!important; }
  .hero .hero-lab-wrap .precision-lab { height:334px!important; padding:14px!important; }
  .hero-lab-wrap .precision-top { font-size:8px!important; }
  .hero-lab-wrap .precision-board .precision-tool { width:94px!important; }
  .benefit-grid { gap:10px!important; }
  .benefit { padding:14px 12px 16px!important; }
  .benefit h3 { font-size:16px!important; }
  .benefit p { font-size:12px!important; }
  .brand-list { row-gap:9px!important; }
  .device-grid { grid-template-columns:1fr!important; }
  .device-tile { min-height:79px!important; }
  .footer-main { gap:28px 18px!important; }
  .nav-links { padding-inline:18px!important; }
}
@media (prefers-reduced-motion:reduce) {
  .nav-links { transition:none!important; }
  .hero-lab-wrap .precision-board .precision-cover { transition:none!important; }
}
