/* ============================================================
   QWERTY Fix — V2 "Sky & Cloud Premium" design system
   Light, airy, premium. Floating white glass cards over a soft
   sky gradient. Signature nod: lightened keycaps + mono prices.
   ============================================================ */

:root{
  /* sky canvas */
  --sky-0:#F7FAFF;   /* top, near white */
  --sky-1:#EAF2FF;   /* canvas tint */
  --sky-2:#DCE9FF;   /* mid */
  --sky-3:#C9DDFF;   /* deep pool */
  --white:#FFFFFF;

  /* brand blues */
  --blue:#2E7DF6;        /* primary accent */
  --blue-bright:#5AA0FF; /* gradient top */
  --blue-deep:#1A5FD0;   /* hover / gradient bottom */
  --blue-ink:#08233F;    /* text on blue keycap */

  /* text */
  --navy:#0E2A4F;   /* display headlines */
  --ink:#1B2A3D;    /* body */
  --mut:#5B6B82;    /* muted */
  --faint:#8A99AE;  /* very muted */

  /* signals */
  --mint:#12B886;
  --amber:#F5A524;

  /* lines & glass */
  --line:#E2EAF5;
  --line-soft:#EEF3FB;
  --glass:rgba(255,255,255,.72);
  --glass-brd:rgba(255,255,255,.9);

  /* shadows (blue-tinted, soft) */
  --sh-sm:0 2px 8px -2px rgba(23,67,135,.12);
  --sh-md:0 14px 34px -14px rgba(23,67,135,.22);
  --sh-lg:0 30px 60px -22px rgba(23,67,135,.28);
  --sh-blue:0 18px 40px -16px rgba(46,125,246,.45);

  --r-card:22px;
  --r-key:16px;
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; color:var(--ink); font-family:'Inter',system-ui,sans-serif;
  background:var(--sky-1); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
.font-display{font-family:'Plus Jakarta Sans','Inter',sans-serif}
.font-mono{font-family:'JetBrains Mono',ui-monospace,monospace}
h1,h2,h3{font-family:'Plus Jakarta Sans','Inter',sans-serif; color:var(--navy); margin:0}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
::selection{background:rgba(46,125,246,.22)}

/* ---------- sky + clouds background ---------- */
.skybg{position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(900px 520px at 82% -6%, rgba(255,255,255,.95), transparent 60%),
    radial-gradient(1200px 700px at 12% 0%, #FFFFFF 0%, transparent 55%),
    linear-gradient(180deg, var(--sky-0) 0%, var(--sky-1) 38%, var(--sky-2) 100%);
}
.skybg::after{ /* faint sun glow */
  content:""; position:absolute; top:-160px; right:-80px; width:620px; height:620px;
  background:radial-gradient(circle, rgba(120,180,255,.38), transparent 62%); filter:blur(8px);
}
.clouds{position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden}
.cloud{position:absolute; background:#fff; border-radius:50%; filter:blur(34px); opacity:.7}
.cloud.c1{width:420px; height:170px; top:8%;  left:-60px;  opacity:.55}
.cloud.c2{width:520px; height:200px; top:26%; right:-120px; opacity:.5}
.cloud.c3{width:360px; height:150px; top:54%; left:8%;     opacity:.4}
.cloud.c4{width:480px; height:190px; top:74%; right:-80px; opacity:.45}

/* ---------- layout ---------- */
.container{max-width:1180px; margin-inline:auto; padding-inline:22px}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); font-weight:600}
.eyebrow::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--blue);
  box-shadow:0 0 0 4px rgba(46,125,246,.16)}
.grad{background:linear-gradient(120deg,var(--blue-bright),var(--blue)); -webkit-background-clip:text;
  background-clip:text; color:transparent}
.section{padding-block:84px}
.lead{color:var(--mut); font-size:18px; line-height:1.65}

/* old .logo wordmark + .qf-logo lockup removed — replaced by text-only .brand */

/* ---------- header ---------- */
.site-header{position:fixed; top:14px; inset-inline:0; z-index:50; transition:top .3s}
.site-header .bar{max-width:1180px; margin-inline:auto; padding:9px 12px 9px 18px;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:var(--glass); border:1px solid var(--glass-brd); border-radius:999px;
  box-shadow:var(--sh-md); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px)}
.nav{display:none; align-items:center; gap:6px}
@media(min-width:1024px){.nav{display:flex}}
.nav a{font-size:14.5px; color:var(--ink); font-weight:500; padding:8px 13px; border-radius:999px;
  transition:background .2s,color .2s}
.nav a:hover{background:rgba(46,125,246,.1); color:var(--blue-deep)}
.hgroup{display:flex; align-items:center; gap:9px}
.lang{font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; color:var(--mut);
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 11px; cursor:pointer;
  transition:.2s}
