/* АО «ТАВЕНТА» – taventa.ru
   Концепция «Рубеж» по брендбуку: палитра п. 5.2, шрифты PT Serif и Inter (п. 5.3),
   один акцент на макет – терракота #B45A38. На антраците терракота идет только линиями
   (контраст 2,7:1), текст – песочный. Прописные только в логотипе. */

@font-face{font-family:"PT Serif";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/pt-serif-cyrillic-700-normal.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"PT Serif";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/pt-serif-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-cyrillic-400-normal.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-cyrillic-500-normal.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/inter-cyrillic-600-normal.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/inter-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --ant:#2E3338; --ant-deep:#272B30; --ant-line:#4A4F54;
  --sand:#EDE8DD; --white:#FFFFFF; --line:#D6CEBE; --stripe:#F5F2EC;
  --g1:#4A4F54; --g2:#5A6B78; --umber:#4E3B2C;
  --acc:#B45A38; --acc-a:rgba(180,90,56,.7);
  --on-dark:#EDE8DD; --on-dark2:#D3CDC1; --on-dark3:#B3AD9F;
  --err:#9A1B1B;
  --serif:"PT Serif",Georgia,serif;
  --sans:"Inter","Segoe UI",Arial,sans-serif;
  --gutter:32px; --sec:96px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ant);font:400 17px/28px var(--sans);font-kerning:normal}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p{margin:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.dark :focus-visible,.hdr :focus-visible,.hero :focus-visible{outline-color:var(--on-dark)}
.num{font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--white);color:var(--ant);padding:10px 16px;border-radius:6px}
.skip:focus{top:12px}

.in{max-width:1264px;margin:0 auto;padding:0 var(--gutter)}
.over{font:500 14px/22px var(--sans);color:var(--umber)}
.dark .over{color:var(--on-dark3)}
.h2{font:700 30px/38px var(--serif);text-wrap:balance}
.lead{font:400 20px/32px var(--sans);color:var(--g1);max-width:720px}
.sec{padding:var(--sec) 0}
.sec-head{display:grid;gap:12px;margin-bottom:40px;max-width:760px}
.sand{background:var(--sand)}
.dark{background:var(--ant);color:var(--on-dark)}
.dark .lead{color:var(--on-dark2)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 20px;border-radius:6px;border:1px solid transparent;font:500 16px/24px var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--ant);color:var(--white)}
.btn-primary:hover{background:#3A4046}
.btn-acc{border-color:var(--acc);color:var(--on-dark);background:transparent}
.btn-acc:hover{background:var(--acc);color:var(--white)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.link{color:var(--umber);font-weight:500;text-decoration:underline;text-decoration-color:var(--acc);text-underline-offset:3px;text-decoration-thickness:1px}
.dark .link{color:var(--on-dark)}

/* ---------- логотип ---------- */
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--on-dark);justify-self:start}
.logo svg{width:62px;height:21px;color:currentColor}
.logo b{font:700 18px/1 var(--serif);letter-spacing:.14em}

/* ---------- шапка ---------- */
.hdr{position:sticky;top:0;z-index:50;background:var(--ant);color:var(--on-dark);height:64px;border-bottom:1px solid var(--ant-line)}
.hdr .in{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.nav{display:flex;gap:28px}
.nav a{font:500 16px/24px var(--sans);color:var(--on-dark);text-decoration:none;padding:18px 0;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--acc)}
.hdr-right{display:flex;align-items:center;gap:24px;justify-self:end}
.hdr-right .tel{font:500 16px/24px var(--sans);color:var(--on-dark);text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.hdr .btn{min-height:40px}
.burger{display:none;justify-self:end;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--acc);border-radius:6px;background:transparent;color:var(--on-dark);cursor:pointer}
.burger svg{width:20px;height:20px}
.mnav{display:none}

