/* FixMobi 4.5 - quiet finishing touches. Loaded last on every page. */
/* Deliberate contrast hierarchy: muted words are readable, prominent headings use blue. */
.muted-heading { color:#607996 !important; }
.benefits-section .muted-heading,
.values-section .muted-heading {
  color:#4f6df5 !important;
  background:linear-gradient(95deg,#536dff 4%,#318dce 100%);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
/* Supporting copy on pale backgrounds: darker, without making the page heavy. */
.section-heading>p, .benefit p, .data-copy>p,
.about-card-copy p, .story-copy p,
.editorial-copy>p, .repair-service p,
.simple-cta p, .area-band-inner>p {
  color:#536781 !important;
}
.page-hero>p { color:#596e89 !important; }
/* Shift the handle only; keep the screw, cover and click targets in place. */
.hero-lab-wrap .precision-board .precision-tool {
  left:calc(20.5% + 60px) !important;
}
/* No bulky status banner under the phone title. The actual interactive targets still pulse. */
.repair-game .game-guide { display:none !important; }
.repair-game .game-head { margin-bottom:8px; }
/* Phone battery is physically extracted downward, in agreement with its arrow. */
.repair-game .game-battery.extracted {
  transform:translateY(170px) rotate(10deg) !important;
}
.repair-game .game-drag-hint {
  animation:fmBatteryDownHint 1.35s ease-in-out infinite !important;
}
@keyframes fmBatteryDownHint {
  0%,100% { transform:translate(-50%,0);opacity:1; }
  50% { transform:translate(-50%,5px);opacity:.6; }
}
@media (max-width:1050px) and (min-width:761px) {
  .hero-lab-wrap .precision-board .precision-tool {left:calc(20.5% + 70px) !important;}
}
@media (max-width:760px) {
  .hero-lab-wrap .precision-board .precision-tool {left:calc(19.5% + 65px) !important;}
}
@media (max-width:420px) {
  .hero-lab-wrap .precision-board .precision-tool {left:calc(19.5% + 64px) !important;}
}
@media (prefers-reduced-motion:reduce) {
  .repair-game .game-drag-hint {animation:none !important;}
}

/* FixMobi 4.6 - repair-game layout refinement after removing redundant guide. */
/* Stretch the top line across the panel; center two labels on exactly the same row. */
#repair-game .game-top {
  align-self:stretch !important;
  width:100% !important;
  min-height:24px;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px;
  line-height:1.2;
  white-space:nowrap;
}
#repair-game .game-live, #repair-game .game-score {
  display:inline-flex !important;
  align-items:center !important;
  height:24px;
  line-height:1.2;
  margin:0 !important;
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
}
#repair-game .game-score {gap:7px;}
#repair-game .game-score b {
  display:inline-block;
  font-size:15px;
  line-height:1;
  vertical-align:middle;
}
/* Keep the phone near its instruction without pinching the interactive stage. */
#repair-game .game-head { margin:8px 0 5px !important; }
#repair-game .game-head span {min-height:26px;}
@media (max-width:380px) {
  #repair-game .game-live, #repair-game .game-score {font-size:10px;letter-spacing:.06em;}
  #repair-game .game-score b {font-size:14px;}
}


/* FixMobi 4.7 - surgical polish: keep previous structure and mechanics. */
/* Better proportions: slightly shift the driver right and shorten the exposed shaft.
   Its small metal tip remains extended towards the screw; hit targets never move. */
.hero-lab-wrap .precision-board .precision-tool {
  left:calc(20.5% + 70px) !important;
  width:154px !important;
}
.hero-lab-wrap .precision-board .precision-tool::before {
  width:65px !important;
  right:-9px !important;
}
.hero-lab-wrap .precision-board .precision-tool::after {
  left:-34px !important;
  width:36px !important;
}
@media (max-width:1050px) and (min-width:761px) {
  .hero-lab-wrap .precision-board .precision-tool {left:calc(20.5% + 80px) !important;width:128px!important;}
}
@media (max-width:760px) {
  .hero-lab-wrap .precision-board .precision-tool {left:calc(19.5% + 75px) !important;width:132px!important;}
}
@media (max-width:420px) {
  .hero-lab-wrap .precision-board .precision-tool {left:calc(19.5% + 74px) !important;width:119px!important;}
}
/* Less empty SVG whitespace, same physical icon/letter scale on both logos. */
.nav .brand-logo {width:192px!important;height:auto!important;}
.footer .brand-logo {width:180px!important;height:auto!important;}
@media (max-width:760px) {
  .nav .brand-logo {width:158px!important;}
  .footer .brand-logo {width:180px!important;}
}
@media (max-width:380px) {
  .nav .brand-logo {width:148px!important;}
}
/* Disabled means inactive, not illegible. */
#repair-game .game-controls #game-action:disabled {
  opacity:.86!important;
  color:#e4edff!important;
  background:#263b6c!important;
  border-color:#52709e!important;
  text-shadow:0 1px 2px #0a1935b8;
  box-shadow:inset 0 1px 0 #ffffff14!important;
  cursor:not-allowed;
}
/* Focused heading contrast: readable, still softer than the primary title. */
.data-copy h2 .muted-heading {color:#43546f!important;}
.editorial-copy h2 .muted-heading {color:#344761!important;}
/* About - a shared visual language for the intro and the adjacent story. */
.about-hero {padding-bottom:clamp(42px,5vw,74px)!important;}
.about-hero .eyebrow {margin-bottom:2px;}
.about-hero h1 {max-width:1070px;}
.about-hero>p {max-width:710px;line-height:1.78!important;}
.about-story-panel {
  border:1px solid #dbe5fb!important;
  border-radius:28px;
  background:linear-gradient(135deg,#f5f8ff 0%,#edf3ff 50%,#f8faff 100%);
  box-shadow:0 18px 44px #15346a0b;
  margin-top:clamp(18px,2.5vw,36px);
  margin-bottom:clamp(55px,5.5vw,85px);
  padding:clamp(24px,3vw,44px)!important;
  align-items:center;
  gap:clamp(25px,4vw,64px)!important;
}
.about-story-panel .story-art {position:relative;}
.about-story-panel .story-art:before {
  content:"";position:absolute;inset:10% 4%;z-index:0;
  background:radial-gradient(ellipse,#8ab0ff33,transparent 67%);filter:blur(8px);pointer-events:none;
}
.about-story-panel .story-art .about-device-art {position:relative!important;z-index:1;}
.about-story-panel .story-copy {
  border-left:1px solid #d5e1f9;
  padding-left:clamp(22px,2.6vw,39px);
  min-width:0;
}
.about-story-panel .story-copy h2 {color:#15264a;font-size:clamp(28px,2.9vw,40px);line-height:1.14;letter-spacing:-.055em;margin-bottom:22px;}
.about-story-panel .story-copy p {color:#516581!important;line-height:1.82;font-size:clamp(13px,1.05vw,15px);margin-top:0;margin-bottom:14px;}
.about-story-panel .story-copy p:last-child {margin-bottom:0;}
@media (max-width:760px) {
  .about-hero {padding-top:clamp(46px,8vw,62px)!important;padding-bottom:clamp(30px,6vw,43px)!important;}
  .about-story-panel {margin-top:14px;padding:21px!important;border-radius:22px;gap:17px!important;}
  .about-story-panel .story-copy {border-left:0;border-top:1px solid #d5e1f9;padding-left:0;padding-top:24px;}
  .about-story-panel .story-copy h2 {font-size:clamp(26px,7vw,35px);margin-bottom:17px;}
  .about-story-panel .story-art {width:100%;}
}
/* Larger, meaningful pictograms in the repair categories (also on phones). */
.fault-card .fault-icon {
  width:58px!important;height:58px!important;
  display:grid;place-items:center;flex:none;
  border-radius:17px!important;
  background:linear-gradient(145deg,#eef4ff,#dce8ff)!important;
  border:1px solid #d1defa!important;
  box-shadow:inset 0 1px #ffffffaa,0 6px 17px #456baf10;
  color:#536dff!important;
}
.fault-card .fault-icon svg {width:33px!important;height:33px!important;stroke-width:1.85;}
.fault-card h3 {margin-top:17px;}
@media (max-width:760px) {
  .fault-card .fault-icon {width:52px!important;height:52px!important;border-radius:14px!important;}
  .fault-card .fault-icon svg {width:30px!important;height:30px!important;}
}
@media (prefers-reduced-motion:reduce) {
  .about-story-panel .story-art:before {filter:none;}
}


/* FixMobi 4.8 - Kontakt: lead-first form positioning, original contact cards preserved.
   Move only the right-side form upward on desktop.
   Scroll-margin compensates for the lifted form when linking to #formularz. */
@media (min-width:761px) {
  .contact-layout > .contact-form {
    position:relative;
    z-index:3;
    margin-top:-150px !important;
  }
  #formularz { scroll-margin-top:55px; }
}
/* Mobile contact hero originally had a double-spaced transition to the cards.
   Shorten only that transition; preserve the cards-above-form order and CTA styling. */
@media (max-width:760px) {
  .contact-hero { padding-bottom:33px !important; }
  .contact-layout { padding-top:52px !important; }
  #formularz { scroll-margin-top:88px; }
}


/* FixMobi 4.9 - focused refinements, preserving existing architecture and games. */
.brand-picture {display:inline-flex;align-items:center;max-width:100%;}
.brand-picture > .brand-logo {max-width:100%;}
/* Each approach tells the customer what choices they can discuss with the service. */
.dark-section .device-grid {align-items:stretch;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;}
.dark-section .repair-approach-card {
  min-height:155px;display:flex;flex-direction:column;align-items:flex-start;
  position:relative;gap:13px;padding:20px 22px 19px;
  background:linear-gradient(145deg,#243c69,#1a2b50);
  border:1px solid #4a689c;border-radius:17px;
  color:#f4f8ff;text-decoration:none;
  box-shadow:inset 0 1px 0 #d7ebff14;
  transition:transform .23s ease,background .23s ease,border-color .23s ease,box-shadow .23s ease;
}
.dark-section .repair-approach-card:hover,.dark-section .repair-approach-card:focus-visible {
  transform:translateY(-3px);background:linear-gradient(145deg,#30548a,#223760);
  border-color:#82cafa;box-shadow:0 12px 25px #030e24b3;
}
.repair-approach-card .approach-icon {
  display:grid;place-items:center;width:45px;height:45px;flex:0 0 45px;
  border:1px solid #527ab2;border-radius:13px;background:linear-gradient(140deg,#385c9e,#1e3869);
  color:#a6ddff;
}
.repair-approach-card .approach-copy {display:flex;flex-direction:column;gap:6px;min-width:0;padding-right:8px;}
.repair-approach-card .approach-copy b {font:700 clamp(15px,1.16vw,19px)/1.2 'Outfit',sans-serif;color:#f6f9ff;}
.repair-approach-card .approach-copy small {font-size:clamp(11px,.85vw,13px);line-height:1.5;font-weight:500;color:#bbcae5;}
.repair-approach-card .approach-arrow {position:absolute;top:20px;right:20px;color:#9edcff;font-size:20px;line-height:1;}
.dark-section .repair-note {max-width:none;width:100%;align-items:center;gap:12px;margin-top:23px;font-size:12px;color:#bdcdeb;}
.dark-section .repair-note .note-check {flex:none;}
/* Driver is a precise SVG, not a stack of conflicting CSS pseudoelements. */
.hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
  left:calc(20.5% + 23px) !important;
  top:calc(14% - 24px) !important;
  width:158px !important;height:74px !important;
  border:0 !important;border-radius:0 !important;
  background:none !important;box-shadow:none !important;
  transform:none !important;transform-origin:initial !important;
  opacity:1 !important;z-index:14 !important;pointer-events:none !important;
}
.hero-lab-wrap .precision-board .precision-tool.precision-tool-v2:before,
.hero-lab-wrap .precision-board .precision-tool.precision-tool-v2:after {content:none !important;display:none !important;}
.precision-tool-v2 > svg {width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 3px 3px #06132688);}
/* Both the screw and the SVG tip are anchored to the same point. */
.hero-lab-wrap .precision-lab.is-unscrewed .precision-tool-v2 {opacity:0!important;}
/* Small phone-game drag guidance belongs between the speaker and battery, not under the notch. */
.repair-game .game-phone .game-drag-hint {top:17px !important;z-index:11;font-size:8px!important;letter-spacing:.045em!important;}
/* Service page begins with its useful offer, not a duplicate page hero. */
.repair-first {padding-top:clamp(76px,7.5vw,118px) !important;}
.repair-first .repair-primary-title {font-size:clamp(39px,4.7vw,72px) !important;line-height:1.08 !important;letter-spacing:-.055em;color:#142445;max-width:760px;margin:12px 0 0;font-weight:700;}
.repair-first .repair-primary-title .muted-heading {color:#617592 !important;}
/* "Technology should help" - accent follows first-page brand palette, especially on narrow devices. */
.about-story-panel .story-emphasis {color:#3b76ce;}
/* Calling is slightly lower inside its own card; other card positions stay readable. */
.contact-layout .contact-detail-call {padding-top:11px !important;}
@media(max-width:760px){
  .dark-section .device-grid {gap:11px !important;}
  .dark-section .repair-approach-card {min-height:168px;padding:14px 13px 15px;gap:10px;border-radius:16px;}
  .repair-approach-card .approach-icon {width:38px;height:38px;flex-basis:38px;border-radius:11px;}
  .repair-approach-card .approach-icon svg {width:23px;height:23px;}
  .repair-approach-card .approach-copy {padding-right:0;gap:5px;}
  .repair-approach-card .approach-copy b {font-size:clamp(13px,3.45vw,16px);line-height:1.25;}
  .repair-approach-card .approach-copy small {font-size:clamp(10px,2.8vw,12px);line-height:1.42;}
  .repair-approach-card .approach-arrow {top:15px;right:14px;font-size:18px;}
  .dark-section .repair-note {max-width:100%;font-size:12px;line-height:1.5;}
  .hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {left:calc(19.5% + 17px) !important;top:calc(13% - 30px) !important;}
  .data-section {display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:26px !important;}
  .data-section > .data-copy {order:0 !important;width:100%;}
  .data-section > .data-visual {order:1 !important;width:100%;}
  .data-section .fine-print {margin-bottom:0;}
  .repair-first {padding-top:55px !important;}
  .repair-first .repair-primary-title {font-size:clamp(38px,8vw,55px)!important;line-height:1.09;}
  .about-story-panel {gap:18px!important;}
  .about-story-panel .story-copy {order:-1;border-top:0 !important;padding-top:0!important;}
  .about-story-panel .story-copy h2 {font-size:clamp(30px,7.8vw,39px)!important;line-height:1.17 !important;max-width:100%;margin-bottom:14px;}
  .about-story-panel .story-art {order:1;max-width:430px;margin:0 auto;}
  .about-story-panel .story-art .about-device-art {aspect-ratio:5/3!important;}
  .contact-layout .contact-detail-call {padding-top:10px!important;}
}
@media(max-width:390px){
  .dark-section .repair-approach-card {min-height:178px;padding:12px;}
  .repair-approach-card .approach-copy b {font-size:13px;}
  .repair-approach-card .approach-copy small {font-size:10px;}
  .hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {left:calc(19.5% + 17px) !important;}
}
@media(prefers-reduced-motion:reduce){
 .repair-approach-card{transition:none!important;}
}

/* 4.9: preserve legibility in the two-column approach grid on small phones. */
@media (max-width:760px) {
  .repair-approach-card .approach-copy small {font-size:12px !important;line-height:1.42 !important;}
  .repair-approach-card .approach-copy b {font-size:14px !important;}
  .dark-section .repair-approach-card {min-height:188px;}
}
@media (max-width:360px) {
  .dark-section .device-grid {grid-template-columns:1fr !important;}
  .dark-section .repair-approach-card {min-height:0;padding:15px 18px 18px;}
  .repair-approach-card .approach-copy b {font-size:16px !important;}
  .repair-approach-card .approach-copy small {font-size:12px !important;}
}


/* 4.9.1 final micro-lab + repair-page polish */
.hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
  left:calc(20.5% + 14px) !important;
  top:calc(14% - 5px) !important;
  width:142px !important;
  height:70px !important;
}

.services-divider {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-top:18px;
  margin-bottom:-8px;
}
.services-divider span {
  flex:1 1 auto;
  max-width:180px;
  height:1px;
  background:linear-gradient(90deg, rgba(83,109,255,0), rgba(83,109,255,.42), rgba(83,109,255,0));
}
.services-divider b {
  flex:none;
  font:800 12px/1 'DM Sans',sans-serif;
  letter-spacing:.16em;
  color:#6f83a8;
  text-transform:uppercase;
  white-space:nowrap;
}

@media (max-width:760px) {
  .hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
    left:calc(19.5% + 12px) !important;
    top:calc(13% - 2px) !important;
    width:126px !important;
    height:62px !important;
  }
  .services-divider {
    margin-top:10px;
    margin-bottom:-18px;
    gap:10px;
  }
  .services-divider span {max-width:none;}
  .services-divider b {
    font-size:10px;
    letter-spacing:.14em;
    text-align:center;
    white-space:normal;
    max-width:210px;
  }
}

@media (max-width:390px) {
  .hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
    left:calc(19.5% + 11px) !important;
    top:calc(13% - 1px) !important;
    width:122px !important;
    height:60px !important;
  }
}


/* FixMobi 5.0: production finishing touches. Small, intentional overrides. */
/* SVG tool's visible tip should sit 2–4 px right of the screw's center, on its horizontal axis. */
.hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
  left:calc(20.5% + 17px) !important;
}
/* Keep a concise, single-line section divider, even on a narrow phone. */
.services-divider { gap:12px; }
.services-divider b { color:#526a92; font-weight:800; }
/* Supporting text is comfortably legible without overpowering the headings. */
.data-copy .fine-print {color:#687d9a !important;font-size:12px !important;line-height:1.65 !important;}
.contact-detail p {color:#596d8b !important;}
.form-heading p, .form-hint {color:#63758f !important;}
.faq-intro p {color:#b5c6e5 !important;}
/* Noticeable keyboard-focus indicators for the primary actions and interactive games. */
.button:focus-visible,.text-link:focus-visible,.card-link:focus-visible,
.service-card a:focus-visible,.pro-device-card:focus-visible,.fault-card:focus-visible,
.back-to-top:focus-visible,.messenger-float:focus-visible,.nav-links a:focus-visible,
.precision-reset:focus-visible,.data-lab button:focus-visible,
.game-screw:focus-visible,.faq-list summary:focus-visible {
  outline:3px solid #46c5ef !important;
  outline-offset:3px;
}
@media (max-width:760px) {
  .hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
    left:calc(19.5% + 14px) !important;
    top:calc(13% - 7px) !important;
  }
  .services-divider {gap:9px;}
  .services-divider b {white-space:nowrap;max-width:none;font-size:10px;letter-spacing:.075em;}
  .services-divider span {min-width:14px;}
  .story-copy p {font-size:14px !important;line-height:1.72 !important;}
  .contact-detail p {font-size:13px !important;line-height:1.6 !important;}
  .form-heading p {font-size:12px !important;line-height:1.6 !important;}
  .form-hint {font-size:11px !important;line-height:1.65 !important;}
}
@media (max-width:390px) {
  .hero-lab-wrap .precision-board .precision-tool.precision-tool-v2 {
    left:calc(19.5% + 13px) !important;
    top:calc(13% - 6px) !important;
  }
}


/* 5.1 - screwdriver aligned against the actual screw head on both breakpoints.
   The tip is to the RIGHT of the outer ring, on the horizontal screw axis. */
#precision-lab .precision-board .precision-tool.precision-tool-v2 {
  left:calc(20.5% + 42px) !important;
  top:calc(14% - 23px) !important;
  width:170px !important;
  height:78px !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
  transform:none !important;
  pointer-events:none !important;
  z-index:14 !important;
}
#precision-lab .precision-board .precision-tool.precision-tool-v2 svg {
  width:100% !important;height:100% !important;
  overflow:visible;
}
@media (max-width:760px) {
  #precision-lab .precision-board .precision-tool.precision-tool-v2 {
    left:calc(20.5% + 38px) !important;
    top:calc(14% - 18px) !important;
    width:145px !important;
    height:66.53px !important;
  }
}
@media (max-width:390px) {
  #precision-lab .precision-board .precision-tool.precision-tool-v2 {
    left:calc(20.5% + 38px) !important;
    top:calc(14% - 18px) !important;
  }
}


/* 5.1.1 - micro-lab refinement: the tip sits next to the screw, not inside it; screw slightly smaller. */
#precision-lab .precision-board .precision-screw {
  width:38px !important;
  height:38px !important;
  left:calc(14% + 12px) !important;
  top:calc(15% + 12px) !important;
  border-width:4px !important;
}
#precision-lab .precision-board .precision-screw .precision-slot {
  inset:8px 7px !important;
  border-radius:4px !important;
}
@media (max-width:760px) {
  #precision-lab .precision-board .precision-screw {
    width:32px !important;
    height:32px !important;
    left:calc(14% + 12px) !important;
    top:calc(15% + 12px) !important;
  }
  #precision-lab .precision-board .precision-screw .precision-slot {
    inset:7px 6px !important;
  }
}
@media (max-width:390px) {
  #precision-lab .precision-board .precision-screw {
    width:31px !important;
    height:31px !important;
    left:calc(14% + 12px) !important;
    top:calc(15% + 12px) !important;
  }
}


/* FixMobi 5.2 - symmetric, clickable Phillips screw + gentle animated neon ring. */
#precision-lab .precision-board .precision-screw {
  display:block !important;
  width:35px !important;
  height:35px !important;
  box-sizing:border-box !important;
  padding:0 !important;
  border:3px solid #c5ddf1 !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 40% 27%,#f4fbff 0%,#ccdeee 30%,#829ebf 66%,#48668d 100%) !important;
  box-shadow:inset 0 0 0 2px rgba(225,245,255,.62),0 3px 8px rgba(0,7,25,.56) !important;
  isolation:isolate;
  cursor:pointer !important;
}
#precision-lab .precision-board .precision-screw .precision-slot {
  position:absolute !important;
  inset:auto !important;
  left:50% !important;
  top:50% !important;
  width:6px !important;
  height:19px !important;
  transform:translate(-50%,-50%) !important;
  border-radius:2px !important;
  background:#203e69 !important;
  box-shadow:inset 1px 1px 1px rgba(0,0,0,.48),0 0 1px rgba(255,255,255,.45) !important;
}
#precision-lab .precision-board .precision-screw .precision-slot::after {
  content:'' !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:19px !important;
  height:6px !important;
  transform:translate(-50%,-50%) !important;
  border-radius:2px !important;
  background:#203e69 !important;
  box-shadow:inset 1px 1px 1px rgba(0,0,0,.36) !important;
}
/* Separate pseudo-element avoids rotating the neon halo with the screw head. */
#precision-lab .precision-board .precision-screw::before {
  content:'';
  position:absolute;
  inset:-8px;
  z-index:-1;
  border:1.5px solid rgba(92,225,255,.76);
  border-radius:50%;
  background:transparent;
  pointer-events:none;
  box-shadow:0 0 0 2px rgba(85,218,255,.10),0 0 13px rgba(66,212,255,.72), inset 0 0 9px rgba(93,228,255,.19);
  animation:fm52-neon-screw 1.65s ease-in-out infinite;
}
@keyframes fm52-neon-screw {
  0%,100%{opacity:.66;transform:scale(.94);filter:brightness(.96)}
  50%{opacity:1;transform:scale(1.08);filter:brightness(1.26)}
}
#precision-lab .precision-lab.is-unscrewed .precision-screw::before,
#precision-lab .precision-lab.is-done .precision-screw::before {animation:none;opacity:0;}
#precision-lab .precision-board .precision-screw:focus-visible {outline:2px solid #8ceaff !important;outline-offset:10px !important;}
@media (max-width:760px){
  #precision-lab .precision-board .precision-screw {width:31px !important;height:31px !important;}
  #precision-lab .precision-board .precision-screw .precision-slot {height:17px !important;width:5.5px !important;}
  #precision-lab .precision-board .precision-screw .precision-slot::after {width:17px !important;height:5.5px !important;}
}
@media(max-width:390px){#precision-lab .precision-board .precision-screw {width:30px !important;height:30px !important;}}
@media(prefers-reduced-motion:reduce){
  #precision-lab .precision-board .precision-screw::before {animation:none !important;opacity:.78;}
}

/* 5.5 - inset the screw by 8px diagonally from its 5.4 location,
   leaving the pulsing neon ring clear of the cover's rounded border.
   The geometry-based tool alignment in main.js automatically follows the
   screw, retaining the 9px tip gap and the 5px upward offset. */
#precision-lab .precision-board .precision-screw {
  left:calc(20.5% + 13px) !important;
  top:calc(14% + 13px) !important;
}

/* 5.6 FINAL: matching footer, careful contrast, permanent success light */
.footer .footer-main {
  grid-template-columns:minmax(0,1.3fr) minmax(0,.68fr) minmax(0,1fr) minmax(0,.72fr);
  gap:clamp(18px,3.3vw,48px);
  padding-bottom:30px;
}
.footer .footer-social>a {
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:36px;
  border-radius:11px;
  border:1px solid #365484;
  padding:6px 13px;
  background:#152749;
  color:#dbe8ff!important;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}
.footer .footer-social>a:hover {background:#22416f;border-color:#84b9ff;color:#fff!important;}
.footer .footer-social>a span {color:#88d9ff;font-size:17px;}
.footer-web-offer {
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:36px;
  padding:24px 28px;
  border:1px solid #385685;
  border-radius:22px;
  background:radial-gradient(ellipse at 10% 0%,rgba(76,124,246,.17),transparent 55%),linear-gradient(116deg,#172b53,#10213f 70%);
  box-shadow:inset 0 1px 0 #b7ddff17,0 16px 32px #03081430;
}
.footer-web-icon {
  width:66px;height:66px;flex:0 0 66px;
  display:grid;place-items:center;
  border-radius:19px;
  color:#9bddff;
  background:linear-gradient(155deg,#30539c,#1a335f);
  border:1px solid #648fca;
  box-shadow:inset 0 1px 0 #fff2,0 7px 18px #07122666;
}
.footer-web-copy {min-width:0;flex:1 1 auto;}
.footer-web-eyebrow {
  display:block;
  margin-bottom:5px;
  font:800 11px/1.4 'DM Sans',sans-serif;
  letter-spacing:.15em;
  color:#91d7ff;
}
.footer .footer-web-copy h3 {
  color:#f4f8ff;
  margin:0 0 6px;
  font:700 clamp(21px,2vw,29px)/1.15 'Outfit',sans-serif;
  letter-spacing:-.025em;
}
.footer .footer-web-copy p {margin:0;color:#aebfdd;font-size:13px;line-height:1.55;}
.footer .footer-web-button {
  flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-height:49px;padding:11px 19px;
  border:1px solid #8cbbff;
  border-radius:13px;
  background:#e3edff;
  font:700 14px/1.2 'Outfit',sans-serif;
  color:#1c3970!important;text-decoration:none;
  transition:transform .22s,background .22s,box-shadow .22s;
}
.footer .footer-web-button:hover {
  background:#fff;
  transform:translateY(-2px);
  box-shadow:0 9px 20px #06152c66;
}
.footer .footer-web-button span {font-size:19px;line-height:1;}
/* The back-to-top control and contact shortcut share the same baseline. */
.back-to-top {bottom:22px!important;width:46px!important;height:46px!important;}

/* This light stays ON after completing Micro Lab; it does not depend on an animation ending. */
#precision-lab.precision-success .precision-circuit .circuit-core {
  background:radial-gradient(circle at 50% 40%,#1e6667 0%,#103e4f 56%,#0b1e32 100%)!important;
  border-color:#80f7db!important;
  color:#d5ffef!important;
  box-shadow:inset 0 0 25px #67f0c750,0 0 17px #3aeab37c,0 0 37px #36f8d438!important;
  text-shadow:0 0 11px #79ffe6b5,0 0 22px #40efc677!important;
  transition:background .3s,border-color .3s,box-shadow .3s,color .3s!important;
}
#precision-lab.precision-success .precision-circuit .circuit-core span {
  color:#9dffe5!important;
  text-shadow:0 0 9px #40f0c3a8;
  opacity:1!important;
}
@media(max-width:1000px) {
  .footer .footer-main {gap:24px;}
  .footer-web-offer {gap:16px;padding:21px 23px;}
}
@media(max-width:760px) {
  .footer .footer-main {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px 22px;
    padding-bottom:28px;
  }
  .footer .footer-brand {grid-column:1/-1;}
  .footer .footer-social {grid-column:1/-1;}
  .footer .footer-web-offer {
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:start;
    gap:12px 15px;
    padding:20px;
    margin-bottom:26px;
    border-radius:19px;
  }
  .footer-web-icon {width:54px;height:54px;flex-basis:54px;border-radius:15px;}
  .footer-web-icon svg {width:27px;height:27px;}
  .footer .footer-web-copy h3 {font-size:clamp(19px,5.4vw,25px);line-height:1.2;}
  .footer-web-eyebrow {font-size:10px;letter-spacing:.1em;}
  .footer .footer-web-copy p {font-size:12px;line-height:1.55;}
  .footer .footer-web-button {grid-column:1/-1;width:100%;min-height:46px;margin-top:7px;}
  .back-to-top {bottom:15px!important;width:52px!important;height:52px!important;}
}
@media(max-width:360px) {
  .footer .footer-web-offer {padding:16px;gap:11px;}
  .footer .footer-web-copy h3 {font-size:19px;}
}
@media(prefers-reduced-motion:reduce) {
  .footer .footer-web-button {transition:none;}
}


/* FixMobi 5.7: Micro Lab - single instruction in the footer row, aligned with reset. */
#precision-lab .precision-footer {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  min-height:44px;
}
#precision-lab .precision-footer .precision-guidance {
  position:relative !important;
  inset:auto !important;
  z-index:4;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:9px !important;
  flex:0 1 auto !important;
  min-width:0;
  width:max-content;
  max-width:calc(100% - 55px) !important;
  min-height:40px !important;
  margin:0 !important;
  padding:8px 13px !important;
  border:1px solid rgba(101,206,254,.48);
  border-radius:12px;
  background:linear-gradient(130deg,rgba(16,50,91,.96),rgba(29,71,120,.96));
  box-shadow:inset 0 1px 0 rgba(224,244,255,.14),0 5px 16px rgba(1,12,33,.27);
  color:#c7f4ff;
  font-family:'DM Sans',sans-serif;
  font-size:10px !important;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.055em;
  white-space:nowrap;
  text-align:left;
  pointer-events:none;
}
#precision-lab .precision-footer #precision-reset {
  flex:0 0 42px !important;
  width:42px !important;
  height:42px !important;
  min-height:42px !important;
  min-width:42px !important;
  display:grid;
  place-items:center;
  margin:0 !important;
}
#precision-lab .precision-footer .precision-guide-dot {flex:0 0 8px;}
/* Preserve the accessibility live announcement, but remove the redundant visible instruction. */
#precision-lab .precision-message-sr {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
/* A clearer module name and subtitle on the silver cover. */
#precision-lab .precision-board .precision-cover .shield-title {
  font-size:clamp(15px,1.4vw,18px) !important;
  line-height:1.15 !important;
  letter-spacing:.1em !important;
}
#precision-lab .precision-board .precision-cover small {
  font-size:clamp(11px,1vw,13px) !important;
  line-height:1.3 !important;
  letter-spacing:.02em;
  font-weight:600 !important;
}
@media(max-width:760px) {
  #precision-lab .precision-footer {gap:8px !important;min-height:42px;}
  #precision-lab .precision-footer .precision-guidance {
    min-height:41px !important;
    padding:8px 10px !important;
    max-width:calc(100% - 49px) !important;
    font-size:9px !important;
    letter-spacing:.025em;
  }
  #precision-lab .precision-footer #precision-reset {
    flex-basis:41px !important;
    width:41px !important;height:41px !important;
    min-width:41px !important;min-height:41px !important;
  }
  #precision-lab .precision-board .precision-cover .shield-title {font-size:15px !important;}
  #precision-lab .precision-board .precision-cover small {font-size:11px !important;}
}
@media(max-width:360px) {
  #precision-lab .precision-footer .precision-guidance {
    font-size:8px !important;
    padding:7px 8px !important;
    gap:7px !important;
    letter-spacing:.01em;
  }
}

/* 5.9: przygotowanie e-maila bez zewnętrznej usługi formularzy. */
#repair-form .form-hint a {color:#465df2;text-decoration:underline;text-underline-offset:3px;}
#repair-form .form-status-ready {
  padding:11px 13px;margin-top:16px;
  font-size:12px;line-height:1.6;
  background:#eef4ff;color:#375277;
  border:1px solid #cbdaf2;border-radius:11px;
}
#repair-form .mail-assist[hidden],#repair-form .mail-assist-manual[hidden]{display:none!important;}
#repair-form .mail-assist {
  margin-top:10px;padding:17px;
  background:linear-gradient(145deg,#f6f8ff,#eef4ff);
  border:1px solid #d6e1f6;border-radius:16px;
}
#repair-form .mail-assist > p {
  color:#3d5374;font-size:12px;line-height:1.65;margin:0 0 13px;
}
#repair-form .mail-assist > p strong {color:#172c50;}
#repair-form .mail-assist-actions {display:flex;flex-wrap:wrap;gap:9px;}
#repair-form .mail-assist-actions a, #repair-form .mail-assist-actions button {
  display:inline-flex;justify-content:center;align-items:center;gap:8px;
  min-height:44px;padding:10px 13px;border-radius:11px;
  font:700 12px/1.4 'Outfit',sans-serif;
  text-decoration:none;cursor:pointer;
}
#repair-form .mail-assist-open {
  background:#5067f5;color:#fff!important;border:1px solid #5067f5;
}
#repair-form .mail-assist-copy {
  background:#fff;border:1px solid #c8d7f5;color:#1b315b;
}
#repair-form .mail-assist-actions a:focus-visible, #repair-form .mail-assist-actions button:focus-visible {
  outline:3px solid #55bcee;outline-offset:3px;
}
#repair-form .mail-assist-manual {margin-top:15px;}
#repair-form .mail-assist-manual label {display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#233b65;}
#repair-form .mail-assist-manual textarea {min-height:110px;}
@media(max-width:420px) {
  #repair-form .mail-assist-actions a,#repair-form .mail-assist-actions button{width:100%;}
}


