/* ============================================================
   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}

/* ---------- logo wordmark (inline HTML) ---------- */
.logo{display:inline-flex; align-items:center; font-family:'JetBrains Mono',monospace; font-weight:700;
  font-size:19px; letter-spacing:.01em; line-height:1; white-space:nowrap}
.logo .l-q{color:var(--navy)}
.logo .l-fix{color:#fff; background:linear-gradient(180deg,var(--blue-bright),var(--blue));
  padding:3px 7px 4px; border-radius:8px; margin-left:3px;
  box-shadow:0 2px 0 rgba(26,95,208,.5), inset 0 1px 0 rgba(255,255,255,.45)}
.logo .caret{color:var(--blue); margin-left:3px; font-weight:700}
.logo.on-dark .l-q{color:#fff}
.logo.on-dark .caret{color:#BFD9FF}
.caret{animation:blink 1.15s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- 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)}

/* ---------- 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,var(--blue-bright),var(--blue));
  box-shadow:var(--sh-blue)}
.btn-primary:hover{background:linear-gradient(180deg,#6aacff,var(--blue-deep));
  box-shadow:0 22px 46px -14px rgba(46,125,246,.6)}
.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:var(--sh-blue)}
.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)}
.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}
}
