:root{
    --paper:#f1f4f2;
    --white:#ffffff;
    --shell:#f8faf9;
    --ink:#111814;
    --ink-2:#3d4a43;
    --slate:#63736a;
    --line:#dfe6e1;
    --line-2:#edf2ef;
    --green:#12674a;
    --green-2:#0d4d37;
    --green-lite:#3fa07a;
    --green-soft:#e9f3ee;
    --amber:#8a5710;
    --amber-soft:#f8f0e4;
    --rose:#a3302a;
    --rose-soft:#f9ecea;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
h1{font-size:clamp(38px,5.6vw,62px);font-weight:830;letter-spacing:-.04em}
h2{font-size:clamp(25px,3vw,36px);font-weight:790;letter-spacing:-.028em}
h3{font-size:19px;font-weight:730;letter-spacing:-.012em}
.lede{font-size:19.5px;color:var(--ink-2);line-height:1.7}
.prose p{font-size:17px;color:var(--ink-2);line-height:1.78;margin-bottom:16px}
.prose p:last-child{margin-bottom:0}
/* responsible bar */
  .resp{background:var(--ink);color:#dde5e0}
/* header */
  .top{position:sticky;top:0;z-index:80;background:rgba(241,244,242,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
/* buttons */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-size:16.5px;font-weight:660;padding:13px 22px;border-radius:7px;border:1px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap}
.btn-tg:hover{background:linear-gradient(180deg,#1e96c8,#1a86b4)}
.btn-out{background:var(--white);color:var(--ink);border-color:var(--line)}
.btn-out:hover{border-color:var(--green);color:var(--green)}
/* hero */
  .hero{padding:60px 0 64px;border-bottom:1px solid var(--line);background:
    radial-gradient(760px 380px at 88% 10%,rgba(18,103,74,.1),transparent 64%)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
.hero h1{margin:0 0 18px}
.hero .lede{margin-bottom:28px;max-width:56ch}
.hero-cta{display:inline-flex;flex-direction:column;align-items:stretch;gap:11px;max-width:100%}
.cta-row{display:flex;gap:11px;flex-wrap:wrap}
.art{background:var(--ink);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -46px rgba(17,24,20,.7)}
.art img{width:100%;height:auto;display:block}
/* shell: sticky contents + content column */
  .shell{display:grid;grid-template-columns:216px 1fr;gap:56px;align-items:start;padding-top:8px}
.toc{position:sticky;top:88px;padding-top:44px}
.toc h4{font-size:16px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-bottom:14px}
.toc a{display:block;font-size:16px;color:var(--ink-2);padding:7px 0 7px 14px;border-left:2px solid var(--line);transition:.15s}
.toc a:hover{color:var(--green);border-left-color:var(--green)}
.toc a.on{color:var(--green);border-left-color:var(--green);font-weight:640}
.sec{padding:44px 0;border-bottom:1px solid var(--line)}
.sec:last-child{border-bottom:0}
.sec > h2{margin-bottom:16px}
.sec .lede{margin-bottom:26px;font-size:18px}
/* spec rows (features) */
  .spec{border-top:1px solid var(--line)}
.spec-row{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}
.spec-ic{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--green-soft);color:var(--green);border:1px solid #cfe4d9}
.spec-ic svg{width:23px;height:23px}
.spec-row h3{margin-bottom:6px}
.spec-row p{font-size:16.5px;color:var(--ink-2);line-height:1.65}
/* rating — vertical columns */
  .score-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.score-n{font-size:72px;font-weight:840;letter-spacing:-.05em;line-height:1;color:var(--green)}
.score-of{font-size:17px;color:var(--slate)}
.cols{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:26px 22px}
.col{display:flex;flex-direction:column;align-items:center;gap:10px}
.col-t{height:150px;width:100%;max-width:54px;background:var(--line-2);border-radius:7px;display:flex;align-items:flex-end;overflow:hidden}
.col-f{width:100%;border-radius:7px;background:linear-gradient(180deg,#3fa07a,#12674a)}
.col b{font-size:16.5px;font-weight:760;color:var(--green)}
.col span{font-size:16px;color:var(--slate);text-align:center;line-height:1.4}
/* ledger */
  .pc{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pc-box{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px}
.pc-box h3{margin-bottom:16px;display:flex;align-items:center;gap:10px;font-size:18px}
.pc-tag{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;color:#fff}
.pc-tag svg{width:16px;height:16px}
.plus .pc-tag{background:var(--green)}
.minus .pc-tag{background:var(--rose)}
.pc-box li{position:relative;padding-left:20px;margin-bottom:11px;font-size:16.5px;color:var(--ink-2);line-height:1.6}
.pc-box li:last-child{margin-bottom:0}
.pc-box li::before{content:"";position:absolute;left:0;top:11px;width:9px;height:1.8px}
.plus li::before{background:var(--green)}
.minus li::before{background:var(--rose)}
/* rows */
  .rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:210px 1fr;gap:28px;padding:20px 0;border-bottom:1px solid var(--line)}
.row h3{font-size:17.5px}
.row p{font-size:16.5px;color:var(--ink-2);line-height:1.65}
/* callout */
  .call{border-left:3px solid var(--green);background:var(--green-soft);border-radius:0 10px 10px 0;padding:18px 20px;margin:22px 0}
.call p{font-size:16.5px;color:var(--ink-2);line-height:1.7}
/* price */
  .price{display:flex;align-items:center;gap:36px;flex-wrap:wrap;background:var(--white);border:1px solid var(--green);border-radius:14px;padding:30px}
.price-n{font-size:60px;font-weight:840;letter-spacing:-.05em;line-height:1;color:var(--green);flex:none}
.price-n small{display:block;font-size:16px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:600}
.price-t{flex:1;min-width:260px}
.price-t p{font-size:16.5px;color:var(--ink-2);line-height:1.7}
.vars{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.vars span{font-size:16px;color:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:7px 12px;background:var(--shell)}
/* install */
  .steps{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.step{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column}
.step-n{font-size:16px;font-weight:800;color:var(--green);letter-spacing:.08em;margin-bottom:9px}
.step h3{font-size:17.5px;margin-bottom:6px}
.step p{font-size:16.5px;color:var(--ink-2);line-height:1.62}
.step .btn{margin-top:14px;align-self:flex-start}
.step-warn{background:var(--rose-soft);border-color:#eccfcc}
.step-warn .step-n{color:var(--rose)}
/* formats */
  .fmt{display:flex;flex-wrap:wrap;gap:9px}
.fmt span{font-size:16px;border:1px solid var(--line);background:var(--white);border-radius:6px;padding:9px 13px;color:var(--ink-2)}
.fmt span.hot{border-color:var(--green);color:var(--green);font-weight:640;background:var(--green-soft)}
/* reviews */
  .revs{columns:2;column-gap:16px}
.rev{break-inside:avoid;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:16px}
.rev-s{display:flex;gap:3px;margin-bottom:12px}
.rev-s svg{width:15px;height:15px;color:var(--green)}
.rev-s svg.off{color:#cfd8d2}
.rev p{font-size:16.5px;color:var(--ink-2);line-height:1.65;margin-bottom:16px}
.who{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line-2)}
.who b{font-size:16.5px;font-weight:680}
.who span{font-size:16px;color:var(--slate)}
/* blog */
  .posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.post{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:.15s}
.post:hover{border-color:var(--green);transform:translateY(-3px)}
.post-img{aspect-ratio:16/9;flex:none}
.post-img svg{width:100%;height:100%;display:block}
.post-b{padding:20px;display:flex;flex-direction:column;flex:1}
.post .date{font-size:16px;color:var(--slate);margin-bottom:8px}
.post h3{font-size:17.5px;margin-bottom:8px}
.post p{font-size:16.5px;color:var(--ink-2);line-height:1.6;margin-bottom:16px}
.post .more{margin-top:auto;font-size:16.5px;font-weight:660;color:var(--green);display:flex;align-items:center;gap:7px}
.post .more svg{width:15px;height:15px}
/* faq */
  details{background:var(--white);border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}
details[open]{border-color:var(--green)}
summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;gap:14px;align-items:center;font-size:17.5px;font-weight:660}
summary::-webkit-details-marker{display:none}
.pm{margin-left:auto;position:relative;width:15px;height:15px;flex:none}
.pm::before,.pm::after{content:"";position:absolute;background:var(--green);transition:.2s}
.pm::before{left:0;top:6.5px;width:15px;height:2px}
.pm::after{left:6.5px;top:0;width:2px;height:15px}
details[open] .pm::after{transform:rotate(90deg);opacity:0}
.ans{padding:0 20px 20px;font-size:16.5px;color:var(--ink-2);line-height:1.75}
/* contact */
  .cta{background:var(--ink);color:#dde5e0;border-radius:14px;padding:40px}
.cta h2{color:#fff;margin-bottom:12px}
.cta p{font-size:17px;color:#b9c6be;max-width:52ch;margin-bottom:24px}
.cta-b{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:28px}
.cta .btn-out{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.cta .btn-out:hover{border-color:#fff;color:#fff}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:24px;border-top:1px solid #2b3630}
.checks li{display:flex;gap:10px;font-size:16.5px;color:#b9c6be;line-height:1.55}
.checks svg{width:17px;height:17px;flex:none;margin-top:3px;color:var(--green-lite)}
/* longread */
  .longread h3{font-size:20px;font-weight:750;margin:30px 0 11px}
.longread p{font-size:17px;color:var(--ink-2);line-height:1.78;margin-bottom:16px}
.longread ul{margin:0 0 16px}
.longread li{position:relative;padding-left:20px;margin-bottom:10px;font-size:17px;color:var(--ink-2);line-height:1.65}
.longread li::before{content:"";position:absolute;left:0;top:12px;width:9px;height:1.8px;background:var(--green)}
/* footer */
  .foot{background:var(--ink);color:#b9c6be;padding:52px 0 30px;margin-top:56px}
.rv{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}
@media (max-width:1040px){
    .shell{grid-template-columns:1fr;gap:0}
    .toc{display:none}
    .hero-grid{grid-template-columns:1fr;gap:34px}
  }
@media (max-width:900px){
    .links{position:fixed;inset:68px 0 auto;flex-direction:column;gap:0;background:var(--white);border-bottom:1px solid var(--line);padding:6px 24px 16px;margin:0;display:none;box-shadow:0 18px 36px -26px rgba(17,24,20,.5)}
    .links.open{display:flex}
    .links a{padding:14px 0;border-bottom:1px solid var(--line-2);white-space:normal}
    .burger{display:flex;order:3}
    .brand{margin-right:auto;min-width:0}
    .nav{gap:10px}
    .cols{grid-template-columns:repeat(3,1fr);gap:18px 14px}
  }
@media (max-width:680px){
    .sec{padding:36px 0}
    .pc,.steps,.posts,.checks{grid-template-columns:1fr}
    .revs{columns:1}
    .row{grid-template-columns:1fr;gap:6px}
    .cols{grid-template-columns:repeat(2,1fr)}
    .col-t{height:110px}
    .price{gap:20px;padding:24px}
    .price-n,.score-n{font-size:48px}
    .cta{padding:28px 22px}
    .cta-b .btn{width:100%}
    .hero-cta{display:flex;width:100%}
    .cta-row{flex-direction:column}
    .hero-cta .btn{width:100%}
    .foot-top{grid-template-columns:1fr}
    .foot-bot{flex-direction:column}
  }
@media (max-width:560px){
    .wrap{padding:0 16px}
    .dl-txt{display:none}
    .dl-hd{padding:9px;width:38px}
  }