/* ABACUS — редизайн сайта на основе текущего стиля.
   Одна сетка: контейнер 1280px с одинаковыми полями для шапки, первого экрана и контента. */
:root{
  --navy:#091F36; --navy-2:#0E2D4A; --navy-3:#163A5C;
  --red:#E22A34; --red-dk:#C11D27;
  --ink:#16202D; --text:#2B3645; --muted:#566273; --line:#D9DEE6; --line-2:#E8ECF1;
  --paper:#FFFFFF; --mist:#F3F5F8; --mist-2:#EAEEF3;
  --on-navy:#FFFFFF; --on-navy-2:rgba(255,255,255,.74); --on-navy-3:rgba(255,255,255,.18);
  --ok:#1E7F55; --err:#B3261E;
  --font:"Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --fs-hero:clamp(2.375rem,1.45rem + 3.4vw,4.25rem);
  --fs-hero-h:clamp(1.75rem,.95rem + 3.6vw,3.875rem);
  --fs-h1:clamp(2.125rem,1.45rem + 2.3vw,3.375rem);
  --fs-h2:clamp(1.75rem,1.35rem + 1.45vw,2.625rem);
  --fs-h3:1.25rem; --fs-lead:clamp(1.0625rem,1rem + .35vw,1.25rem);
  --fs-body:1.0625rem; --fs-sm:.9375rem; --fs-xs:.8125rem; --fs-label:.75rem;
  --wrap:1280px; --gutter:clamp(16px,4vw,48px); --hdr:72px;
  --r:4px; --r-lg:8px; --sec:clamp(64px,8vw,120px);
  --shadow:0 1px 2px rgba(9,31,54,.06),0 8px 24px rgba(9,31,54,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 16px)}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:600;line-height:1.15;letter-spacing:-.015em;text-wrap:balance}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}