/* ---------- первый экран ---------- */
.hero{background:var(--ant);padding:24px 0 0}
.stage{position:relative;margin:0 var(--gutter);min-height:clamp(500px,44vw,600px);display:grid;place-items:center;padding:96px 40px;overflow:hidden;background:var(--ant-deep);color:var(--on-dark)}
.stage canvas{position:absolute;inset:0;width:100%;height:100%}
.stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,rgba(39,43,48,0) 30%,rgba(39,43,48,.85) 100%)}
.mark{position:absolute;z-index:2;font:500 14px/22px var(--sans);color:var(--on-dark3);font-variant-numeric:tabular-nums}
.mark.tl{left:24px;top:18px}.mark.tr{right:24px;top:18px;text-align:right}
.mark.bl{left:24px;bottom:18px}.mark.br{right:24px;bottom:18px;text-align:right}
.manifest{position:relative;z-index:3;display:grid;justify-items:center;gap:40px;text-align:center}
.manifest h1{font:700 clamp(30px,4.6vw,66px)/1.1 var(--serif);letter-spacing:-.01em;color:var(--white);max-width:1080px;text-wrap:balance}
.manifest h1 .accent{color:var(--on-dark);text-decoration:underline;text-decoration-color:var(--acc);text-decoration-thickness:4px;text-underline-offset:10px}
.sig{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:center;width:min(760px,100%)}
.sig .l{text-align:right;font:600 20px/26px var(--sans);color:var(--white)}
.sig .r{display:grid;gap:6px;justify-items:start;text-align:left}
.sig .r span{font:500 14px/22px var(--sans);color:var(--on-dark3)}
.sig .r a{font:600 20px/26px var(--sans);color:var(--white);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;border-bottom:2px solid var(--acc)}
.sig .r a:hover{color:var(--on-dark2)}
.sig svg{width:112px;height:38px;color:var(--on-dark)}

/* ---------- карточки направлений ---------- */
.dirs{background:var(--ant);padding:16px 0 var(--sec)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 var(--gutter)}
.card{position:relative;overflow:hidden;isolation:isolate;background:var(--ant-deep);color:var(--on-dark);min-height:420px;display:flex;flex-direction:column;justify-content:space-between;padding:24px;text-decoration:none}
.card.wide{grid-column:1/-1;min-height:300px;flex-direction:row;align-items:flex-end;gap:32px}
.card canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2;transition:opacity .3s}
.card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(39,43,48,.1) 0%,rgba(39,43,48,.25) 45%,rgba(39,43,48,.94) 100%)}
.card:hover canvas{opacity:.75}
.card .law{font:500 14px/22px var(--sans);color:var(--on-dark3)}
.card .nm{font:700 28px/34px var(--serif);color:var(--on-dark);text-wrap:balance}
.card.wide .nm{font-size:40px;line-height:46px;margin-top:8px}
.card .sv{font:400 16px/24px var(--sans);color:var(--on-dark2);margin-top:8px;max-width:680px}
.card .sv b{display:block;color:var(--on-dark);font-weight:500;margin:10px 0 2px}
.card .sv b:first-child{margin-top:0}
.card .pr{display:flex;justify-content:space-between;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--acc-a);font:500 16px/24px var(--sans);font-variant-numeric:tabular-nums}
.card .kv{display:flex;gap:48px;margin-left:auto;flex-wrap:wrap}
.card .kv div{display:grid;gap:2px}
.card .kv span{font:400 14px/22px var(--sans);color:var(--on-dark3)}
.card .kv b{font:700 28px/34px var(--serif);color:var(--white);white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}

