/* Category pages: same sprint-document system as the home page (tokens, margin column, measure),
   plus inserts specific to research pages: fact ledger, price table, budget table, case rows, numbered sources. */
:root{
  --paper:#FBFBF9;
  --ink:#151816;
  --ink-2:#434A46;
  --ink-3:#6B736E;
  --rule:#D7DBD6;
  --green:#1E6B4E;
  --green-deep:#0F4A35;
  --on-dark:#FBFBF9;
  --marker:rgba(255,206,46,.62);
  --sun:#FFCE2E;
  --coral:#F2643D;
  --go:#1E6B4E; --stop:#A3361F;
  --f-head:"Geologica","Helvetica Neue",Arial,sans-serif;
  --f-text:"Literata",Georgia,"Times New Roman",serif;
  --measure:38rem;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--f-text);font-size:1.0625rem;line-height:1.62;font-variant-numeric:lining-nums;padding-inline:20px;padding-block:0 56px;font-optical-sizing:auto}
.page{max-width:1080px;margin-inline:auto}
h1,h2,h3,dt{font-family:var(--f-head);text-wrap:balance;margin:0;color:var(--ink)}
p,ul,ol,dl,dd{margin:0}
a{color:var(--green);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--green-deep)}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
mark{background:linear-gradient(transparent 52%, var(--marker) 52%, var(--marker) 92%, transparent 92%);color:inherit;padding-inline:.1em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
sup.r{font-family:var(--f-head);font-size:.62em;font-weight:600;line-height:0}
sup.r a{text-decoration:none;color:var(--green);padding-inline:.08em}

/* bar */
.bar{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-block:22px 0}
.word{display:inline-flex;align-items:baseline;gap:.28em;color:var(--ink);text-decoration:none;line-height:1;white-space:nowrap}
.w-a{font-family:var(--f-head);font-weight:700;font-size:1.32rem;letter-spacing:-.035em}
.w-b{font-family:var(--f-text);font-style:italic;font-weight:400;font-size:1.36rem;letter-spacing:-.01em;background:linear-gradient(transparent 58%, var(--marker) 58%, var(--marker) 90%, transparent 90%);padding-inline:.06em .12em}
.word.sm .w-a{font-size:.95rem}.word.sm .w-b{font-size:.98rem;background:none;padding:0}
a.word:hover{color:var(--ink)}
.bar nav{display:flex;gap:26px;align-items:baseline;font-family:var(--f-head);font-size:.95rem}
.bar nav a{color:var(--ink-2);text-decoration:none}
.bar nav a:hover{color:var(--ink)}
.bar nav a.go{color:var(--ink);text-decoration:underline;text-underline-offset:4px;font-weight:500}
@media (max-width:720px){.bar nav a:not(.go){display:none}}

/* hero */
.hero{padding-block:clamp(48px,8vw,96px) 0}
.crumbs{font-family:var(--f-head);font-size:.9rem;color:var(--ink-3);margin-bottom:22px}
.crumbs a{color:var(--ink-3)}
.hero h1{font-weight:700;font-size:clamp(2.3rem,6.2vw,4.5rem);line-height:1.02;letter-spacing:-.035em;max-width:16ch}
.hero-row{display:grid;grid-template-columns:200px minmax(0,1fr) 220px;column-gap:40px;margin-top:36px;align-items:start}
.kicker{font-family:var(--f-head);font-size:.95rem;font-weight:500;color:var(--green);padding-top:5px}
.lede{font-size:1.2rem;line-height:1.55;max-width:var(--measure)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;margin-top:28px}
.btn{display:inline-block;font-family:var(--f-head);font-weight:600;font-size:1rem;line-height:1.2;padding:15px 22px;border-radius:2px;background:var(--ink);color:var(--paper);text-decoration:none}
.btn:hover{background:var(--green-deep);color:var(--on-dark)}
.textlink{font-family:var(--f-head);font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.textlink:hover{color:var(--green)}

/* single phone */
.solo{margin:0;justify-self:end}
.ph{container-type:inline-size;width:190px;aspect-ratio:9/17;border-radius:22px;border:5px solid var(--ink);overflow:hidden;position:relative;color:#fff;background:var(--ink);transform:rotate(3deg);box-shadow:0 18px 30px -18px rgba(21,24,22,.45)}
.ph picture,.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,0) 26%,rgba(0,0,0,0) 70%,rgba(0,0,0,.38) 100%);pointer-events:none}
.ph > :not(picture){z-index:1}
.bars{position:absolute;top:6cqi;left:6cqi;right:6cqi;display:grid;grid-template-columns:repeat(3,1fr);gap:3cqi}
.bars i{height:1.6cqi;border-radius:2px;background:rgba(255,255,255,.45)}
.bars i:first-child{background:#fff}
.who{position:absolute;top:12cqi;left:6cqi;right:6cqi;display:flex;align-items:center;gap:4cqi;font-family:var(--f-head);font-size:8.5cqi;font-weight:600;white-space:nowrap}
.av{width:15cqi;height:15cqi;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-style:normal;font-size:8cqi;font-weight:700;flex:none}
.pub{position:absolute;top:31cqi;left:6cqi;font-family:var(--f-head);font-size:7.5cqi;font-weight:600;background:rgba(21,24,22,.55);padding:1cqi 3cqi;border-radius:3px}
.cap{position:absolute;left:6cqi;right:6cqi;top:63%;font-family:var(--f-head);font-weight:700;font-size:11.5cqi;line-height:1.3;margin:0}
.cap span{background:var(--ink);color:#fff;padding:.5cqi 2.5cqi;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.views{position:absolute;left:6cqi;bottom:6cqi;font-family:var(--f-head);font-size:8.5cqi;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.solo figcaption{margin-top:22px;font-size:.8rem;color:var(--ink-3);max-width:190px}
@media (max-width:1000px){.hero-row{grid-template-columns:200px minmax(0,1fr)}.solo{display:none}}
@media (max-width:860px){.hero-row{grid-template-columns:minmax(0,1fr);row-gap:14px;margin-top:26px}.kicker{padding-top:0}}

/* sections */
.sec{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:40px;margin-top:clamp(72px,9vw,112px)}
.sec > .label{font-family:var(--f-head);font-size:.95rem;font-weight:500;color:var(--green);padding-top:9px}
.sec > .body{min-width:0;display:grid;gap:22px;align-content:start}
.sec h2{font-weight:600;font-size:clamp(1.55rem,2.9vw,2.1rem);line-height:1.14;letter-spacing:-.02em;max-width:26ch}
.lead,.prose{max-width:var(--measure)}
.note{font-size:.92rem;color:var(--ink-2);max-width:var(--measure)}
@media (max-width:860px){.sec{grid-template-columns:minmax(0,1fr);row-gap:10px}.sec > .label{padding-top:0}}

/* full-bleed bands */
.band{position:relative;isolation:isolate;padding-block:60px 68px}
.band::before{content:"";position:absolute;top:0;bottom:0;left:-100vmax;right:-100vmax;background:var(--bandbg);z-index:-1}
.band-green{--bandbg:#0F4A35;color:#F2F6F3}
.band-green h2{color:#fff}
.band-green .label{color:var(--sun)}
.band-green sup.r a{color:var(--sun)}
.band-sun{--bandbg:var(--sun)}
.band-sun .label{color:var(--ink)}

/* fact ledger */
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;margin-top:6px}
.fact{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding-block:18px 20px;border-top:1px solid rgba(255,255,255,.22);align-content:start}
.fact b{font-family:var(--f-text);font-weight:600;font-size:clamp(2rem,4vw,2.6rem);line-height:1.02;letter-spacing:-.015em;color:var(--sun);font-variant-numeric:tabular-nums}
.fact span{color:#D3E3DA;max-width:30ch}
@media (max-width:760px){.facts{grid-template-columns:minmax(0,1fr)}}

/* generic tables */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:12px 18px 13px 0;border-top:1px solid var(--rule)}
.tbl thead th{font-family:var(--f-head);font-weight:500;font-size:.88rem;color:var(--ink-3);border-top:0;padding-top:0}
.tbl tbody tr:last-child td,.tbl tbody tr:last-child th{border-bottom:1px solid var(--rule)}
.tbl tbody th{font-family:var(--f-head);font-weight:600;font-size:1rem}
.tbl td.num{font-family:var(--f-head);font-weight:600;white-space:nowrap}
.tbl.budget td.num{font-size:1.15rem}
.tbl .muted{color:var(--ink-3);font-size:.9rem}

/* lists */
.marks{list-style:none;padding:0;display:grid;gap:10px;max-width:var(--measure)}
.marks li{position:relative;padding-left:1.3em}
.marks li::before{position:absolute;left:0;top:0;font-family:var(--f-head);font-weight:600}
.marks.no li::before{content:"–";color:var(--stop)}
.marks.yes li::before{content:"+";color:var(--green)}
.marks.dot li::before{content:"·";color:var(--ink-3);font-size:1.3em;line-height:1}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px;row-gap:28px}
.two h3{font-weight:600;font-size:1.06rem;margin-bottom:10px}
@media (max-width:760px){.two{grid-template-columns:minmax(0,1fr)}}

/* rows: platforms, cases */
.rows{display:grid}
.rw{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:28px;padding-block:16px 18px;border-top:1px solid var(--rule)}
.rw:last-child{border-bottom:1px solid var(--rule)}
.rw h3{font-weight:600;font-size:1.06rem}
.rw p{max-width:var(--measure)}
@media (max-width:620px){.rw{grid-template-columns:minmax(0,1fr);row-gap:4px}}

/* cta */
.cta h2{font-size:clamp(1.9rem,4.2vw,3rem);font-weight:700;letter-spacing:-.03em;max-width:18ch}
.cta .price{font-family:var(--f-head);font-weight:500}
.cta a.tg{font-family:var(--f-head);font-weight:600;font-size:clamp(1.5rem,4.2vw,2.2rem);color:var(--ink);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:7px}
.cta a.tg:hover{text-decoration-thickness:5px;color:var(--ink)}

/* sources */
.sources{padding-left:1.4em;display:grid;gap:8px;font-size:.88rem;color:var(--ink-2);max-width:48rem}
.sources a{color:var(--ink-2)}
.sources .t{color:var(--ink-3)}

/* other categories */
.others{display:flex;flex-wrap:wrap;gap:10px 28px;font-family:var(--f-head);font-weight:500}
.others a{color:var(--ink)}
.others a[aria-current]{color:var(--ink-3);text-decoration:none}

footer{margin-top:clamp(72px,9vw,104px);padding-top:18px;border-top:1px solid var(--rule);display:grid;gap:4px;font-size:.85rem;color:var(--ink-3)}

/* простые страницы (политика, 404): лид и кнопки сразу под заголовком */
.hero > .lede{margin-top:20px}
.hero > .actions{margin-top:24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.hero h1.long{font-size:clamp(1.5rem,7.6vw,4.5rem)}