/* 5.9.1: czytelna walidacja dla pól obowiązkowych, w tym list wyboru i zgody. */
#repair-form .form-error-summary[hidden] {display:none!important;}
#repair-form .form-error-summary {
  margin:0 0 20px;
  padding:13px 15px;
  border:1px solid #f0a2a7;
  border-left:4px solid #dc394b;
  background:#fff0f0;
  border-radius:11px;
  color:#a62639;
  font:700 13px/1.5 'DM Sans',sans-serif;
}
#repair-form input.is-invalid:not([type=checkbox]),
#repair-form select.is-invalid,
#repair-form textarea.is-invalid,
#repair-form input.is-invalid:not([type=checkbox]):focus,
#repair-form select.is-invalid:focus,
#repair-form textarea.is-invalid:focus {
  background-color:#fffafa!important;
  color:#242b42;
  border:2px solid #d83348!important;
  box-shadow:0 0 0 3px rgba(216,51,72,.11)!important;
  outline:none!important;
}
#repair-form label.has-error:not(.consent) {color:#b22b3d!important;}
#repair-form .consent.has-error {
  background:#fff1f1;
  border:1px solid #e9a1aa;
  border-radius:11px;
  padding:10px 12px;
  color:#a62639;
}
#repair-form .consent input.is-invalid {accent-color:#d83348;outline:2px solid #d83348;outline-offset:3px;}
#repair-form .field-error-msg {
  display:block;
  margin:6px 0 11px;
  color:#bc2b42;
  font:600 12px/1.45 'DM Sans',sans-serif;
}
#repair-form .consent + .field-error-msg {margin-top:-6px;margin-bottom:13px;}
@media(max-width:760px) {
  #repair-form .field-error-msg{font-size:12px;}
  #repair-form .form-error-summary{font-size:12px;}
}


