:root{
  --navy:#0A1E3C; --navy-2:#0E2A52; --navy-3:#14355F;
  --gold:#C9A227; --gold-soft:#EBD9A0;
  --blue:#1D4ED8; --blue-dark:#1740B4; --blue-soft:#EAF0FE;
  --ink:#1D1E20; --muted:#55647D; --muted-2:#84949C;
  --line:#E3E9F2; --bg:#F4F7FC; --white:#fff;
  --ok:#0F7B4F; --ok-soft:#E6F4EC; --warn:#8A5A00; --warn-soft:#FFF4DF; --err:#B3261E; --err-soft:#FDECEA;
  --r-s:10px; --r-m:14px; --r-l:20px;
  --sh-1:0 1px 2px rgba(10,30,60,.06),0 1px 3px rgba(10,30,60,.05);
  --sh-2:0 6px 18px rgba(10,30,60,.09);
  --sh-3:0 12px 34px rgba(10,30,60,.14);
  --tab-h:64px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg); color:var(--ink);
  font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:none;
}
h1,h2,h3,h4,.hd{font-family:"Plus Jakarta Sans","DM Sans",sans-serif;letter-spacing:-.02em;margin:0}
h1{font-size:27px;line-height:1.18;font-weight:800}
h2{font-size:20px;line-height:1.25;font-weight:800}
h3{font-size:16px;line-height:1.3;font-weight:700}
p{margin:0 0 12px}
a{color:var(--blue);text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
.shell{max-width:600px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative}
.view{padding-bottom:calc(var(--tab-h) + var(--safe-b) + 18px);min-height:60vh}

/* ---------------- app bar ---------------- */
.appbar{
  position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:56px;
}
.appbar .logo{height:32px;width:auto}
.appbar .spacer{flex:1}
.ico-btn{
  width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--white);
  display:grid;place-items:center;color:var(--navy);position:relative;padding:0;
}
.ico-btn:active{background:var(--bg)}
.ico-btn svg{width:19px;height:19px}
.dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--gold);border:2px solid var(--white)}
.back-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--navy);font-weight:600;padding:0;font-size:14px}
.back-btn svg{width:18px;height:18px}
.appbar .title{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:16px;letter-spacing:-.02em}

