/* FixMobi 4.2 - precise fixes after iPhone + Windows feedback. */
/* A floating call-to-action should not obscure hero copy or section cards on entry. */
.messenger-float {
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(18px) !important;
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease !important;
}
body.contact-after-scroll:not(.menu-open):not(.lab-in-view):not(.footer-in-view) .messenger-float {
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:translateY(0) !important;
}
/* Extend the handle to the right without pulling the bit away from the screw. */
.hero-lab-wrap .precision-board .precision-tool {
  left:calc(20.5% + 54px) !important;
  width:162px !important;
  transform:rotate(-19deg) !important;
}
.hero-lab-wrap .precision-board .precision-tool::after {
  left:-18px !important;
  width:23px !important;
}
/* The blue DATA LAB transitions to a distinct emerald completion state, not an extra text badge. */
.data-lab {position:relative !important; isolation:isolate !important;}
.data-lab::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  z-index:0;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(ellipse at 34% 10%, rgba(59,226,176,.35), transparent 68%),
    linear-gradient(145deg,#103e43 0%,#0d6655 51%,#09302f 100%);
  transition:opacity .65s ease;
}
.data-lab.is-complete::before {opacity:1;}
.data-lab > * {position:relative;z-index:1;}
.data-lab .dl-compact-screen,
.data-lab .dl-compact-icon,
.data-lab .dl-file,
.data-lab .dl-primary,
.data-lab .dl-progress span {transition:background .4s ease,border-color .4s ease,box-shadow .4s ease,transform .3s ease;}
.data-lab.is-complete .dl-compact-screen {
  background:linear-gradient(115deg,rgba(19,119,97,.88),rgba(15,64,63,.90)) !important;
  border-color:rgba(140,255,208,.55) !important;
  box-shadow:inset 0 1px 0 rgba(211,255,233,.13),0 0 22px rgba(42,239,176,.15);
}
.data-lab.is-complete .dl-compact-icon {
  background:rgba(47,201,140,.24) !important;
  color:#a7ffe0 !important;
  box-shadow:0 0 0 1px rgba(163,250,215,.25),0 0 22px rgba(37,225,157,.22);
}
.data-lab.is-complete .dl-file[aria-pressed="true"] {
  background:#166a55 !important;
  border-color:#8cecc3 !important;
  box-shadow:inset 0 0 0 1px #96f3c455 !important;
}
.data-lab.is-complete .dl-file b, .data-lab.is-complete .dl-file-icon {color:#a2ffdb !important;}
.data-lab.is-complete .dl-progress span {background:linear-gradient(90deg,#26c899,#a6ffb2) !important;box-shadow:0 0 13px #68f2b569;}
.data-lab.is-complete #dl-status {color:#b7ffdc !important;}
.data-lab.is-complete .dl-primary {background:linear-gradient(115deg,#158968,#26a77f) !important;color:#eafff1 !important;opacity:1 !important;}
.data-lab.is-complete .dl-percent {color:#b5ffda !important;}
@media (max-width:1050px) and (min-width:761px) {
  .hero-lab-wrap .precision-board .precision-tool {width:135px !important;}
}
@media (max-width:760px) {
  /* iOS Safari: overflow:hidden on body converted the sticky header to a scrolled-off layer.
     The menu fills the viewport and catches input, so locking page overflow isn't needed. */
  body.menu-open {overflow-x:clip !important;overflow-y:visible !important;}
  .site-header {position:sticky !important;top:0 !important;}
  .nav-links.is-open {overscroll-behavior:contain;touch-action:pan-y;}
  /* 2-column tiles use a vertical hierarchy, providing full word width for labels. */
  .device-grid {grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px !important;align-items:stretch;}
  .device-tile {
    position:relative;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    gap:9px !important;
    min-height:169px !important;
    padding:15px !important;
  }
  .device-tile .tile-symbol {width:44px !important;height:44px !important;flex:0 0 44px !important;}
  .device-tile > span:not(.tile-symbol) {width:100%; flex:0 1 auto !important;min-width:0;}
  .device-tile b {
    display:block;
    font-size:clamp(14px,3.55vw,17px) !important;
    line-height:1.22 !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
    white-space:normal !important;
  }
  .device-tile small {font-size:12px !important;line-height:1.34 !important;overflow-wrap:normal !important;word-break:normal !important;}
  .device-tile i {display:block !important;position:absolute;right:14px;top:14px;align-self:auto !important;margin:0 !important;}
  .hero-lab-wrap .precision-board .precision-tool {left:calc(19.5% + 47px) !important;width:138px !important;}
}
@media (max-width:420px) {
  .device-grid {grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
  .device-tile {min-height:168px !important;padding:12px !important;}
  .device-tile .tile-symbol {width:41px !important;height:41px !important;flex-basis:41px !important;}
  .device-tile b {font-size:clamp(13px,3.6vw,15px) !important;}
  .device-tile small {font-size:11px !important;}
  .device-tile i {right:12px;top:10px;}
  .hero-lab-wrap .precision-board .precision-tool {width:124px !important;}
}
@media (prefers-reduced-motion:reduce) {
  .data-lab::before,.data-lab .dl-compact-screen {transition:none !important;}
  .messenger-float {transition:none !important;}
}