/* FixMobi 5.9.2 - subtle final spacing and hero CTA polish. */
/* The first eyebrow starts closer to the header. Do not change the other pages. */
@media (min-width:761px) {
  body > main > section.hero.section {
    padding-top:38px !important;
  }
}
@media (min-width:761px) and (max-width:1059px) {
  body > main > section.hero.section {min-height:0 !important;}
}
@media (max-width:760px) {
  body > main > section.hero.section {
    padding-top:24px !important;
  }
}
/* Micro Lab inspired gradient (navy / technical blue / cyan), without restyling other CTAs. */
body > main > section.hero .hero-actions .button-primary {
  background:linear-gradient(112deg,#203c79 0%,#3869c7 54%,#329cb9 100%) !important;
  border:1px solid #528ed6 !important;
  box-shadow:0 12px 28px rgba(28,78,161,.24),inset 0 1px 0 rgba(255,255,255,.18) !important;
  color:#fff !important;
}
body > main > section.hero .hero-actions .button-primary:hover {
  background:linear-gradient(112deg,#2a5196 0%,#477ce0 58%,#36b5cd 100%) !important;
  box-shadow:0 16px 36px rgba(24,84,171,.29),inset 0 1px 0 rgba(255,255,255,.23) !important;
}
body > main > section.hero .hero-actions .button-primary:active {
  transform:translateY(0);
}


/* FixMobi 5.9.3 - shorter, balanced transitions across the About page only. */
/* Intro -> editorial: avoid summing two large section paddings. */
main > .about-hero {
  padding-bottom:20px !important;
}
main > .editorial-section {
  padding-top:39px !important;
  padding-bottom:43px !important;
}
/* Editorial -> story, keeping the story card breathing comfortably. */
main > .about-story-panel {
  margin-top:24px !important;
  margin-bottom:0 !important;
  padding-top:34px !important;
  padding-bottom:34px !important;
}
/* Story -> approach -> CTA: retain meaningful separation without a tall blank band. */
main > .values-section {
  padding-top:48px !important;
  padding-bottom:40px !important;
}
main > .about-final-cta {
  padding-top:26px !important;
  padding-bottom:68px !important;
}
@media(max-width:760px) {
  main > .about-hero {padding-bottom:12px !important;}
  main > .editorial-section {padding-top:27px !important;padding-bottom:25px !important;}
  main > .about-story-panel {
    margin-top:14px !important;
    margin-bottom:0 !important;
    padding-top:22px !important;
    padding-bottom:22px !important;
  }
  main > .values-section {padding-top:36px !important;padding-bottom:30px !important;}
  main > .about-final-cta {padding-top:18px !important;padding-bottom:48px !important;}
}


/* 5.9.4: A subtle, centered circuit separator between the About sections. */
main > .editorial-section {padding-bottom:26px !important;}
.about-transition-divider {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:17px;
  margin-top:0;
  margin-bottom:0;
  height:38px;
  max-width:1080px;
  pointer-events:none;
}
.about-transition-line {
  width:min(27%,200px);
  height:1px;
  background:linear-gradient(90deg,transparent 0%,#a9c4ed 65%,#76bce5 100%);
}
.about-transition-line:last-child {transform:scaleX(-1);}
.about-transition-symbol {
  width:38px;height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:linear-gradient(140deg,#eff4ff,#e2eeff);
  border:1px solid #c9dcf7;
  color:#4785dc;
  box-shadow:0 5px 16px #416fcf16,inset 0 1px 0 #fff;
}
.about-transition-symbol svg {width:23px;height:23px;}
main > .about-story-panel {margin-top:10px !important;padding-top:28px !important;}

/* Tighten the end of the device gallery, only after its disclaimer. */
main > .pro-showcase {padding-bottom:90px !important;}

/* Home CTA: brighter technical blue on the left, darker navy on the right. */
body > main > section.hero .hero-actions .button-primary {
  background:linear-gradient(110deg,#277dbd 0%,#2e61b0 55%,#172d61 100%) !important;
  border-color:#4d85cb !important;
  box-shadow:0 12px 28px rgba(26,74,145,.22),inset 0 1px 0 rgba(255,255,255,.2) !important;
}
body > main > section.hero .hero-actions .button-primary:hover {
  background:linear-gradient(110deg,#2e8bd3 0%,#346fca 55%,#213b79 100%) !important;
  box-shadow:0 16px 34px rgba(26,74,145,.28),inset 0 1px 0 rgba(255,255,255,.24) !important;
}
@media(max-width:760px) {
  main > .editorial-section {padding-bottom:16px !important;}
  .about-transition-divider {height:26px;gap:12px;}
  .about-transition-line {width:min(29%,130px);}
  .about-transition-symbol {width:30px;height:30px;flex-basis:30px;border-radius:10px;}
  .about-transition-symbol svg {width:19px;height:19px;}
  main > .about-story-panel {margin-top:4px !important;padding-top:16px !important;}
  main > .pro-showcase {padding-bottom:60px !important;}
}


/* FixMobi 5.9.5 - separator below the previous section, without overlap */
main > .about-transition-divider {
  margin-top:26px !important;
}
@media(max-width:760px){
  main > .about-transition-divider {margin-top:22px !important;}
  /* Previously the 30px decorative tile was inside a 26px row. */
  .about-transition-divider {height:32px;}
}


/* FixMobi 5.9.6 - final proportional spacing & icons */
/* The entire DATA LAB inner stack is narrower than the dark surface; consistent vertical axes. */
#data-lab > .dl-top,
#data-lab > .dl-compact-screen,
#data-lab > .dl-files,
#data-lab > .dl-progress,
#data-lab > .dl-percent,
#data-lab > .dl-actions,
#data-lab > .dl-disclaimer {
  width:min(calc(100% - 20px),440px) !important;
  max-width:440px !important;
  box-sizing:border-box !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
#data-lab > .dl-compact-screen {gap:13px !important;}
#data-lab .dl-files {gap:9px !important;}
#data-lab .dl-file {padding:10px 4px !important;}
#data-lab .dl-file-icon svg {height:23px !important;width:23px !important;}
#data-lab .dl-percent {text-align:left;}
#data-lab .dl-disclaimer {line-height:1.6 !important;}

/* High-quality metallic cross-head fasteners, still clickable by the same game logic. */
#repair-game .game-phone .game-screw {
  width:29px !important;
  height:29px !important;
  padding:0 !important;
  border:2px solid #c8dff4 !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 32% 23%,#f6fcff 0%,#ccdfef 29%,#8db4d5 62%,#426c9b 100%) !important;
  color:#18385d !important;
  display:grid !important;
  place-items:center !important;
  box-shadow:inset 0 1px 1px #fff9,inset 0 -2px 4px #1a3c6388,0 0 0 3px #4fb9ff29,0 0 12px #61cfff88;
  -webkit-tap-highlight-color:transparent;
}
#repair-game .game-screw .game-screw-icon {
  width:17px;height:17px;display:block;
  overflow:visible;
  filter:drop-shadow(0 1px 0 #d6ecfb);
  pointer-events:none;
}
#repair-game[data-stage="0"] .game-phone .game-screw:not(.removed) {
  background:radial-gradient(circle at 32% 23%,#f6fcff 0%,#c9e3f5 30%,#8bb4d7 65%,#366e9e 100%) !important;
  color:#19385d !important;
  border-color:#c7edff !important;
}
#repair-game .game-battery .battery-mark {
  display:grid;place-items:center;width:31px;height:31px;
  background:#69b8e625;border:1px solid #7ce4ff65;border-radius:9px;
  color:#f6c07f;
}
#repair-game .game-battery .battery-mark svg{width:20px;height:20px;display:block;}
#repair-game[data-stage="2"] .game-battery .battery-mark {color:#7cfbe4;}
#repair-game .game-success span svg {width:31px;height:31px;display:block;}
@media(max-width:760px) {
  #data-lab > .dl-top,
  #data-lab > .dl-compact-screen,
  #data-lab > .dl-files,
  #data-lab > .dl-progress,
  #data-lab > .dl-percent,
  #data-lab > .dl-actions,
  #data-lab > .dl-disclaimer {
    width:calc(100% - 16px) !important;
  }
  #repair-game .game-phone .game-screw {width:28px !important;height:28px !important;}
}
@media(max-width:340px) {
  #data-lab > .dl-top,
  #data-lab > .dl-compact-screen,
  #data-lab > .dl-files,
  #data-lab > .dl-progress,
  #data-lab > .dl-percent,
  #data-lab > .dl-actions,
  #data-lab > .dl-disclaimer {width:calc(100% - 6px) !important;}
  #data-lab .dl-file {font-size:10px !important;}
  #data-lab .dl-files {gap:6px !important;}
}
@media(prefers-reduced-motion:reduce) {
  #repair-game .game-phone .game-screw {transition:none !important;animation:none !important;}
}


/* FixMobi 5.9.6a: after battery replacement the repaired screen should no longer show cracks. */
#repair-game[data-stage="4"] .game-crack,
#repair-game[data-stage="5"] .game-crack {
  opacity:0 !important;
}


/* FixMobi 5.9.6b: final polish for logo/game/data-lab balance. */
#data-lab {
  padding-top:24px !important;
  padding-bottom:24px !important;
}
#data-lab > .dl-compact-screen {padding-top:14px !important;padding-bottom:14px !important;}
#data-lab .dl-files {gap:10px !important;}
#data-lab .dl-file {padding:11px 5px !important; min-height:88px !important;}

/* Slightly more centered battery connector */
.game-connector {left:50% !important;}
.game-connector:hover {transform:translateX(-50%) translateY(-3px) !important;}


/* FixMobi 5.9.7 - layout, glass, rotation, centering and contact hero */
#data-lab > .dl-top,
#data-lab > .dl-compact-screen,
#data-lab > .dl-files,
#data-lab > .dl-progress,
#data-lab > .dl-percent,
#data-lab > .dl-actions,
#data-lab > .dl-disclaimer {
  width:min(calc(100% - 8px),478px) !important;
  max-width:478px !important;
  box-sizing:border-box !important;
  margin-inline:auto !important;
}
#data-lab .dl-top {gap:8px !important;}
#data-lab .dl-live {font-size:clamp(9px, .9vw, 11px) !important;letter-spacing:.075em !important;}
/* Bring the small repair connector into the exact horizontal center of the handset. */
#repair-game .game-phone .game-connector {
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
}
#repair-game .game-phone .game-connector:hover {
  transform:translate(-50%,-3px) !important;
}
/* Counter-clockwise screw removal; spin the visible cross on activation. */
#repair-game .game-phone .game-screw.removed {
  transform:rotate(-170deg) scale(.15) !important;
  opacity:0 !important;
  pointer-events:none !important;
}
/* Glass spider cracks are irregular paths, not repeated parallel stripes. */
#repair-game .game-display .game-crack {
  display:block !important;
  width:100% !important;
  height:100% !important;
  inset:0 !important;
  background:none !important;
  pointer-events:none !important;
  opacity:.85;
  transition:opacity .65s ease !important;
}
#repair-game[data-stage="4"] .game-crack,
#repair-game[data-stage="5"] .game-crack {opacity:0 !important;}
/* The contact page hero can begin sooner without disturbing the form/cards alignment. */
main > .contact-hero {padding-top:clamp(34px,4vw,53px) !important;min-height:0 !important;}
@media(max-width:760px) {
  #data-lab > .dl-top,
  #data-lab > .dl-compact-screen,
  #data-lab > .dl-files,
  #data-lab > .dl-progress,
  #data-lab > .dl-percent,
  #data-lab > .dl-actions,
  #data-lab > .dl-disclaimer {
    width:calc(100% - 8px) !important;
  }
  #data-lab .dl-live {font-size:9px !important;letter-spacing:.05em !important;}
  main > .contact-hero {padding-top:34px !important;}
}
@media(max-width:340px) {
  #data-lab > .dl-top,
  #data-lab > .dl-compact-screen,
  #data-lab > .dl-files,
  #data-lab > .dl-progress,
  #data-lab > .dl-percent,
  #data-lab > .dl-actions,
  #data-lab > .dl-disclaimer {width:calc(100% - 4px) !important;}
  #data-lab .dl-live {font-size:8px !important;letter-spacing:0 !important;}
}