.lang:hover{color:var(--blue-deep); border-color:var(--blue)}
.burger{display:inline-flex; padding:8px; color:var(--navy); background:none; border:0; cursor:pointer}
@media(min-width:1024px){.burger{display:none}.mobile-menu{display:none!important}}
.mobile-menu{display:none; margin:8px auto 0; max-width:1180px;
  background:var(--glass); border:1px solid var(--glass-brd); border-radius:20px; box-shadow:var(--sh-md);
  backdrop-filter:blur(16px); padding:10px}
.mobile-menu a{display:block; padding:11px 14px; border-radius:12px; color:var(--ink); font-weight:500}
.mobile-menu a:hover{background:rgba(46,125,246,.1)}
.mobile-menu a.mm-cta{background:var(--blue); color:#fff; font-weight:700; text-align:center; margin-bottom:6px}
.mobile-menu a.mm-cta:hover{background:var(--blue-deep)}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
  font-weight:600; font-size:15px; border-radius:999px; padding:12px 22px; border:1px solid transparent;
  transition:transform .15s, box-shadow .2s, background .2s, color .2s, border-color .2s; white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-primary{color:#fff; background:linear-gradient(180deg,#5AA0FF,var(--blue) 55%,var(--blue-deep));
  box-shadow:0 10px 24px -8px rgba(46,125,246,.5), inset 0 1px 0 rgba(255,255,255,.28)}
.btn-primary:hover{background:linear-gradient(180deg,#6aacff,var(--blue-deep));
  box-shadow:0 18px 40px -12px rgba(46,125,246,.6), inset 0 1px 0 rgba(255,255,255,.32); transform:translateY(-1px)}
.btn-ghost{color:var(--navy); background:#fff; border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue); color:var(--blue-deep); box-shadow:var(--sh-sm)}
.btn-white{color:var(--blue-deep); background:#fff}
.btn-white:hover{box-shadow:var(--sh-md)}
.btn-clear{color:#fff; background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4)}
.btn-clear:hover{background:rgba(255,255,255,.26)}
.btn-sm{padding:9px 16px; font-size:14px}
.btn-lg{padding:15px 28px; font-size:16px}

/* ---------- chips ---------- */
.chip{display:inline-flex; align-items:center; gap:7px; font-family:'JetBrains Mono',monospace;
  font-size:12px; font-weight:600; color:var(--mut); background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:6px 12px}
.chip .dot{width:7px; height:7px; border-radius:50%; background:var(--mint);
  box-shadow:0 0 0 3px rgba(18,184,134,.18)}
.chip--mint{color:#0c8a64; border-color:rgba(18,184,134,.32); background:rgba(18,184,134,.08)}
.chip--blue{color:var(--blue-deep); border-color:rgba(46,125,246,.32); background:rgba(46,125,246,.08)}
.chip--blue .dot,.chip--mint .dot{background:currentColor; box-shadow:none}
.chip--amber{color:#a8710a; border-color:rgba(245,165,36,.32); background:rgba(245,165,36,.1)}

/* ---------- cards ---------- */
.card{background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--sh-sm);
  transition:transform .22s, box-shadow .22s, border-color .22s}
a.card,.card.link{cursor:pointer}
a.card:hover,.card.link:hover{transform:translateY(-4px); box-shadow:var(--sh-md); border-color:#CFE0FA}
.glass{background:var(--glass); border:1px solid var(--glass-brd); border-radius:var(--r-card);
  box-shadow:var(--sh-lg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px)}
.ico{display:inline-grid; place-items:center; color:var(--blue)}
.ico-badge{width:46px; height:46px; border-radius:13px; background:rgba(46,125,246,.1); color:var(--blue);
  display:grid; place-items:center; flex:none}

/* ---------- keycap (signature, lightened) ---------- */
.keycap{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px;
  background:linear-gradient(180deg,#fff,#F4F8FF); border:1px solid var(--line);
  border-radius:var(--r-key); padding:16px 8px 13px; cursor:pointer; color:var(--navy);
  box-shadow:0 3px 0 #DCE6F5, var(--sh-sm); transition:transform .14s, box-shadow .2s, border-color .2s}
.keycap:hover{border-color:#BFD6FA; transform:translateY(-2px); box-shadow:0 5px 0 #D3E1F6, var(--sh-md)}
.keycap:active{transform:translateY(2px); box-shadow:0 1px 0 #DCE6F5, var(--sh-sm)}
.keycap .kc-ico{color:var(--blue)}
.keycap .kc-label{font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; color:var(--ink)}

/* ---------- price ---------- */
.price{font-family:'JetBrains Mono',monospace; font-weight:700; color:var(--navy); line-height:1}
.price .from{display:block; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--faint); margin-bottom:3px}

/* ---------- tiers ---------- */
.tier{position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-card);
  padding:26px; box-shadow:var(--sh-sm); transition:transform .2s, box-shadow .2s}
.tier:hover{transform:translateY(-3px); box-shadow:var(--sh-md)}
.tier.featured{color:#fff; border-color:transparent;
  background:linear-gradient(165deg,var(--blue-bright),var(--blue) 60%,var(--blue-deep));
  box-shadow:0 24px 52px -18px rgba(46,125,246,.6), inset 0 1px 0 rgba(255,255,255,.18)}
.tier.featured:hover{box-shadow:0 30px 60px -18px rgba(46,125,246,.66), inset 0 1px 0 rgba(255,255,255,.22)}
@media(min-width:821px){ .tier.featured{transform:translateY(-8px)} .tier.featured:hover{transform:translateY(-11px)} }
/* champagne "most popular" badge on the PRO tier */
.tier-badge{display:inline-flex; align-items:center; gap:6px; font-family:'JetBrains Mono',monospace;
  font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:#5A3D00;
  background:linear-gradient(180deg,#FFE7B0,#F3C463); border:1px solid rgba(255,255,255,.55);
  border-radius:999px; padding:5px 12px; margin-bottom:14px; box-shadow:0 5px 14px -5px rgba(0,0,0,.3)}
.tier-badge .star{color:#B5730A}
.tier.featured h3,.tier.featured .price{color:#fff}
.tier.featured .t-desc{color:rgba(255,255,255,.86)}
.t-name{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--mut); font-weight:600}
.tier.featured .t-name{color:rgba(255,255,255,.85)}
.t-desc{color:var(--mut); font-size:14px; line-height:1.6; margin-top:12px}

/* ---------- stats band ---------- */
.stat .num{font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; color:var(--blue);
  font-size:clamp(38px,5vw,58px); line-height:1; letter-spacing:-.02em}
.stat .lbl{color:var(--mut); font-size:13.5px; margin-top:8px; line-height:1.45}

/* ---------- star rating ---------- */
.stars{display:inline-flex; gap:2px; color:var(--amber)}

/* ---------- funnel: progress + controls ---------- */
.progress{display:flex; gap:7px}
.progress span{height:6px; flex:1; border-radius:999px; background:var(--line); transition:background .3s}
.progress span.on{background:linear-gradient(90deg,var(--blue-bright),var(--blue))}
.search{width:100%; font-size:15px; color:var(--ink); background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:13px 15px 13px 42px; transition:.2s}
.search:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 4px rgba(46,125,246,.14)}
.model-btn{display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left;
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:13px 16px; cursor:pointer;
  font-weight:500; color:var(--ink); transition:.18s}
.model-btn:hover{border-color:var(--blue); background:#F6FAFF; transform:translateX(2px)}
.issue{display:flex; flex-direction:column; gap:10px; align-items:flex-start; text-align:left;
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px; cursor:pointer;
  transition:.2s; height:100%}
.issue:hover{border-color:var(--blue); transform:translateY(-3px); box-shadow:var(--sh-md)}
.issue .ico-badge{width:42px; height:42px}
.issue-note{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--blue-deep)}

/* ---------- footer ---------- */
.footer{margin-top:40px; background:linear-gradient(180deg,transparent,rgba(255,255,255,.6));
  border-top:1px solid var(--line)}
.footer .label{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--faint); font-weight:600; margin-bottom:14px}
.footer a.flink{color:var(--mut); transition:color .2s}
.footer a.flink:hover{color:var(--blue-deep)}

/* ---------- footer contact/action hub ---------- */
.foot-hub{display:grid; grid-template-columns:1fr auto; gap:clamp(20px,3.5vw,44px); align-items:center;
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--sh-sm);
  padding:clamp(22px,3vw,34px)}
.foot-hub__h{font-size:clamp(20px,2.5vw,27px); font-weight:800; letter-spacing:-.02em; color:var(--navy);
  margin:0; line-height:1.18}
.foot-hub__sub{color:var(--mut); font-size:15px; line-height:1.55; margin:9px 0 0; max-width:44ch}
.foot-hub__actions{display:flex; flex-wrap:wrap; gap:14px}
.foot-hub__act{display:flex; flex-direction:column; gap:6px; min-width:158px}
.foot-hub__act .btn{width:100%}
.foot-hub__act small{font-size:11.5px; color:var(--faint); text-align:center; line-height:1.3}
@media(max-width:820px){ .foot-hub{grid-template-columns:1fr; gap:22px} }
@media(max-width:520px){ .foot-hub__actions{flex-direction:column} .foot-hub__act{min-width:0} }
.soc{width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:#fff;
  border:1px solid var(--line); color:var(--mut); transition:.2s}
.soc:hover{color:var(--blue-deep); border-color:var(--blue); box-shadow:var(--sh-sm)}

/* ---------- device mockup (hero accent) ---------- */
.device{position:relative; width:208px; aspect-ratio:9/19; border-radius:34px; background:#0E2A4F;
  padding:9px; box-shadow:var(--sh-lg)}
.device .screen{width:100%; height:100%; border-radius:26px; overflow:hidden; position:relative;
  background:linear-gradient(180deg,#cfe2ff,#eaf3ff)}
.device .notch{position:absolute; top:9px; left:50%; transform:translateX(-50%); width:62px; height:16px;
  background:#0E2A4F; border-radius:0 0 12px 12px; z-index:2}

/* ---------- animations ---------- */
.rise{opacity:0; transform:translateY(16px); animation:rise .7s cubic-bezier(.22,1,.36,1) forwards}
.rise-1{animation-delay:.05s}.rise-2{animation-delay:.16s}.rise-3{animation-delay:.27s}.rise-4{animation-delay:.38s}
@keyframes rise{to{opacity:1; transform:none}}
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1; transform:none}
.floaty{animation:floaty 7s ease-in-out infinite}
@keyframes floaty{50%{transform:translateY(-14px)}}
.drift{animation:drift 26s linear infinite}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(40px)}}

/* ---------- breadcrumb ---------- */
.crumb{display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; color:var(--mut)}
.crumb a{color:var(--mut); transition:color .2s}
.crumb a:hover{color:var(--blue-deep)}
.crumb .sep{color:var(--faint)}
.crumb .cur{color:var(--navy); font-weight:600}

/* ---------- model chips ---------- */
.mchip{display:inline-flex; align-items:center; gap:6px; font-family:'JetBrains Mono',monospace; font-size:13px;
  font-weight:600; color:var(--navy); background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:8px 14px; cursor:pointer; transition:transform .16s, box-shadow .2s, border-color .2s, color .2s}
.mchip:hover{border-color:var(--blue); color:var(--blue-deep); box-shadow:var(--sh-sm); transform:translateY(-1px)}

/* ---------- repair-card meta pills ---------- */
.meta{display:inline-flex; align-items:center; gap:5px; font-family:'JetBrains Mono',monospace; font-size:11.5px;
  font-weight:600; color:var(--mut); background:#F4F8FF; border-radius:999px; padding:4px 9px; white-space:nowrap}
.meta.ok{color:#0c8a64; background:rgba(18,184,134,.1)}
.meta svg{flex:none}
.r-arrow{color:var(--blue); transition:transform .2s}
a.card:hover .r-arrow{transform:translateX(3px)}

/* ---------- FAQ accordion (native details) ---------- */
.faq details{background:#fff; border:1px solid var(--line); border-radius:16px; margin-bottom:12px;
  transition:border-color .2s, box-shadow .2s}
.faq details[open]{border-color:#CFE0FA; box-shadow:var(--sh-sm)}
.faq summary{list-style:none; cursor:pointer; padding:18px 20px; display:flex; align-items:center;
  justify-content:space-between; gap:14px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700;
  color:var(--navy); font-size:16.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none; width:27px; height:27px; border-radius:50%; display:grid; place-items:center;
  background:rgba(46,125,246,.1); color:var(--blue); transition:transform .25s}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .ans{padding:0 20px 18px; color:var(--mut); line-height:1.65; font-size:14.5px; max-width:70ch}

/* ---------- responsive grids ---------- */
.hero-grid{grid-template-columns:1.05fr .95fr}
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .hero-grid .device{display:none}
  .why-grid{grid-template-columns:1fr!important}
  .svc-grid{grid-template-columns:repeat(3,1fr)!important}
}
@media(max-width:820px){
  .how-grid{grid-template-columns:1fr!important}
  .cards-3{grid-template-columns:repeat(2,1fr)!important}
  .svc-grid{grid-template-columns:repeat(2,1fr)!important}
  .foot-grid{grid-template-columns:1fr 1fr!important}
  .site-header .bar{padding-left:16px}
  .inst-row{grid-template-columns:1fr!important}
  .b2b-stats{grid-template-columns:1fr 1fr!important}
  .b2b-stats .stat:nth-child(2){border-inline:none!important; border-block:1px solid var(--line)}
}
@media(max-width:560px){
  .cards-3,.cards-2{grid-template-columns:1fr!important}
  .foot-grid{grid-template-columns:1fr!important}
  .container{padding-inline:18px}
  .section{padding-block:58px}
  .logo{font-size:17px}
  /* hide long header CTA on mobile — burger covers it */
  .hgroup .btn-primary.btn-sm{display:none}
  /* B2B stats: single column on narrow screens */
  .b2b-stats{grid-template-columns:1fr!important}
  .b2b-stats .stat:nth-child(2){border-inline:none!important; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
  /* institution CTA button wraps below text */
  .inst-row .btn{width:100%}
}

/* ---------- accessibility ---------- */
:focus-visible{outline:2.5px solid var(--blue); outline-offset:3px; border-radius:6px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important; transition:none!important; scroll-behavior:auto!important}
  .rise,.reveal{opacity:1!important; transform:none!important}
}

/* ============================================================
   v2-refresh — DM Sans logotype · full-bleed hero · services hub
   (additive only — old .logo + page classes untouched)
   ============================================================ */


/* ---------- inactive language placeholder ---------- */
.lang--ph{cursor:not-allowed; opacity:.5}
.lang--ph:hover{color:var(--mut); border-color:var(--line)}

/* ---------- full-bleed hero ---------- */
.hero-v2{position:relative; width:100%; min-height:clamp(560px,min(42vw,84vh),780px); display:flex; align-items:center;
  background-position:72% 22%; background-size:cover; background-repeat:no-repeat; overflow:hidden; isolation:isolate}
.hero-v2__overlay{position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(100deg, rgba(8,35,63,.66), rgba(8,35,63,.40) 36%, rgba(8,35,63,.16) 56%, rgba(8,35,63,.03) 72%, transparent 82%),
    linear-gradient(50deg, rgba(8,35,63,.14), rgba(8,35,63,0) 36%)}
.hero-v2 .container{position:relative; z-index:2; padding-top:88px; padding-bottom:32px; width:100%}
.hero-v2__inner{max-width:600px}
.hero-v2 .eyebrow{color:#BFD9FF}
.hero-v2 .eyebrow::before{background:#7FB2FF; box-shadow:0 0 0 4px rgba(127,178,255,.24)}
.hero-v2 h1{color:#fff; font-size:clamp(40px,6vw,66px); font-weight:800; letter-spacing:-.025em;
  line-height:1.04; margin-top:16px; text-shadow:0 2px 26px rgba(8,35,63,.5)}
.hero-v2 h1 .hero-accent{color:#9CC6FF}
.hero-v2__sub{color:rgba(255,255,255,.94); font-size:clamp(16px,2vw,19px); line-height:1.6; max-width:520px;
  margin-top:18px; text-shadow:0 1px 14px rgba(8,35,63,.5)}
.hero-v2__badges{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px}
.hero-chip{display:inline-flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace;
  font-size:12.5px; font-weight:600; color:#fff; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.34); border-radius:999px; padding:7px 13px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px)}
.hero-chip .dot{width:7px; height:7px; border-radius:50%; background:#3BE0A8; box-shadow:0 0 0 3px rgba(59,224,168,.25)}
.hero-v2__cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px}

/* ---------- services hub (What we repair) ---------- */
.svc-head{display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap}
.svc-hub{display:grid; gap:18px; grid-template-columns:repeat(3,1fr); margin-top:34px}
.svc-tile{position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line);
  border-radius:22px; overflow:hidden; box-shadow:var(--sh-sm);
  transition:transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s, border-color .22s}
a.svc-tile:hover{transform:translateY(-5px); box-shadow:var(--sh-md); border-color:#CFE0FA}
.svc-tile__media{position:relative; height:118px; display:grid; place-items:center; overflow:hidden; color:#fff;
  background:linear-gradient(150deg,var(--blue-bright),var(--blue) 58%,var(--blue-deep))}
.svc-tile--alt .svc-tile__media{background:linear-gradient(150deg,#1F4F88,#0E2A4F 72%)}
.svc-tile__media svg{position:relative; z-index:1; width:52px; height:52px;
  filter:drop-shadow(0 8px 16px rgba(8,35,63,.4))}
.svc-tile__media::before{content:""; position:absolute; inset:0;
  background:radial-gradient(130px 90px at 78% 16%, rgba(255,255,255,.42), transparent 70%)}
.svc-tile__media::after{content:""; position:absolute; right:-34px; bottom:-50px; width:158px; height:158px;
  border-radius:50%; border:1.5px solid rgba(255,255,255,.18)}
.svc-tile__tag{position:absolute; top:12px; right:12px; z-index:2; display:inline-flex; align-items:center; gap:6px;
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; color:#fff;
  background:rgba(8,35,63,.34); border:1px solid rgba(255,255,255,.36); border-radius:999px; padding:5px 10px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px)}
.svc-tile__tag .dot{width:6px; height:6px; border-radius:50%; background:#3BE0A8}
.svc-tile__body{display:flex; flex-direction:column; gap:7px; padding:16px 20px 16px; flex:1}
.svc-tile__name{font-family:'Plus Jakarta Sans',sans-serif; font-size:19px; font-weight:700; color:var(--navy)}
.svc-tile__desc{color:var(--mut); font-size:14px; line-height:1.55; flex:1}
.svc-tile__foot{display:flex; align-items:center; gap:7px; margin-top:6px; padding-top:12px;
  border-top:1px solid var(--line-soft)}
.svc-from{display:block; font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--faint); line-height:1.3; margin-bottom:3px}
.svc-amt{font-family:'JetBrains Mono',monospace; font-size:25px; font-weight:700; color:var(--navy); line-height:1}
.svc-amt--free{font-size:16px; color:#0c8a64}
.svc-tile__go{display:inline-flex; align-items:center; margin-left:auto; color:var(--blue)}
.svc-tile__go svg{transition:transform .2s}
a.svc-tile:hover .svc-tile__go svg{transform:translateX(3px)}

/* ---------- v2 responsive ---------- */
@media(max-width:900px){.svc-hub{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){
  .svc-hub{grid-template-columns:1fr}
  .svc-tile__media{height:90px}
  .svc-tile__media svg{width:44px; height:44px}
  .svc-tile__body{padding:12px 16px 13px}
  .svc-tile__desc{line-height:1.5}
  .svc-tile__foot{margin-top:4px; padding-top:10px}
}
@media(max-width:640px){
  .hero-v2{min-height:clamp(520px,80vh,640px); background-position:82% center}
  .hero-v2__overlay{background:
    linear-gradient(0deg, rgba(8,35,63,.88), rgba(8,35,63,.58) 44%, rgba(8,35,63,.48) 72%, rgba(8,35,63,.56))}
}

/* ---------- v2 contact form (quote.html) ---------- */
.qf-contact{display:grid; grid-template-columns:1.5fr 1fr; gap:22px; margin-top:30px; align-items:start}
.qf-form-card{background:#fff; border:1px solid var(--line); border-radius:22px; padding:28px 26px; box-shadow:var(--sh-sm)}
.qf-field{display:block; margin-bottom:18px}
.qf-label{display:block; font-size:13.5px; font-weight:600; color:var(--navy); margin-bottom:7px}
.qf-input,.qf-textarea{width:100%; font-family:'Inter',system-ui,sans-serif; font-size:15px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:13px 15px; transition:.2s}
.qf-input:focus,.qf-textarea:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 4px rgba(46,125,246,.14)}
.qf-textarea{resize:vertical; min-height:120px; line-height:1.55}
.qf-consent{display:flex; gap:11px; align-items:flex-start; margin:20px 0 22px; cursor:pointer}
.qf-consent input{flex:none; width:18px; height:18px; margin-top:1px; accent-color:var(--blue); cursor:pointer}
.qf-consent span{font-size:13.5px; color:var(--mut); line-height:1.5}
.qf-consent a{color:var(--blue); font-weight:600}
.qf-form-card .btn-lg{width:100%; justify-content:center}
.qf-aside{background:linear-gradient(160deg,#fff,#F4F8FF); border:1px solid var(--line); border-radius:22px; padding:26px 24px}
.qf-aside h3{font-size:18px; font-weight:700; color:var(--navy)}
.qf-aside p{color:var(--mut); font-size:14px; line-height:1.6; margin-top:8px}
.qf-contact-btns{display:flex; flex-direction:column; gap:11px; margin-top:18px}
.qf-cbtn{display:flex; align-items:center; gap:12px; padding:13px 15px; border-radius:14px; border:1px solid var(--line);
  background:#fff; font-weight:600; color:var(--navy); transition:.18s}
.qf-cbtn:hover{border-color:var(--blue); transform:translateY(-2px); box-shadow:var(--sh-sm)}
.qf-cico{display:inline-flex; width:38px; height:38px; align-items:center; justify-content:center; border-radius:11px; flex:none}
.qf-cbtn small{display:block; font-weight:500; font-size:12.5px; color:var(--mut)}
.qf-feedback{border-radius:18px; padding:24px 26px; font-size:15px; line-height:1.6; color:var(--ink)}
.qf-feedback--ok{background:linear-gradient(160deg,#fff,#f3fcf8); border:1px solid rgba(18,184,134,.32)}
.qf-feedback--err{background:#fff; border:1px solid rgba(239,68,68,.32)}
@media(max-width:760px){.qf-contact{grid-template-columns:1fr}}

/* ---------- v2 quote tool (quote.html) ---------- */
.qt{max-width:620px}
.qt-step{font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--faint); margin-bottom:14px}
.qt-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.qt-device{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:11px;
  padding:22px 12px; background:#fff; border:1px solid var(--line); border-radius:18px; cursor:pointer;
  transition:transform .18s, border-color .18s, box-shadow .18s, background .18s;
  color:var(--navy); font-weight:600; font-size:14.5px; font-family:inherit}
.qt-device:hover{border-color:var(--blue); transform:translateY(-3px); box-shadow:var(--sh-md)}
.qt-device.is-active{border-color:var(--blue); background:#F6FAFF; box-shadow:0 0 0 3px rgba(46,125,246,.16)}
.qt-device .qt-dico{display:inline-flex; color:var(--blue)}
.qt-notsure{display:flex; align-items:center; gap:14px; width:100%; margin-top:14px; padding:16px 18px;
  background:#fff; border:1px solid var(--line); border-radius:18px; cursor:pointer; text-align:left;
  transition:transform .18s, border-color .18s, box-shadow .18s, background .18s; color:var(--navy); font-family:inherit}
.qt-notsure:hover{border-color:var(--blue); transform:translateY(-2px); box-shadow:var(--sh-sm)}
.qt-notsure.is-active{border-color:var(--blue); background:#F6FAFF; box-shadow:0 0 0 3px rgba(46,125,246,.16)}
.qt-notsure .qt-dico{display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center;
  border-radius:12px; background:rgba(46,125,246,.1); color:var(--blue); flex:none}
.qt-notsure b{display:block; font-weight:700; font-size:15px}
.qt-notsure small{display:block; color:var(--mut); font-size:13px; margin-top:2px; line-height:1.4}
.qt-reveal{max-height:0; overflow:hidden; opacity:0;
  transition:max-height .42s cubic-bezier(.4,0,.2,1), opacity .32s ease}
.qt-reveal.open{opacity:1}
.qt-issues-head{font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--faint); padding:22px 0 12px}
.qt-issues{display:flex; flex-wrap:wrap; gap:10px}
.qt-chip{display:inline-flex; align-items:center; gap:8px; padding:11px 16px; background:#fff;
  border:1px solid var(--line); border-radius:999px; cursor:pointer; font-weight:600; font-size:14px;
  color:var(--navy); font-family:inherit; transition:border-color .16s, background .16s, color .16s}
.qt-chip:hover{border-color:var(--blue); background:#F6FAFF}
.qt-chip.is-active{border-color:var(--blue); background:var(--blue); color:#fff}
.qt-panel{margin-top:18px; background:linear-gradient(160deg,#fff,#F4F8FF); border:1px solid var(--line);
  border-radius:20px; padding:26px}
.qt-panel__label{font-weight:700; color:var(--navy); font-size:15px}
.qt-panel__price{font-family:'JetBrains Mono',monospace; font-size:34px; font-weight:700; color:var(--navy);
  line-height:1; margin-top:12px}
.qt-from{display:block; font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; color:var(--faint); margin-bottom:6px}
.qt-panel__sub{color:var(--mut); font-size:13.5px; line-height:1.5; margin-top:12px}
.qt-panel__cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:20px}
.qt-startover{margin-top:14px; background:none; border:none; padding:6px 0; color:var(--mut); cursor:pointer;
  font-size:13.5px; text-decoration:underline; font-family:inherit}
.qt-startover:hover{color:var(--blue-deep)}
.qt-noscript{margin-top:18px; padding:16px 18px; background:#fff; border:1px solid var(--line);
  border-radius:14px; color:var(--mut); font-size:14px; line-height:1.55}
@media(max-width:560px){.qt-grid{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion: reduce){
  .qt-reveal{transition:none}
  .qt-device,.qt-notsure,.qt-chip,.qt-mrow{transition:none}
  .qt-device:hover,.qt-notsure:hover{transform:none}
}

/* quote tool — model list (step 2) */
.qt-mhead{font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--faint); padding:22px 0 12px}
.qt-mwrap{position:relative; border:1px solid var(--line); border-radius:16px; background:#fff; overflow:hidden}
.qt-mlist{max-height:226px; overflow-y:auto; -webkit-overflow-scrolling:touch}
.qt-mwrap::after{content:""; position:absolute; left:0; right:0; bottom:0; height:30px;
  background:linear-gradient(rgba(255,255,255,0), #fff); pointer-events:none; border-radius:0 0 16px 16px}
.qt-mrow{display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; text-align:left;
  padding:13px 16px; border:0; border-bottom:1px solid var(--line-soft); background:transparent; cursor:pointer;
  color:var(--ink); font-size:14.5px; font-weight:500; font-family:inherit;
  transition:background .15s, color .15s, box-shadow .15s}
.qt-mrow:last-child{border-bottom:0}
.qt-mrow:hover{background:#F1F7FF}
.qt-mrow.is-active{background:#EAF2FF; color:var(--navy); font-weight:700; box-shadow:inset 3px 0 0 var(--blue)}
.qt-mrow__go{color:var(--blue); opacity:.45; font-family:'JetBrains Mono',monospace; flex:none;
  transition:opacity .15s, transform .15s}
.qt-mrow:hover .qt-mrow__go{opacity:.9; transform:translateX(2px)}
.qt-mrow--other{color:var(--mut); font-style:italic}
.qt-mlist::-webkit-scrollbar{width:10px}
.qt-mlist::-webkit-scrollbar-thumb{background:var(--line); border-radius:8px; border:3px solid #fff}
.qt-mlist::-webkit-scrollbar-thumb:hover{background:#cdd8ea}
/* quote tool — issue context label + panel text links */
.qt-ctx{font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; color:var(--mut); padding:22px 0 12px}
.qt-panel__links{display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin-top:18px}
.qt-textlink{background:none; border:none; padding:5px 0; color:var(--blue); cursor:pointer; font-size:13.5px;
  font-weight:600; font-family:inherit}
.qt-textlink:hover{color:var(--blue-deep); text-decoration:underline}
.qt-textlink--mut{color:var(--mut); font-weight:500; text-decoration:underline}
.qt-textlink--mut:hover{color:var(--blue-deep)}

/* ---------- Phase 1: bilingual routes, trust stats, expectation badges, footnotes ---------- */
a.lang{text-decoration:none; display:inline-flex; align-items:center}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px; border-radius:4px}
/* trust stats (no big numbers; lead + detail) */
.tstat{display:flex; flex-direction:column; gap:4px}
.tstat b{font-family:'Plus Jakarta Sans',sans-serif; font-size:20px; font-weight:800; color:var(--navy);
  letter-spacing:-.01em; line-height:1.15}
.tstat span{color:var(--mut); font-size:13.5px; line-height:1.45}
.tstat .star{color:var(--blue)}
/* expectation badge (replaces public price on repair cards) */
.svc-badge{display:inline-flex; align-items:center; font-family:'JetBrains Mono',monospace; font-size:11px;
  font-weight:600; letter-spacing:.02em; color:var(--blue-deep); background:rgba(46,125,246,.08);
  border:1px solid rgba(46,125,246,.22); border-radius:999px; padding:5px 11px; line-height:1.3}
.svc-badge--amber{color:#a8710a; background:rgba(245,165,36,.10); border-color:rgba(245,165,36,.32)}
/* asterisk footnotes */
.legal-fn{color:var(--faint); font-size:12px; line-height:1.5; margin-top:6px; max-width:660px}
.legal-fn a{color:var(--mut); text-decoration:underline}
.legal-fn + .legal-fn{margin-top:4px}
/* compact review trust badge in hero (on dark image) */
.review-badge{display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:#fff;
  background:rgba(8,35,63,.5); border:1px solid rgba(245,205,130,.5); border-radius:999px;
  padding:8px 15px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  box-shadow:0 12px 30px -14px rgba(8,35,63,.7)}
.review-badge .star{color:#FFC83D; letter-spacing:1px; font-size:15px}
.review-badge b{font-weight:800}
/* service imagery card — natural 3:2, NO crop, matches the model-selector card.
   Used in the hero right column (iPhone/Samsung/water) and, with --below, under a hero. */
.service-hero-media{width:100%; max-width:560px; margin:0}
.service-hero-media img{display:block; width:100%; height:auto;
  border-radius:var(--r-card); border:1px solid var(--line); box-shadow:var(--sh-md)}
/* below-hero variant: centered, aligned to the content grid */
.service-hero-media--below{max-width:760px; margin:14px auto 0}
/* quote intro split: image fills its grid column, rounded, no crop (illustration) */
.intro-figure{margin:0; border-radius:20px; overflow:hidden;
  border:1px solid var(--line); box-shadow:0 16px 44px -30px rgba(8,35,63,.5)}
.intro-figure img{width:100%; height:auto; display:block}
/* ambient background orbs — atmospheric depth only; global via .clouds (fixed, clipped,
   pointer-events:none, z-index:-1), so no scroll and never above content */
.clouds::before, .clouds::after{content:""; position:absolute; border-radius:50%; pointer-events:none}
.clouds::before{top:-140px; right:-120px; width:600px; height:600px;
  background:radial-gradient(circle, rgba(46,125,246,.035), rgba(46,125,246,0) 70%)}
.clouds::after{bottom:-120px; left:-110px; width:500px; height:500px;
  background:radial-gradient(circle, rgba(90,160,255,.025), rgba(90,160,255,0) 70%)}

/* ============================================================
   Homepage refresh — text wordmark, hero trust/CTA/tags, tier + award + CTA-band polish
   ============================================================ */
/* text-only wordmark (header + footer brand) */
.brand{display:inline-flex; align-items:baseline; font-family:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  font-size:clamp(1.05rem,1.8vw,1.25rem); font-weight:600; letter-spacing:-.03em; line-height:1;
  white-space:nowrap; text-decoration:none; color:var(--navy)}
.brand-qwerty{font-weight:600}
.brand-fix{font-weight:700; color:var(--blue); margin-left:.16em}
.brand--lg{font-size:clamp(1.2rem,2.2vw,1.45rem)}
.brand:hover .brand-fix{color:var(--blue-deep)}
.brand.on-dark .brand-qwerty{color:#fff}
.brand.on-dark .brand-fix{color:#9CC6FF}
.brand.on-dark:hover .brand-fix{color:#BFD9FF}

/* hero trust badge (above CTAs) spacing */
.hero-trust{margin-top:22px}
/* hero service tags (below CTAs) — subtler than the buttons, colored dots */
.hero-tags{display:flex; flex-wrap:wrap; gap:9px; margin-top:20px}
.hero-tag{display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600;
  color:rgba(255,255,255,.94); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.24);
  border-radius:999px; padding:6px 12px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px)}
.tag-dot{width:7px; height:7px; border-radius:50%; flex:none}
.tag-dot--blue{background:#5AA0FF; box-shadow:0 0 0 3px rgba(90,160,255,.25)}
.tag-dot--green{background:#3BE0A8; box-shadow:0 0 0 3px rgba(59,224,168,.25)}
.tag-dot--purple{background:#9D7BFF; box-shadow:0 0 0 3px rgba(157,123,255,.25)}

/* ThreeBestRated award row — contain, equal boxes, wrap (no half-cut image) */
.tbr-row{display:flex; flex-wrap:wrap; gap:10px; padding-bottom:2px}
.tbr-row img{width:50px; height:50px; object-fit:contain; flex:none; border-radius:8px}

/* final CTA band — added depth + subtle top sheen */
.cta-band{box-shadow:0 34px 80px -34px rgba(14,42,79,.75); border:1px solid rgba(255,255,255,.16)}
.cta-band::before{content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit; z-index:0;
  background:radial-gradient(120% 90% at 50% -10%, rgba(255,255,255,.2), transparent 55%)}
.cta-band > *{position:relative; z-index:1}