/* ---------- таблица услуг ---------- */
.tbl-wrap{overflow-x:auto;border-top:1.5px solid var(--ant)}
.tbl{width:100%;border-collapse:collapse;min-width:720px;font:400 16px/24px var(--sans)}
.tbl th{text-align:left;font:600 14px/22px var(--sans);color:var(--g1);padding:12px 20px 12px 0;border-bottom:1.5px solid var(--ant)}
.tbl td{padding:12px 20px 12px 0;border-bottom:1px solid var(--line);vertical-align:top;height:48px}
.tbl .grp td{padding-top:32px;border-bottom:1px solid var(--ant);font:600 20px/28px var(--sans);scroll-margin-top:100px}
.tbl .grp:first-child td{padding-top:16px}
.tbl .sub td{padding-top:20px;font:600 16px/24px var(--sans);color:var(--umber);border-bottom:1px solid var(--line)}
.tbl .grp .cnt{font:400 14px/22px var(--sans);color:var(--g2);margin-left:12px}
.tbl .law{color:var(--g2);font-size:14px;line-height:22px}
.tbl .r{text-align:right;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:0}
.tbl .r.q{color:var(--g2);font-weight:400}
.tbl .flag td{background:var(--stripe);font-weight:500}
.note{font:400 14px/22px var(--sans);color:var(--g2);margin-top:16px;max-width:820px}

/* ---------- правила работы ---------- */
.rules{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start}
.rules p{color:var(--g1);margin-top:12px}
.papers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.paper{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--acc);border-radius:2px;padding:20px;display:grid;gap:8px;align-content:start}
.paper .ph{font:500 14px/22px var(--sans);color:var(--umber);font-variant-numeric:tabular-nums}
.paper b{font:700 20px/28px var(--serif)}
.paper .s{font:400 16px/24px var(--sans);color:var(--g1)}

/* ---------- квалификация ---------- */
.quals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px}
.qual{border-top:1.5px solid var(--ant);padding-top:16px;display:grid;gap:4px;align-content:start}
.qual span{font:500 14px/22px var(--sans);color:var(--umber)}
.qual b{font:600 18px/26px var(--sans)}
.qual p{font:400 16px/24px var(--sans);color:var(--g1)}

/* ---------- порядок работы ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1.5px solid var(--ant);counter-reset:s}
.steps li{padding:24px 24px 0 0;display:grid;gap:10px;align-content:start;counter-increment:s;position:relative}
.steps li::before{content:counter(s);font:700 30px/38px var(--serif);color:var(--acc);font-variant-numeric:lining-nums}
.steps li::after{content:"";position:absolute;top:-1.5px;left:0;width:40px;height:3px;background:var(--acc)}
.steps b{font:600 20px/28px var(--sans)}
.steps span{font:400 16px/24px var(--sans);color:var(--g1)}

/* ---------- вход в ОПК ---------- */
.opk{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.opk .facts{display:grid;gap:0;margin:32px 0 0}
.opk .facts div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--ant-line)}
.opk .facts dt{color:var(--on-dark3);font-size:16px}
.opk .facts dd{margin:0;font:700 20px/28px var(--serif);font-variant-numeric:lining-nums tabular-nums}
.opk .btn{margin-top:32px}
.parts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;counter-reset:p}
.parts li{display:grid;grid-template-columns:40px 1fr;gap:4px 12px;padding:18px 0;border-top:1px solid var(--acc-a);counter-increment:p}
.parts li::before{content:counter(p,decimal-leading-zero);grid-row:span 2;font:500 14px/26px var(--sans);color:var(--on-dark3);font-variant-numeric:tabular-nums}
.parts b{font:600 18px/26px var(--sans);color:var(--on-dark)}
.parts span{font:400 16px/24px var(--sans);color:var(--on-dark2)}

/* ---------- команда ---------- */
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:960px}
.person{border-top:1.5px solid var(--ant);padding-top:20px;display:grid;gap:8px;align-content:start}
.person .mono{width:56px;height:56px;border:1.5px solid var(--acc);display:grid;place-items:center;font:700 20px/1 var(--serif);color:var(--umber);margin-bottom:8px}
.person b{font:700 22px/30px var(--serif)}
.person .role{font:500 14px/22px var(--sans);color:var(--umber)}
.person p{font:400 16px/24px var(--sans);color:var(--g1)}