/* 5.9.8 - smaller gaps on the main page without compressing cards or text. */
main > .data-section {padding-bottom:82px !important;}
main > .benefits-section {padding-top:64px !important;padding-bottom:90px !important;}
main > .about-teaser {padding-top:88px !important;padding-bottom:88px !important;}
main > .faq-section {padding-top:92px !important;padding-bottom:92px !important;}

/* Screws are inside the handset outline. Keep their hit boxes comfortable. */
#repair-game .game-phone .game-screw[data-screw="1"],
#repair-game .game-phone .game-screw[data-screw="3"] {left:5px !important;right:auto !important;}
#repair-game .game-phone .game-screw[data-screw="2"],
#repair-game .game-phone .game-screw[data-screw="4"] {right:5px !important;left:auto !important;}
#repair-game .game-phone .game-screw[data-screw="1"],
#repair-game .game-phone .game-screw[data-screw="2"] {top:18px !important;bottom:auto !important;}
#repair-game .game-phone .game-screw[data-screw="3"],
#repair-game .game-phone .game-screw[data-screw="4"] {bottom:18px !important;top:auto !important;}

/* The complete screw head rotates visibly counterclockwise before disappearing. */
#repair-game .game-phone .game-screw.is-unscrewing {
  animation:fmScrewCounterClockwise .51s cubic-bezier(.22,.6,.3,1) both !important;
  pointer-events:none !important;
  transform-origin:50% 50% !important;
}
@keyframes fmScrewCounterClockwise {
  0% {transform:rotate(0deg) scale(1);opacity:1;}
  70% {transform:rotate(-245deg) scale(.9);opacity:1;}
  100% {transform:rotate(-330deg) scale(.55);opacity:.2;}
}
#repair-game .game-phone .game-screw.removed {
  transform:rotate(-330deg) scale(0) !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* Slightly smaller Micro Lab screw, keep its center in the same position.
   The screwdriver is aligned to the screw by ResizeObserver in main.js. */