/* ---------------- generic ---------------- */
.pad{padding:0 16px}
.sec{padding:26px 16px}
.sec-tight{padding:18px 16px}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.eyebrow.on-light{color:#9A7C1B}
.lede{color:var(--muted);font-size:14.5px}
.muted{color:var(--muted)}
.tiny{font-size:12.5px}
.center{text-align:center}
.divider{height:1px;background:var(--line);margin:18px 0}
.row{display:flex;align-items:center;gap:10px}
.between{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wrap-chips{display:flex;flex-wrap:wrap;gap:8px}
.stack>*+*{margin-top:10px}
.hide{display:none !important}

/* ---------------- buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:12px;border:1px solid transparent;padding:13px 18px;
  font-weight:700;font-size:14.5px;font-family:"Plus Jakarta Sans",sans-serif;
  letter-spacing:-.01em;text-align:center;transition:transform .06s ease,background .15s ease;
  min-height:48px;
}
.btn:active{transform:scale(.985)}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:active{background:var(--blue-dark)}
.btn-navy{background:var(--navy);color:#fff}
.btn-gold{background:var(--gold);color:#221A00}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line);background:var(--white)}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.btn-line{background:var(--white);color:var(--blue);border-color:#C6D6F8}
.btn-block{display:flex;width:100%}
.btn-sm{padding:9px 13px;min-height:38px;font-size:13.5px;border-radius:10px}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---------------- hero ---------------- */
.hero{background:var(--navy);color:#fff;padding:26px 16px 28px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-70px;top:-70px;width:220px;height:220px;border-radius:50%;background:rgba(201,162,39,.10)}
.hero h1{color:#fff;position:relative}
.hero p{color:#C3D2E6;font-size:14.5px;margin-top:12px;position:relative}
.hero .btn-row{margin-top:18px;position:relative}
.trust-line{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);color:#9DB0CC;font-size:12.5px;position:relative}
.trust-line b{color:#fff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--navy-2);color:#fff}
.stats .stat{padding:14px 8px;text-align:center;border-right:1px solid rgba(255,255,255,.09)}
.stats .stat:last-child{border-right:0}
.stats .n{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:17px;color:var(--gold-soft)}
.stats .l{font-size:10px;color:#9DB0CC;line-height:1.3;margin-top:3px}

/* ---------------- cards ---------------- */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--sh-1)}
.card-p{padding:16px}
.card-link{display:block;color:inherit}
.card-link:active{background:#FBFCFE}
.svc{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;color:inherit}
.svc .ic{flex:0 0 40px;height:40px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}
.svc .ic svg{width:20px;height:20px}
.svc h3{font-size:15px}
.svc p{margin:3px 0 0;font-size:13px;color:var(--muted);line-height:1.45}
.svc .go{color:var(--muted-2);align-self:center}
.svc .go svg{width:18px;height:18px}
.list{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;box-shadow:var(--sh-1)}
.list>*+*{border-top:1px solid var(--line)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---------------- chips / badges ---------------- */
.chip{
  display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;
  background:var(--white);border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--navy);
  white-space:nowrap;
}
.chip.active{background:var(--navy);border-color:var(--navy);color:#fff}
.chips-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.chips-scroll::-webkit-scrollbar{display:none}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:999px;letter-spacing:.01em}
.b-ok{background:var(--ok-soft);color:var(--ok)}
.b-warn{background:var(--warn-soft);color:var(--warn)}
.b-err{background:var(--err-soft);color:var(--err)}
.b-info{background:var(--blue-soft);color:var(--blue)}
.b-neutral{background:#EEF1F6;color:var(--muted)}
.b-gold{background:#FBF3DC;color:#8A6D0C}
.price{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:17px;color:var(--navy)}
.price small{font-weight:600;font-size:11.5px;color:var(--muted);display:block;letter-spacing:.02em}
.free{color:var(--ok)}

/* ---------------- store ---------------- */
.store-card{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}
.store-card .body{padding:14px 15px 15px}
.store-card h3{font-size:15px;line-height:1.3}
.store-card .sub{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.45}
.store-card .foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px}
.search{
  display:flex;align-items:center;gap:9px;background:var(--white);border:1px solid var(--line);
  border-radius:12px;padding:11px 13px;box-shadow:var(--sh-1);
}
.search svg{width:17px;height:17px;color:var(--muted-2);flex:0 0 auto}
.search input{border:0;outline:0;flex:1;background:transparent;font-size:14.5px;min-width:0}

/* ---------------- forms ---------------- */
.field{margin-bottom:13px}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:6px}
.field .req{color:var(--err)}
.field input,.field select,.field textarea{
  width:100%;background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:13px 14px;font-size:15px;outline:0;transition:border-color .15s ease,box-shadow .15s ease;
}
.field textarea{min-height:104px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#A8C0F5;box-shadow:0 0 0 3px rgba(29,78,216,.12)}
.field .hint{font-size:11.5px;color:var(--muted);margin-top:5px}
.field.err input,.field.err textarea,.field.err select{border-color:#E7A8A3;box-shadow:0 0 0 3px rgba(179,38,30,.09)}
.field .msg{font-size:12px;color:var(--err);margin-top:5px;font-weight:600}
.note{background:var(--blue-soft);border:1px solid #D3E0FC;color:#17347F;border-radius:12px;padding:12px 14px;font-size:13px}
.note.gold{background:#FBF3DC;border-color:#EFE0B4;color:#6B5408}
.note.plainbox{background:var(--white);border-color:var(--line);color:var(--muted)}
.alert{border-radius:12px;padding:12px 14px;font-size:13.5px;font-weight:600;margin-bottom:12px}
.alert-err{background:var(--err-soft);color:var(--err)}
.alert-ok{background:var(--ok-soft);color:var(--ok)}

/* ---------------- process / why ---------------- */
.step{display:flex;gap:13px;padding:14px 16px}
.step .n{flex:0 0 30px;height:30px;border-radius:9px;background:var(--navy);color:var(--gold-soft);display:grid;place-items:center;font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:12.5px}
.step h3{font-size:14.5px}
.step p{margin:3px 0 0;font-size:13px;color:var(--muted)}
.why{display:flex;gap:12px;padding:14px 16px}
.why .tick{flex:0 0 22px;height:22px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin-top:2px}
.why .tick svg{width:13px;height:13px}
.why h3{font-size:14.5px}
.why p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.acc{padding:14px 16px}
.acc .q{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;font-weight:700;font-size:14px;color:var(--navy)}
.acc .q svg{width:18px;height:18px;flex:0 0 18px;color:var(--muted-2);transition:transform .18s ease}
.acc.open .q svg{transform:rotate(180deg)}
.acc .a{font-size:13.5px;color:var(--muted);margin-top:9px;display:none}
.acc.open .a{display:block}

/* ---------------- CTA band ---------------- */
.band{background:var(--navy);color:#fff;padding:24px 16px;border-radius:0}
.band h2{color:#fff}
.band p{color:#C3D2E6;font-size:14px;margin-top:10px}
.band .btn-row{margin-top:16px}

/* ---------------- tab bar ---------------- */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  max-width:600px;margin:0 auto;background:rgba(255,255,255,.97);
  backdrop-filter:saturate(180%) blur(12px);
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(5,1fr);
  padding-bottom:var(--safe-b);
}
.tabbar a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  height:var(--tab-h);color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.01em;
}
.tabbar a svg{width:21px;height:21px}
.tabbar a.on{color:var(--navy)}
.tabbar a.on .tb-ic{color:var(--blue)}

/* ---------------- bottom sheet ---------------- */
.sheet-wrap{position:fixed;inset:0;z-index:80;background:rgba(10,30,60,.45);display:flex;align-items:flex-end;justify-content:center}
.sheet{
  background:var(--white);width:100%;max-width:600px;border-radius:20px 20px 0 0;
  max-height:88vh;overflow-y:auto;box-shadow:var(--sh-3);
  padding:8px 16px calc(20px + var(--safe-b));animation:up .22s ease;
}
@keyframes up{from{transform:translateY(18px);opacity:.6}to{transform:translateY(0);opacity:1}}
.sheet .grab{width:40px;height:4px;border-radius:99px;background:var(--line);margin:6px auto 12px}
.sheet h2{margin-bottom:6px}

/* ---------------- toasts ---------------- */
.toast-wrap{position:fixed;left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-b) + 12px);z-index:90;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{background:var(--navy);color:#fff;padding:11px 16px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:var(--sh-2);max-width:88%}
.toast.err{background:var(--err)}
.toast.ok{background:var(--ok)}

/* ---------------- misc ---------------- */
.skel{background:linear-gradient(90deg,#EDF1F7 25%,#F6F9FC 37%,#EDF1F7 63%);background-size:400% 100%;animation:sh 1.3s ease infinite;border-radius:10px}
@keyframes sh{0%{background-position:100% 50%}100%{background-position:0 50%}}
.empty{text-align:center;padding:34px 20px;color:var(--muted)}
.empty svg{width:34px;height:34px;color:#C3CEDE;margin-bottom:10px}
.rich{font-size:14px;color:var(--muted)}
.rich p{margin:0 0 10px}
.rich ul{margin:0 0 10px;padding-left:20px}
.rich li{margin-bottom:5px}
.rich strong{color:var(--ink)}
.contact-row{display:flex;gap:12px;align-items:center;padding:14px 16px;color:inherit}
.contact-row .ic{flex:0 0 38px;height:38px;border-radius:11px;background:var(--bg);color:var(--navy);display:grid;place-items:center}
.contact-row .ic svg{width:18px;height:18px}
.contact-row .k{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
.contact-row .v{font-size:14.5px;font-weight:600;color:var(--navy)}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slot{padding:11px 4px;border-radius:11px;border:1px solid var(--line);background:var(--white);font-size:13px;font-weight:600;color:var(--navy);text-align:center}
.slot.on{background:var(--navy);border-color:var(--navy);color:#fff}
.day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.day{padding:9px 4px;border-radius:11px;border:1px solid var(--line);background:var(--white);text-align:center}
.day .dw{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase}
.day .dd{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:15px;color:var(--navy)}
.day .dm{font-size:10px;color:var(--muted)}
.day.on{background:var(--navy);border-color:var(--navy)}
.day.on .dw,.day.on .dm{color:#9DB0CC}
.day.on .dd{color:#fff}
.day[disabled]{opacity:.35}
.summary{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:14px 16px}
.summary .li{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:5px 0}
.summary .tot{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-weight:800;font-family:"Plus Jakarta Sans",sans-serif}
.pill-nav{display:flex;gap:6px;background:#E9EEF6;padding:4px;border-radius:12px}
.pill-nav button{flex:1;border:0;background:transparent;padding:9px 6px;border-radius:9px;font-size:13px;font-weight:700;color:var(--muted)}
.pill-nav button.on{background:var(--white);color:var(--navy);box-shadow:var(--sh-1)}
.doc-row{display:flex;gap:12px;align-items:center;padding:13px 16px}
.doc-row .ic{flex:0 0 34px;height:34px;border-radius:9px;background:var(--bg);color:var(--navy);display:grid;place-items:center}
.doc-row .ic svg{width:16px;height:16px}
.doc-row .nm{font-size:13.5px;font-weight:600;color:var(--navy);word-break:break-word}
.doc-row .mt{font-size:11.5px;color:var(--muted)}
.msg{padding:11px 14px;border-radius:12px;font-size:13.5px;max-width:86%}
.msg.client{background:var(--blue-soft);color:#17347F;margin-left:auto}
.msg.team{background:var(--white);border:1px solid var(--line)}
.msg .who{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.7;margin-bottom:3px}
.timeline{padding:4px 0}
.timeline .t{display:flex;gap:11px;padding:7px 0}
.timeline .d{flex:0 0 11px;height:11px;border-radius:50%;background:var(--line);margin-top:5px}
.timeline .t.done .d{background:var(--ok)}
.timeline .t.now .d{background:var(--gold);box-shadow:0 0 0 4px rgba(201,162,39,.18)}
.timeline .lb{font-size:13.5px;font-weight:600;color:var(--muted)}
.timeline .t.done .lb,.timeline .t.now .lb{color:var(--navy)}
.install{margin:0 16px 16px;background:var(--navy);color:#fff;border-radius:var(--r-m);padding:14px 16px;display:flex;gap:12px;align-items:center}
.install p{margin:0;font-size:13px;color:#C3D2E6}
.install b{color:#fff;font-family:"Plus Jakarta Sans",sans-serif}
.foot{padding:22px 16px calc(24px);background:var(--navy);color:#9DB0CC;font-size:12.5px}
.foot .bn{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.foot a{color:#C3D2E6}
.foot .soc{display:flex;gap:10px;margin-top:12px}
.foot .soc a{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:#fff}
.foot .soc svg{width:16px;height:16px}

/* plain pages */
body.plain{display:grid;place-items:center;min-height:100vh;background:var(--bg)}
.plain-box{text-align:center;padding:24px;background:#fff;border-radius:var(--r-l);box-shadow:var(--sh-2);max-width:340px}
.plain-box img{margin:0 auto 14px}
.plain-msg{color:var(--muted);font-size:14px}