/* ---------- контакты и форма ---------- */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.addr{display:grid;gap:0;margin:24px 0 0}
.addr div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.addr dt{color:var(--g2);font-size:16px}
.addr dd{margin:0;font-size:16px;line-height:24px}
.addr a{color:var(--umber);text-decoration-color:var(--acc)}
.form{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:32px;display:grid;gap:20px}
.form h3{font:600 22px/30px var(--sans)}
.field{display:grid;gap:6px}
.field label{font:500 16px/24px var(--sans)}
.field input,.field textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font:400 17px/24px var(--sans);color:var(--ant);background:var(--white)}
.field textarea{min-height:112px;resize:vertical}
.field input:hover,.field textarea:hover{border-color:var(--g2)}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}
.field .hint{font:400 14px/22px var(--sans);color:var(--g2)}
.field .err{font:400 14px/22px var(--sans);color:var(--err)}
.field.invalid input,.field.invalid textarea{border-color:var(--err)}
.check{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;font:400 14px/22px var(--sans);color:var(--g1)}
.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--ant)}
.form .row{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.form-msg{font:400 16px/24px var(--sans);padding:12px 16px;border-radius:6px;background:var(--stripe);border-left:3px solid var(--acc)}

/* ---------- подвал ---------- */
.ftr{background:var(--ant);color:var(--on-dark3);padding:48px 0;font:400 14px/22px var(--sans)}
.ftr .in{display:grid;grid-template-columns:auto 2fr 1.5fr 1fr;gap:32px;align-items:start}
.ftr b{color:var(--white);font-weight:500}
.ftr a{color:var(--on-dark2)}
.ftr a:hover{color:var(--white)}
.ftr .logo b{font-size:17px}

/* ---------- страницы документов ---------- */
.doc-page{padding:64px 0 96px}
.doc-page .in{max-width:784px}
.doc-page h1{font:700 40px/48px var(--serif);margin:12px 0 24px}

/* ---------- адаптив ---------- */
@media (max-width:1280px){.nav{gap:20px}}
@media (max-width:1024px){
  :root{--gutter:24px}
  .hdr .in{grid-template-columns:auto 1fr auto}
  .nav,.hdr-right{display:none}
  .burger{display:inline-flex}
  .mnav{position:fixed;inset:64px 0 0;z-index:49;background:var(--ant);padding:24px var(--gutter);overflow:auto}
  .mnav.open{display:grid;align-content:start;gap:0}
  .mnav a{display:block;padding:14px 0;border-bottom:1px solid var(--ant-line);font:500 20px/28px var(--sans);color:var(--on-dark);text-decoration:none}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card.wide{flex-direction:column;align-items:flex-start}
  .card.wide .kv{margin-left:0}
  .rules,.opk,.contact{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}
  .quals{grid-template-columns:1fr 1fr}
  .ftr .in{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  :root{--gutter:16px;--sec:56px}
  .h2{font-size:24px;line-height:32px}
  .lead{font-size:17px;line-height:28px}
  .hero{padding-top:12px}
  .stage{margin:0 12px;padding:64px 16px;min-height:0}
  .mark.tr,.mark.br,.mark.bl{display:none}
  .sig{grid-template-columns:1fr;justify-items:center;gap:16px}
  .sig .l,.sig .r{text-align:center;justify-items:center}
  .grid{grid-template-columns:1fr;padding:0 12px}
  .card{min-height:320px;padding:20px}
  .card.wide .nm{font-size:30px;line-height:38px}
  .papers,.team,.steps,.quals,.parts{grid-template-columns:1fr}
  .addr div{grid-template-columns:1fr;gap:2px}
  .form{padding:20px}
  .ftr .in{grid-template-columns:1fr}
  .doc-page h1{font-size:30px;line-height:38px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