#precision-lab .precision-board .precision-screw {
  width:33px !important;height:33px !important;
  left:calc(20.5% + 14px) !important;
  top:calc(14% + 14px) !important;
}
@media(max-width:760px) {
  main > .data-section {padding-bottom:72px !important;}
  main > .benefits-section {padding-top:42px !important;padding-bottom:62px !important;}
  main > .about-teaser {padding-top:58px !important;padding-bottom:58px !important;}
  main > .faq-section {padding-top:64px !important;padding-bottom:68px !important;}
  #precision-lab .precision-board .precision-screw {width:29px !important;height:29px !important;}
}
@media(max-width:390px) {
  #precision-lab .precision-board .precision-screw {width:28px !important;height:28px !important;}
}
@media(prefers-reduced-motion:reduce) {
  #repair-game .game-phone .game-screw.is-unscrewing {
    animation:none !important;
    opacity:.4 !important;
  }
}


/* 5.9.9: closer-to-corner screws, X-shaped heads and left-turn hover. */
#repair-game .game-phone .game-screw {
  width:27px !important;
  height:27px !important;
  transition:transform .2s ease, opacity .3s ease !important;
}
#repair-game .game-phone .game-screw .game-screw-icon {
  width:16px !important;
  height:16px !important;
  transform:rotate(-45deg);
  transform-origin:center center;
}
#repair-game .game-phone .game-screw[data-screw="1"],
#repair-game .game-phone .game-screw[data-screw="3"] {left:3px !important;right:auto !important;}
#repair-game .game-phone .game-screw[data-screw="2"],
#repair-game .game-phone .game-screw[data-screw="4"] {right:3px !important;left:auto !important;}
#repair-game .game-phone .game-screw[data-screw="1"],
#repair-game .game-phone .game-screw[data-screw="2"] {top:10px !important;bottom:auto !important;}
#repair-game .game-phone .game-screw[data-screw="3"],
#repair-game .game-phone .game-screw[data-screw="4"] {bottom:10px !important;top:auto !important;}
@media (hover:hover) and (pointer:fine) {
  #repair-game .game-phone .game-screw:hover:not(.removed):not(.is-unscrewing) {
    transform:rotate(-19deg) scale(1.055) !important;
  }
}
@media (max-width:760px) {
  #repair-game .game-phone .game-screw {width:26px !important;height:26px !important;}
}
/* DATA RECOVERY LAB: only 4px more inner width, keep the dark frame visible. */
#data-lab > .dl-top,
#data-lab > .dl-compact-screen,
#data-lab > .dl-files,
#data-lab > .dl-progress,
#data-lab > .dl-percent,
#data-lab > .dl-actions,
#data-lab > .dl-disclaimer {
  width:min(calc(100% - 4px), 488px) !important;
  max-width:488px !important;
}
@media(max-width:760px) {
  #data-lab > .dl-top,
  #data-lab > .dl-compact-screen,
  #data-lab > .dl-files,
  #data-lab > .dl-progress,
  #data-lab > .dl-percent,
  #data-lab > .dl-actions,
  #data-lab > .dl-disclaimer {width:calc(100% - 4px) !important;}
}
@media(max-width:340px) {
  #data-lab > .dl-top,
  #data-lab > .dl-compact-screen,
  #data-lab > .dl-files,
  #data-lab > .dl-progress,
  #data-lab > .dl-percent,
  #data-lab > .dl-actions,
  #data-lab > .dl-disclaimer {width:calc(100% - 2px) !important;}
}