.on-navy :focus-visible,.hdr :focus-visible,.ftr :focus-visible,.mnav :focus-visible{outline-color:#fff}   /* v10.3 №59: + mobile menu (navy) */
.mnav:focus{outline:none}   /* the menu panel itself takes the focus when it opens (site.js) — it is a container, not a control */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:#fff;color:var(--navy);padding:10px 14px;border-radius:var(--r);font-weight:600}
.skip:focus{top:12px}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.nb{white-space:nowrap}

/* ---------- type helpers ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.eyebrow::before{content:"";width:24px;height:2px;background:currentColor;flex:none}
.on-navy .eyebrow{color:#FF6B73}
.h2{font-size:var(--fs-h2)}
.lead{font-size:var(--fs-lead);line-height:1.6;color:var(--muted);max-width:62ch}
.on-navy .lead{color:var(--on-navy-2)}
.muted{color:var(--muted)}
.sec{padding-block:var(--sec)}
.sec--mist{background:var(--mist)}
.sec--tight{padding-block:clamp(48px,6vw,80px)}
.sec-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-bottom:clamp(32px,4vw,56px)}
.sec-hd > div{display:grid;gap:14px;min-width:0}
.sec-hd .lead{margin-top:2px}
.more{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:600;color:var(--navy);padding:8px 0;border-bottom:1px solid currentColor}
.more svg{width:16px;height:16px;transition:transform .2s}
.more:hover{color:var(--red)} .more:hover svg{transform:translateX(3px)}
.on-navy .more{color:#fff}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:var(--r);border:1px solid transparent;font-size:var(--fs-sm);font-weight:600;line-height:1.2;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn--red{background:var(--red);color:#fff} .btn--red:hover{background:var(--red-dk)}
.btn--ghost{border-color:var(--on-navy-3);color:#fff;background:transparent} .btn--ghost:hover{border-color:#fff}
.btn--line{border-color:var(--line);color:var(--navy);background:#fff} .btn--line:hover{border-color:var(--navy)}
.btn--sm{min-height:40px;padding:8px 16px}
.btn--block{width:100%}

/* ---------- header ---------- */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:var(--navy);color:#fff;transition:background .25s,box-shadow .25s}
.hdr--over{position:fixed;left:0;right:0;background:transparent}
.hdr--over.is-solid,.hdr.is-solid{background:var(--navy);box-shadow:0 1px 0 rgba(255,255,255,.06),0 6px 20px rgba(0,0,0,.18)}
.hdr-in{display:flex;align-items:center;gap:24px;height:var(--hdr)}
.logo{display:block;color:#fff;flex:none}
.logo{display:flex;align-items:center;height:40px}
.logo .logo-svg{width:140px;height:auto}
.nav{display:flex;align-items:center;gap:2px;margin-left:8px}
.nav > li{list-style:none;position:relative}
.nav{padding:0;margin-block:0}
.nav-a{display:flex;align-items:center;gap:6px;height:var(--hdr);padding:0 10px;font-size:var(--fs-sm);font-weight:500;color:rgba(255,255,255,.86);white-space:nowrap}
.nav-a:hover,.nav-a[aria-current="page"],.nav li:hover > .nav-a{color:#fff}
.nav-a[aria-current="page"]{color:#fff;font-weight:600}
.nav-a svg{width:12px;height:12px;opacity:.7}
.dd{position:absolute;top:100%;left:-8px;min-width:340px;background:#fff;color:var(--ink);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:10px;display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.nav li:hover > .dd,.nav li:focus-within > .dd,.nav li.is-open > .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:block;padding:9px 12px;border-radius:var(--r);font-size:var(--fs-sm);font-weight:500;color:var(--text)}
.dd a:hover{background:var(--mist);color:var(--navy)}
.dd .dd-all{margin-top:4px;border-top:1px solid var(--line-2);padding-top:12px;color:var(--red);font-weight:600}
.hdr-act{margin-left:auto;display:flex;align-items:center;gap:8px;height:40px}
.hdr-tel{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;min-width:40px;font-size:var(--fs-sm);font-weight:600;color:#fff;white-space:nowrap;padding:0 6px;border-radius:var(--r)}
.hdr-tel svg{width:18px;height:18px;flex:none;display:none}
.hdr-tel:hover{background:rgba(255,255,255,.08)}
.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border-radius:var(--r);border:0;background:transparent;color:#fff;cursor:pointer}
.icon-btn:hover{background:rgba(255,255,255,.08)}
.icon-btn svg{width:20px;height:20px}
.lang{display:flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;line-height:1}
.lang a,.lang span{display:inline-grid;place-items:center;width:38px;height:40px;border-radius:var(--r);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.6)}
.lang [aria-current]{color:var(--navy);background:#fff;border-color:#fff}
.lang .is-off{cursor:help}
.burger{display:none}
.hdr .btn--red{min-width:140px;height:40px;min-height:40px;padding:0 18px}
.hdr .icon-btn{width:40px;height:40px}
.hdr .hdr-cta-m{min-width:0}
.hdr-cta-m{display:none}

/* ---------- mobile menu ---------- */
.mnav{position:fixed;inset:0;z-index:70;background:var(--navy);color:#fff;display:flex;flex-direction:column;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
.mnav[hidden]{display:none!important}
.mnav-top{display:flex;align-items:center;justify-content:space-between;height:var(--hdr);flex:none}
.mnav-list{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--on-navy-3)}
.mnav-list > li{border-bottom:1px solid var(--on-navy-3)}
.mnav-list a,.mnav-list summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;font-size:1.125rem;font-weight:500;color:#fff;cursor:pointer;list-style:none}
.mnav-list summary::-webkit-details-marker{display:none}
.mnav-list summary svg{width:16px;height:16px;transition:transform .2s}
.mnav-list details[open] summary svg{transform:rotate(180deg)}
.mnav-sub{list-style:none;margin:0 0 12px;padding:0 0 0 14px;border-left:1px solid var(--on-navy-3)}
.mnav-sub a{min-height:44px;font-size:var(--fs-sm);color:var(--on-navy-2)}
.mnav-foot{margin-top:auto;padding-block:28px;display:grid;gap:16px}
.mnav-foot .lang{margin:0}
.mnav .lang span{width:44px;height:44px}
.mnav-contacts{display:grid;gap:6px;font-size:var(--fs-sm);color:var(--on-navy-2)}
.mnav-contacts a{color:#fff;font-weight:600;font-size:1.0625rem}

/* ---------- search overlay ---------- */
.srch{position:fixed;inset:0;z-index:90;background:rgba(9,31,54,.97);color:#fff;overflow-y:auto}
.srch[hidden]{display:none!important}
.srch-in{padding-block:24px 64px}
.srch-top{display:flex;justify-content:flex-end}
.srch label{display:block;font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy-2);margin:24px 0 10px}
.srch-input{width:100%;background:transparent;border:0;border-bottom:2px solid rgba(255,255,255,.4);padding:10px 0;font-size:clamp(1.5rem,1.1rem + 2vw,2.5rem);font-weight:500;color:#fff;border-radius:0}
.srch-input::placeholder{color:rgba(255,255,255,.4)}
.srch-input:focus{outline:none;border-bottom-color:#fff}
.srch-meta{margin-top:14px;font-size:var(--fs-sm);color:var(--on-navy-2)}
.srch-res{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:2px}
.srch-res a{display:grid;gap:4px;padding:14px 16px;border-radius:var(--r);background:rgba(255,255,255,.04)}
.srch-res a:hover,.srch-res a:focus-visible{background:rgba(255,255,255,.1)}
.srch-res .k{font-size:var(--fs-label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#FF8A90}
.srch-res .t{font-weight:600;font-size:1.0625rem}
.srch-res .x{font-size:var(--fs-sm);color:var(--on-navy-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.srch-res mark{background:rgba(226,42,52,.35);color:#fff;border-radius:2px;padding:0 1px}

/* ---------- heroes ---------- */
.hero{position:relative;color:#fff;background:var(--navy);overflow:hidden;isolation:isolate}
.hero-img{position:absolute;inset:0;z-index:-2}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,31,54,.8) 0,rgba(9,31,54,.2) 150px,rgba(9,31,54,0) 40%),linear-gradient(90deg,rgba(9,31,54,.95) 0,rgba(9,31,54,.86) 38%,rgba(9,31,54,.45) 70%,rgba(9,31,54,.2) 100%)}
.hero--home .hero-in{padding-block:calc(var(--hdr) + clamp(72px,12vw,168px)) clamp(48px,6vw,80px);display:grid;gap:28px}
.hero-h{font-size:var(--fs-hero-h);font-weight:600;line-height:1.06;letter-spacing:-.025em;color:#fff;max-width:none;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:normal;text-wrap:balance}
.hero-br{display:none}
@media (min-width:600px){.hero-br{display:inline}.hero-h{text-wrap:wrap}}
.hero-h em{font-style:normal;color:rgba(255,255,255,.62)}
.hero-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.ranks{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:clamp(32px,5vw,64px);padding-top:24px;border-top:1px solid var(--on-navy-3)}
.ranks-l{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy-2)}
.ranks-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.rank-logo{height:26px;width:auto;filter:brightness(0) invert(1);opacity:.9}

.phero{background:var(--navy);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.phero-in{padding-block:clamp(20px,2.2vw,28px) clamp(32px,3.4vw,48px);display:grid;gap:12px}
.phero h1{font-size:var(--fs-h1);color:#fff;max-width:22ch}
.phero .lead{color:var(--on-navy-2);max-width:64ch}
.phero--img .hero-img{opacity:1}
.phero--img::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,31,54,.96) 0,rgba(9,31,54,.88) 40%,rgba(9,31,54,.55) 100%)}
.phero--img .phero-in{padding-block:clamp(24px,2.6vw,36px) clamp(40px,4.4vw,64px)}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:var(--fs-xs);color:var(--on-navy-2)}
.crumbs a:hover{color:#fff}
.crumbs span[aria-hidden]{opacity:.5}
.phero-meta{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:var(--fs-sm);color:var(--on-navy-2);margin-top:4px}

/* ---------- cards & grids ---------- */
.grid{display:grid;gap:clamp(16px,2vw,24px)}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,2.4vw,30px);transition:border-color .2s,box-shadow .2s,transform .2s;min-width:0}
a.card:hover{border-color:var(--navy);box-shadow:var(--shadow)}
.card-ic{width:44px;height:44px;border-radius:var(--r);background:var(--navy);color:#fff;display:grid;place-items:center;margin-bottom:22px}
.card-ic svg{width:22px;height:22px}
.card h3{font-size:var(--fs-h3);margin-bottom:10px}
.card p{font-size:var(--fs-sm);color:var(--muted);line-height:1.6}
.card-go{margin-top:auto;padding-top:22px;display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.card-go svg{width:16px;height:16px;transition:transform .2s}
a.card:hover .card-go{color:var(--red)} a.card:hover .card-go svg{transform:translateX(3px)}

/* case card: fixed slots */
.ccard{padding:0;overflow:hidden}
.ccard-top{display:flex;flex-direction:column;gap:12px;padding:24px 26px 0;flex:1}
.ccard .tag{font-size:var(--fs-label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.ccard h3{font-size:1.125rem;line-height:1.3;margin:0}
.ccard p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ccard-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:22px;padding:16px 26px;border-top:1px solid var(--line-2);min-height:72px}
.ccard-val{display:grid;gap:2px;min-width:0}
.ccard-val b{font-size:1.125rem;font-weight:600;color:var(--navy);white-space:nowrap}
.ccard-val span{font-size:var(--fs-xs);color:var(--muted)}
.ccard-arr{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);transition:background .2s,color .2s,border-color .2s}
.ccard-arr svg{width:16px;height:16px}
a.ccard:hover .ccard-arr{background:var(--red);border-color:var(--red);color:#fff}

/* team card */
.tcard{display:flex;flex-direction:column;min-width:0}
.tcard-ph{aspect-ratio:2/3;border-radius:var(--r-lg);overflow:hidden;background:var(--mist-2);max-width:100%}
.tcard-ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.tcard:hover .tcard-ph img{transform:scale(1.03)}
.tcard-b{padding-top:16px;display:grid;gap:4px}
.tcard-n{font-size:1.0625rem;font-weight:600;color:var(--ink);line-height:1.3}
.tcard:hover .tcard-n{color:var(--red)}
.tcard-r{font-size:var(--fs-label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.tcard-s{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}
.tmini{display:flex;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;min-width:0;transition:border-color .2s}
.tmini:hover{border-color:var(--navy)}
.tmini img{width:64px;height:80px;object-fit:cover;border-radius:var(--r);flex:none;background:var(--mist-2)}
.tmini div{display:grid;gap:2px;min-width:0}
.tmini b{font-weight:600;color:var(--ink);line-height:1.3}
.tmini span{font-size:var(--fs-xs);color:var(--muted);line-height:1.45}

/* post card with generated cover */
.pcard{padding:0;overflow:hidden}
.cover{position:relative;aspect-ratio:16/9;background:var(--navy);color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:20px 22px;isolation:isolate;max-width:100%}
.cover::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:32px 32px}
.cover-mark{position:absolute;z-index:-1;width:46%;aspect-ratio:1;right:-6%;bottom:-18%;color:var(--red);opacity:.9}
.cover-mark svg{width:100%;height:100%}
.cover--2{background:var(--navy-2)} .cover--3{background:#0B2540}
.cover--2 .cover-mark{right:auto;left:58%;bottom:-30%;transform:rotate(90deg)}
.cover--3 .cover-mark{bottom:auto;top:-22%;right:-4%;transform:rotate(180deg)}
.cover-k{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.cover-w{font-size:clamp(1.25rem,1rem + .8vw,1.75rem);font-weight:600;line-height:1.1;letter-spacing:-.01em;max-width:11ch}
.pcard-b{padding:20px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.pcard-meta{display:flex;gap:14px;font-size:var(--fs-xs);color:var(--muted)}
.pcard-meta b{font-weight:600;color:var(--red);text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-label);align-self:center}
.pcard h3{font-size:1.125rem;line-height:1.35;margin:0}
.pcard p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard--feat{grid-column:span 2;flex-direction:row}
.pcard--feat .cover{aspect-ratio:auto;flex:1.15;min-height:300px}
.pcard--feat .pcard-b{flex:1;padding:32px;justify-content:center}
.pcard--feat h3{font-size:1.5rem}

/* chips filter */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:var(--fs-sm);font-weight:500;color:var(--text);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.chip:hover{border-color:var(--navy)}
.chip[aria-pressed="true"],.chip[aria-current="page"]{background:var(--navy);border-color:var(--navy);color:#fff}
.chip i{font-style:normal;font-size:var(--fs-xs);opacity:.65}
.filter-bar{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--hdr));z-index:20}
.filter-bar .wrap{display:flex;align-items:center;gap:16px;padding-block:16px;overflow-x:auto;scrollbar-width:thin}
.filter-bar .lbl{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex:none}
.filter-bar .chips{flex-wrap:wrap}
@media (max-width:1024px){.filter-bar .chips{flex-wrap:nowrap}}
.chip{flex:none;white-space:nowrap}
.count-line{font-size:var(--fs-sm);color:var(--muted);margin-bottom:20px}
[data-item][hidden]{display:none!important}

/* ---------- home blocks ---------- */
.about-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.about-txt{display:grid;gap:20px}
.about-txt h2{font-size:var(--fs-h2)}
.about-txt h2 em{font-style:normal;color:var(--muted)}
.about-txt p{color:var(--text);max-width:60ch}
.yr{display:flex;align-items:baseline;gap:14px}
.yr b{font-size:clamp(2.75rem,2rem + 2vw,4rem);font-weight:600;line-height:1;color:var(--navy);letter-spacing:-.03em}
.yr span{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tags{display:grid;gap:14px;margin-top:8px;padding-top:24px;border-top:1px solid var(--line)}
.tags-row{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start}
.tags-row > span{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:6px}
.tags ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags a{display:inline-block;padding:5px 10px;border-radius:999px;background:var(--mist);font-size:var(--fs-xs);font-weight:500;color:var(--navy)}
.tags a:hover{background:var(--navy);color:#fff}
.photo{border-radius:var(--r-lg);overflow:hidden;background:var(--mist-2)}
.photo img{width:100%;height:100%;object-fit:cover}
.about-ph{aspect-ratio:4/5;max-width:100%}

.vals{position:relative;isolation:isolate;color:var(--ink)}
.vals-bg{position:absolute;inset:0;z-index:-1}
.vals-bg img{width:100%;height:100%;object-fit:cover}
.vals-card{background:#fff;border-radius:var(--r-lg);padding:clamp(28px,4vw,56px);box-shadow:var(--shadow);display:grid;gap:36px}
.vals-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.val{padding:4px 28px 4px 0;display:grid;gap:10px;align-content:start}
.val + .val{padding-left:28px;border-left:1px solid var(--line)}
.val h3{font-size:1.125rem}
.val p{font-size:var(--fs-sm);color:var(--muted)}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.stat{padding:28px 24px 28px 0;border-bottom:1px solid var(--line);display:grid;gap:6px;align-content:start}
.stat:not(:nth-child(4n+1)){padding-left:24px;border-left:1px solid var(--line)}
.stat b{font-size:clamp(2.25rem,1.8rem + 1.6vw,3.25rem);font-weight:600;line-height:1;color:var(--navy);letter-spacing:-.03em}
.stat b small{font-size:.45em;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:4px}
.stat h3{font-size:1rem;margin-top:8px}
.stat p{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}
.stat-note{margin-top:20px;font-size:var(--fs-sm);color:var(--muted)}

.rk{background:var(--navy);color:#fff}
.rk h2{color:#fff}
.rk-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--on-navy-3);border:1px solid var(--on-navy-3);border-radius:var(--r-lg);overflow:hidden}
.rk-i{display:grid;gap:28px;align-content:space-between;background:var(--navy);padding:32px;min-height:220px;transition:background .2s}
.rk-i:hover{background:var(--navy-2)}
.rk-i .rank-logo{height:30px}
.rk-i b{display:block;font-size:1.125rem;font-weight:600}
.rk-i span{font-size:var(--fs-sm);color:var(--on-navy-2)}
.rk-i em{font-style:normal;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-navy-2);margin-top:14px}
.rk-i em svg{width:14px;height:14px}

.logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.logos li{list-style:none;display:grid;place-items:center;height:104px;padding:20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.logos img{max-height:40px;max-width:100%;width:auto;object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .2s,opacity .2s}
.logos li:hover img{filter:none;opacity:1}
.logos{padding:0;margin:0}

/* ---------- CTA band + form ---------- */
.cta{position:relative;isolation:isolate;background:var(--navy);color:#fff;overflow:hidden}
.cta-bg{position:absolute;inset:0;z-index:-1;opacity:.18}
.cta-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.cta-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(32px,6vw,96px);align-items:start}
.cta h2{color:#fff;font-size:var(--fs-h2);margin:16px 0 18px}
.cta .lead{color:var(--on-navy-2)}
.cta-ch{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:14px}
.cta-ch li{display:flex;gap:14px;align-items:center;font-size:var(--fs-sm);color:var(--on-navy-2)}
.cta-ch a{color:#fff;font-weight:500}
.cta-ch svg{width:20px;height:20px;flex:none;color:#FF6B73}
.cta-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px 48px;flex-wrap:wrap;padding-block:clamp(48px,6vw,80px)}
.cta-strip h2{margin:10px 0 8px}
.cta-strip .lead{max-width:56ch}

.form{background:#fff;color:var(--text);border-radius:var(--r-lg);padding:clamp(24px,3vw,36px);display:grid;gap:18px;box-shadow:var(--shadow)}
.form-hd{display:grid;gap:6px}
.form-hd h3{font-size:1.375rem}
.form-hd p{font-size:var(--fs-sm);color:var(--muted)}
.fg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.f{display:grid;gap:6px;min-width:0}
.f--wide{grid-column:1/-1}
.f label{font-size:var(--fs-xs);font-weight:600;color:var(--ink)}
.f label i{font-style:normal;color:var(--red)}
.f input,.f textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid #B9C2CE;border-radius:var(--r);background:#fff;font-size:1rem;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.f textarea{min-height:112px;resize:vertical;line-height:1.5}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(9,31,54,.12)}
.f input::placeholder,.f textarea::placeholder{color:#7A8494}
.f.is-err input,.f.is-err textarea{border-color:var(--err)}
.f-err{font-size:var(--fs-xs);color:var(--err);min-height:0}
/* №44: the error never changes the geometry — it sits in the gap under its field (fixed slot, one line) */
.f{position:relative}
.fg{row-gap:24px;margin-bottom:16px}
.f .f-err{position:absolute;left:0;right:0;top:calc(100% + 4px);line-height:15px;height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.f .consent + .f-err{position:static;margin-top:-4px}
.consent{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;font-size:var(--fs-xs);line-height:1.55;color:var(--muted);cursor:pointer;padding:8px 0}
.consent input{width:22px;height:22px;margin:0;accent-color:var(--navy);cursor:pointer}
.consent a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.consent.is-err{color:var(--err)}
.form-note{font-size:var(--fs-xs);color:var(--muted)}
.form-ok{display:grid;gap:10px;padding:20px;border-radius:var(--r);background:#EAF5EF;color:#174D35;font-size:var(--fs-sm)}
.form-ok b{font-size:1rem}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(6,20,31,.66);overflow-y:auto}
.modal[hidden]{display:none!important}
.modal-card{position:relative;width:100%;max-width:640px;margin:auto}
/* №44: a long form scrolls inside the card; the card itself keeps its size and position */
.modal-card .form{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.modal-card .form{box-shadow:0 20px 60px rgba(0,0,0,.35)}
.modal-x{position:absolute;top:10px;right:10px;color:var(--ink);z-index:1}
.modal-x:hover{background:var(--mist)}
.modal-quick{display:flex;flex-wrap:wrap;gap:8px}
.modal-quick a{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r);font-size:var(--fs-xs);font-weight:600;color:var(--navy)}
.modal-quick a:hover{border-color:var(--navy)}
.modal-quick svg{width:16px;height:16px}
body.is-locked{overflow:hidden}

/* ---------- inner layout ---------- */
.lay{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.side{position:sticky;top:calc(var(--hdr) + 32px);display:grid;gap:32px}
.side-b{display:grid;gap:10px}
.side-h{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--line)}
.side-l{list-style:none;margin:0;padding:0;display:grid}
.side-l a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:var(--fs-sm);color:var(--text);border-bottom:1px solid var(--line-2)}
.side-l a:hover,.side-l a[aria-current]{color:var(--red)}
.side-l a svg{width:14px;height:14px;flex:none;margin-top:5px;opacity:.5}
.content{display:grid;gap:clamp(48px,6vw,80px);min-width:0}
.block{display:grid;gap:24px;min-width:0;align-content:start}
.block-hd{display:grid;gap:10px}
.block-hd h2{font-size:var(--fs-h2)}
.prose{max-width:72ch;color:var(--text)}
.prose > * + *{margin-top:1em}
.prose h2{font-size:1.625rem;margin-top:1.6em}
.prose h3{font-size:1.25rem;margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.25em}
.prose li + li{margin-top:.4em}
.prose li::marker{color:var(--red)}
.prose a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(9,31,54,.35);overflow-wrap:anywhere}
.prose a:hover{color:var(--red)}
.prose strong{color:var(--ink)}
.prose blockquote{margin:0;padding:4px 0 4px 20px;border-left:3px solid var(--red);color:var(--ink);font-size:1.125rem}
.prose table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}
.prose td,.prose th{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.prose--lead > p:first-child{font-size:var(--fs-lead);color:var(--ink)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--on-navy-3)}
.facts > div{padding:20px 24px 20px 0;display:grid;gap:4px}
.facts dt{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy-2)}
.facts dd{margin:0;font-weight:500;color:#fff}
.result{background:var(--mist);border-left:3px solid var(--red);padding:24px 28px;border-radius:0 var(--r-lg) var(--r-lg) 0;display:grid;gap:8px}
.result b{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.result p{font-size:1.125rem;color:var(--ink);line-height:1.55}
.case-photo{aspect-ratio:3/2;max-width:100%}
.val-badge{display:inline-grid;gap:2px;padding:14px 18px;border:1px solid var(--on-navy-3);border-radius:var(--r);margin-top:6px;justify-self:start}
.val-badge span{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy-2)}
.val-badge b{font-size:1.5rem;font-weight:600;color:#fff}
.plink{display:grid;gap:6px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;transition:border-color .2s}
.plink:hover{border-color:var(--navy)}
.plink b{color:var(--ink);font-weight:600;display:flex;justify-content:space-between;gap:10px}
.plink b svg{width:16px;height:16px;flex:none;margin-top:4px;color:var(--red)}
.plink span{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}
.note{font-size:var(--fs-sm);color:var(--muted)}

/* profile */
.prof{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:end;padding-block:clamp(16px,2vw,24px) clamp(32px,3.4vw,48px)}
.prof-ph{aspect-ratio:2/3;border-radius:var(--r-lg);overflow:hidden;background:var(--navy-2);max-width:100%}
.prof-ph img{width:100%;height:100%;object-fit:cover}
.prof-i{display:grid;gap:12px;padding-bottom:8px}
.prof-i h1{margin-bottom:2px}
.prof-i h1{font-size:var(--fs-h1);color:#fff}
.prof-role{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#FF6B73}
.prof-spec{font-size:var(--fs-lead);color:var(--on-navy-2);max-width:40ch}
.prof-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.kv{list-style:none;margin:0;padding:0;display:grid}
.kv li{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line-2)}
.kv span{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kv b{font-weight:500;color:var(--ink);font-size:var(--fs-sm);line-height:1.55}
.kv a{color:var(--navy);font-weight:600}

/* about */
.ab-intro{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,5vw,80px)}
.ab-meta{display:grid;gap:18px;align-content:start;position:sticky;top:calc(var(--hdr) + 32px)}
.ab-meta .photo{aspect-ratio:3/4;margin-top:12px}
.ab-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3vw,40px) clamp(28px,4vw,56px);margin-top:clamp(40px,5vw,64px)}
.topic{display:grid;gap:12px;align-content:start;padding-top:20px;border-top:2px solid var(--navy)}
.topic h3{font-size:1.25rem}
.topic p{font-size:var(--fs-sm);color:var(--text);line-height:1.65}
.topic--ph{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;border:0;padding:0}
.topic--ph > div{display:grid;gap:12px;padding-top:20px;border-top:2px solid var(--navy)}
.closing{margin-top:clamp(40px,5vw,64px);font-size:var(--fs-lead);line-height:1.55;color:var(--ink);max-width:60ch;padding-left:24px;border-left:3px solid var(--red)}
.band-ph{aspect-ratio:21/8;max-width:100%}
.lists2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,80px)}
.lst{list-style:none;margin:0;padding:0;display:grid}
.lst a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-weight:500;color:var(--ink)}
.lst a:hover{color:var(--red)}
.lst svg{width:16px;height:16px;flex:none}

/* contacts */
.ct-g{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.ch-list{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.ch-list li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.ch-ic{width:44px;height:44px;border-radius:var(--r);background:var(--mist);display:grid;place-items:center;color:var(--navy)}
.ch-ic svg{width:20px;height:20px}
.ch-list span{display:block;font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ch-list a,.ch-list b{font-weight:600;color:var(--ink);font-size:1.0625rem}
.ch-list a:hover{color:var(--red)}
.map{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);color:#fff;min-height:320px;padding-top:140px!important;display:grid;align-content:end;gap:10px;padding:28px;isolation:isolate}
.map::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:28px 28px}
.map-pin{position:absolute;top:64px;left:50%;width:28px;height:28px;border-radius:50% 50% 50% 0;background:var(--red);transform:translate(-50%,-50%) rotate(-45deg);box-shadow:0 0 0 10px rgba(226,42,52,.18)}
.map b{font-size:1.125rem}
.map p{font-size:var(--fs-sm);color:var(--on-navy-2)}

/* privacy doc */
.doc{max-width:78ch}
.doc .prose{max-width:none}
.doc .prose h2{font-size:1.375rem}
.toc{list-style:none;margin:0;padding:0;display:grid;counter-reset:t}
.toc a{display:block;padding:7px 0;font-size:var(--fs-xs);color:var(--text);border-bottom:1px solid var(--line-2);line-height:1.4}
.toc a:hover{color:var(--red)}

/* ---------- footer ---------- */
.ftr{background:var(--navy);color:var(--on-navy-2);font-size:var(--fs-sm)}
.ftr-g{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:40px;padding-block:clamp(56px,7vw,88px) 48px}
.ftr .logo .logo-svg{width:148px}
.ftr-brand{display:grid;gap:20px;align-content:start}
.ftr-brand p{max-width:38ch;line-height:1.6}
.ftr-c{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ftr-c a{color:#fff}
.ftr h2{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.ftr nav ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ftr nav a:hover,.ftr-c a:hover{color:#fff}
.ftr-bot{display:flex;justify-content:space-between;align-items:center;gap:16px 32px;flex-wrap:wrap;padding-block:24px;border-top:1px solid var(--on-navy-3);font-size:var(--fs-xs)}
.soc{display:flex;gap:8px}
.soc a{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r);border:1px solid var(--on-navy-3);color:#fff}
.soc a:hover{background:rgba(255,255,255,.08)}
.soc svg{width:18px;height:18px}
.ftr-legal{display:flex;gap:20px;flex-wrap:wrap}
.ftr-legal a:hover{color:#fff}

/* 404 — v10.2 №57: text on the left, the illustration on the right. The drawing is cut by its own lower edge, so it stands
   on the footer (no bottom padding). Its width follows the free height of the window: on short screens (Full HD at 125–150 %,
   1366 × 768) the whole page fits on the screen. Proportions are never changed: width only, height:auto.
   Rows: text (1fr) · button (auto) · free space (.7fr) — the button comes out at about 60 % of the drawing's height,
   where the open hand points. The grid only grows when the text and the button together are taller than the drawing. */
.nf-sec{background:var(--paper)}
.nf{--nf-top:clamp(24px,min(5vw,6vh),64px);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto .7fr;grid-template-areas:"txt art" "act art" ". art";column-gap:clamp(32px,5vw,80px);padding-top:var(--nf-top)}
.nf-txt{grid-area:txt;align-self:end;display:grid;gap:16px;justify-items:start}
.nf-code{font-size:min(clamp(4rem,3rem + 6vw,8rem),15vh);line-height:1;color:var(--navy);font-weight:600;letter-spacing:-.04em}
.nf-txt .lead{max-width:36ch}
.nf-act{grid-area:act;align-self:start;margin-top:32px}
.nf-art{grid-area:art;align-self:end;margin:0;width:min(660px,48vw,calc((100vh - var(--hdr) - var(--nf-top)) * 1.0778))}
.nf-art img{display:block;width:100%;height:auto}
@media (max-width:699px){
  /* phones: 404 → heading → text → illustration → button; the cut lower edge fades out softly.
     Tablets (≥ 700 px, iPad portrait) keep the two columns. */
  .nf{--nf-top:28px;grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"txt" "art" "act";padding-bottom:clamp(40px,8vw,64px)}
  .nf-txt{gap:12px}
  .nf-art{justify-self:center;width:min(100%,480px,calc((100svh - var(--hdr)) * .5 * 1.0778));margin-top:16px;
    -webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
  .nf-act{margin-top:0}
}
@media (max-width:699px) and (max-height:600px){
  /* short phones (iPhone SE 1st gen, 320 × 568): smaller number, heading and drawing — the button stays on the first screen */
  .nf{--nf-top:20px}
  .nf-code{font-size:3.25rem}
  .nf-txt .h2{font-size:1.625rem}
  .nf-art{width:min(100%,calc((100svh - var(--hdr)) * .4 * 1.0778));margin-top:8px}
}

/* ---------- responsive ---------- */
@media (max-width:1480px){ .hdr-tel span{display:none} .hdr-tel svg{display:block} .hdr-tel{width:40px;padding:0} }
@media (max-width:1360px){ .nav-a{padding:0 8px;font-size:.875rem} .hdr-in{gap:20px} }
@media (max-width:1300px){ .nav-a{padding:0 6px} }
@media (max-width:1240px){
  .nav,.hdr-act .lang,.hdr-act .btn--red:not(.hdr-cta-m){display:none}
  .burger{display:inline-grid}
  .hdr-cta-m{display:inline-flex}
  .hdr-in{gap:12px}
  .g4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .logos{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:1024px){
  :root{--hdr:64px}
  .lay,.ab-intro{grid-template-columns:minmax(0,1fr)}
  .side,.ab-meta{position:static}
  .lay > .side{order:2}
  .side{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .g3:not(.g3-keep){grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero::before{background:linear-gradient(180deg,rgba(9,31,54,.84) 0,rgba(9,31,54,.74) 100%)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:not(:nth-child(4n+1)){padding-left:0;border-left:0}
  .stat:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}
  .vals-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 0}
  .val:nth-child(3){padding-left:0;border-left:0}
  .rk-g{grid-template-columns:minmax(0,1fr)}
  .rk-i{min-height:0;grid-template-columns:160px 1fr;align-items:center}
  .cta-g,.ct-g{grid-template-columns:minmax(0,1fr)}
  .ftr-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prof{grid-template-columns:minmax(0,280px) minmax(0,1fr)}
}
@media (max-width:860px){
  .g3-keep{grid-template-columns:minmax(0,1fr)}
  .plist{gap:8px}
  .plist .card{flex-direction:row;align-items:center;gap:14px;padding:14px 16px}
  .plist .card-ic{margin:0;width:40px;height:40px;flex:none}
  .plist .card h3{margin:0;font-size:1rem;flex:1}
  .plist .card p{display:none}
  .plist .card-go{margin:0;padding:0;font-size:0;gap:0}
  .plist .card-go svg{width:18px;height:18px}
  .about-g{grid-template-columns:minmax(0,1fr)}
  .about-ph{aspect-ratio:16/10}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcard--feat{grid-column:auto;flex-direction:column}
  .pcard--feat .cover{aspect-ratio:16/9;min-height:0;flex:none}
  .pcard--feat .pcard-b{padding:20px 24px 24px}
  .pcard--feat h3{font-size:1.125rem}
  .ab-topics,.lists2{grid-template-columns:minmax(0,1fr)}
  .topic--ph{grid-template-columns:minmax(0,1fr)}
  .prof{grid-template-columns:minmax(0,1fr);align-items:start}
  .prof-ph{max-width:300px}
}
@media (max-width:640px){
  :root{--fs-body:1rem}
  .g3,.g2,.g3:not(.g3-keep){grid-template-columns:minmax(0,1fr)}
  .fg{grid-template-columns:minmax(0,1fr)}
  .side{grid-template-columns:minmax(0,1fr)}
  .vals-g{grid-template-columns:minmax(0,1fr)}
  .val,.val + .val{padding:0 0 22px;border-left:0;border-bottom:1px solid var(--line)}
  .val:last-child{border-bottom:0;padding-bottom:0}
  .stat b{font-size:2.25rem}
  .stat,.stat:nth-child(even){padding:22px 12px 22px 0}
  .stat:nth-child(even){padding-left:16px}
  .rk-i{grid-template-columns:minmax(0,1fr);padding:24px}
  .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logos li{height:88px}
  .ftr-g{grid-template-columns:minmax(0,1fr);gap:32px}
  .tags-row{grid-template-columns:minmax(0,1fr);gap:8px}
  .tags-row > span{padding-top:0}
  .hero-acts .btn{flex:1 1 auto}
  .ranks,.ranks-row{gap:18px}
  .rank-logo{height:22px}
  .hdr-cta-m{padding:0 14px}
  .hdr .hdr-tel{display:none}
  .hdr .logo .logo-svg{width:112px}
  .ccard-top{padding:22px 20px 0} .ccard-foot{padding:14px 20px}
}
@media (max-width:640px){
  .hero::before{background:linear-gradient(180deg,rgba(9,31,54,.82) 0,rgba(9,31,54,.78) 100%)}
  .plist{gap:8px}
  .plist .card{flex-direction:row;align-items:center;gap:14px;padding:14px 16px}
  .plist .card-ic{margin:0;width:40px;height:40px;flex:none}
  .plist .card h3{margin:0;font-size:1rem;flex:1}
  .plist .card p{display:none}
  .plist .card-go{margin:0;padding:0;font-size:0;gap:0}
  .plist .card-go svg{width:18px;height:18px}
  .tcard-n{font-size:.9375rem}
  .tcard-s{font-size:var(--fs-xs)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
/* industry cards with photo */
.icard{padding:0;overflow:hidden}
.icard-ph{aspect-ratio:16/9;overflow:hidden;background:var(--mist-2);max-width:100%}
.icard-ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
a.icard:hover .icard-ph img{transform:scale(1.03)}
.icard-b{display:flex;flex-direction:column;flex:1;padding:0 clamp(22px,2.4vw,30px) clamp(22px,2.4vw,30px)}
.icard .card-ic{margin-top:-22px;position:relative;box-shadow:0 0 0 4px #fff}
/* long words and grid overflow guards */
h1,h2,h3{overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}
.phero-in{grid-template-columns:minmax(0,1fr)}
.phero-in > *{min-width:0}
.side .chip,.content .chip{white-space:normal;flex:initial;text-align:left}
@media (max-width:640px){ .phero h1{overflow-wrap:anywhere} }

/* news cards: text only; an optional square photo can be added from the CMS */
.pcard{padding:0}
.pcard-b{padding:24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.pcard h3{font-size:1.125rem;line-height:1.35;margin:0}
.pcard .card-go{padding-top:12px}
.pcard--img .pcard-ph{aspect-ratio:1/1;overflow:hidden;background:var(--mist-2)}
.pcard--img .pcard-ph img{width:100%;height:100%;object-fit:cover}

/* floating contacts: collapsed request tab + compact Telegram button */
.fab{position:fixed;right:0;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none;transition:opacity .25s,visibility .25s}
.fab > *{pointer-events:auto}
.fab.is-hidden{opacity:0;visibility:hidden}
body.is-locked .fab{display:none}
.fab-req{display:flex;align-items:stretch;transform:translateX(calc(100% - 32px));transition:transform .3s ease;box-shadow:0 4px 14px rgba(9,31,54,.18);border-radius:6px 0 0 6px;overflow:hidden}
.fab-req[data-open="true"]{transform:none}
.fab-tog{width:32px;height:44px;border:0;background:var(--red);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.fab-tog:hover,.fab-req-btn:hover{background:var(--red-dk)}
.fab-tog svg{width:16px;height:16px;transform:rotate(90deg);transition:transform .3s}
.fab-req[data-open="true"] .fab-tog svg{transform:rotate(-90deg)}
.fab-req-btn{height:44px;padding:0 18px 0 14px;border:0;border-left:1px solid rgba(255,255,255,.25);background:var(--red);color:#fff;font-size:var(--fs-sm);font-weight:600;white-space:nowrap;cursor:pointer}
.fab-tg{position:relative;margin-right:20px;width:44px;height:44px;border-radius:50%;background:#229ED9;color:#fff;display:grid;place-items:center;box-shadow:0 4px 12px rgba(9,31,54,.2)}
.fab-tg svg{width:20px;height:20px;margin-left:-2px}
.fab-tg::after{content:"";position:absolute;inset:0;border-radius:50%;animation:tgpulse 5s ease-out infinite}
@keyframes tgpulse{0%,60%{box-shadow:0 0 0 0 rgba(34,158,217,.35)}85%,100%{box-shadow:0 0 0 7px rgba(34,158,217,0)}}
@media (max-width:640px){ .fab{bottom:calc(14px + env(safe-area-inset-bottom,0px))} .fab-tg{margin-right:14px} }

/* v3 */
.lead--body{margin-top:20px;color:var(--text)}
/* №15: full pill on one line; softer corners once a label wraps (class set by site.js) */
.chip.is-multi{border-radius:14px}
/* №17: original IFLR1000 file, already drawn for dark backgrounds — no recolouring */
.rank-logo--iflr{filter:none;opacity:1;height:18px}
.rk-i .rank-logo--iflr{height:21px}
@media (max-width:640px){.rank-logo--iflr{height:15px}}
.rk-i > div:first-child{display:flex;align-items:center;min-height:30px}
/* very narrow phones (320–359px): keep logo, search, request button and menu on one row */
@media (max-width:359px){
  .hdr .logo .logo-svg{width:96px}
  .hdr-in{gap:8px}
  .hdr-act{gap:4px}
  .hdr-cta-m{padding:0 10px}
}
/* v10.5 №66: portraits are delivered in their original 2:3 frame and the cards and the profile photo are 2:3 too, so the
   whole photo is shown, nothing is cropped or enlarged. A CMS upload of another shape is fitted whole (contain, below)
   at the top of the frame, on the same #F0F1F3 backdrop. Mini cards (.tmini, 64×80) show the top of the photo (v10.5 block). */
.tcard-ph img,.prof-ph img,.tmini img{object-position:50% 0}
/* №19 (v3.1): portraits share one flat backdrop; the frame shows the same tone while a photo loads */
.tcard-ph,.prof-ph,.tmini img{background:#F0F1F3}

/* v4 */
/* №20: hyphenated compounds never split across lines (span added by the generator's typograph) */
.nw{white-space:nowrap}
/* №22: accent subheadings and their rule on navy blocks use a softer red; on light backgrounds the brand red stays */
.on-navy .eyebrow,.hero .eyebrow,.phero .eyebrow,.cta .eyebrow,.ftr .eyebrow,.mnav .eyebrow{color:#FF5E6E}
.phero a.eyebrow:hover{color:#FF5E6E;text-decoration:underline;text-underline-offset:4px}
/* №23: one icon set in «Прямые каналы», 24 px in equal 52 px tiles */
.ch-list li{grid-template-columns:52px 1fr}
.ch-ic{width:52px;height:52px;color:#4A5B70}
.ch-ic svg{width:24px;height:24px;stroke-width:1.75}
/* №25: client logos that link to the company site */
.logos a{display:grid;place-items:center;width:100%;height:100%;border-radius:var(--r)}
.logos a:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
/* №26: address links to the ABACUS card in Yandex Maps */
a.addr{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-color .2s,color .2s}
a.addr:hover,a.addr:focus-visible{text-decoration-color:currentColor}
.cta-ch a.addr{color:var(--on-navy-2);font-weight:400}
.cta-ch a.addr:hover{color:#fff}
.ftr-c a.addr{color:inherit}
.map a.addr{color:#fff;justify-self:start}
/* №20: on 320–360 px phones the page title steps down a little so unbroken compounds (FinTech-платформы) still fit */
.phero h1,.prof-i h1{font-size:min(var(--fs-h1),9vw)}
.ch-list .ch-ic{display:grid;place-items:center}
.stat b{white-space:nowrap}

/* v5 */
/* №32–33: filters on «Опыт» and «Команда» — a compact chip block in the page flow; once it has scrolled away,
   a slim 52 px bar slides in under the header (label · current choice · count · ▾) and opens the full list on demand.
   On phones the slim bar replaces the chip block and the list opens as a dropdown. */
.filter-bar{position:static}
.fbar{position:relative;z-index:25}
.fbar-full{border-bottom:1px solid var(--line);background:#fff}
.fbar-full .wrap{display:flex;align-items:flex-start;gap:16px;padding-block:14px}
.fbar-full .lbl,.fbar-tog .lbl{font-size:var(--fs-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex:none}
.fbar-full .lbl{padding-top:9px}
.fbar .chips{gap:6px}
.fbar .chip{min-height:34px;padding:5px 12px;font-size:.8125rem;gap:6px}
.fbar-mini{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + var(--hdr));background:rgba(255,255,255,.97);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(9,31,54,.06);transform:translateY(-130%);visibility:hidden;transition:transform .22s ease,visibility .22s}
.fbar.is-mini .fbar-mini{transform:none;visibility:visible}
.fbar-tog{display:flex;align-items:center;gap:12px;width:100%;height:52px;padding:0;border:0;background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.fbar-tog .lbl{padding-right:12px;border-right:1px solid var(--line);line-height:20px}
.fbar-cur{font-size:var(--fs-sm);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbar-tog i{font-style:normal;font-size:var(--fs-xs);color:var(--muted);flex:none}
.fbar-tog svg{width:18px;height:18px;margin-left:auto;flex:none;transition:transform .2s}
.fbar-tog[aria-expanded="true"] svg{transform:rotate(180deg)}
.fbar-tog:hover .fbar-cur{color:var(--red)}
.fbar-pop{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 32px rgba(9,31,54,.14);max-height:min(62vh,460px);overflow:auto;overscroll-behavior:contain}
.fbar-pop .wrap{padding-block:14px 18px}
@media (max-width:760px){
  .fwrap > .fbar{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--hdr))}
  .fbar-full{display:none}
  .fbar-mini{position:relative;top:auto;transform:none;visibility:visible;box-shadow:none}
  .fbar-pop .chips{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:2px}
  .fbar-pop .chip{justify-content:space-between;border:0;border-radius:var(--r);min-height:44px;padding:10px 12px;font-size:var(--fs-sm);white-space:normal}
  .fbar-pop .chip[aria-pressed="true"]{background:var(--navy);color:#fff}
}
@media (prefers-reduced-motion:reduce){.fbar-mini,.fbar-tog svg{transition:none}}
/* №33: on laptop screens with little height the portraits give way — the frame stops at 44 % of the viewport
   height and trims the bottom of the shot (head and headroom stay; object-position is top) */
/* v6 №35/№39: portraits are never cropped by the card. The 44vh cap of v5 is gone: cards and photos are back to
   their full size. On laptop windows with little height (Full HD at 125–150 %, 1366×768) the whole grid becomes
   narrower instead, so every card and photo shrinks in proportion and the shot stays exactly as approved. */
.tcard-ph img,.prof-ph img,.tmini img{object-fit:contain}
/* v10 №56: the narrowing of the grid on short windows (v6 №39) is removed — it left the cards in the left part of
   the content area with an empty strip on the right (Full HD at 125–150 % in Chrome / Edge on Windows). The team grid
   now always spans the same content width as the heading and the practice filter (.wrap, max 1280 px, centred):
   4 equal columns above 1240 px, 3 up to 860 px, 2 on phones. Photos keep their ratio (2:3 since v10.5 №66) — a wider card is proportionally taller,
   nothing is cropped or stretched; on large monitors the 1280 px content limit keeps cards at their Full HD size. */
#team-grid{max-width:none;margin-inline:0}
/* №34: «Контакты» — live Yandex map of the ABACUS card instead of the decorative block; the map wakes up on click,
   so the page scrolls freely over it; address, note and the button to the full card sit under the map */
.map.map--live{padding:0!important;min-height:0;display:grid;gap:0;background:#fff;color:var(--ink);border:1px solid var(--line)}
.map.map--live::before{display:none}
.map-frame{position:relative;height:clamp(280px,30vw,360px);background:var(--mist)}
.map-frame::after{content:"Загружаем карту…";position:absolute;inset:0;display:grid;place-items:center;font-size:var(--fs-sm);color:var(--muted);z-index:0}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:1}
.map-veil{position:absolute;inset:0;z-index:2;border:0;padding:14px;background:transparent;cursor:pointer;display:flex;align-items:flex-end;justify-content:center}
.map-veil span{opacity:0;transition:opacity .2s;background:rgba(9,31,54,.84);color:#fff;font-size:var(--fs-xs);font-weight:600;padding:7px 14px;border-radius:999px}
.map-veil:hover span,.map-veil:focus-visible span{opacity:1}
.map-frame.is-live .map-veil{display:none}
.map-info{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;padding:20px 24px}
.map-info b{font-size:1.0625rem;color:var(--ink)}
.map-info a.addr{color:var(--ink)}
.map-info p{margin-top:4px;font-size:var(--fs-sm);color:var(--muted)}
@media (hover:none){.map-veil span{opacity:1}}
.fbar-pop .chip{text-align:left}
.fbar .chip{padding:4px 11px;font-size:.78rem;min-height:32px}
.fbar-full .lbl{padding-top:7px}
.fbar-full .wrap{padding-block:12px}
.fbar[data-filter="cases-grid"] .fbar-full .wrap{flex-direction:column;align-items:stretch;gap:8px}
.fbar[data-filter="cases-grid"] .fbar-full .lbl{padding-top:0}
.fwrap .sec--tight{padding-top:clamp(24px,3vw,36px)}

/* v6 */
/* №37: the company description under the footer logo steps back; contacts keep their colours */
.ftr-brand p{color:#8E9BAA}
/* №38: founding year — a small caption above one large italic serif numeral (Source Serif 4 Italic, self-hosted, digits only) */
@font-face{font-family:"ABACUS Serif";src:url("fonts/abacus-serif-digits-italic.woff2") format("woff2");font-style:italic;font-weight:500;font-display:swap;unicode-range:U+0030-0039}
.yr{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.yr b{font-family:"ABACUS Serif",Georgia,"Times New Roman",serif;font-style:italic;font-weight:500;font-size:clamp(2.75rem,2.1rem + 1.8vw,3.75rem);line-height:.95;letter-spacing:-.01em;font-variant-numeric:lining-nums;color:var(--navy)}
.ab-meta{gap:14px}
/* v7 №43: lead sending states + prototype preview of the Telegram message */
.form-send-err{margin:0 0 12px;padding:12px 14px;border-radius:var(--r);background:#FDECEE;color:#8A1C2B;font-size:var(--fs-sm);line-height:1.5}
.form-send-err a{color:inherit;text-decoration:underline;white-space:nowrap}
.form[aria-busy="true"] [type=submit]{opacity:.7;cursor:progress}
.form [type=submit]:disabled{pointer-events:none}
.tg-prev{margin-top:6px;display:grid;gap:8px;color:#3E5566}
.tg-prev[hidden]{display:none}
.tg-prev p{margin:0;font-size:var(--fs-xs)}
.tg-prev pre{margin:0;padding:14px 16px;max-height:320px;overflow:auto;border-radius:12px;background:#fff;border:1px solid #D4E4DA;color:var(--ink);font:400 13px/1.5 "Golos Text",system-ui,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}
/* v8 №47 → v10.2 №58: five partners on the home page and «О компании» — 3 + 2 on desktops with the second row centred,
   2 + 2 + 1 on tablets and phones with the fifth card centred, 1 per row below 360 px. The grid has twice as many columns
   and every card spans two, so a card is still a third (a half) of the row and an incomplete last row can sit in the middle.
   Works for any number of partners. On short laptop screens the grid still narrows so a whole card stays in view (v8 №47). */
.ab-partners{grid-template-columns:repeat(6,minmax(0,1fr));max-width:calc(3 * (100vh - 216px) / 1.5 + 2 * clamp(16px,2vw,24px))}   /* v10.5 №66: 2:3 photo + name, role and practice fit under the header; no narrowing on Full HD */
.ab-partners > *{grid-column:span 2}
@media (min-width:1025px){
  .ab-partners > :nth-child(3n+1):nth-last-child(2){grid-column:2 / span 2}   /* last row of two */
  .ab-partners > :nth-child(3n+1):last-child{grid-column:3 / span 2}          /* last row of one */
}
@media (max-width:1024px){.ab-partners{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}}
@media (min-width:360px) and (max-width:1024px){.ab-partners > :nth-child(2n+1):last-child{grid-column:2 / span 2}}
@media (max-width:359px){.ab-partners{grid-template-columns:minmax(0,1fr)} .ab-partners > *{grid-column:auto}}
/* v8 №48: rating names are links; the card itself is unchanged */
.stat p a.stat-a{color:inherit;text-decoration:underline;text-decoration-color:rgba(9,31,54,.28);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}
.stat p a.stat-a:hover,.stat p a.stat-a:focus-visible{color:var(--navy);text-decoration-color:var(--red)}
/* v8 №49: calm reveal of the «О компании» blocks (only when JS runs and the visitor allows motion) */
.motion-on [data-rv]{opacity:0;transform:translate3d(0,20px,0)}
.motion-on [data-rv].is-in{opacity:1;transform:none;transition:opacity .62s cubic-bezier(.22,.61,.36,1),transform .62s cubic-bezier(.22,.61,.36,1);transition-delay:calc(var(--rv-i,0) * 100ms)}
.motion-on [data-rv].is-now{transition:none}
/* flip counter: digits roll vertically inside a 1-line window, the «+» / «лет» fades in after they stop */
.fl-col{display:inline-block;vertical-align:top;height:1em;overflow:hidden;text-align:center}
.fl-strip{display:block;transition:transform var(--fl-d,1000ms) cubic-bezier(.16,.84,.3,1);will-change:transform}
.fl-strip>span{display:block;height:1em;line-height:1}
.fl-sfx{opacity:0;transition:opacity .22s ease}
.fl-sfx.is-on{opacity:1}
@media (prefers-reduced-motion:reduce){.motion-on [data-rv]{opacity:1;transform:none;transition:none}}
/* v9 №50: press-centre rubricator = the same collapsing bar as «Команда»; rubric links instead of filter buttons */
.fbar-pop .chip[aria-current="page"]{background:var(--navy);border-color:var(--navy);color:#fff}
#posts{scroll-margin-top:calc(env(safe-area-inset-top,0px) + var(--hdr) + 32px)}
/* v9 №51, №53: first screen — two-line headline (white key phrase, muted qualifier), lighter lead #D1D9E3 */
.hero--home .lead{color:#D1D9E3}
.hero-h{-webkit-hyphens:none;hyphens:none;word-break:normal}
/* v9 №52: «Вся команда» after the last row of partner cards */
.more--after{margin-top:clamp(20px,2.4vw,28px)}
/* №53: the geography line stays on one line on narrow phones; if it ever has to wrap, it wraps after «·» */
@media (max-width:374px){.hero-eb{letter-spacing:.07em;font-size:.6875rem}}
/* №53: a little more shade under the text column so the lighter lead keeps ≥ 4.5:1 over the lit windows of the photo */
@media (min-width:1025px){.hero--home::before{background:linear-gradient(180deg,rgba(9,31,54,.8) 0,rgba(9,31,54,.2) 150px,rgba(9,31,54,0) 40%),linear-gradient(90deg,rgba(9,31,54,.95) 0,rgba(9,31,54,.9) 38%,rgba(9,31,54,.78) 58%,rgba(9,31,54,.42) 78%,rgba(9,31,54,.2) 100%)}}
/* v9: eyebrows are inline text (not a flex row), so a long translated eyebrow wraps like a sentence
   and the no-break spans of hyphenated words stay inside the line */
.eyebrow{display:inline-block}
.eyebrow::before{display:inline-block;vertical-align:.32em;margin-right:10px}
/* v9: titles with a very long word are set a little smaller on narrow phones — the word is never split */
@media (max-width:420px){.phero h1.h1-long,.prof-i h1.h1-long{font-size:min(var(--fs-h1),7.3vw)}}
/* v9: the no-break wrapper of hyphenated words (span.nw) takes the look of the text around it — never the look of
   a label (.kv span, .ch-list span …), which UZ and EN values with hyphens (2006-yildan, E-commerce) would otherwise get */
span.nw{display:inline;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.hdr-act .btn{white-space:nowrap}
/* №55 (v9.1): a label inside a flex row is ONE text container (.tx) — words of a localised name are never spread
   across the row by justify-content/gap, it wraps naturally from the left; the arrow / count stays a separate item */
.tx{display:inline;min-width:0;text-align:left}
.lst a .tx,.side-l a .tx,.plink b .tx,.mnav-list a .tx{flex:1 1 auto}
.plink b .tx{font-size:inherit;color:inherit;line-height:inherit;font-weight:inherit}
.lst a svg,.side-l a svg,.plink b svg{flex:none}
/* v10: on the narrowest phones a long hyphenated word in the stats cells may break at its hyphen
   (UZ «qo‘llab-quvvatlangan» at 320 px) instead of crossing the column divider */
@media (max-width:374px){.stat p .nw,.stat h3 .nw{white-space:normal}}

/* v10.5 */
/* №66: team portraits in their original 2:3 frame (cards, partners, profile — see the №19 note above). On phones and small
   tablets the profile photo is 250 px wide: the whole 2:3 photo at the same 375 px height as the former 4:5 one, so the name
   stays where it was on the first screen. Mini cards (64×80) show the top of the same photo — head and shoulders, as before. */
@media (max-width:860px){.prof-ph{max-width:250px}}
.tmini img{object-fit:cover;object-position:50% 0}
/* v10.7 №68: ten practices in the three-column grid — the last card takes the whole row as one wide card
   (icon · title and text · link), so the grid ends without a lone card; on phones (≤860px) the list stays as it is */
@media (min-width:861px){
  .g3-keep > .pcard-prac:last-child:nth-child(3n+1){grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:clamp(20px,2.4vw,32px);row-gap:6px;align-items:center}
  .g3-keep > .pcard-prac:last-child:nth-child(3n+1) .card-ic{grid-row:1 / 3;margin:0}
  .g3-keep > .pcard-prac:last-child:nth-child(3n+1) h3{grid-column:2;margin:0;align-self:end}
  .g3-keep > .pcard-prac:last-child:nth-child(3n+1) p{grid-column:2;align-self:start;max-width:76ch}
  .g3-keep > .pcard-prac:last-child:nth-child(3n+1) .card-go{grid-column:3;grid-row:1 / 3;margin:0;padding:0}
}
