/* Editorial system: laboratory school. Layout follows the purpose of each section.
   Approved voices and pricing components retain their dedicated styles. */
:root{--paper:#f5f5f5;--paper2:#fafafa;--ink:#242424;--ink2:#2e2e2e;--mut:#5e6170;
  --vi:#9800de;--vi-d:#7a00b3;--vi-soft:#f4eafc;--cy-ink:#00739a;--cy-soft:#e2f3f9;
  --r:12px;--r-lg:18px;--line:#dfe1eb;--line2:#c6c9d4;--sh:0 8px 24px -16px #24242430;
  --sh-lg:0 20px 40px -28px #24242440}
body{font-size:17px;line-height:1.65}
h1,h2,h3,h4{font-weight:600;line-height:1.1;hyphens:none}
h2{font-size:clamp(30px,3.6vw,48px);letter-spacing:-.045em}
h3{letter-spacing:-.025em}
.sec{padding-block:clamp(64px,7vw,104px)}
.sec--tight{padding-block:48px}
.sec-head{max-width:800px}
.sec-head>p:not(.eyebrow){font-size:18px;line-height:1.7}
.sec .eyebrow,.hero .eyebrow,.phead .eyebrow{font-family:var(--f);font-size:12px;font-weight:600;
  line-height:1.5;letter-spacing:.09em;text-transform:uppercase}
.eyebrow::before{width:22px;height:1px;background:currentColor!important}
.src,.person__mono,.doc__c span,.prose figcaption,.form .lb{font-family:var(--f);font-size:12px;
  line-height:1.6;letter-spacing:0;text-transform:none}
.pill{font-family:var(--f);font-size:12px;letter-spacing:.02em;text-transform:none;border-radius:6px}
.aurora,.grain{display:none}
.srule{background:#f5f5f5;border-block:1px solid var(--line)}
.srule__t{color:var(--mut);font:500 11px/1.6 var(--f);letter-spacing:.04em;text-transform:none}
.srule__bar{height:1px;background:#b3b4be;animation:none}
.btn{border-radius:10px;padding:15px 22px;font-size:14px;min-height:48px;box-shadow:none;transition:background .2s,color .2s,border-color .2s}
.btn:hover{transform:none}
.btn--v{background:var(--vi);color:#fff;box-shadow:none}
.btn--v:hover{background:var(--vi-d);box-shadow:none}
.btn--cy{background:var(--cy);border-color:var(--cy);color:var(--ink);box-shadow:none}
.btn--cy:hover{background:#33add2;border-color:#33add2;box-shadow:none}
.btn--g{backdrop-filter:none}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:8px}
.text-link svg{width:18px;height:18px}
.header{background:#ffffffef;backdrop-filter:blur(12px)}
.brand span{font:500 10px/1.3 var(--f);letter-spacing:.03em;text-transform:none}
.nav a,.nav .nav__btn{font-size:14px;padding-inline:11px;border-radius:6px}
.hdr-phone button{border-radius:6px;background:#f0f1f2;border-color:transparent}
.subnav{border-radius:12px;box-shadow:0 16px 40px #2424241a}
.split__pic img{box-shadow:none;border-radius:12px;max-height:580px;object-fit:cover}
.card{border-radius:10px;box-shadow:none;transition:border-color .2s,background .2s}
.card::before{content:none}
.card--link:hover{transform:none;box-shadow:none;background:#f5f5f5;border-color:#bfc1ca}
.card__ic,.card--v .card__ic{background:none;box-shadow:none;width:30px;height:30px;border-radius:0;color:var(--vi);margin-bottom:24px}
.card--dark .card__ic{color:#b9e9ff}
.callout{border:0;border-left:2px solid var(--cy);border-radius:0;background:#f5f5f5;padding:22px 24px;box-shadow:none}
.callout::before{content:none}
.callout--v{background:var(--vi-soft);border-color:var(--vi)}
.callout--warn{background:#fcf3eb;border-color:#c79d75}
.quote{border-radius:8px;background:#f5f5f5}
.quote::before{background:var(--cy)}
.quote--v::before{background:var(--vi)}
.quote cite{font:400 12px/1.6 var(--f);letter-spacing:0;text-transform:none}
.pcard{box-shadow:none;border-radius:12px}
.pcard:hover{transform:none;box-shadow:none;border-color:#bdbfc8}
.pcard__ic{display:none}
.pcard__b h3{margin-top:0}
.ph--image .ph__num{display:none}
.tag{background:transparent;border-color:#d7d9e3;border-radius:4px;font:400 11px/1.5 var(--f);letter-spacing:0;text-transform:none}
.ph:not(.ph--image){background:#f5f5f5;border:1px dashed #b4b6bf;box-shadow:none;color:var(--ink)}
.ph:not(.ph--image)::before,.ph:not(.ph--image)::after{display:none}
.ph:not(.ph--image) .ph__num{display:none}
.ph:not(.ph--image) .ph__title{color:var(--ink)}

/* First screen: editorial portrait, calm paper and useful course facts. */
.page-home .hero{background:#f5f5f5;color:var(--ink);padding-top:48px}
.page-home .hero__in{grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr);gap:60px;align-items:center;padding-block:0 50px}
.page-home .hero__txt{padding:0}
.page-home .hero h1{color:var(--ink);font-size:clamp(42px,4.8vw,66px);font-weight:600;line-height:1.06;letter-spacing:-.055em;max-width:13ch;margin-bottom:26px}
.page-home .hero h1 span{color:var(--vi)}
.page-home .hero .eyebrow{color:var(--vi);margin-bottom:25px}
.page-home .hero__lead{font-size:21px;line-height:1.55;color:#353535;max-width:40ch;margin-bottom:18px}
.page-home .hero__audience{max-width:48ch;font-size:15px;line-height:1.65;color:var(--mut);margin-bottom:30px}
.page-home .hero__cta{gap:12px;margin-bottom:23px}
.page-home .hero .btn--g{border-color:#c6c8d2;background:transparent;color:var(--ink)}
.page-home .hero .btn--g:hover{background:#e5e6ee}
.page-home .hero__license{color:var(--mut)!important;font-size:12px;text-decoration:none;display:inline-flex;gap:8px;align-items:center;line-height:1.4}
.hero__license svg{width:16px;height:16px;flex:none;color:var(--vi)}
.page-home .hero__pic{padding:0;margin:0;max-width:none;align-self:center;width:100%}
.page-home .hero__frame{box-shadow:none;border-radius:140px 12px 12px 12px;max-width:none;background:#e8e9ef}
.page-home .hero__frame img{height:445px;object-fit:cover;object-position:50% 35%}
.page-home .hero__frame::after{content:none}
.hero__caption{display:grid;grid-template-columns:1fr auto;gap:3px 14px;padding-top:15px}
.hero__caption>span:first-child{font-size:11px;color:var(--mut);grid-column:1/-1}
.hero__caption b{font-size:18px;font-weight:600}
.hero__caption>span:last-child{font-size:11px;color:var(--mut);max-width:21ch;line-height:1.5}
.page-home .hero__facts{background:none;border:0;border-top:1px solid #d5d7e1;gap:24px}
.page-home .hero__facts div{background:none;padding:25px 0 30px}
.page-home .hero__facts b{color:var(--ink);font-size:23px;font-weight:600}
.page-home .hero__facts span{font:400 12px/1.5 var(--f);color:var(--mut);letter-spacing:0;text-transform:none}
.topic-nav{border-top:1px solid var(--line);background:#fff}
.topic-nav>.wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:21px}
.topic-nav span{font-size:12px;color:var(--mut)}
.topic-nav a{display:flex;gap:10px;align-items:center;color:var(--ink);font-size:13px;text-decoration:none}
.topic-nav a:hover{color:var(--vi)}
.topic-nav svg{width:14px;height:14px;transform:rotate(90deg)}

/* Troubleshooting atlas: six compact visual entries, not another card wall. */
.diagnostics-section .sec-head{display:grid;grid-template-columns:1fr .8fr;gap:0 70px;max-width:none;align-items:end}
.diagnostics-section .eyebrow{grid-column:1/-1}
.diagnostics-section .sec-head h2{max-width:17ch;margin-bottom:0}
.diagnostics-section .sec-head>p:last-child{font-size:16px;margin:0}
.diagnostics-section .pcards{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;counter-reset:diagnosis}
.diagnostics-section .pcard{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:start;border:0;border-top:1px solid var(--line);border-radius:0;padding:26px 0;background:none;overflow:visible}
.diagnostics-section .pcard__pic{aspect-ratio:1;min-height:0;border-radius:9px;margin:0}
.diagnostics-section .pcard__pic .ph{height:100%;aspect-ratio:1!important}
.diagnostics-section .pcard__b{padding:0}
.diagnostics-section .pcard__b::before{counter-increment:diagnosis;content:counter(diagnosis,decimal-leading-zero);font:500 11px/1 var(--f-m);color:var(--vi);margin-bottom:14px}
.diagnostics-section .pcard__b h3{font-size:21px;margin-bottom:10px}
.diagnostics-section .pcard__b p{font-size:14px;line-height:1.65}
.diagnostics-section .sec-cta{margin-top:12px}

/* Interactive lab bench. */
.calibration-section{background:#f5f5f5}
.calibration-section .sec-head{max-width:780px}
.grd{border-radius:14px;border-color:#dfe1eb;box-shadow:0 15px 40px -28px #31313140}
.grd__head{background:#fff;padding-block:18px}
.grd__head .mono{font:400 12px/1.5 var(--f);text-transform:none;letter-spacing:0}
.grd__head h3{font-size:22px}
.grd__out{background:var(--ink)}
.grd__plot{background:#ffffff06;border-color:#ffffff19;border-radius:7px;backdrop-filter:none}
.grd__eq{background:#b9e9ff12;border-color:#b9e9ff30;color:#b9e9ff;border-radius:7px}
.grd__verdict,.grd__hint{border-radius:7px}
.grd .grd__smp input{background:#ffffff0d;color:#fff;border-color:#ffffff40}
.grd__res{background:none;color:#eff0f2}
.grd__res small{color:#c4c6d0;-webkit-text-fill-color:#c4c6d0}
.grd__hint{background:#f5f5f5}
.calibration-section .grid .callout{background:none;border-top:1px solid #d0d2db;border-left:0;padding:22px 0 0;margin-bottom:0;font-size:14px}
.calibration-section .callout__t{font-size:15px}
.calibration-section .callout__t svg{display:none}

/* A practical sequence makes the method concrete. */
.method-section{background:#fff}
.method-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px 80px;align-items:center}
.method-intro h2{max-width:19ch}
.method-intro>p:not(.eyebrow){max-width:49ch;color:var(--mut);font-size:16px}
.method-intro .text-link{margin-top:10px}
.method-image{margin:0;position:relative}
.method-image img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.method-image figcaption{font-size:11px;color:var(--mut);margin-top:12px}
.method-path{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:4px 0 0;border-top:1px solid #ccced8;gap:30px}
.method-path li{padding-top:23px;position:relative;margin:0}
.method-path li::before{content:"";position:absolute;width:6px;height:6px;top:-3px;left:0;background:var(--vi);border-radius:50%}
.method-path span{font:400 11px/1.5 var(--f-m);color:var(--mut);display:block;margin-bottom:18px}
.method-path b{font-size:22px;font-weight:600;letter-spacing:-.03em}
.method-path p{font-size:14px;line-height:1.55;color:var(--mut);margin:8px 0 0;max-width:23ch}
.method-note{grid-column:1/-1;font-size:12px;color:var(--mut);margin:0}

/* Curriculum: reading order and a clear hierarchy instead of numeral clipart. */
.curriculum-section>.wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:0 80px;align-items:start}
.curriculum-section .sec-head{position:sticky;top:calc(var(--hdr) + 40px);grid-column:1;grid-row:1}
.curriculum-section .sec-head h2{font-size:clamp(30px,3.3vw,44px);margin-bottom:25px}
.curriculum-section .sec-head>p:last-child{font-size:16px;max-width:34ch}
.curriculum-section .wrap>.reveal:not(.sec-head):not(.sec-cta){grid-column:2;grid-row:1/3;margin-top:0!important}
.curriculum-section .sec-cta{grid-column:1;grid-row:2;flex-direction:column;align-items:start;align-self:start;margin-top:28px}
.curriculum-section .sec-head .sec-cta{grid-column:auto;grid-row:auto;align-self:auto}
.mods{display:grid;gap:0}
.mod{display:grid;grid-template-columns:42px minmax(0,1fr);gap:22px;padding:27px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;text-decoration:none;color:var(--ink);transition:background .2s}
.mod:last-child{border-bottom:1px solid var(--line)}
.mod::before,.mod::after{content:none}
.mod:hover{transform:none;box-shadow:none;border-color:var(--line);background:#f9f9f9;color:var(--ink)}
.mod__n{width:auto;height:auto;font-size:22px;line-height:1.25;font-weight:400;color:var(--vi);font-variant-numeric:tabular-nums}
.mod__b h3{font-size:21px;line-height:1.25;margin:0 0 10px}
.mod__b p{font-size:14px;line-height:1.65;color:var(--mut);margin-bottom:0}
.mod__tags{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px}
.mod__tags .tag{border:0;padding:0;background:none;color:var(--mut);font-size:11px}
.mcard{border-radius:0;border:0;border-top:1px solid var(--line)}
.mcards{gap:0;border-bottom:1px solid var(--line)}
.mcard[open]{box-shadow:none;border-color:#adafb8;background:#fafafa}
.mcard__n{font-size:24px;color:var(--vi);font-variant-numeric:tabular-nums;height:auto;width:42px}
.mcard__ar{border:1px solid #dfe1eb;background:none;width:32px;height:32px}
.mcard__h b{font-weight:600;line-height:1.3}

/* Screening room: primary lesson and a companion extract. */
.lesson-preview{background:#242424}
.lesson-preview .sec-head{display:grid;grid-template-columns:1.1fr 1fr;gap:0 80px;max-width:none;align-items:end}
.lesson-preview .eyebrow{grid-column:1/-1}
.lesson-preview .sec-head h2{margin:0}
.lesson-preview .sec-head>p:last-child{font-size:15px;margin:0;max-width:48ch}
.lesson-preview .vgrid{grid-template-columns:1.5fr 1fr;align-items:end;gap:30px}
.vbox{border-radius:9px;box-shadow:none;background:#242424}
.vbox__cap{background:#242424;padding:18px 0 2px;border:0;align-items:start;gap:10px}
.vbox__cap b{font-size:14px;font-weight:500;max-width:42ch;line-height:1.5}
.vbox__cap span{font:400 11px/1.5 var(--f);letter-spacing:0;text-transform:none;color:#aeb0ba}
.vbox__play{width:64px;height:64px;background:#efeff2;color:#333333;border:0;box-shadow:0 3px 15px #0002;backdrop-filter:none;top:calc((100% - 65px)/2)}
.vbox__play::before,.vbox__play::after{content:none}
.vbox__play svg{color:#424242;filter:none;width:25px;height:25px}
.vbox[data-lb]:hover .vbox__play{background:#fff;box-shadow:0 3px 15px #0002}
.vbox__dur{background:#242424cc;border:0;border-radius:4px;font-family:var(--f);font-size:11px}

/* Learning format: a landscape view followed by numbered learning steps. */
.study-format{background:#fff}
.study-format>.split{grid-template-columns:1fr 1fr;gap:38px 60px;align-items:start}
.study-format .split__txt{display:contents}
.study-format .eyebrow{grid-column:1/-1;margin-bottom:-16px}
.study-format h2{grid-column:1;grid-row:2;max-width:18ch;margin:0}
.study-format .split__txt>p:not(.eyebrow){grid-column:2;grid-row:2;font-size:16px;margin:0}
.study-format .split__pic{grid-column:1;grid-row:3/5}
.study-format .split__pic img{width:100%;height:420px;object-fit:cover;object-position:center;border-radius:10px}
.study-format .ticks{grid-column:2;grid-row:3;counter-reset:study;gap:0;margin:0}
.study-format .ticks li{padding:17px 0;border-bottom:1px solid var(--line);gap:20px;font-size:15px}
.study-format .ticks li:first-child{border-top:1px solid var(--line)}
.study-format .ticks li::before{counter-increment:study;content:counter(study,decimal-leading-zero);font-size:12px;color:var(--vi);flex:none;padding-top:2px}
.study-format .ticks svg{display:none}
.study-format .sec-cta{grid-column:2;grid-row:4;margin-top:0}
.equipment-section{background:#f5f5f5;border-block:1px solid var(--line)}
.equipment-section .split{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:65px}
.equipment-section h2{font-size:34px}
.equipment-section .split__pic img{aspect-ratio:4/3;height:auto;max-height:340px}
.equipment-section .split__txt>p{font-size:15px}
.equipment-models{display:flex;flex-wrap:wrap;gap:12px 26px;margin:22px 0 0;padding-top:20px;border-top:1px solid #d3d5df}
.equipment-models span{font-size:15px;font-weight:600;letter-spacing:.04em;color:#606063}

/* Faculty: a photographic profile with a readable expert's voice. */
.faculty-section>.split{grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr);gap:80px;align-items:start}
.faculty-section .split__pic{grid-column:1;grid-row:1;order:0}
.faculty-section .split__txt{grid-column:2;grid-row:1}
.faculty-section .split__pic img{height:580px;object-fit:cover;border-radius:3px 80px 3px 3px;object-position:50% 30%}
.faculty-section h2{margin-bottom:28px}
.faculty-section .split__txt>p{font-size:15px}
.faculty-section blockquote{margin:26px 0!important;border:0!important;border-top:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;padding:24px 0!important;font-size:21px;font-style:normal!important;color:#3d3d3d!important;line-height:1.5;letter-spacing:-.025em}
.faculty-section .sec-cta{margin-top:25px}

/* Credential: paper and a real registry document, no simulated certificate. */
.credential-section{background:#f5f5f5}
.credential-section .split{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:80px}
.credential-section .split__txt>p{font-size:15px}
.credential-section .callout{background:none;border-left:0;border-block:1px solid #d0d2db;padding:23px 0;font-size:14px;margin-top:26px;margin-bottom:0}
.credential-section .callout__t{font-size:16px}
.credential-section .split__pic{background:#dfe1eb;padding:36px;border-radius:3px;transform:rotate(1.5deg)}
.credential-section .doc{border:0;border-radius:0;box-shadow:0 10px 28px #4545451a;transform:none}
.credential-section .doc img{border-radius:0;box-shadow:none}
.doc__c{display:block}
.credential-section .doc__c{padding:16px 20px}

/* Open mini-course: invitation and a concise five-lesson contents page. */
.mini-course-section{background:#dfe1eb;color:var(--ink)}
.mini-course-section::after{content:none}
.mini-course-section .split{grid-template-columns:1.1fr 1fr;gap:90px;align-items:start}
.mini-course-section h2{color:var(--ink);font-size:clamp(30px,3.5vw,46px)}
.mini-course-section p,.mini-course-section .lead{color:#4a4d5a;font-size:16px}
.mini-course-section .eyebrow{color:var(--vi)}
.mini-course-section .btn--cy{background:var(--vi);color:#fff;border-color:var(--vi)}
.mini-course-section .btn--cy:hover{background:var(--vi-d);border-color:var(--vi-d)}
.mini-course-section .ticks{gap:0;border-top:1px solid #c6c9d4;margin:0}
.mini-course-section .ticks li{padding:18px 0;border-bottom:1px solid #c6c9d4;font-size:15px;line-height:1.55}
.mini-course-section .ticks li svg{display:none}
.partners-section .split{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:70px}
.partners-section h2{font-size:clamp(30px,3.2vw,42px)}
.partners-section .split__pic img{aspect-ratio:4/5;max-height:450px;object-fit:cover;border-radius:8px}
.partners-section .split__txt>p,.partners-section .ticks{font-size:15px}
.partners-section .ticks{gap:10px;margin-top:23px}
.partners-section .sec-cta{margin-top:26px}
.proof-section{background:#f5f5f5;border-block:1px solid var(--line)}
.proof-section>.wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
.proof-intro h2{font-size:clamp(28px,3.3vw,42px)}
.proof-intro>p:last-child{font-size:16px;max-width:38ch;color:var(--mut)}
.proof-links{border-top:1px solid #c4c6d0}
.proof-links a{display:grid;grid-template-columns:1fr 24px;gap:6px 24px;border-bottom:1px solid #d3d5df;padding:25px 0;text-decoration:none;color:var(--ink)}
.proof-no{font-size:11px;color:var(--vi);letter-spacing:.03em}
.proof-links b{grid-column:1;font-size:22px;font-weight:500;letter-spacing:-.03em;line-height:1.3;margin:6px 0}
.proof-links a>span:not(.proof-no){grid-column:1;font-size:14px;line-height:1.6;color:var(--mut)}
.proof-links svg{grid-column:2;grid-row:1/4;align-self:center;width:24px;height:24px;color:var(--vi)}
.proof-links a:hover b{color:var(--vi)}

/* Questions and admissions: two different ways into a conversation. */
.questions-section>.wrap{display:grid;grid-template-columns:.65fr 1.35fr;gap:80px;align-items:start}
.questions-section .wrap>.reveal:last-child{margin-top:0!important}
.questions-section .sec-head{position:sticky;top:calc(var(--hdr) + 40px)}
.faq{gap:0;border-top:1px solid var(--line)}
.faq details{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
.faq details[open]{box-shadow:none;border-color:var(--line)}
.faq summary{padding:23px 42px 23px 0;font-size:17px;font-weight:500;line-height:1.45}
.faq summary::after{content:"+";font-size:23px;font-weight:400;border:0;width:22px;height:28px;line-height:28px;right:0;transform:translateY(-50%);color:var(--vi);text-align:center}
.faq details[open] summary::after{content:"−";transform:translateY(-50%)}
.faq .faq__b{padding:0 38px 25px 0;font-size:15px;line-height:1.75}
.admissions-section{background:#2c2c2c}
.admissions-section>.split{grid-template-columns:1fr 1.05fr;gap:90px;align-items:start}
.admissions-section h2{font-size:clamp(32px,3.7vw,50px)}
.admissions-section .lead{font-size:17px;max-width:37ch}
.admissions-section .sec-cta{margin-top:28px}
.admissions-section .form{background:#fff;border-radius:12px;padding:32px;color:var(--ink)}
.admissions-section .form .lb,.admissions-section .form__consent{color:var(--mut)}
.admissions-section .form input,.admissions-section .form textarea{background:#f9f9f9;border-color:#d7d9e3;color:var(--ink);border-radius:7px}
.admissions-section .form a{color:var(--vi)}
.admissions-section .form input:focus,.admissions-section .form textarea:focus{background:#fff;border-color:var(--vi);box-shadow:0 0 0 3px #9800de1a}
.admissions-section .form input:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:inset 0 0 0 1000px #f9f9f9}
.admissions-section .form input::placeholder,.admissions-section .form textarea::placeholder{color:#7a7c84}
.admissions-section .form .status{margin:0}
.admissions-section .form .status.err{color:#a03926}
.form__consent{font-size:12px}
.form .lb{font-size:12px;font-weight:500}
.form input,.form textarea,.form select{border-radius:7px}
.footer{background:#242424;border-top:1px solid #ffffff15}
.footer h4{font:500 12px/1.5 var(--f);color:#cbcdd7;letter-spacing:0;text-transform:none}
.footer a:not(.btn){color:#acaeb8;font-size:14px}
.footer a:not(.btn):hover{color:#fff}
.footer__req p,.footer__req a{font-size:11px!important}
.footer__t span{font:400 11px/1.5 var(--f);letter-spacing:0;text-transform:none;color:#acaeb8}
.ckb{background:#242424;border-radius:12px;padding:20px;box-shadow:0 12px 40px #1f1f1f33;max-width:380px;backdrop-filter:none}
.ckb__ic,.ckb__rule{display:none}
.ckb__head{margin-bottom:9px}
.ckb p{font-size:12px;line-height:1.6;margin-bottom:13px}
.ckb__head b{font-size:15px}
.ckb__b{gap:8px}
.ckb__b .btn{min-height:40px;font-size:12px}
.ckb__links{margin-top:10px!important}
.ckb__links a{font-size:11px}

/* Internal pages: the same school, different editorial formats. */
.phead{background:var(--paper);border-bottom:1px solid var(--line);color:var(--ink);padding-top:22px}
.phead h1{color:var(--ink);font-size:clamp(34px,4.3vw,58px);font-weight:600;letter-spacing:-.05em;max-width:23ch;line-height:1.1;margin-bottom:25px}
.phead__in{padding-block:28px 60px}
.phead .phead__lead{color:var(--mut);font-size:18px;line-height:1.7;max-width:67ch}
.phead a:not(.btn),.phead .crumbs,.phead .crumbs [aria-current]{color:var(--mut)}
.phead .crumbs a:hover{color:var(--ink)}
.phead .pill{background:#fff;border-color:var(--line);color:var(--vi)}
.page-kurs .phead{background:var(--paper)}
.page-kurs .phead h1{max-width:23ch}
.page-kurs .phead .pill{background:#fff;color:var(--vi);border-color:var(--line)}
.page-kurs #dlya-kogo .grid.g4{gap:0}
.page-kurs #dlya-kogo .grid.g4 .card{border:0;border-radius:0;border-top:2px solid #c9cbd5;padding:26px 24px 0 0;margin-right:24px}
.page-kurs #format .grid.g3{gap:30px 40px}
.page-kurs #format .grid.g3 .card{border:0;border-radius:0;border-top:1px solid var(--line);padding:25px 0 0;background:none}
.page-kurs #format .card__ic{display:none}
.page-besplatno .phead{background:#dfe1eb}
.page-besplatno .phead h1{max-width:21ch}
.page-besplatno .mods{max-width:950px}
.page-besplatno .mod{grid-template-columns:70px 1fr;padding:30px 20px;gap:25px}
.page-besplatno .mod__n{font-size:36px;color:var(--vi)}
.page-besplatno .mod__b h3{font-size:25px}
.page-besplatno .mod__b p{font-size:16px}
.page-avtor .phead{background:var(--paper)}
.person{gap:70px;grid-template-columns:minmax(0,.75fr) minmax(0,1.4fr)}
.person__pic img{border-radius:3px;box-shadow:none;max-height:530px;object-fit:cover;object-position:50% 25%}
.person__mono{color:var(--vi);font-size:12px;font-weight:500}
.person h2{font-size:clamp(30px,3.3vw,44px)}
.person__initials{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;background:#dfe1eb;color:#8a8b95;font-size:90px;letter-spacing:-.06em;font-weight:300}
.person__initials-note{font-size:11px;color:var(--mut);margin-top:12px}
.page-dokument .phead,.page-kontakty .phead,[class*="page-svedeniya"] .phead,.page-oferta .phead,.page-privacy .phead,.page-cookie .phead{background:var(--paper)}
.page-dokument .doc{border-radius:3px}
.page-dokument .docs{background:#e7e8ef;padding:20px;align-items:start;border-radius:3px}
.page-dokument .split{align-items:start}
.tbl-wrap{border-radius:6px}
.tbl thead th{font:500 12px/1.5 var(--f);text-transform:none;letter-spacing:0;background:#f5f5f5;white-space:normal}
.tbl tbody th{font-weight:500}
.tbl{font-size:14px;line-height:1.7}
.sv__nav ol{border-radius:0;border:0;border-top:1px solid var(--line)}
.sv__nav a{font-size:13px;padding:12px 10px}
.sv__nav a[aria-current=page]{background:#eaebf0;border-left:2px solid var(--vi)}
[class*="page-svedeniya"] .phead h1{font-size:clamp(30px,3.5vw,46px);max-width:30ch}
[class*="page-svedeniya"] .prose h2{font-size:28px}
.page-blog .phead{background:var(--ink)}
.page-blog .phead h1{font-size:clamp(45px,6vw,80px);color:#fff;max-width:15ch}
.page-blog .phead .phead__lead{color:#bec0ca;max-width:59ch}
.page-blog .phead .crumbs a,.page-blog .phead .crumbs [aria-current]{color:#a5a7b0}
.page-blog .grid.g3{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.page-blog .card--link{padding:24px 0 8px;border:0;border-top:1px solid var(--line);border-radius:0;background:none}
.page-blog .card--link:hover{background:none}
.page-blog .card--link>img{width:100%!important;margin:0 0 20px!important;border-radius:6px!important;aspect-ratio:16/10!important}
.page-blog .card--link h3{font-size:25px;line-height:1.2}
.page-blog .card--link>p{font-size:14px}
.page-blog .card--link>.mono{font:400 11px/1.5 var(--f);color:#7f818a}
.page-blog .card--link.card--feat{grid-column:span 2;background:#eaebf0;padding:38px;border:0;border-radius:6px;justify-content:center;min-height:360px}
.page-blog .card--link.card--feat h3{font-size:clamp(30px,3.5vw,46px);max-width:20ch}
.page-blog .card--link.card--feat>p{max-width:52ch;font-size:16px}
[class*="page-blog-"] .phead{background:var(--paper)}
[class*="page-blog-"] .phead h1{max-width:25ch}
[class*="page-blog-"] .prose{font-size:18px;line-height:1.8}
[class*="page-blog-"] .prose h2{font-size:32px;line-height:1.2}
.page-postavshchikam .phead{background:var(--paper)}
.page-postavshchikam .stats b{background:none;color:var(--vi);font-weight:500}
.page-graduirovka .phead{background:var(--paper)}
.page-pochemu-pribor-vret .phead{background:var(--paper)}
.page-kontakty .form{background:#f5f5f5;padding:30px;border-radius:10px}
.reveal,.stagger>*{transform:none;transition:opacity .4s ease}

@media(min-width:1000px){.page-home .hero__facts{grid-template-columns:1fr 1.15fr 1fr 1.1fr}}
@media(max-width:1100px){
  .page-home .hero__in{gap:38px;grid-template-columns:1.1fr .8fr}
  .page-home .hero h1{font-size:52px}
  .page-home .hero__frame img{height:400px}
  .diagnostics-section .pcard{grid-template-columns:120px 1fr;gap:18px}
  .curriculum-section>.wrap,.faculty-section>.split,.credential-section .split,.proof-section>.wrap,.questions-section>.wrap,.admissions-section>.split{gap:45px}
  .faculty-section .split__pic img{height:530px}
  .mini-course-section .split{gap:45px}
  .person{gap:40px}
  .page-blog .grid.g3{gap:24px}
}
@media(max-width:900px){
  .page-home .hero__in{grid-template-columns:1.2fr 1fr;gap:25px}
  .page-home .hero h1{font-size:clamp(38px,5.2vw,48px)}
  .page-home .hero__lead{font-size:18px}
  .page-home .hero__frame img{height:390px}
  .hero__caption{grid-template-columns:1fr}
  .hero__caption>span:last-child{max-width:none}
  .topic-nav>.wrap{flex-wrap:wrap;justify-content:flex-start;gap:15px 25px}
  .topic-nav span{flex-basis:100%}
  .diagnostics-section .sec-head{gap:0 35px}
  .diagnostics-section .pcards{gap:0 30px}
  .diagnostics-section .pcard{grid-template-columns:90px 1fr;gap:18px}
  .diagnostics-section .pcard__b h3{font-size:19px}
  .diagnostics-section .pcard__b p{font-size:13px}
  .curriculum-section>.wrap{grid-template-columns:minmax(0,1fr);gap:25px}
  .curriculum-section .sec-head{position:static;grid-column:auto;grid-row:auto}
  .curriculum-section .sec-head>p:last-child{max-width:65ch}
  .curriculum-section .wrap>.reveal:not(.sec-head):not(.sec-cta){grid-column:auto;grid-row:auto}
  .curriculum-section .sec-head .sec-cta{grid-column:auto;grid-row:auto;flex-direction:row;margin-top:24px}
  .lesson-preview .sec-head{gap:0 40px}
  .method-layout{gap:32px}
  .study-format>.split{gap:28px 35px}
  .study-format .split__pic img{height:420px}
  .faculty-section>.split{grid-template-columns:.7fr 1fr;gap:40px}
  .faculty-section blockquote{font-size:18px}
  .faculty-section .split__pic img{height:490px}
  .credential-section .split{grid-template-columns:1.1fr .7fr;gap:35px}
  .credential-section .split__pic{padding:22px}
  .credential-section h2{font-size:34px}
  .partners-section .split,.equipment-section .split{grid-template-columns:.7fr 1fr;gap:35px}
  .equipment-section h2{font-size:29px}
  .mini-course-section .split{grid-template-columns:1fr 1fr;gap:40px}
  .proof-section>.wrap{grid-template-columns:1fr 1fr;gap:40px}
  .questions-section>.wrap{grid-template-columns:minmax(0,1fr);gap:25px}
  .questions-section .sec-head{position:static}
  .questions-section h2 br{display:none}
  .admissions-section>.split{grid-template-columns:1fr 1.1fr;gap:30px}
  .admissions-section .form{padding:25px}
  .page-blog .grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-blog .card--link.card--feat{grid-column:span 2;min-height:0}
  .person{grid-template-columns:.7fr 1.3fr;gap:35px}
}
@media(max-width:640px){
  :root{--gut:22px}
  body{font-size:16px}
  .sec{padding-block:58px}
  .sec--tight{padding-block:40px}
  h2{font-size:32px;line-height:1.13}
  .sec-head>p:not(.eyebrow){font-size:16px}
  .sec .eyebrow,.hero .eyebrow{font-size:10px;letter-spacing:.07em;margin-bottom:17px}
  .btn{padding:14px 17px;font-size:13px}
  .sec-cta{gap:10px}
  .page-home .hero{padding-top:32px}
  .page-home .hero__in{grid-template-columns:1fr;gap:30px;padding-bottom:32px}
  .page-home .hero h1{font-size:clamp(39px,10vw,53px);max-width:15ch;margin-bottom:22px}
  .page-home .hero__lead{font-size:18px}
  .page-home .hero__audience{font-size:14px;margin-bottom:24px}
  .page-home .hero__license{font-size:11px}
  .page-home .hero__cta{margin-bottom:18px}
  .page-home .hero__pic{max-width:none}
  .page-home .hero__frame{border-radius:75px 8px 8px 8px}
  .page-home .hero__frame img{height:360px;object-position:50% 28%}
  .hero__caption{grid-template-columns:1fr auto}
  .hero__caption>span:last-child{max-width:19ch}
  .hero__caption b{font-size:17px}
  .page-home .hero__facts{grid-template-columns:1fr 1fr;gap:0 22px}
  .page-home .hero__facts div{padding:20px 0;border-bottom:1px solid #d7d9e3}
  .page-home .hero__facts div:nth-last-child(-n+2){border:0}
  .page-home .hero__facts b{font-size:20px}
  .page-home .hero__facts span{font-size:11px}
  .topic-nav>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;padding-block:18px}
  .topic-nav span{grid-column:1/-1;font-size:11px}
  .topic-nav a{font-size:11px;justify-content:space-between}
  .topic-nav svg{width:12px}
  .diagnostics-section .sec-head{display:block}
  .diagnostics-section .sec-head h2{margin-bottom:22px}
  .diagnostics-section .sec-head>p:last-child{font-size:15px}
  .diagnostics-section .pcards{grid-template-columns:1fr;margin-top:26px!important}
  .diagnostics-section .pcard{grid-template-columns:100px minmax(0,1fr);gap:18px;padding:22px 0}
  .diagnostics-section .pcard__b h3{font-size:19px}
  .diagnostics-section .pcard__b p{font-size:13px}
  .diagnostics-section .pcard__b::before{font-size:10px;margin-bottom:10px}
  .calibration-section .sec-head>p:last-child{font-size:15px}
  .calibration-section .grid{gap:22px}
  .grd__head{padding:18px}
  .grd__head h3{font-size:20px}
  .grd__tools .btn{font-size:11px;padding:10px 12px;min-height:38px}
  .method-layout{grid-template-columns:1fr;gap:28px}
  .method-path{grid-template-columns:1fr 1fr;gap:25px 20px;margin-top:0}
  .method-path li:nth-child(n+3)::before{display:none}
  .method-path li{padding-top:20px}
  .method-path span{margin-bottom:12px}
  .method-path b{font-size:21px}
  .method-path p{font-size:13px}
  .method-note{font-size:11px}
  .mod{grid-template-columns:30px 1fr;gap:16px;padding:23px 0}
  .mod__n{font-size:20px}
  .mod__b h3{font-size:20px}
  .mod__b p{font-size:14px}
  .mod__tags{gap:5px 14px;margin-top:10px}
  .mod__tags .tag{font-size:10px}
  .curriculum-section .sec-head h2{font-size:33px}
  .curriculum-section .sec-head .sec-cta{flex-direction:column;align-items:stretch;margin-top:20px}
  .lesson-preview .sec-head{display:block}
  .lesson-preview .sec-head h2{margin-bottom:24px}
  .lesson-preview .sec-head>p:last-child{font-size:15px}
  .lesson-preview .vgrid{grid-template-columns:1fr;gap:30px}
  .vbox__cap b{font-size:13px;max-width:90%}
  .vbox__cap{padding-top:14px;gap:6px}
  .vbox__play{width:52px;height:52px}
  .vbox__play svg{width:22px;height:22px}
  .study-format>.split{grid-template-columns:1fr;gap:25px}
  .study-format .eyebrow{margin:0 0 -10px}
  .study-format h2,.study-format .split__txt>p:not(.eyebrow),.study-format .split__pic,.study-format .ticks,.study-format .sec-cta{grid-column:auto;grid-row:auto}
  .study-format .split__txt>p:not(.eyebrow){font-size:15px}
  .study-format .split__pic{grid-row:4}
  .study-format .split__pic img{height:260px}
  .study-format .ticks li{font-size:14px;padding:16px 0}
  .equipment-section .split{grid-template-columns:1fr;gap:28px}
  .equipment-section .split__pic img{max-height:240px;aspect-ratio:16/9}
  .equipment-section h2{font-size:30px}
  .equipment-models{gap:12px 20px}
  .faculty-section>.split{grid-template-columns:1fr;gap:30px}
  .faculty-section .split__pic{grid-column:auto;grid-row:2}
  .faculty-section .split__txt{grid-column:auto;grid-row:1}
  .faculty-section .split__pic img{height:430px;max-width:440px;object-position:50% 30%;border-radius:3px 60px 3px 3px}
  .faculty-section blockquote{font-size:20px}
  .credential-section .split{grid-template-columns:1fr;gap:35px}
  .credential-section h2{font-size:32px}
  .credential-section .split__pic{max-width:360px;justify-self:center;width:100%;padding:25px;transform:none}
  .credential-section .doc__c span{font-size:11px}
  .mini-course-section .split{grid-template-columns:1fr;gap:32px}
  .mini-course-section .film__in{padding-block:55px}
  .mini-course-section h2{font-size:32px}
  .mini-course-section .ticks li{font-size:14px;padding:16px 0}
  .partners-section .split{grid-template-columns:1fr;gap:28px}
  .partners-section .split__pic{order:2}
  .partners-section .split__pic img{aspect-ratio:16/10;height:250px;object-position:center}
  .partners-section h2{font-size:31px}
  .partners-section .ticks{font-size:14px;gap:14px}
  .proof-section>.wrap{grid-template-columns:1fr;gap:28px}
  .proof-intro h2{font-size:32px}
  .proof-links b{font-size:21px}
  .proof-links a{gap:6px 20px;padding:22px 0}
  .questions-section>.wrap{gap:15px}
  .questions-section .sec-head h2{font-size:36px}
  .faq summary{font-size:16px;padding-block:21px}
  .faq .faq__b{font-size:14px;padding-right:20px}
  .admissions-section>.split{grid-template-columns:1fr;gap:32px}
  .admissions-section .form{padding:23px 20px}
  .admissions-section h2{font-size:36px}
  .admissions-section .lead{font-size:16px}
  .footer__grid{gap:28px}
  .footer h4{margin-bottom:12px}
  .footer ul{gap:4px}
  .ckb{padding:18px}
  .ckb__b .btn{width:auto;flex:1 1 130px;min-width:0}
  .ckb p{font-size:12px}
  .phead{padding-top:18px}
  .phead__in{padding-block:15px 40px}
  .phead h1{font-size:34px;line-height:1.15;margin-bottom:22px}
  .phead .phead__lead{font-size:16px;line-height:1.65}
  .crumbs{font-size:11px}
  .person{grid-template-columns:1fr;gap:28px}
  .person__pic img{height:430px;max-width:420px}
  .person__initials{max-width:260px;aspect-ratio:4/3;font-size:70px}
  .page-besplatno .mod{grid-template-columns:36px 1fr;gap:15px;padding:25px 12px}
  .page-besplatno .mod__n{font-size:25px}
  .page-besplatno .mod__b h3{font-size:22px}
  .page-besplatno .mod__b p{font-size:14px}
  .page-blog .grid.g3{grid-template-columns:1fr;gap:30px}
  .page-blog .card--link.card--feat{grid-column:auto;padding:25px}
  .page-blog .card--link.card--feat h3{font-size:30px}
  .page-blog .card--link.card--feat>p{font-size:14px}
  .page-blog .card--link h3{font-size:25px}
  [class*="page-blog-"] .prose{font-size:16px;line-height:1.8}
  [class*="page-blog-"] .prose h2{font-size:27px}
  .page-dokument .docs{padding:15px;grid-template-columns:1fr;max-width:400px;margin:auto}
  .page-kontakty .form{padding:24px 20px}
  .mcard__n{width:25px;font-size:19px}
  .mcard>summary{padding-inline:0;gap:12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Hero handoff: a course index, not a flat row of claims. */
.page-home .hero__facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border:0;padding-top:14px;margin-bottom:24px}
.page-home .hero__facts div{position:relative;min-height:132px;padding:25px 20px 21px;background:#fff;border:1px solid #dfe1eb;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.page-home .hero__facts div::before{content:attr(data-fact);display:block;margin-bottom:15px;font:500 10px/1 var(--f-m);letter-spacing:.08em;color:var(--vi)}
.page-home .hero__facts div::after{content:"";position:absolute;left:20px;bottom:0;width:42px;height:3px;background:var(--vi)}
.page-home .hero__facts div:nth-child(2)::before{color:var(--cy-ink);background:transparent}
.page-home .hero__facts div:nth-child(2)::after{background:var(--cy)}
.page-home .hero__facts div:nth-child(3)::before{color:var(--vi);background:transparent}
.page-home .hero__facts div:nth-child(3)::after{background:var(--vi)}
.page-home .hero__facts div:nth-child(4)::before{color:var(--cy-ink);background:transparent}
.page-home .hero__facts div:nth-child(4)::after{background:var(--cy)}
.page-home .hero__facts div:hover{transform:translateY(-3px);box-shadow:0 12px 24px -18px #2e2e2e66}
.page-home .hero__facts b{font-size:24px;line-height:1.08}
.page-home .hero__facts span{font-size:12px;line-height:1.45}
.page-home .topic-nav{background:#242424;border:0;color:#fff}
.page-home .topic-nav>.wrap{min-height:78px;padding-block:16px;display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:0}
.page-home .topic-nav span{font-size:12px;color:#b0b1bb;align-self:center}
.page-home .topic-nav a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 20px;border-left:1px solid #ffffff22;color:#fff;font-size:13px;transition:background .2s,color .2s}
.page-home .topic-nav a::before{content:attr(data-chapter);font:500 10px/1 var(--f-m);color:var(--cy);letter-spacing:.04em}
.page-home .topic-nav a:hover{background:#ffffff0d;color:#b9e9ff}
.page-home .topic-nav svg{color:#b9e9ff}
@media(max-width:900px){
  .page-home .hero__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .page-home .hero__facts div{padding-inline:15px}
  .page-home .hero__facts div::after{left:15px}
  .page-home .topic-nav>.wrap{grid-template-columns:1fr 1fr;gap:0}
  .page-home .topic-nav span{grid-column:1/-1;padding:0 0 10px}
  .page-home .topic-nav a{padding:10px 12px}
}
@media(max-width:640px){
  .page-home .hero__facts{gap:8px;padding-top:10px;margin-bottom:16px}
  .page-home .hero__facts div{min-height:122px;padding:18px 13px 18px;border:1px solid #dfe1eb;border-radius:7px}
  .page-home .hero__facts div::before{margin-bottom:12px;font-size:9px}
  .page-home .hero__facts div::after{left:13px;width:32px;height:2px}
  .page-home .hero__facts b{font-size:20px}
  .page-home .hero__facts span{font-size:10.5px}
  .page-home .topic-nav>.wrap{grid-template-columns:1fr 1fr;min-height:0;padding-block:14px}
  .page-home .topic-nav a{font-size:11px;padding:9px 8px;gap:6px}
  .page-home .topic-nav a::before{font-size:9px}
}

/* Video controls: a quiet glass control that belongs to the picture, not a white sticker. */
.vbox__play{width:72px;height:72px;background:rgba(26,26,26,.72);border:1px solid rgba(255,255,255,.52);box-shadow:0 14px 30px -12px rgba(16,16,16,.8),inset 0 0 0 5px rgba(255,255,255,.07);backdrop-filter:blur(9px) saturate(1.2);transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease}
.vbox__play::before{position:absolute;inset:8px;border:1px solid rgba(185,233,255,.72);border-radius:50%;padding:0;background:none;-webkit-mask:none;mask:none;transition:transform .35s ease}
.vbox__play::after{position:absolute;inset:-9px;border:1px solid rgba(185,233,255,.34);border-radius:50%;opacity:0;transform:scale(.8);transition:opacity .25s ease,transform .25s ease}
.vbox__play svg{width:25px;height:25px;color:#b9e9ff;margin-left:3px;filter:drop-shadow(0 2px 5px rgba(0,0,0,.55))}
.vbox[data-lb]:hover .vbox__play{background:rgba(36,36,36,.84);border-color:rgba(185,233,255,.85);box-shadow:0 16px 34px -12px rgba(16,16,16,.9),inset 0 0 0 5px rgba(185,233,255,.1);transform:translate(-50%,-50%) scale(1.06)}
.vbox[data-lb]:hover .vbox__play::before{transform:rotate(90deg)}
.vbox[data-lb]:hover .vbox__play::after{opacity:1;transform:scale(1)}
@media(max-width:560px){.vbox__play{width:62px;height:62px}.vbox__play::before{inset:7px}.vbox__play svg{width:22px;height:22px}}

/* ─────────────────────────────────────────────────────────────────────────────
   Кнопка запуска видео (14.09.2026, ред. 4 — финальная).
   В файле она объявлялась дважды (светлая мятная и тёмная стеклянная), побеждала
   вторая и давала блёклый серый кружок; плюс в разметке стояла иконка play
   из Lucide — кружок с треугольником, и в круглой кнопке выходил «круг в круге».
   Геометрия здесь такая: сам элемент — прозрачный габарит 128 px, стеклянный
   диск рисует ::before, кольцо-апертуру — ::after. Кольцо раскрывается внутрь
   габарита, поэтому не растягивает прокрутку (прошлая версия с inset:-13px
   давала +13 px к scrollWidth на всех трёх ширинах).
   ───────────────────────────────────────────────────────────────────────────── */
.vbox__play{
  width:128px;height:128px;top:50%;left:50%;
  transform:translate(-50%,-50%);
  border:0;background:none;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  display:grid;place-items:center;
}
/* стеклянный диск 84 px: кадр просвечивает сквозь размытие */
.vbox__play::before{
  content:"";position:absolute;inset:22px;border-radius:50%;
  background:rgba(28,28,28,.4);
  backdrop-filter:blur(12px) saturate(1.3);
  -webkit-backdrop-filter:blur(12px) saturate(1.3);
  box-shadow:
    inset 0 0 0 1.5px rgba(255,255,255,.9),
    inset 0 1px 0 rgba(255,255,255,.5),
    0 20px 46px -16px rgba(0,0,0,.8);
  padding:0;-webkit-mask:none;mask:none;
  transition:transform .34s cubic-bezier(.2,.8,.2,1),background .34s ease,box-shadow .34s ease;
}
/* кольцо-апертура: зазор 13 px, на наведении раскрывается до 22 px */
.vbox__play::after{
  content:"";position:absolute;inset:9px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.55);
  background:none;padding:0;-webkit-mask:none;mask:none;
  opacity:1;transform:none;
  transition:inset .34s cubic-bezier(.2,.8,.2,1),border-color .34s ease;
}
.vbox__play svg{
  position:relative;z-index:1;
  width:60px;height:60px;margin:0;
  color:#fff;filter:drop-shadow(0 2px 8px rgba(0,0,0,.65));
}
.vbox[data-lb]:hover .vbox__play,
.vbox[data-lb]:focus-visible .vbox__play{
  transform:translate(-50%,-50%);
  background:none;box-shadow:none;border:0;
}
.vbox[data-lb]:hover .vbox__play::before,
.vbox[data-lb]:focus-visible .vbox__play::before{
  transform:scale(1.07);
  background:rgba(0,113,148,.52);
  box-shadow:
    inset 0 0 0 1.5px #fff,
    inset 0 1px 0 rgba(255,255,255,.6),
    0 26px 58px -18px rgba(36,36,36,.9);
}
.vbox[data-lb]:hover .vbox__play::after,
.vbox[data-lb]:focus-visible .vbox__play::after{
  inset:0;border-color:rgba(239,240,242,.85);opacity:1;transform:none;
}

/* постер чуть темнее, чтобы кнопка читалась на светлых кадрах */
.vbox[data-lb]{position:relative}
.vbox[data-lb] .vbox__shot{transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .3s}
.vbox[data-lb]:hover .vbox__shot{transform:scale(1.035);filter:brightness(.9)}
@media (prefers-reduced-motion:reduce){
  .vbox[data-lb]:hover .vbox__shot{transform:none}
  .vbox__play::before,.vbox__play::after{transition:none}
}
@media (max-width:560px){
  .vbox__play{width:102px;height:102px}
  .vbox__play::before{inset:18px}
  .vbox__play::after{inset:9px}
  .vbox[data-lb]:hover .vbox__play::after{inset:3px}
  .vbox__play svg{width:46px;height:46px}
}

/* ── Мелкие переполнения после смены гарнитуры (проверено 14.09.2026) ────────── */

/* 1. Цитаты: длинные слова и ссылки-источники распирали карточку. */
.voc__q,.voc__q cite,.voc__q cite a,.voc__cta,.voc__cta b,.voc__cta span{
  min-width:0;overflow-wrap:anywhere;
}
.voc__q cite{word-break:normal;display:block}
.voc__q cite a{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:100%}
.voc__q cite a svg{flex:none}
/* стрелка в ссылке-источнике повёрнута на 40°, её угол выходил за строку
   на 3 px — резервируем место padding'ом, transform места не занимает */
.voices-section .voc__q cite a,.voc__q cite a,.quote cite a{padding-right:4px}

/* 2. Фотокарточка диплома наклонена на 1,5° и углами выходила за сетку
   на 6–8 px. Отрицательные поля с равным padding'ом расширяют коробку
   в поле .wrap, не сдвигая содержимое. */
.credential-section .split{padding-inline:10px;margin-inline:-10px}

/* 3. «Удостоверение» — самое длинное слово в фактах героя, при 360 px
   не влезало в колонку на 13 px. */
@media (max-width:430px){
  .page-home .hero__facts b{font-size:17.5px;letter-spacing:-.02em}
}

/* 4. Бейдж лицензии в герое — это ссылка на /dokument/, а высота строки
   давала таргет 17 px. Поднимаем до 31 px, не сдвигая соседей:
   вертикальный padding компенсируется отрицательным margin. */
.page-home .hero__license{padding-block:7px;margin-block:-7px}

/* 5. Подпись под роликом: «смотреть» стояло в правом углу через
   justify-content:space-between и при заголовке в две строки зависало
   наверху, вплотную к краю карточки. Ставим его под заголовком как
   подсказку со стрелкой — читается как действие, а не как обрубок. */
.vbox__cap{display:block;background:none;padding:15px 0 0}
.vbox__cap b{display:block}
.vbox__cap span{
  display:inline-flex;align-items:center;gap:7px;margin-top:9px;
  color:#aeb0ba;transition:color .25s ease,gap .25s ease;
}
.vbox__cap span::after{
  content:"→";font-size:14px;line-height:1;
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.vbox[data-lb]:hover .vbox__cap span{color:#eff0f2;gap:10px}
.vbox[data-lb]:hover .vbox__cap span::after{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){
  .vbox__cap span,.vbox__cap span::after{transition:none}
}

/* 6. Подпись вынесена за пределы рамки (14.09.2026). Кадр и все накладки на нём
   теперь лежат в .vbox__frame — скругление и обрезка только вокруг кадра,
   а заголовок с «смотреть» стоят под ним прямо на фоне секции.
   Заодно кнопка play центрируется от кадра: раньше её 50 % считались от всей
   карточки вместе с подписью, и она стояла заметно ниже середины кадра. */
.vbox{background:none;box-shadow:none;border-radius:0;overflow:visible}
.vbox__frame{
  position:relative;display:block;border-radius:9px;overflow:hidden;background:#242424;
}
.vbox[data-lb]::after{content:none}
.vbox__frame::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(16,16,16,.18),rgba(16,16,16,.42));
  transition:opacity .35s;opacity:1;
}
.vbox[data-lb]:hover .vbox__frame::after{opacity:.65}

/* 7. Выписка из реестра: карточка открывает скан в лайтбоксе (было — PDF в новой
   вкладке). Вторая страница и подписанный PDF вынесены отдельными действиями:
   лайтбокс перехватывает клик по всей карточке, ссылка внутри неё не сработает. */
.doc--lb{cursor:default}
.doc__pic{display:block;position:relative;overflow:hidden;cursor:zoom-in}
.doc__pic::after{
  content:"";position:absolute;inset:0;background:rgba(36,36,36,0);
  transition:background .25s ease;
}
.doc__pic:hover::after{background:rgba(36,36,36,.10)}
.doc__pic img{display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.doc__pic:hover img{transform:scale(1.03)}
.doc__pic:focus-visible{outline:2px solid var(--vi);outline-offset:3px}
.doc__c .doc__acts{
  display:flex;flex-wrap:wrap;gap:2px 18px;margin-top:13px;
  padding-top:6px;border-top:1px solid var(--line);
}
.doc__c .doc__act{
  display:inline-flex;align-items:center;gap:7px;padding-block:7px;
  font-family:var(--f);font-size:12.5px;line-height:1.4;letter-spacing:0;
  text-transform:none;color:var(--vi);cursor:pointer;text-decoration:none;
  border:0;transition:color .2s ease;
}
.doc__c .doc__act:hover{color:var(--vi-d);text-decoration:underline;text-underline-offset:4px}
.doc__c .doc__act svg{width:14px;height:14px;flex:none}

/* 8. Фон финальной CTA: кадр со спектрофотометром уходит в подложку под плотной
   вуалью — слева, где текст, почти глухая, справа за белой формой чуть прозрачнее.
   На узких экранах форма занимает всю ширину, поэтому вуаль там равномерная. */
.admissions-section{
  background:
    linear-gradient(100deg,
      rgba(36,36,36,.966) 0%,
      rgba(36,36,36,.944) 40%,
      rgba(36,36,36,.80) 72%,
      rgba(36,36,36,.88) 100%),
    url("../img/bg-forma.jpg") 62% center/cover no-repeat,
    #2c2c2c;
}
@media (max-width:900px){
  .admissions-section{
    background:
      linear-gradient(180deg,rgba(36,36,36,.90),rgba(36,36,36,.955)),
      url("../img/bg-forma.jpg") center/cover no-repeat,
      #2c2c2c;
  }
}

/* 9. Телефон и «Заказать звонок» в шапке — одной колонкой (14.09.2026).
   Раньше ссылка была inline-block, а кнопка лежала в inline <small>, и при
   широком экране они вставали в строку. Теперь это флекс-колонка, кнопка
   тянется по ширине номера — блок читается как один узел, а не как два. */
@media (min-width:1200px){          /* тот же порог, что и у исходного правила:
                                       ниже него блок скрыт и работает бургер */
  .hdr-phone{
    display:flex;flex-direction:column;align-items:stretch;gap:6px;
    margin-left:18px;text-align:center;line-height:1.1;
  }
  .hdr-phone a{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:0;font-size:17px;font-weight:600;letter-spacing:-.015em;
    color:var(--ink);text-decoration:none;white-space:nowrap;
    transition:color .2s ease;
  }
  .hdr-phone a:hover{color:var(--vi)}
  .hdr-phone a svg{width:15px;height:15px;flex:none;color:var(--vi);transition:color .2s ease}
  .hdr-phone a:hover svg{color:var(--vi-d)}
  .hdr-phone small{display:block}
  .hdr-phone button{
    width:100%;justify-content:center;margin-top:0;padding:8px 14px;
    font-size:12px;font-weight:500;letter-spacing:.01em;
  }
}

/* 10. Модалка обратного звонка: было обычное белое окно с двумя полями.
   Стало разворотом — слева портрет автора курса с телефоном для тех, кому
   проще позвонить самим, справа форма. На узких экранах портрет становится
   баннером-полосой, чтобы окно влезало по высоте. */
.modal__box--split{
  width:min(780px,100%);padding:0;overflow:hidden;border-radius:16px;
  display:grid;grid-template-columns:minmax(0,262px) minmax(0,1fr);
  box-shadow:0 50px 120px -28px rgba(16,16,16,.66);
  transform:translateY(10px) scale(.985);
  transition:transform .32s cubic-bezier(.2,.8,.2,1);
}
.modal.is-on .modal__box--split{transform:none}
.modal__side{
  position:relative;overflow:hidden;background:#242424;
  display:flex;flex-direction:column;justify-content:flex-end;padding:22px 20px;
}
.modal__side img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:54% 16%;
}
.modal__side::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(30,30,30,.06) 0%,rgba(30,30,30,.26) 42%,rgba(28,28,28,.94) 100%);
}
.modal__side-in{position:relative;z-index:1}
.modal__side-t{
  font:500 10.5px/1.5 var(--f);letter-spacing:.07em;text-transform:uppercase;
  color:#c0c2cc;margin:0 0 7px;
}
.modal__tel{
  display:inline-block;font-size:21px;font-weight:600;letter-spacing:-.025em;
  color:#fff;text-decoration:none;white-space:nowrap;transition:color .2s ease;
}
.modal__tel:hover{color:#b9e9ff}
.modal__side-n{font:400 11.5px/1.5 var(--f);color:#9fa1ab;margin:6px 0 0}
.modal__main{padding:clamp(26px,3.2vw,36px);min-width:0}
.modal__box--split .eyebrow{color:var(--cy-ink);margin-bottom:15px}
.modal__box--split h3{
  font-size:clamp(23px,2.3vw,28px);line-height:1.12;letter-spacing:-.035em;margin:0 0 11px;
}
.modal__lead{font-size:15px;line-height:1.6;color:#59595a;margin:0 0 21px}
.modal__box--split .modal__x{
  right:13px;top:13px;z-index:3;width:38px;height:38px;border-radius:11px;
  border-color:#dfe1eb;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.modal__box--split .modal__x:hover{background:#fff;border-color:#bfc1ca;transform:rotate(90deg)}
.modal__box--split .form input{background:#f9f9f9;border-color:#d7d9e3;border-radius:8px;padding-block:13px}
.modal__box--split .form input:focus{background:#fff;border-color:var(--vi);box-shadow:0 0 0 3px #9800de1a}
.modal__box--split .form input::placeholder{color:#83858e}
.modal__box--split .form-actions{margin-top:4px}
.modal__box--split .form .status{min-height:0;margin:0}
.modal__box--split .form__consent{font-size:11.5px;line-height:1.5}
@media (prefers-reduced-motion:reduce){
  .modal__box--split{transition:none;transform:none}
  .modal__box--split .modal__x:hover{transform:none}
}
@media (max-width:719px){
  .modal__box--split{grid-template-columns:minmax(0,1fr);width:min(460px,100%)}
  /* 118 px — полоса, а не портрет: голова в неё не влезает при любой позиции,
     поэтому берём нижнюю часть кадра — халат, колба и пробирки как фактура */
  .modal__side{min-height:118px;padding:14px 18px}
  .modal__side img{object-position:54% 78%}
  .modal__side::after{
    background:linear-gradient(180deg,rgba(30,30,30,.16) 0%,rgba(28,28,28,.90) 100%);
  }
  .modal__side-in{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
  .modal__side-t{display:none}
  .modal__tel{font-size:19px}
  .modal__side-n{margin:0}
  /* окно должно помещаться в 90vh без прокрутки на телефоне */
  .modal__main{padding:20px 20px 22px}
  .modal__box--split .eyebrow{margin-bottom:12px}
  .modal__box--split h3{font-size:22px;margin-bottom:9px}
  .modal__lead{font-size:14px;line-height:1.55;margin-bottom:17px}
  .modal__box--split .form{gap:11px}
  .modal__box--split .form input{padding-block:12px}
  .modal__box--split .modal__x{background:rgba(255,255,255,.92);border-color:transparent}
}

/* 11. Кнопка «Заказать звонок» в шторке. Блок .hdr-phone скрыт ниже 1200 px,
   поэтому на телефонах и планшетах модалка обратного звонка была недостижима
   вовсе — форма жила только на десктопе. */
.drawer__call{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  width:100%;margin-top:18px;padding:13px 18px;cursor:pointer;
  font:500 14px/1.2 var(--f);color:#eff0f2;
  background:rgba(185,233,255,.10);
  border:1px solid rgba(185,233,255,.34);border-radius:10px;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.drawer__call svg{width:16px;height:16px;flex:none}
.drawer__call:hover,.drawer__call:focus-visible{
  background:rgba(185,233,255,.18);border-color:rgba(185,233,255,.65);color:#fff;
}

/* ═══ Фирменная палитра клиента (25.09.2026) ═════════════════════════════════
   #0099C7 голубой · #9800DE фиолетовый · #F5F5F5 · #DFE1EB · #FFFFFF · #242424.
   Остальные цвета слоя переложены на эти семейства скриптом
   _research/build/recolor_brand.py. Здесь — места, где нужен
   осознанный акцент, а не автоматический перенос. Бэкап до перекраски:
   _research/backup-pre-brand-2026-09-25/. */

/* «Голоса лабораторий»: фирменный тёмный фон и фиолетовое свечение */
.voices-section{background:radial-gradient(ellipse at 85% 0,rgba(152,0,222,.22),transparent 50%),var(--ink)}
.voc__q{background:#2c2c2c;border-color:#3a3a3a}
.voc__q--lead{background:radial-gradient(ellipse at 100% 0,rgba(152,0,222,.5),transparent 72%),#2c2c2c;
  border-color:rgba(185,76,255,.55)}
.voices-section .voices-next__button{background:var(--cy);color:var(--ink);border-color:var(--cy)}
@media (hover:hover){
  .voc__q:hover{border-color:var(--vi);background-color:#303030}
  .voices-section .voices-next__button:hover{background:#33add2;color:var(--ink);border-color:#33add2}
}

/* Ритм фонов главной: белый и #F5F5F5 чередуются, соседние блоки не сливаются */
.curriculum-section{background:var(--paper)}
.pricing-section{background:#fff}

/* Тарифы: выделенный тариф — фирменный фиолетовый */
.cuv--best{background:radial-gradient(ellipse at 100% 0%,rgba(185,76,255,.35) 0,transparent 60%),
  linear-gradient(160deg,#9800de,#7a00b3);border-color:#9800de;box-shadow:0 18px 40px -15px rgba(152,0,222,.45)}
.cuv--best .cuv__symbol{background:rgba(255,255,255,.16);color:#fff}
.cuv--best .cuv__badge{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3);color:#fff}
.cuv--best .cuv__label,.cuv--best .cuv__desc,.cuv--best .cuv__list-title,.cuv--best .cuv__note{color:#f3e6ff}
.cuv--best .cuv__tag{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24);color:#fff}
.cuv--best .cuv__features{border-color:rgba(255,255,255,.22)}
.cuv--best ul li,.cuv--best ul li svg{color:#fff}
.cuv--best .cuv__cta{background:#fff;color:var(--vi);border-color:#fff}
.cuv .cuv__cta{color:var(--vi)}
@media (hover:hover){
  .cuv--best .cuv__cta:hover{background:var(--vi-soft);border-color:var(--vi-soft);color:var(--vi-d)}
}

/* Контраст ≥ 4,5:1 — места, которые были бледными ещё до перекраски */
.e404 h1{color:#fff}
.e404 p:not(.pill){color:var(--dim)}
.e404 .btn--g{color:#fff;border-color:rgba(255,255,255,.35);background:transparent}
.e404 .btn--g:hover{color:#fff;border-color:#fff}
.vbox__cap b{color:var(--ink)}
.vbox__cap span{color:var(--mut)}
.vbox[data-lb]:hover .vbox__cap span{color:var(--vi)}
.sec--dark .vbox__cap b,.on-dark .vbox__cap b{color:#fff}
.sec--dark .vbox__cap span,.on-dark .vbox__cap span{color:#aeb0ba}
.sec--dark .vbox[data-lb]:hover .vbox__cap span,.on-dark .vbox[data-lb]:hover .vbox__cap span{color:#eff0f2}
.ph:not(.ph--image) b{color:var(--ink)}
.ph__note{color:var(--mut)}
.smap__b code{color:var(--mut)}
.person__initials{color:#767986}
.cuv:not(.cuv--best) .cuv__list-title,.cuv:not(.cuv--best) .cuv__note{color:var(--mut)}
.cuv:not(.cuv--best) ul li.no{color:#6b6e7b}
.voc__q cite>span>span{color:#a3a5ae}

/* Фото школы (25.09.2026): на узких экранах блок «Поставщикам» режет кадр в 16:10 —
   держим в кадре дисплей прибора, а не только крышку */
.partners-section .split__pic img{object-position:50% 18%}

/* ═══ Подбор спектрофотометра (/podbor/, 25.09.2026) ═════════════════════════ */
.podbor-steps{list-style:none;counter-reset:ps;padding:0;margin:22px 0 28px;display:grid;gap:16px}
.podbor-steps li{counter-increment:ps;position:relative;min-height:38px;padding-left:54px;margin:0;line-height:1.6}
.podbor-steps li::before{content:counter(ps,decimal-leading-zero);position:absolute;left:0;top:0;
  width:38px;height:38px;border-radius:10px;background:var(--vi-soft);color:var(--vi);
  font:600 13px/38px var(--f-m);text-align:center}
.podbor-steps b{color:var(--ink);font-weight:600}
.podbor-note{font-size:14px;color:var(--mut);margin:18px 0 0}
.podbor-q{list-style:none;counter-reset:pq;padding:0;margin:0;border-top:1px solid var(--line2)}
.podbor-q li{counter-increment:pq;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;
  padding:18px 0;margin:0;border-bottom:1px solid var(--line2);font-size:16px;line-height:1.55}
.podbor-q li::before{content:counter(pq,decimal-leading-zero);color:var(--vi);font:400 22px/1.2 var(--f)}
.equipment-podbor{margin-top:20px}
@media (max-width:640px){
  .podbor-q li{grid-template-columns:38px minmax(0,1fr);font-size:15px;padding:15px 0}
  .podbor-q li::before{font-size:19px}
}

/* Квиз «Подбор прибора» (виджет Марата): маркер в заголовке — фирменный голубой
   вместо жёлтого по умолчанию. Текст под маркером — цвет theme.ink (#242424), 4,7:1 */
.wgtq{--wgtq-mark:#0099c7}

/* Язычок квиза прижат к краю экрана (site-polish D172): в widget-quiz.js сдвиг идёт
   после поворота и уводит язычок на половину толщины от края. Файл виджета не трогаем. */
body .wgtq__tab.is-left{transform-origin:0 0;transform:rotate(90deg) translate(-50%,-100%)}
body .wgtq__tab:not(.is-left){transform-origin:100% 0;transform:rotate(-90deg) translate(50%,-100%)}

/* ═══ «Спасибо» (/spasibo/, 26.09.2026) ══════════════════════════════════════
   Вариант текста — data-variant (default | podbor | b2b), состояние — data-state
   (ok | error) и data-e (send | fill); выставляет main.js → initThanks(). */
.thx [data-v]{display:none}
.thx[data-variant=default] [data-v~=default],
.thx[data-variant=podbor] [data-v~=podbor],
.thx[data-variant=b2b] [data-v~=b2b]{display:revert}
.thx[data-state=ok] [data-s=error],.thx[data-state=error] [data-s=ok]{display:none}
.thx p[data-e]{display:none}
.thx[data-e=send] p[data-e=send],.thx[data-e=fill] p[data-e=fill]{display:block}

.thx-hero{position:relative;overflow:hidden;color:#fff;padding-block:clamp(44px,6vw,92px);
  background:radial-gradient(ellipse at 85% -10%,rgba(152,0,222,.34),transparent 55%),
    radial-gradient(ellipse at -5% 110%,rgba(0,153,199,.2),transparent 50%),var(--ink)}
.thx-hero__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:clamp(32px,5vw,76px);align-items:center}
.thx-hero h1{color:#fff;font-size:clamp(36px,4.6vw,60px);line-height:1.05;margin:22px 0 16px;max-width:15ch}
.thx-lead{font-size:clamp(17px,1.45vw,20px);line-height:1.6;color:var(--dim);max-width:50ch;margin:0 0 26px}
.thx-hero .btn--g{color:#fff;border-color:rgba(255,255,255,.38);background:transparent}
.thx-hero .btn--g:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.06)}

/* статус: объёмный значок с градиентом бренда + подпись и время отправки */
.thx-status{display:inline-flex;align-items:center;gap:14px;margin:0;padding:8px 20px 8px 8px;
  border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.thx-badge{position:relative;flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#9800de 0%,#0099c7 100%);
  box-shadow:0 8px 24px -6px rgba(0,153,199,.6),inset 0 1px 0 rgba(255,255,255,.25)}
.thx-badge::after{content:"";position:absolute;inset:-5px;border-radius:50%;
  border:2px solid rgba(0,153,199,.55);opacity:0;animation:thxPulse 1.4s ease-out .8s 2}
.thx-badge svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.thx-badge__tick{stroke-dasharray:20;stroke-dashoffset:20;animation:thxDraw .5s ease-out .35s forwards}
.thx-status__t{display:flex;flex-direction:column;line-height:1.3}
.thx-status__t b{font-size:15px;font-weight:600;color:#fff}
.thx-status__t small{font-size:13px;color:var(--dim)}
.thx-status__t small:empty{display:none}
.thx-status--err .thx-badge{background:linear-gradient(135deg,#ff9a3c 0%,#b03a00 100%);
  box-shadow:0 8px 24px -6px rgba(255,150,60,.55),inset 0 1px 0 rgba(255,255,255,.25)}
.thx-status--err .thx-badge::after{border-color:rgba(255,150,60,.55)}
@keyframes thxDraw{to{stroke-dashoffset:0}}
@keyframes thxPulse{0%{opacity:.9;transform:scale(.92)}100%{opacity:0;transform:scale(1.35)}}
@media (prefers-reduced-motion:reduce){
  .thx-badge__tick{animation:none;stroke-dashoffset:0}
  .thx-badge::after{animation:none}
}

.thx-steps{list-style:none;counter-reset:ts;margin:0;padding:0;display:grid;gap:10px;max-width:56ch}
.thx-steps li{counter-increment:ts;position:relative;margin:0;padding:13px 16px 13px 60px;
  border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.04);
  color:var(--dim);font-size:15.5px;line-height:1.55}
.thx-steps li::before{content:counter(ts,decimal-leading-zero);position:absolute;left:15px;top:11px;
  width:30px;height:30px;border-radius:8px;background:rgba(0,153,199,.16);color:#93ddff;
  font:600 12px/30px var(--f-m);text-align:center}
.thx-steps b{color:#fff;font-weight:600}

.thx-hero__pic{margin:0;position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.7);border:1px solid rgba(255,255,255,.08)}
.thx-hero__pic img{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 30%;display:block}
.thx-hero__pic figcaption{position:absolute;left:0;right:0;bottom:0;padding:48px 20px 18px;
  background:linear-gradient(transparent,rgba(20,20,20,.9));color:var(--dim);font-size:13px;line-height:1.5}
.thx-hero__pic figcaption b{display:block;color:#fff;font-size:16px;font-weight:600;margin-bottom:2px}

.thx-video{margin-top:clamp(44px,5vw,76px);align-items:center}

/* «Мы на связи»: три карточки-кнопки */
.thx-contact{background:radial-gradient(ellipse at 100% 0,rgba(152,0,222,.2),transparent 50%),var(--ink)}
.thx-contact__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.thx-contact__head h2{color:#fff;margin:0}
.thx-contact__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:32px}
.thx-contact a.thx-cc:not(.btn){position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;
  padding:24px 24px 26px;border-radius:16px;color:#fff;text-decoration:none;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.1);transition:border-color .2s,transform .2s,background .2s}
.thx-contact a.thx-cc:not(.btn):hover{border-color:rgba(0,153,199,.65);transform:translateY(-3px);
  background:linear-gradient(180deg,rgba(0,153,199,.12),rgba(255,255,255,.03))}
.thx-contact a.thx-cc:not(.btn):focus-visible{outline:3px solid #93ddff;outline-offset:3px}
.thx-cc__ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;
  background:rgba(0,153,199,.15);color:#93ddff}
.thx-cc__ic svg{width:22px;height:22px}
.thx-cc__l{font-size:13px;color:var(--dim);letter-spacing:.01em}
.thx-cc__v{font-size:clamp(19px,1.8vw,24px);font-weight:700;letter-spacing:-.015em;line-height:1.25;overflow-wrap:anywhere}
.thx-cc__n{font-size:14px;color:var(--dim);line-height:1.5}
.thx-cc__go{position:absolute;top:24px;right:22px;color:#93ddff;transform:rotate(-45deg);transition:transform .2s}
.thx-cc__go svg{width:18px;height:18px}
.thx-contact a.thx-cc:not(.btn):hover .thx-cc__go{transform:rotate(-45deg) translateX(3px)}
@media (prefers-reduced-motion:reduce){
  .thx-contact a.thx-cc:not(.btn),.thx-contact a.thx-cc:not(.btn):hover{transform:none}
}

@media (max-width:900px){
  .thx-hero__in{grid-template-columns:1fr}
  .thx-hero__pic{max-width:440px}
  .thx-contact__grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .thx-steps li{padding-left:54px;font-size:15px}
  .thx-steps li::before{left:12px}
}

/* Политика ПДн: таблицы целей из двух колонок — узкая колонка параметра,
   на телефоне параметр и значение идут друг под другом, без горизонтальной прокрутки */
.page-privacy .prose .tbl tbody th{width:190px}
@media (max-width:640px){
  .page-privacy .prose .tbl,.page-privacy .prose .tbl tbody,.page-privacy .prose .tbl tr,
  .page-privacy .prose .tbl th,.page-privacy .prose .tbl td{display:block;width:auto;min-width:0}
  .page-privacy .prose .tbl th{padding-bottom:2px;border-bottom:0}
  .page-privacy .prose .tbl td{padding-top:0}
}

/* ═══ Правки 26.09.2026: иконки, списки, модули, «Для кого», «Что спрашивают», документ ═══ */

/* Иконки карточек по всему сайту: плитка с фирменным градиентом вместо мелкой серой рамки */
.card .card__ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:22px;
  background:linear-gradient(135deg,rgba(152,0,222,.12),rgba(0,153,199,.12));color:var(--vi);
  box-shadow:inset 0 0 0 1px rgba(152,0,222,.14)}
.card .card__ic svg{width:24px;height:24px}
.card.card--dark .card__ic{background:linear-gradient(135deg,rgba(152,0,222,.6),rgba(0,153,199,.5));color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 24px -12px rgba(152,0,222,.8)}

/* Списки модулей и уроков (главная, /besplatno/): подсветке при наведении нужен отступ слева */
.mod{padding-inline:20px}
@media (max-width:640px){.mod{padding-inline:12px}}

/* Цитаты — это <figure>: убираем браузерный отступ 40px по бокам */
.quote{margin:0}

/* Раскрытый модуль курса: цитата с форума компактной карточкой, узкая колонка терминов */
.mcard__voc{margin-top:26px}
.mcard__voc .quote{padding:18px 22px 16px 26px!important;border-radius:12px;background:#fff;border:1px solid var(--line)}
.mcard__voc .quote blockquote{font-size:16px;line-height:1.55;margin:0 0 8px}
.mcard__voc .quote cite{padding-top:0}
.mcard .tbl tbody th{width:30%;font-weight:600;color:var(--ink)}

/* /kurs/ «Для кого»: сегменты, сравнение «разбираем / нет в курсе», плашка про закон */
.fit__cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:32px;counter-reset:fit}
.fit .card.card--fit{position:relative;counter-increment:fit;margin:0;height:100%;padding:28px 24px 26px;
  background:#fff;border:1px solid var(--line);border-radius:16px;transition:border-color .2s,box-shadow .2s,transform .2s}
.fit .card.card--fit::after{content:counter(fit,decimal-leading-zero);position:absolute;top:28px;right:24px;
  font:500 12px/1 var(--f-m);color:var(--mut)}
.fit .card.card--fit:hover{border-color:rgba(152,0,222,.35);box-shadow:0 18px 40px -26px rgba(36,36,36,.35);transform:translateY(-3px)}
.fit .card--fit h3{font-size:clamp(19px,1.5vw,22px);line-height:1.2;margin:0 0 10px}
.fit .card--fit p{font-size:15px;line-height:1.6;margin:0}
.fit__src{margin-top:14px}
.fit__compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px}
.fit__col{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px 28px 22px}
.fit__col::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--vi),var(--cy))}
.fit__col--no::before{background:#c6c9d4}
.fit__t{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:18px;font-weight:600;color:var(--ink)}
.fit__ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--vi-soft);color:var(--vi)}
.fit__col--no .fit__ic{background:#f5f5f5;color:var(--mut)}
.fit__ic svg{width:18px;height:18px}
.fit__col ul{margin:0}
.fit__law{display:flex;gap:18px;align-items:flex-start;margin-top:18px;padding:24px 28px;border-radius:16px;
  background:var(--cy-soft);border:1px solid rgba(0,153,199,.25)}
.fit__law-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#fff;
  color:var(--cy-ink);box-shadow:inset 0 0 0 1px rgba(0,153,199,.25)}
.fit__law-ic svg{width:22px;height:22px}
.fit__law-t{margin:0 0 6px;font-size:17px;font-weight:600;color:var(--ink)}
.fit__law p:last-child{margin:0;font-size:15px;line-height:1.65;color:#3d4150}
@media (max-width:1000px){.fit__cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .fit__cards,.fit__compare{grid-template-columns:1fr}
  .fit__law{flex-direction:column;padding:22px}
  .fit__col{padding:24px 20px 18px}
}

/* /graduirovka/ «Что спрашивают»: три вопроса в ряд, ответы практиков — парой карточек */
.quotes--row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:32px;counter-reset:q}
.quotes--row .quote{counter-increment:q;display:flex;flex-direction:column;padding:26px 26px 22px;
  border-radius:16px;background:var(--paper);border:1px solid var(--line)}
.quotes--row .quote::before{content:"Вопрос " counter(q,decimal-leading-zero);position:static;display:block;
  width:auto;height:auto;background:none;margin:0 0 14px;font:600 11px/1 var(--f-m);letter-spacing:.06em;
  text-transform:uppercase;color:var(--cy-ink)}
.quotes--row .quote--v::before{color:var(--vi)}
.quotes--row .quote blockquote{margin:0 0 20px;font-size:17px;line-height:1.55;font-style:normal;color:var(--ink);overflow-wrap:anywhere}
.quotes--row .quote cite{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.answers{margin-top:18px;gap:18px}
.answers .callout{margin:0;padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:#fff}
.answers .callout::before{content:none}
.answers .callout--v{background:var(--vi-soft);border-color:rgba(152,0,222,.22)}
.answers .callout__t{font-size:17px}
@media (max-width:900px){.quotes--row{grid-template-columns:1fr}}

/* /dokument/ «Что выдаём»: справа высокие изображения — текст слева прилипает при прокрутке */
@media (min-width:900px){
  .doc-split{align-items:start}
  .doc-split>.split__txt{position:sticky;top:calc(var(--hdr) + 24px)}
}

/* ═══ Подвал (26.09.2026) ═══════════════════════════════════════════════════════
   Полоса-призыв → бренд + навигация + контакты → реквизиты → крупная надпись. */
.ft{position:relative;overflow:hidden;background:var(--ink);color:#fff}
.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:2;
  background:linear-gradient(90deg,#9800de,#0099c7)}
.ft__glow{position:absolute;top:-30%;right:-15%;width:70%;height:90%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(152,0,222,.2),transparent)}
.ft__in{position:relative;z-index:1;padding-top:clamp(40px,5vw,72px)}

.ft-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:22px 40px;
  padding:clamp(24px,3vw,36px) clamp(22px,3.4vw,44px);border-radius:20px;
  background:linear-gradient(120deg,#7a00b3 0%,#9800de 45%,#00739a 100%);
  box-shadow:0 24px 60px -30px rgba(152,0,222,.75)}
.ft-cta__h{margin:0 0 8px;font-size:clamp(22px,2.3vw,30px);font-weight:700;line-height:1.15;letter-spacing:-.03em;color:#fff}
.ft-cta__p{margin:0;max-width:62ch;font-size:15.5px;line-height:1.6;color:rgba(255,255,255,.9)}
.ft-cta__acts{display:flex;flex-wrap:wrap;gap:12px}
.ft .ft-btn--w{background:#fff;border:1px solid #fff;color:#6b009e}
.ft .ft-btn--w:hover{background:#f4eafc;border-color:#f4eafc;color:#6b009e}
.ft .ft-btn--o{background:transparent;border:1px solid rgba(255,255,255,.6);color:#fff}
.ft .ft-btn--o:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}

.ft-grid{display:grid;grid-template-columns:1.55fr .92fr .95fr 1.05fr 1.48fr;gap:28px;margin-top:clamp(40px,5vw,64px)}
.ft-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:#fff;text-decoration:none}
.ft-logo img{height:40px;width:auto;background:#fff;border-radius:12px;padding:5px 9px;flex:none}
.ft-logo span{font-size:12px;line-height:1.35;color:var(--dim)}
.ft-logo b{display:block;font-size:18px;font-weight:700;letter-spacing:-.02em;color:#fff;white-space:nowrap}
.ft-brand>p{margin:0 0 20px;max-width:38ch;font-size:14.5px;line-height:1.65;color:var(--dim)}
.ft-lic{display:flex;align-items:center;gap:12px;max-width:360px;padding:12px 14px;border-radius:14px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);text-decoration:none;transition:border-color .2s}
.ft-lic:hover{border-color:rgba(0,153,199,.65)}
.ft-lic__ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,rgba(152,0,222,.6),rgba(0,153,199,.5))}
.ft-lic__ic svg{width:18px;height:18px}
.ft-lic>span:last-child{font-size:12px;line-height:1.45;color:var(--dim)}
.ft-lic b{display:block;font-size:13.5px;font-weight:600;color:#fff}
.ft-soc{display:flex;gap:10px;margin-top:18px}
.ft-soc a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);transition:background .2s,border-color .2s,transform .2s}
.ft-soc a:hover{background:linear-gradient(135deg,#9800de,#0099c7);border-color:transparent;transform:translateY(-2px)}
.ft-soc svg{width:19px;height:19px}
.ft-soc .ft-soc__tg{width:21px;height:21px;margin-left:-2px}
.ft-soc .ft-soc__rutube{width:26px;height:26px}

.ft-col__h{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:14px;font-weight:600;color:#fff}
.ft-col__h::before{content:"";width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#9800de,#0099c7);flex:none}
.ft-col ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.ft-col li{margin:0}
.ft-col a{display:inline-block;padding:6px 0;font-size:14px;line-height:1.4;color:var(--dim);text-decoration:none;transition:color .2s,transform .2s}
.ft-col a:hover{color:#fff;transform:translateX(3px)}

.ft-contact{align-self:start;padding:22px 22px 20px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.ft .ft-tel{display:block;font-size:clamp(20px,1.8vw,24px);font-weight:700;letter-spacing:-.02em;color:#fff;text-decoration:none;white-space:nowrap}
.ft-note{display:block;margin:2px 0 14px;font-size:12px;color:var(--dim)}
.ft .ft-mail{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14.5px;color:#93ddff;text-decoration:none;overflow-wrap:anywhere}
.ft .ft-mail:hover{color:#fff}
.ft-mail svg,.ft-addr svg{width:16px;height:16px;flex:none}
.ft-addr{display:flex;gap:8px;margin:0 0 16px;font-size:13px;line-height:1.55;color:var(--dim)}
.ft-addr svg{margin-top:2px;color:#93ddff}
.ft .ft-lk{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:12px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:14px;font-weight:600;
  text-decoration:none;transition:border-color .2s,background .2s}
.ft .ft-lk:hover{border-color:rgba(0,153,199,.65);background:rgba(0,153,199,.12)}
.ft-lk span{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.ft-lk svg{width:16px;height:16px;flex:none}

.ft-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px 40px;align-items:start;
  margin-top:clamp(36px,4vw,56px);padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}
.ft-req p{margin:0 0 6px;max-width:92ch;font-size:12px;line-height:1.6;color:var(--dim2)}
.ft .ft-req a{color:#93ddff}
.ft-legal{display:flex;flex-direction:column;align-items:flex-end;gap:7px;text-align:right}
.ft .ft-legal a{font-size:12.5px;color:var(--dim);text-decoration:none}
.ft .ft-legal a:hover{color:#fff}
.ft .ft-up{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;
  border:1px solid rgba(255,255,255,.2);transition:background .2s,border-color .2s,transform .2s}
.ft .ft-up:hover{background:linear-gradient(135deg,#9800de,#0099c7);border-color:transparent;transform:translateY(-2px)}
.ft-up svg{width:18px;height:18px;transform:rotate(-90deg)}

/* надпись вписана в ширину контейнера: кегль в долях его ширины (cqi), не окна */
.ft-word-box{container-type:inline-size;z-index:0;pointer-events:none}
/* ширина надписи = ширина контейнера: при кегле 100 px буквы занимают 628 px (замер в Chrome),
   поэтому 100/6,284 ≈ 15,9cqi; −0,06em снимает левый отступ буквы «P» */
.ft-word{margin:clamp(20px,3vw,40px) 0 0 -.06em;padding-bottom:clamp(14px,2vw,28px);text-align:left;white-space:nowrap;
  font:800 15.9cqi/.8 var(--f);letter-spacing:-.055em;user-select:none;
  background:linear-gradient(90deg,#9800de,#0099c7);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.2}

.ft a:focus-visible,.ft button:focus-visible{outline:3px solid #93ddff;outline-offset:3px}
@media (prefers-reduced-motion:reduce){.ft *{transition:none!important}.ft-col a:hover,.ft-soc a:hover,.ft .ft-up:hover{transform:none}}
@media (max-width:1180px){
  .ft-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px}
  .ft-brand{grid-column:1/3;grid-row:1}
  .ft-contact{grid-column:3;grid-row:1}
}
@media (max-width:860px){
  .ft-grid{grid-template-columns:1fr 1fr;gap:32px 20px}
  .ft-brand,.ft-contact{grid-column:1/-1;grid-row:auto}
  .ft-brand{order:0}.ft-contact{order:1}.ft-col{order:2}
}
@media (max-width:760px){
  .ft-bottom{grid-template-columns:1fr auto}
  .ft-legal{grid-column:1/-1;grid-row:2;align-items:flex-start;text-align:left}
  .ft-up{grid-column:2;grid-row:1}
}
@media (max-width:520px){
  .ft-cta__acts,.ft-cta__acts .btn{width:100%}
  .ft-cta__acts .btn{justify-content:center}
}

/* ═══ База знаний: постраничная навигация (26.09.2026) ══════════════════════════
   Счётчик с полосой прогресса → «Показать ещё» → Назад · номера · Вперёд.
   Страницы /blog/page/N/ статические; кнопка с JS дописывает карточки сюда же. */
.bpg{display:grid;justify-items:center;gap:22px;max-width:760px;margin:clamp(48px,5vw,72px) auto 0;text-align:center}
.bpg__meta{display:grid;justify-items:center;gap:12px;margin:0;font-size:14px;color:var(--mut)}
.bpg__meta b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.bpg__prog{display:block;width:240px;max-width:70vw;height:4px;border-radius:4px;background:#dfe1eb;overflow:hidden}
.bpg__prog>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9800de,#0099c7);
  transition:width .6s cubic-bezier(.2,.7,.2,1)}
.page-blog .bpg__more{min-width:300px;justify-content:center;gap:10px;background:#fff;border:1px solid #9800de;color:#6b009e;
  box-shadow:0 14px 30px -22px rgba(152,0,222,.9)}
.page-blog .bpg__more:hover{background:linear-gradient(135deg,#9800de,#0099c7);border-color:transparent;color:#fff}
.bpg__more svg{width:17px;height:17px;flex:none;transition:transform .4s}
.bpg__more:hover svg{transform:rotate(90deg)}
.bpg__more[aria-busy=true]{pointer-events:none}
.bpg__more[aria-busy=true] svg{animation:bpgSpin .8s linear infinite}
.bpg__bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}
.bpg__list{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.bpg__list li{margin:0;padding:0}
.bpg__list li::before{content:none}
.bpg__n{display:grid;place-items:center;min-width:46px;height:46px;padding:0 8px;border-radius:10px;border:1px solid #dfe1eb;
  background:#fff;color:var(--ink);font-size:15px;font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums;
  transition:border-color .2s,color .2s,background .2s,box-shadow .2s}
.bpg__n:hover{border-color:#9800de;color:#6b009e}
.bpg__n.is-seen{background:#f4eafc;border-color:#e2c6f6;color:#6b009e}
.bpg__n[aria-current=page]{background:linear-gradient(135deg,#9800de,#0099c7);border-color:transparent;color:#fff;
  box-shadow:0 12px 26px -14px rgba(152,0,222,.9)}
.bpg__gap{min-width:22px;color:var(--mut);letter-spacing:.08em}
.bpg__nav{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 20px;border-radius:10px;border:1px solid #dfe1eb;
  background:#fff;color:var(--ink);font-size:14.5px;font-weight:600;text-decoration:none;transition:border-color .2s,color .2s}
.bpg__nav svg{width:16px;height:16px;flex:none;transition:transform .2s}
.bpg__nav--prev svg{transform:rotate(180deg)}
a.bpg__nav:hover{border-color:#9800de;color:#6b009e}
a.bpg__nav--next:hover svg{transform:translateX(3px)}
a.bpg__nav--prev:hover svg{transform:rotate(180deg) translateX(3px)}
.bpg__nav[aria-disabled=true]{border-style:dashed;color:#6f717a;cursor:default}
.bpg a:focus-visible{outline:3px solid #0099c7;outline-offset:3px}
.bpg-new{animation:bpgIn .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes bpgIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes bpgSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .bpg-new,.bpg__more[aria-busy=true] svg{animation:none}
  .bpg__prog>span,.bpg__more svg,.bpg__nav svg{transition:none}
}
@media (max-width:560px){
  .page-blog .bpg__more{min-width:0;width:100%}
  .bpg__bar{gap:8px}
  .bpg__nav{width:46px;padding:0;justify-content:center}
  .bpg__nav span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* скрытый заголовок: держит иерархию h1 → h2 → h3 для поиска и скринридеров, на экране не виден */
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ═══ Статьи базы знаний: FAQ, «Читайте также» (26.09.2026) ═══════════════════ */
.art-faq{margin-top:clamp(40px,5vw,56px)}
.art-faq h2{margin:0 0 18px;font-size:clamp(24px,2.5vw,32px);line-height:1.2}
.art-faq .faq{grid-template-columns:1fr}
.prose .tbl-wrap{margin:1.4em 0}
.prose .tbl{font-size:15px;min-width:560px}
.prose .tbl td,.prose .tbl th{vertical-align:top}
.rel{margin-top:clamp(44px,5vw,72px)}
.rel__h{margin:0 0 22px;font-size:clamp(24px,2.5vw,32px);line-height:1.2}
.rel__grid{gap:20px}
.rel-card h3{font-size:19px;line-height:1.3;margin:0 0 10px}
.rel-card>p:not(.mono){font-size:14px;color:var(--mut);margin:0}

/* статья во всю ширину контейнера: вертикальная или квадратная обложка — справа, текст обтекает */
.art-cover{margin:0 0 clamp(24px,3vw,40px)}
.art-cover img{display:block;width:100%;height:auto;border-radius:var(--r-lg)}
.art-cover--side{float:right;width:min(40%,440px);margin:6px 0 28px clamp(28px,3.5vw,48px)}
.art-body::after{content:"";display:block;clear:both}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:clamp(32px,4vw,44px);
  padding-top:20px;border-top:1px solid var(--line)}
.art-meta__tags{display:flex;flex-wrap:wrap;gap:8px}
.art-meta__tags .tag{margin:0}
.art-meta .src{margin:0;font-size:13px}
.art-meta+.callout{margin-top:28px}
@media (max-width:760px){
  .art-cover--side{float:none;width:100%;max-width:440px;margin:0 0 24px}
}

/* статьи редакции: список источников */
.art-src{margin-top:clamp(36px,4vw,48px)}
.art-src h2{margin:0 0 14px;font-size:clamp(22px,2.2vw,28px);line-height:1.2}
.art-src ol{margin:0;padding-left:1.3em;font-size:15px;line-height:1.6;color:var(--mut)}
.art-src li{margin-bottom:8px}
.art-src a{overflow-wrap:anywhere}

/* формулы в статьях: шрифт сайта и лёгкая подложка вместо моноширинного системного */
.prose code{font-family:var(--f);font-size:.96em;font-weight:500;color:var(--ink);background:#f3eefb;
  padding:.08em .4em;border-radius:5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* рубрики базы знаний */
.bchips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 clamp(28px,3.5vw,40px)}
.bchip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #dfe1eb;
  border-radius:10px;background:#fff;color:var(--ink);font-size:14.5px;font-weight:600;text-decoration:none;
  transition:border-color .2s,color .2s}
.bchip span{font-size:12.5px;font-weight:500;color:#6f717a;font-variant-numeric:tabular-nums}
.bchip:hover{border-color:#9800de;color:#6b009e}
.bchip[aria-current=page]{background:linear-gradient(135deg,#9800de,#0099c7);border-color:transparent;color:#fff}
.bchip[aria-current=page] span{color:rgba(255,255,255,.88)}
.bchip:focus-visible{outline:3px solid #0099c7;outline-offset:3px}
@media (max-width:560px){.bchip{padding:0 12px;font-size:13.5px}}

/* ═══ Заявка перед подвалом (26.09.2026) ═══════════════════════════════════════
   Светлая секция + карточка: слева фото-панель со смыслом страницы и шагами «что будет дальше»,
   справа белая панель с формой. Светлый фон отделяет блок от тёмного подвала с его общим призывом. */
.pcta{background:#f5f5f5}
.pcta__card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);border-radius:24px;overflow:hidden;
  background:#fff;border:1px solid #e4e0ee;box-shadow:0 34px 80px -46px rgba(46,16,84,.5)}
.pcta__side{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:700px;
  background:#1d1628;color:#fff}
.pcta__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.pcta__side::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(26,14,44,.12) 0%,rgba(26,14,44,.5) 28%,rgba(22,11,38,.9) 55%,#160b26 100%)}
.pcta__card{position:relative}
.pcta__card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;z-index:2;
  background:linear-gradient(90deg,#9800de,#0099c7)}
.pcta__txt{width:100%;padding:clamp(28px,3.4vw,48px)}
.pcta__eye{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font-size:12px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:#93ddff}
.pcta__eye::before{content:"";width:26px;height:1px;background:currentColor}
.pcta__side h2{margin:0 0 14px;max-width:24ch;font-size:clamp(28px,2.9vw,40px);line-height:1.08;
  letter-spacing:-.03em;color:#fff}
.pcta__lead{margin:0 0 24px;max-width:46ch;font-size:16px;line-height:1.6;color:rgba(255,255,255,.88)}
.pcta__cap{margin:0 0 12px;font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:rgba(255,255,255,.72)}
.pcta__steps{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.pcta__steps li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:center;margin:0;
  font-size:15px;line-height:1.45;color:#fff}
.pcta__steps li::before{content:none}
.pcta__steps b{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:13.5px;
  font-weight:700;font-variant-numeric:tabular-nums;color:#fff;background:linear-gradient(135deg,#9800de,#0099c7);
  box-shadow:0 10px 24px -12px rgba(152,0,222,.9)}
.pcta__act{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.pcta .pcta__btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.42);color:#fff}
.pcta .pcta__btn:hover{background:rgba(255,255,255,.18);border-color:#fff;color:#fff}
.pcta__btn svg{width:17px;height:17px}

.pcta__form{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,3.4vw,48px)}
.pcta__form>h3{margin:0 0 6px;font-size:clamp(22px,2vw,26px);line-height:1.2;letter-spacing:-.02em}
.pcta__form .form{margin-top:18px;gap:14px}
.pcta__form .form input,.pcta__form .form textarea{background:#f7f6fa;border-color:#d9d6e3;border-radius:10px}
.pcta__form .form input:focus,.pcta__form .form textarea:focus{background:#fff;border-color:#9800de;
  box-shadow:0 0 0 3px rgba(152,0,222,.12)}
.pcta__form .form input::placeholder,.pcta__form .form textarea::placeholder{color:#7a7c84}
.pcta__form .form input:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:inset 0 0 0 1000px #f7f6fa}
.pcta__form .form .lb{color:#55575f}
.pcta__form .form-actions .btn{width:100%;justify-content:center;min-height:52px;font-size:15px}
.pcta__form .form__consent{color:#63656d}
.pcta__form .form a{color:#6b009e}
.pcta a:focus-visible,.pcta button:focus-visible{outline:3px solid #0099c7;outline-offset:3px}

@media (max-width:980px){
  .pcta__card{grid-template-columns:1fr}
  /* сверху — полоса фото, текст под ней */
  .pcta__side{min-height:0}
  .pcta__txt{padding-top:clamp(200px,42vw,280px)}
}
@media (max-width:560px){
  .pcta__card{border-radius:18px}
  .pcta__steps li{font-size:14.5px}
  .pcta__act .btn{width:100%;justify-content:center}
}

/* урок «Обзор марок спектрофотометров» */
.obzor__in{align-items:center}
.obzor .vbox__frame{box-shadow:0 30px 70px -40px rgba(46,16,84,.55)}
.obzor__note{margin:18px 0 0;font-size:14.5px;color:var(--mut)}
.obzor .ticks{margin-top:18px}
/* живой фон секции: реальная съёмка прибора под затемнением */
.has-bgvid{position:relative;overflow:hidden;isolation:isolate}
.bgvid{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;opacity:.22;pointer-events:none}
@media (max-width:760px){.bgvid{opacity:.16}}

/* стык двух белых секций, где вторая — продолжение первой: тонкая линия вместо «слипания» */
.sec--rule{border-top:1px solid var(--line)}

/* ═══ Мобильная адаптация: правки по аудиту 26.09.2026 ═══════════════════════════
   (колонки главной на 320 px — см. minmax(0,1fr) выше в медиазапросе ≤900) */
/* поля калькулятора — не мельче 16 px, иначе iPhone увеличивает страницу при вводе */
/* iOS (и iPad) увеличивает страницу при вводе в поле мельче 16 px */
@media (max-width:760px),(pointer:coarse){.grd input,.grd select,.grd textarea{font-size:16px!important}}
/* мелкие подписи — не меньше 12 px на телефоне (перебиваем точечные правила блоков) */
@media (max-width:760px){
  .tag,.vbox__dur,.cuv__list-title,.cuv__note,.eyebrow,.grd th,.grd small,.grd__res small{font-size:12px!important}
  .grd__tools .btn{font-size:13px!important}
  [data-grad-stat] span,.cuv__label,.cuv__badge,.hero__caption span,.voc__topic,cite,cite a,cite span,figcaption span{font-size:12px!important}
}
/* мелкий текст: не меньше 12 px */
.crumbs,.crumbs a,.crumbs [aria-current]{font-size:12.5px}
.drawer__top .mono{font-size:12px}
.card.card--link>p.mono{font-size:12px}
.vbox__cap span{font-size:12px}
@media (max-width:1100px){.brand__t span{font-size:12px}}
/* цели нажатия на сенсорных экранах — не меньше 40–44 px */
.ft .ft-legal a{display:inline-block;padding-block:6px}
.ft .ft-mail{padding-block:6px}
@media (pointer:coarse){
  .crumbs a{display:inline-block;padding-block:8px}
  .form__consent input{width:24px;height:24px;min-width:24px;margin-top:0}
  .grd__del{min-width:40px;min-height:40px}
  .grd .btn{min-height:44px}
  .doc__act{min-height:40px;display:inline-flex;align-items:center}
  .drawer__tel,.ft .ft-tel{display:inline-flex;align-items:center;min-height:44px}
  .hero__license{min-height:40px}
  .quote cite a,.quotes cite a{display:inline-block;padding-block:6px}
}

/* ═══ Окно заявки на маленьком экране (аудит 26.09.2026) ═══════════════════════
   Карточка выше экрана (682 px при 568 видимых) и overflow:hidden — кнопка и согласие были недостижимы.
   Прокрутка внутри окна + высота по видимой части экрана (dvh учитывает панели браузера, D173). */
.modal__box{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 32px)}
@supports (height:100dvh){.modal__box{max-height:calc(100dvh - 32px)}}
/* виджеты не висят поверх открытого окна, меню и лайтбокса (D171) */
body:has(.modal.is-on, .drawer.is-on, .lbx.is-on) .wgtb,
body:has(.modal.is-on, .drawer.is-on, .lbx.is-on) [class^="wgtq"]{visibility:hidden;opacity:0;pointer-events:none}

/* ═══ Страница 404: «экран спектрофотометра» (26.09.2026) ═══════════════════════ */
.e404x{position:relative;overflow:hidden;isolation:isolate;background:#1b1624;color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:48px 48px}
.e404x__glow{position:absolute;z-index:-1;inset:-20% -10% auto auto;width:70%;height:120%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(152,0,222,.35),transparent 70%),radial-gradient(closest-side at 70% 70%,rgba(0,153,199,.25),transparent 70%)}
.e404x__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,5vw,72px);align-items:center;
  min-height:calc(88vh - var(--hdr,76px));padding-block:clamp(48px,7vw,104px)}
.e404x__eye{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;font-size:12.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:#93ddff}
.e404x__eye::before{content:"";width:28px;height:1px;background:currentColor}
.e404x h1{margin:0 0 18px;max-width:14ch;font-size:clamp(38px,5vw,68px);line-height:1.02;letter-spacing:-.035em;color:#fff}
.e404x__lead{margin:0 0 30px;max-width:44ch;font-size:clamp(16px,1.4vw,18px);line-height:1.6;color:rgba(255,255,255,.8)}
.e404x__acts{display:flex;flex-wrap:wrap;gap:12px}
.e404x .e404x__ghost{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff}
.e404x .e404x__ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.e404x__screen{border-radius:22px;background:linear-gradient(180deg,#221c30,#17121f);border:1px solid rgba(255,255,255,.12);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.06);padding:18px 18px 16px;font-family:var(--f-m)}
.e404x__bar{display:flex;align-items:center;gap:10px;padding:0 4px 12px;border-bottom:1px solid rgba(255,255,255,.08);
  font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.e404x__dot{width:8px;height:8px;border-radius:50%;background:#3fc7ee;box-shadow:0 0 10px #3fc7ee;animation:e404blink 1.6s ease-in-out infinite}
.e404x__path{margin-left:auto;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;
  letter-spacing:0;color:#93ddff}
.sp{display:block;width:100%;height:auto;margin:10px 0 6px}
.sp__grid{stroke:rgba(255,255,255,.07);stroke-width:1}
.sp__ax{stroke:rgba(255,255,255,.35);stroke-width:1.2}
.sp__t{fill:rgba(255,255,255,.62);font:500 12.5px var(--f-m)}
.sp__exp{fill:none;stroke:url(#spg);stroke-width:2;stroke-dasharray:5 6;opacity:.75}
.sp__mark{stroke:#3fc7ee;stroke-width:1.2;stroke-dasharray:3 4;opacity:.8}
.sp__chip{fill:rgba(63,199,238,.14);stroke:rgba(63,199,238,.6)}
.sp__chip-t{fill:#bff0ff;font:600 12px var(--f-m)}
.sp__got{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;animation:e404draw 1.8s .3s cubic-bezier(.3,.7,.2,1) forwards}
.sp__lbl{font:600 12.5px var(--f-m)}
.sp__lbl--exp{fill:#d9b3ff}
.sp__lbl--got{fill:#fff}
.sp__got-leg{stroke:#fff;stroke-width:2.4;stroke-linecap:round}
/* у горизонтальной линии нулевая высота — градиент objectBoundingBox на ней не рисуется */
.sp__exp-leg{stroke:#c48cff;stroke-width:2;stroke-dasharray:5 5}
.e404x__read{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 0}
.e404x__read>div{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.e404x__read dt{margin:0 0 4px;font-size:12px;letter-spacing:.02em;color:rgba(255,255,255,.6)}
.e404x__read dd{margin:0;font-size:15px;font-weight:600;color:#93ddff}
@keyframes e404draw{to{stroke-dashoffset:0}}
@keyframes e404blink{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.sp__got{animation:none;stroke-dashoffset:0}.e404x__dot{animation:none}}
.e404x-links{background:#f5f5f5}
.e404x-links__grid{margin-top:28px}
.e404x-links__more{margin:28px 0 0;font-size:15px;color:var(--mut)}
@media (max-width:900px){
  .e404x__in{grid-template-columns:1fr;min-height:0}
  .e404x h1{max-width:18ch}
}
@media (max-width:560px){
  .e404x__acts .btn{flex:1 1 auto;justify-content:center}
  .e404x__screen{padding:14px 12px 12px;border-radius:18px}
  .e404x__read dd{font-size:13.5px}
  .e404x__read>div{padding:9px 10px}
  .sp__t{font-size:16px}
}
