/* GEC Desktop — single source of geometry (v95 master).
   Consolidation of v94 + footer-final + v94.06-global-master.
   Canonical working width = min(1120px, 100vw-160px); gap 14px; header/footer 64px;
   CTA 84px; CTA->Footer 1cm; card=(w-4*14)/5 square; title 15.5 / desc 12.5 / body 14.
   Cascade order preserved; only conflicting width/gap tokens unified to canon. */

/* ===== consolidated from desktop-v94.css (load order preserved) ===== */

/* v77 Desktop Foundation Final
   DESKTOP ONLY. Mobile RU/EN is locked. Do not move any mobile rules here.
   One centered working surface. Home geometry is locked. All desktop pages inherit its left/right boundaries.
*/
@media (min-width:901px){
  :root{
    --desk-page-x:80px;
    --desk-surface-max:1120px;
    --desk-surface-w:min(var(--desk-surface-max), calc(100vw - (2 * var(--desk-page-x))));
    --desk-gap:14px;
    --desk-card:calc((var(--desk-surface-w) - (4 * var(--desk-gap))) / 5);
    --desk-header-h:64px;
    --desk-footer-h:64px;
    --desk-title:28px;
    --desk-subtitle:20px;
    --desk-body:14px;
    --desk-card-title:15.5px;
    --desk-card-desc:12.5px;
  }

  /* Master working surface: one axis, one width, one pair of side boundaries. */
  html body .inner,
  html body .hero-content,
  html body #home-svc,
  html body .article,
  html body .content,
  html body .page-content,
  html body .main-content,
  html body .section,
  html body .doc,
  html body .doc-wrap,
  html body .license-detail,
  html body .training-detail,
  html body .table-wrap,
  html body .cta-strip,
  html body .lead-cta,
  html body .cta-box{
    width:var(--desk-surface-w)!important;
    max-width:var(--desk-surface-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  /* Header/Footer inner content follows the same horizontal axis. */
  html body nav,
  html body footer{
    padding-left:max(32px, calc((100% - var(--desk-surface-w)) / 2))!important;
    padding-right:max(32px, calc((100% - var(--desk-surface-w)) / 2))!important;
    box-sizing:border-box!important;
  }

  html body nav{height:var(--desk-header-h)!important;min-height:var(--desk-header-h)!important;}
  html body footer{min-height:var(--desk-footer-h)!important;}
  html body .page{padding-top:var(--desk-header-h)!important;}

  /* Typography scale. Working text from internal pages is the standard. */
  html body .pg-text,
  html body .pg-ul,
  html body .pg-ol,
  html body .pg-ul li,
  html body .pg-ol li,
  html body .card-body,
  html body p,
  html body li,
  html body td,
  html body th{
    font-size:var(--desk-body)!important;
    line-height:1.5!important;
  }
  html body .pg-title,
  html body .hero h1.pg-title,
  html body #p-home .hero h1.pg-title,
  html body #home-svc h2.pg-title{
    font-size:var(--desk-title)!important;
    line-height:1.12!important;
    letter-spacing:-.02em!important;
    font-weight:800!important;
  }
  html body .pg-h2{font-size:var(--desk-subtitle)!important;line-height:1.2!important;font-weight:750!important;}
  html body .pg-h3{font-size:17px!important;line-height:1.25!important;font-weight:700!important;}

  /* Home remains the geometry master. Only typography is normalized. */
  html body #p-home .hero{padding-left:0!important;padding-right:0!important;}
  html body #p-home .hero-content,
  html body #p-home .hero-left,
  html body #p-home .hero-actions,
  html body #home-svc,
  html body #p-home .svc-grid{
    width:var(--desk-surface-w)!important;
    max-width:var(--desk-surface-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }
  html body #p-home .hero-lead,
  html body #p-home .hero-sub{
    font-size:var(--desk-body)!important;
    line-height:1.5!important;
    max-width:var(--desk-surface-w)!important;
  }

  /* Unified square-card system. Card size is the HOME card size. */
  html body #p-home .svc-grid,
  html body #p-licenzii .svc-grid,
  html body #p-obuchenie .svc-grid{
    display:grid!important;
    gap:var(--desk-gap)!important;
    justify-content:start!important;
    justify-items:stretch!important;
    align-content:start!important;
    align-items:stretch!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-sizing:border-box!important;
  }
  html body #p-home .svc-grid{
    width:var(--desk-surface-w)!important;
    max-width:var(--desk-surface-w)!important;
    grid-template-columns:repeat(5, var(--desk-card))!important;
    grid-auto-rows:var(--desk-card)!important;
  }
  html body #p-licenzii .svc-grid,
  html body #p-obuchenie .svc-grid{
    width:var(--desk-surface-w)!important;
    max-width:var(--desk-surface-w)!important;
    grid-template-columns:repeat(4, var(--desk-card))!important;
    grid-auto-rows:var(--desk-card)!important;
  }
  html body #p-home .svc-grid > .svc-card,
  html body #p-licenzii .svc-grid > .svc-card,
  html body #p-obuchenie .svc-grid > .svc-card{
    width:var(--desk-card)!important;
    height:var(--desk-card)!important;
    min-width:var(--desk-card)!important;
    max-width:var(--desk-card)!important;
    min-height:var(--desk-card)!important;
    max-height:var(--desk-card)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:18px!important;
    box-sizing:border-box!important;
  }

  /* Card typography: licensing/training readability standard applied everywhere. */
  html body .svc-card .svc-nm,
  html body .svc-card h3,
  html body .service-card h3,
  html body .license-card h3{
    font-size:var(--desk-card-title)!important;
    line-height:1.18!important;
    font-weight:800!important;
    letter-spacing:-.01em!important;
    margin:0 0 8px!important;
  }
  html body .svc-card .svc-ds,
  html body .svc-card p,
  html body .service-card p,
  html body .license-card p{
    font-size:var(--desk-card-desc)!important;
    line-height:1.35!important;
    font-weight:400!important;
  }

  /* Licensing and Training must not form pyramids. Grid auto-flow places rows from left. */
  html body #p-licenzii .svc-grid > .svc-card:nth-child(n),
  html body #p-obuchenie .svc-grid > .svc-card:nth-child(n){
    grid-column:auto!important;
    justify-self:stretch!important;
  }

  /* These pages are card sheets: keep them compact and inside desktop viewport if possible. */
  html body #p-home,
  html body #p-licenzii,
  html body #p-obuchenie{
    overflow:hidden!important;
  }

  /* Familiarization pages use the same width but calmer vertical placement. */
  html body #p-about > .inner,
  html body #p-clients > .inner{
    padding-top:52px!important;
    padding-bottom:34px!important;
  }

  /* Choice decorative font: only two approved lines. Applies to RU/EN; mobile layout remains untouched. */
  html body.choice-page-body .choice-final-text h1,
  html body.choice-page-body .choice-final-text .choice-final-last{
    font-family:'Marck Script','Inter'!important;
    font-weight:400!important;
    letter-spacing:.01em!important;
  }
}

/* v83 strict unification: desktop cards and CTA. Mobile remains untouched. */
@media (min-width:901px){
  :root{
    --desk-page-x:80px;
    --desk-surface-max:1120px;
    --desk-surface-w:min(var(--desk-surface-max), calc(100vw - (2 * var(--desk-page-x))));
    --desk-gap:14px;
    --desk-card:calc((var(--desk-surface-w) - (4 * var(--desk-gap))) / 5);
    --desk-card-title:15.5px;
    --desk-card-desc:12.5px;
    --desk-body:14px;
  }

  /* One component for Home, Licensing and Training card blocks. */
  html body #p-home .svc-grid,
  html body #p-licenzii .svc-grid,
  html body #p-obuchenie .svc-grid{
    display:grid!important;
    width:var(--desk-surface-w)!important;
    max-width:var(--desk-surface-w)!important;
    grid-template-columns:repeat(5, var(--desk-card))!important;
    grid-auto-rows:var(--desk-card)!important;
    gap:var(--desk-gap)!important;
    justify-content:center!important;
    justify-items:stretch!important;
    align-items:stretch!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding:0!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }

  html body #p-home .svc-grid > .svc-card,
  html body #p-licenzii .svc-grid > .svc-card,
  html body #p-obuchenie .svc-grid > .svc-card{
    width:var(--desk-card)!important;
    height:var(--desk-card)!important;
    min-width:var(--desk-card)!important;
    max-width:var(--desk-card)!important;
    min-height:var(--desk-card)!important;
    max-height:var(--desk-card)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:18px!important;
    border:1px solid rgba(212,149,42,.86)!important;
    background:rgba(255,255,255,.025)!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    overflow:hidden!important;
  }

  html body #p-home .svc-grid > .svc-card::before,
  html body #p-licenzii .svc-grid > .svc-card::before,
  html body #p-obuchenie .svc-grid > .svc-card::before{
    display:none!important;
  }

  html body #p-home .svc-card .svc-ic,
  html body #p-licenzii .svc-card .svc-ic,
  html body #p-obuchenie .svc-card .svc-ic{
    margin:0 0 16px!important;
    opacity:.9!important;
    flex:0 0 auto!important;
  }

  html body #p-home .svc-card .svc-nm,
  html body #p-licenzii .svc-card .svc-nm,
  html body #p-obuchenie .svc-card .svc-nm{
    font-size:var(--desk-card-title)!important;
    line-height:1.18!important;
    font-weight:800!important;
    letter-spacing:-.01em!important;
    color:var(--accent2)!important;
    margin:0 0 8px!important;
    max-width:100%!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  html body #p-home .svc-card .svc-ds,
  html body #p-licenzii .svc-card .svc-ds,
  html body #p-obuchenie .svc-card .svc-ds{
    font-size:var(--desk-card-desc)!important;
    line-height:1.38!important;
    font-weight:500!important;
    color:var(--sub)!important;
    margin:0!important;
    max-width:100%!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  /* Home intro text equals working-page body text. */
  html body #p-home .hero-lead,
  html body #p-home .hero-sub{
    font-size:var(--desk-body)!important;
    line-height:1.5!important;
    font-weight:500!important;
  }

  /* One CTA component everywhere it exists. Full working width, modestly higher than v82. */
  html body .cta-strip,
  html body .lead-cta,
  html body .cta-box{
    width:var(--desk-surface-w)!important;
    max-width:var(--desk-surface-w)!important;
    min-height:74px!important;
    height:auto!important;
    padding:14px 28px!important;
    margin:34px auto 22px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:28px!important;
    box-sizing:border-box!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-left:1px solid rgba(255,255,255,.18)!important;
  }

  html body .cta-strip p,
  html body .lead-cta p,
  html body .cta-box p{
    font-size:var(--desk-body)!important;
    line-height:1.5!important;
    font-weight:500!important;
    margin:0!important;
    max-width:620px!important;
    color:var(--sub)!important;
  }

  html body .cta-strip .btn-p,
  html body .lead-cta .btn-p,
  html body .cta-box .btn-p{
    width:260px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 24px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    flex:0 0 260px!important;
  }
}

/* v84 FINAL HOME FIX: Home cards inherit the Training/Licensing card system strictly. Mobile remains locked. */
@media (min-width:901px){
  :root{
    --v84-surface-max:1120px;
    --v84-page-x:80px;
    --v84-surface-w:min(var(--v84-surface-max), calc(100vw - (2 * var(--v84-page-x))));
    --v84-card-gap:14px;
    --v84-card-size:calc((var(--v84-surface-w) - (4 * var(--v84-card-gap))) / 5);
    --v84-card-title:clamp(12px,.92vw,15px);
    --v84-card-desc:clamp(11px,.78vw,13px);
    --v84-work-text:14px;
  }

  /* HOME: no lower "Опишите задачу" CTA block on the main page. */
  html body #p-home .cta-strip,
  html body #p-home .lead-cta,
  html body #p-home .cta-box{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  /* HOME cards: exact same grid logic as Training/Licensing: 5 columns, 2 rows, equal horizontal and vertical gaps. */
  html body #p-home #home-svc,
  html body #p-home .inner#home-svc{
    width:var(--v84-surface-w)!important;
    max-width:var(--v84-surface-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  html body #p-home #home-svc .svc-grid{
    display:grid!important;
    width:var(--v84-surface-w)!important;
    max-width:var(--v84-surface-w)!important;
    grid-template-columns:repeat(5, var(--v84-card-size))!important;
    grid-template-rows:repeat(2, var(--v84-card-size))!important;
    grid-auto-rows:var(--v84-card-size)!important;
    column-gap:var(--v84-card-gap)!important;
    row-gap:var(--v84-card-gap)!important;
    gap:var(--v84-card-gap)!important;
    justify-content:center!important;
    justify-items:stretch!important;
    align-content:start!important;
    align-items:stretch!important;
    margin:0 auto!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }

  html body #p-home #home-svc .svc-grid > .svc-card{
    width:var(--v84-card-size)!important;
    height:var(--v84-card-size)!important;
    min-width:var(--v84-card-size)!important;
    max-width:var(--v84-card-size)!important;
    min-height:var(--v84-card-size)!important;
    max-height:var(--v84-card-size)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:18px!important;
    box-sizing:border-box!important;
    border:1px solid rgba(212,149,42,.86)!important;
    background:rgba(255,255,255,.025)!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    overflow:hidden!important;
  }

  html body #p-home #home-svc .svc-grid > .svc-card::before{
    display:none!important;
    content:none!important;
  }

  /* HOME typography: copied from the approved Licensing/Training card typography, not the other way round. */
  html body #p-home #home-svc .svc-card .svc-ic{
    font-size:22px!important;
    line-height:1!important;
    height:auto!important;
    min-height:0!important;
    width:auto!important;
    margin:0 0 12px!important;
    opacity:1!important;
    flex:0 0 auto!important;
  }

  html body #p-home #home-svc .svc-card .svc-nm{
    font-family:Inter!important;
    font-size:var(--v84-card-title)!important;
    line-height:1.12!important;
    font-weight:800!important;
    letter-spacing:.04em!important;
    text-transform:uppercase!important;
    color:var(--desk-gold, var(--accent2))!important;
    margin:0 0 10px!important;
    padding:0!important;
    max-width:100%!important;
    text-align:center!important;
    text-align-last:center!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  html body #p-home #home-svc .svc-card .svc-ds{
    font-family:Inter!important;
    font-size:var(--v84-card-desc)!important;
    line-height:1.28!important;
    font-weight:500!important;
    color:var(--desk-text, var(--sub))!important;
    margin:0!important;
    padding:0!important;
    max-width:100%!important;
    text-align:center!important;
    text-align-last:center!important;
    overflow:hidden!important;
    display:-webkit-box!important;
    -webkit-line-clamp:4!important;
    -webkit-box-orient:vertical!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  /* Main-page working text follows the site working-page text scale. */
  html body #p-home .hero-sub,
  html body #p-home .hero-lead,
  html body #p-home .hero .pg-text{
    font-size:var(--v84-work-text)!important;
    line-height:1.5!important;
    font-weight:500!important;
  }
}

/* v85: Header baseline + CTA/Footer vertical rhythm. Desktop only. Mobile remains locked. */
@media (min-width:901px){
  :root{
    --v85-header-h:64px;
    --v85-footer-h:64px;
    --v85-footer-gap:1cm; /* визуальный аналог ~2 см: постоянный отступ CTA -> Footer */
    --v85-cta-h:84px;
    --v85-surface-max:1120px;
    --v85-page-x:80px;
    --v85-surface-w:min(var(--v85-surface-max), calc(100vw - (2 * var(--v85-page-x))));
    --v85-body:14px;
  }

  /* HEADER: one strict bottom line for logo, menu, CTA and RU/EN. */
  html body > nav{
    height:var(--v85-header-h)!important;
    min-height:var(--v85-header-h)!important;
    max-height:var(--v85-header-h)!important;
    display:flex!important;
    align-items:flex-end!important;
    gap:18px!important;
    padding-top:0!important;
    padding-bottom:18px!important;
    box-sizing:border-box!important;
  }
  html body > nav .nav-logo,
  html body > nav .nav-main,
  html body > nav .nav-item,
  html body > nav .nbtn,
  html body > nav .nav-cta,
  html body > nav .lang-switch,
  html body > nav .lang-switch a{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin-top:0!important;
    margin-bottom:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:1!important;
    display:flex!important;
    align-items:flex-end!important;
    box-sizing:border-box!important;
    vertical-align:baseline!important;
  }
  html body > nav .nav-logo,
  html body > nav .nav-logo .gec-brand-logo,
  html body > nav .nav-logo span,
  html body > nav .nbtn,
  html body > nav .nav-cta,
  html body > nav .lang-switch a{
    line-height:1!important;
  }
  html body > nav .nav-main{
    align-self:flex-end!important;
    flex:1 1 auto!important;
    gap:0!important;
  }
  html body > nav .nav-cta{
    align-self:flex-end!important;
    border:0!important;
    background:transparent!important;
  }
  html body > nav .lang-switch{
    align-self:flex-end!important;
    gap:6px!important;
  }
  html body > nav .lang-switch a{
    border:0!important;
    background:transparent!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  /* Working pages: CTA is tied to Footer, not to the last paragraph. */
  html body .page:not(#p-home):not(#p-choice) > .inner,
  html body .page:not(#p-home):not(#p-choice) > .inner.license-modern,
  html body .page:not(#p-home):not(#p-choice) > .inner.training-modern{
    min-height:calc(100vh - var(--v85-header-h) - var(--v85-footer-h))!important;
    display:flex!important;
    flex-direction:column!important;
    box-sizing:border-box!important;
  }

  html body .page:not(#p-home):not(#p-choice) .cta-strip,
  html body .page:not(#p-home):not(#p-choice) .lead-cta,
  html body .page:not(#p-home):not(#p-choice) .cta-box{
    width:var(--v85-surface-w)!important;
    max-width:var(--v85-surface-w)!important;
    min-height:var(--v85-cta-h)!important;
    height:auto!important;
    padding:18px 30px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    margin-top:auto!important;
    margin-bottom:var(--v85-footer-gap)!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:30px!important;
    box-sizing:border-box!important;
  }
  html body .page:not(#p-home):not(#p-choice) .cta-strip p,
  html body .page:not(#p-home):not(#p-choice) .lead-cta p,
  html body .page:not(#p-home):not(#p-choice) .cta-box p{
    font-size:var(--v85-body)!important;
    line-height:1.5!important;
    font-weight:500!important;
    margin:0!important;
    max-width:680px!important;
  }
  html body .page:not(#p-home):not(#p-choice) .cta-strip .btn-p,
  html body .page:not(#p-home):not(#p-choice) .lead-cta .btn-p,
  html body .page:not(#p-home):not(#p-choice) .cta-box .btn-p{
    flex:0 0 260px!important;
    width:260px!important;
    min-width:260px!important;
    height:42px!important;
    min-height:42px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  /* Home remains without lower CTA. */
  html body #p-home .cta-strip,
  html body #p-home .lead-cta,
  html body #p-home .cta-box{
    display:none!important;
  }
}

/* v86 MATHEMATICAL CARD STANDARD
   Desktop only. One numeric standard for Home, Licensing and Training.
   Source standard: approved Licensing/Training desktop card table.
   Do not override these card metrics elsewhere.
*/
@media (min-width:901px){
  :root{
    --v86-site-w:min(1120px, calc(100vw - 160px));
    --v86-card-gap:14px;
    --v86-card-w:calc((var(--v86-site-w) - (4 * var(--v86-card-gap))) / 5);
    --v86-card-h:187px;
    --v86-card-pad-y:16px;
    --v86-card-pad-x:18px;
    --v86-card-icon:25px;
    --v86-card-icon-h:36px;
    --v86-card-icon-mb:12px;
    --v86-card-title:15.5px;
    --v86-card-title-lh:1.18;
    --v86-card-title-mb:8px;
    --v86-card-desc:12.5px;
    --v86-card-desc-lh:1.38;
    --v86-card-border:1px solid rgba(232,184,75,.34);
  }

  /* One card-table geometry for all three sections. */
  html body #p-home #home-svc,
  html body #p-home .inner#home-svc,
  html body #p-licenzii .inner,
  html body #p-obuchenie .inner{
    width:var(--v86-site-w)!important;
    max-width:var(--v86-site-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  html body #p-home #home-svc .svc-grid,
  html body #p-home .inner#home-svc .svc-grid,
  html body #p-licenzii .svc-grid,
  html body #p-obuchenie .svc-grid{
    display:grid!important;
    grid-template-columns:repeat(5, var(--v86-card-w))!important;
    grid-auto-rows:var(--v86-card-h)!important;
    grid-template-rows:none!important;
    column-gap:var(--v86-card-gap)!important;
    row-gap:var(--v86-card-gap)!important;
    gap:var(--v86-card-gap)!important;
    width:var(--v86-site-w)!important;
    max-width:var(--v86-site-w)!important;
    margin:18px auto 12px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    justify-content:center!important;
    align-content:start!important;
    justify-items:stretch!important;
    align-items:stretch!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }

  html body #p-home #home-svc .svc-grid > .svc-card,
  html body #p-home .inner#home-svc .svc-grid > .svc-card,
  html body #p-licenzii .svc-grid > .svc-card,
  html body #p-obuchenie .svc-grid > .svc-card{
    width:var(--v86-card-w)!important;
    min-width:var(--v86-card-w)!important;
    max-width:var(--v86-card-w)!important;
    height:var(--v86-card-h)!important;
    min-height:var(--v86-card-h)!important;
    max-height:var(--v86-card-h)!important;
    aspect-ratio:auto!important;
    margin:0!important;
    padding:var(--v86-card-pad-y) var(--v86-card-pad-x)!important;
    border:var(--v86-card-border)!important;
    border-radius:0!important;
    background:var(--card)!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    text-align:left!important;
    overflow:hidden!important;
  }

  html body #p-home #home-svc .svc-card::before,
  html body #p-home .inner#home-svc .svc-card::before,
  html body #p-licenzii .svc-card::before,
  html body #p-obuchenie .svc-card::before{
    content:''!important;
    display:block!important;
    position:absolute!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:2px!important;
    background:var(--grad2)!important;
    transform:scaleX(0)!important;
    transform-origin:left!important;
  }

  html body #p-home #home-svc .svc-card .svc-ic,
  html body #p-home .inner#home-svc .svc-card .svc-ic,
  html body #p-licenzii .svc-card .svc-ic,
  html body #p-obuchenie .svc-card .svc-ic{
    font-size:var(--v86-card-icon)!important;
    line-height:1!important;
    height:var(--v86-card-icon-h)!important;
    min-height:var(--v86-card-icon-h)!important;
    width:auto!important;
    margin:0 0 var(--v86-card-icon-mb)!important;
    opacity:1!important;
    flex:0 0 auto!important;
  }

  html body #p-home #home-svc .svc-card .svc-nm,
  html body #p-home .inner#home-svc .svc-card .svc-nm,
  html body #p-licenzii .svc-card .svc-nm,
  html body #p-obuchenie .svc-card .svc-nm{
    font-family:Inter!important;
    font-size:var(--v86-card-title)!important;
    line-height:var(--v86-card-title-lh)!important;
    font-weight:800!important;
    letter-spacing:.04em!important;
    text-transform:uppercase!important;
    color:var(--accent2)!important;
    margin:0 0 var(--v86-card-title-mb)!important;
    padding:0!important;
    text-align:left!important;
    text-align-last:left!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  html body #p-home #home-svc .svc-card .svc-ds,
  html body #p-home .inner#home-svc .svc-card .svc-ds,
  html body #p-licenzii .svc-card .svc-ds,
  html body #p-obuchenie .svc-card .svc-ds{
    font-family:Inter!important;
    font-size:var(--v86-card-desc)!important;
    line-height:var(--v86-card-desc-lh)!important;
    font-weight:400!important;
    color:var(--sub)!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    text-align-last:left!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  /* Home has no lower CTA. */
  html body #p-home .cta-strip,
  html body #p-home .lead-cta,
  html body #p-home .cta-box{
    display:none!important;
  }
}


/* v87 GEOMETRIC FINAL STANDARD
   Desktop only. Mobile remains locked.
   One square card component for Home / Licensing / Training.
*/
@media (min-width:901px){
  :root{
    --v87-site-w:min(1120px, calc(100vw - 160px));
    --v87-card-gap:14px;
    --v87-card-size:calc((var(--v87-site-w) - (4 * var(--v87-card-gap))) / 5);
    --v87-card-pad:18px;
    --v87-card-icon:24px;
    --v87-card-icon-gap:14px;
    --v87-card-title:15.5px;
    --v87-card-title-lh:1.14;
    --v87-card-title-gap:9px;
    --v87-card-desc:12.5px;
    --v87-card-desc-lh:1.34;
    --v87-work-text:14px;
    --v87-h1-max:28px;
    --v87-border:1px solid rgba(232,184,75,.78);
    --v87-footer-gap:1cm;
  }

  /* Global typography ceiling: no desktop text heading grows above the main brand title size. */
  html body h1,
  html body .pg-title,
  html body .hero h1.pg-title,
  html body #p-home .hero h1.pg-title{
    font-size:min(var(--v87-h1-max), 28px)!important;
    line-height:1.12!important;
  }

  /* Working text is one size everywhere. */
  html body p,
  html body li,
  html body td,
  html body th,
  html body .pg-text,
  html body .pg-ul,
  html body .pg-ol,
  html body .article,
  html body .article p,
  html body .content,
  html body .content p,
  html body .card-body,
  html body #p-home .hero-sub,
  html body #p-home .hero-lead,
  html body #p-about p,
  html body #p-clients p{
    font-size:var(--v87-work-text)!important;
    line-height:1.5!important;
    font-weight:500!important;
  }

  /* About / Clients: intro no longer oversized, all body copy justified. */
  html body #p-about .lead,
  html body #p-about .intro,
  html body #p-about .hero-lead,
  html body #p-clients .lead,
  html body #p-clients .intro,
  html body #p-clients .hero-lead{
    font-size:var(--v87-work-text)!important;
    line-height:1.5!important;
    font-weight:500!important;
  }
  html body #p-about p,
  html body #p-about li,
  html body #p-clients p,
  html body #p-clients li{
    text-align:justify!important;
    text-align-last:auto!important;
  }

  /* Header baseline: brand, links, discuss and RU/EN sit on the same lower line. */
  html body > nav{
    display:flex!important;
    align-items:flex-end!important;
    height:64px!important;
    min-height:64px!important;
    padding-top:0!important;
    padding-bottom:18px!important;
    box-sizing:border-box!important;
  }
  html body > nav .nav-logo,
  html body > nav .nav-main,
  html body > nav .nav-item,
  html body > nav .nbtn,
  html body > nav .nav-cta,
  html body > nav .lang-switch,
  html body > nav .lang-switch a{
    display:flex!important;
    align-items:flex-end!important;
    align-self:flex-end!important;
    line-height:1!important;
    margin-top:0!important;
    margin-bottom:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    height:auto!important;
    min-height:0!important;
    vertical-align:baseline!important;
  }
  html body > nav .nav-logo{transform:translateY(0)!important;}
  html body > nav .nav-main{flex:1 1 auto!important;}

  /* Shared card sheet width for all three card pages. */
  html body #p-home #home-svc,
  html body #p-home .inner#home-svc,
  html body #p-licenzii .inner,
  html body #p-obuchenie .inner{
    width:var(--v87-site-w)!important;
    max-width:var(--v87-site-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  /* One 5-column square grid. Same horizontal and vertical interval. */
  html body #p-home #home-svc .svc-grid,
  html body #p-home .inner#home-svc .svc-grid,
  html body #p-licenzii .svc-grid,
  html body #p-obuchenie .svc-grid{
    display:grid!important;
    grid-template-columns:repeat(5, var(--v87-card-size))!important;
    grid-auto-rows:var(--v87-card-size)!important;
    column-gap:var(--v87-card-gap)!important;
    row-gap:var(--v87-card-gap)!important;
    gap:var(--v87-card-gap)!important;
    width:var(--v87-site-w)!important;
    max-width:var(--v87-site-w)!important;
    margin:18px auto 12px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    justify-content:center!important;
    align-content:start!important;
    justify-items:stretch!important;
    align-items:stretch!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }

  /* One square button/card size everywhere. */
  html body #p-home #home-svc .svc-grid > .svc-card,
  html body #p-home .inner#home-svc .svc-grid > .svc-card,
  html body #p-licenzii .svc-grid > .svc-card,
  html body #p-obuchenie .svc-grid > .svc-card{
    width:var(--v87-card-size)!important;
    height:var(--v87-card-size)!important;
    min-width:var(--v87-card-size)!important;
    max-width:var(--v87-card-size)!important;
    min-height:var(--v87-card-size)!important;
    max-height:var(--v87-card-size)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:var(--v87-card-pad)!important;
    border:var(--v87-border)!important;
    border-radius:0!important;
    background:var(--card)!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    overflow:hidden!important;
  }
  html body #p-home #home-svc .svc-card::before,
  html body #p-home .inner#home-svc .svc-card::before,
  html body #p-licenzii .svc-card::before,
  html body #p-obuchenie .svc-card::before{
    display:none!important;
    content:none!important;
  }

  html body #p-home #home-svc .svc-card .svc-ic,
  html body #p-home .inner#home-svc .svc-card .svc-ic,
  html body #p-licenzii .svc-card .svc-ic,
  html body #p-obuchenie .svc-card .svc-ic{
    font-size:var(--v87-card-icon)!important;
    line-height:1!important;
    height:auto!important;
    min-height:0!important;
    margin:0 0 var(--v87-card-icon-gap)!important;
    opacity:1!important;
    flex:0 0 auto!important;
  }

  /* Exact same title and description sizes on Home, Licensing and Training. */
  html body #p-home #home-svc .svc-card .svc-nm,
  html body #p-home .inner#home-svc .svc-card .svc-nm,
  html body #p-licenzii .svc-card .svc-nm,
  html body #p-obuchenie .svc-card .svc-nm{
    font-family:Inter!important;
    font-size:var(--v87-card-title)!important;
    line-height:var(--v87-card-title-lh)!important;
    font-weight:800!important;
    letter-spacing:.02em!important;
    text-transform:uppercase!important;
    color:var(--accent2)!important;
    margin:0 0 var(--v87-card-title-gap)!important;
    padding:0!important;
    max-width:100%!important;
    text-align:center!important;
    text-align-last:center!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  html body #p-home #home-svc .svc-card .svc-ds,
  html body #p-home .inner#home-svc .svc-card .svc-ds,
  html body #p-licenzii .svc-card .svc-ds,
  html body #p-obuchenie .svc-card .svc-ds{
    font-family:Inter!important;
    font-size:var(--v87-card-desc)!important;
    line-height:var(--v87-card-desc-lh)!important;
    font-weight:500!important;
    color:var(--sub)!important;
    margin:0!important;
    padding:0!important;
    max-width:100%!important;
    text-align:center!important;
    text-align-last:center!important;
    overflow:visible!important;
    display:block!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  /* Home lower CTA remains categorically removed. */
  html body #p-home .cta-strip,
  html body #p-home .lead-cta,
  html body #p-home .cta-box{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  /* Working-page CTA: one width and constant footer gap. */
  html body .page:not(#p-home):not(#p-choice) .cta-strip,
  html body .page:not(#p-home):not(#p-choice) .lead-cta,
  html body .page:not(#p-home):not(#p-choice) .cta-box{
    width:var(--v87-site-w)!important;
    max-width:var(--v87-site-w)!important;
    min-height:84px!important;
    padding:18px 30px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    margin-top:auto!important;
    margin-bottom:var(--v87-footer-gap)!important;
    box-sizing:border-box!important;
  }
}
/* Desktop v94 clean override
   Base: v87. Desktop only. Mobile media queries are not touched.
   Goal: one working width, one card component, one CTA component, no horizontal overflow.
*/

@media (min-width:901px){
  :root{
    --v94-site-w: min(1120px, calc(100vw - 160px));
    --v94-gap: 14px;
    --v94-card: calc((var(--v94-site-w) - (4 * var(--v94-gap))) / 5);
    --v94-card-pad: 16px;
    --v94-card-title: 14.5px;
    --v94-card-desc: 12.2px;
    --v94-body: 14px;
    --v94-title: 28px;
    --v94-subtitle: 20px;
    --v94-header-h: 64px;
    --v94-footer-gap: 1cm;
  }

  html,
  body{
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  html body *,
  html body *::before,
  html body *::after{
    box-sizing:border-box!important;
  }

  /* One site axis / one working width. */
  html body .inner,
  html body .hero-content,
  html body #home-svc,
  html body .article,
  html body .content,
  html body .page-content,
  html body .main-content,
  html body .section,
  html body .doc,
  html body .doc-wrap,
  html body .license-detail,
  html body .training-detail,
  html body .table-wrap,
  html body .choice-final-text,
  html body .choice-text-only,
  html body .contact-wrap,
  html body .contact-grid,
  html body .contact-card,
  html body .cta-strip,
  html body .lead-cta,
  html body .cta-box{
    width:var(--v94-site-w)!important;
    max-width:var(--v94-site-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  /* Do not let old fixed-height desktop rules crop pages on smaller desktop screens. */
  html body .page,
  html body #p-home,
  html body #p-licenzii,
  html body #p-obuchenie,
  html body #p-about,
  html body #p-clients,
  html body #p-contact,
  html body #p-choice{
    width:100%!important;
    max-width:100%!important;
    min-height:calc(100vh - 64px)!important;
    height:auto!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
  }

  /* Header: keep composition, align all visible text by the same lower line. */
  html body > nav{
    height:var(--v94-header-h)!important;
    min-height:var(--v94-header-h)!important;
    display:flex!important;
    align-items:flex-end!important;
    gap:18px!important;
    padding-top:0!important;
    padding-bottom:16px!important;
    padding-left:max(32px, calc((100% - var(--v94-site-w)) / 2))!important;
    padding-right:max(32px, calc((100% - var(--v94-site-w)) / 2))!important;
  }
  html body > nav .nav-logo,
  html body > nav .nav-main,
  html body > nav .nav-item,
  html body > nav .nbtn,
  html body > nav .nav-cta,
  html body > nav .lang,
  html body > nav .lang-switch,
  html body > nav .lang-switch a{
    align-self:flex-end!important;
    display:flex!important;
    align-items:flex-end!important;
    line-height:1!important;
    height:auto!important;
    min-height:0!important;
    margin-top:0!important;
    margin-bottom:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    transform:none!important;
  }
  html body > nav .nav-main{flex:1 1 auto!important;min-width:0!important;}
  html body > nav .nbtn{font-size:11px!important;}
  html body > nav .nav-cta{font-size:11px!important;white-space:nowrap!important;}

  /* Global typography scale. Biggest site text remains the home brand title from v87. */
  html body p,
  html body li,
  html body td,
  html body th,
  html body .pg-text,
  html body .pg-ul,
  html body .pg-ol,
  html body .card-body,
  html body .article p,
  html body .content p,
  html body .hero-sub,
  html body .hero-lead{
    font-family:Inter!important;
    font-size:var(--v94-body)!important;
    line-height:1.5!important;
  }
  html body .pg-title:not(#p-home .pg-title){
    font-size:var(--v94-title)!important;
    line-height:1.14!important;
  }
  html body .pg-h2{font-size:var(--v94-subtitle)!important;line-height:1.22!important;}

  /* Home: top area equals card grid width; remove left glow/stripe. */
  html body #p-home .hero{
    width:100%!important;
    padding:20px 0 16px!important;
    overflow:hidden!important;
  }
  html body #p-home .hero::before{display:none!important;content:none!important;}
  html body #p-home .hero-bg{
    background:radial-gradient(ellipse 60% 80% at 82% 40%,rgba(212,149,42,.045) 0%,transparent 60%)!important;
  }
  html body #p-home .hero-content,
  html body #p-home .hero-left,
  html body #p-home .stats-bar,
  html body #home-svc{
    width:var(--v94-site-w)!important;
    max-width:var(--v94-site-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  html body #p-home .hero-sub{
    max-width:var(--v94-site-w)!important;
  }

  /* One exact card component for Home / Licenses / Training. */
  html body #p-home #home-svc .svc-grid,
  html body #p-home .inner#home-svc .svc-grid,
  html body #p-licenzii .svc-grid,
  html body #p-obuchenie .svc-grid{
    display:grid!important;
    grid-template-columns:repeat(5, var(--v94-card))!important;
    grid-auto-rows:var(--v94-card)!important;
    gap:var(--v94-gap)!important;
    width:var(--v94-site-w)!important;
    max-width:var(--v94-site-w)!important;
    margin:18px auto 12px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    outline:0!important;
    justify-content:center!important;
    align-content:start!important;
    justify-items:stretch!important;
    align-items:stretch!important;
    overflow:visible!important;
  }

  html body #p-home #home-svc .svc-grid > .svc-card,
  html body #p-home .inner#home-svc .svc-grid > .svc-card,
  html body #p-licenzii .svc-grid > .svc-card,
  html body #p-obuchenie .svc-grid > .svc-card{
    width:var(--v94-card)!important;
    height:var(--v94-card)!important;
    min-width:var(--v94-card)!important;
    max-width:var(--v94-card)!important;
    min-height:var(--v94-card)!important;
    max-height:var(--v94-card)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:var(--v94-card-pad)!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:var(--card)!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    overflow:hidden!important;
  }
  html body #p-home #home-svc .svc-card::before,
  html body #p-home #home-svc .svc-card::after,
  html body #p-licenzii .svc-card::before,
  html body #p-licenzii .svc-card::after,
  html body #p-obuchenie .svc-card::before,
  html body #p-obuchenie .svc-card::after{
    display:none!important;
    content:none!important;
  }
  html body #p-home .svc-card .svc-ic,
  html body #p-licenzii .svc-card .svc-ic,
  html body #p-obuchenie .svc-card .svc-ic{
    font-size:22px!important;
    line-height:1!important;
    margin:0 0 10px!important;
    height:auto!important;
    flex:0 0 auto!important;
  }
  html body #p-home .svc-card .svc-nm,
  html body #p-licenzii .svc-card .svc-nm,
  html body #p-obuchenie .svc-card .svc-nm{
    font-family:Inter!important;
    font-size:var(--v94-card-title)!important;
    line-height:1.18!important;
    font-weight:800!important;
    letter-spacing:.01em!important;
    text-transform:uppercase!important;
    color:var(--accent2)!important;
    margin:0 0 8px!important;
    text-align:center!important;
    text-align-last:center!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  html body #p-home .svc-card .svc-ds,
  html body #p-licenzii .svc-card .svc-ds,
  html body #p-obuchenie .svc-card .svc-ds{
    font-family:Inter!important;
    font-size:var(--v94-card-desc)!important;
    line-height:1.32!important;
    font-weight:500!important;
    color:var(--sub)!important;
    margin:0!important;
    text-align:center!important;
    text-align-last:center!important;
    overflow:visible!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  /* Home lower CTA is forbidden. */
  html body #p-home .cta-strip,
  html body #p-home .lead-cta,
  html body #p-home .cta-box{
    display:none!important;
  }

  /* One CTA standard for all pages where it exists. */
  html body .page:not(#p-home):not(#p-choice) .cta-strip,
  html body .page:not(#p-home):not(#p-choice) .lead-cta,
  html body .page:not(#p-home):not(#p-choice) .cta-box{
    width:var(--v94-site-w)!important;
    max-width:var(--v94-site-w)!important;
    min-height:84px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    margin-top:auto!important;
    margin-bottom:var(--v94-footer-gap)!important;
    padding:18px 30px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:24px!important;
    text-align:left!important;
  }
  html body .page:not(#p-home):not(#p-choice) .cta-strip p,
  html body .page:not(#p-home):not(#p-choice) .lead-cta p,
  html body .page:not(#p-home):not(#p-choice) .cta-box p{
    font-size:var(--v94-body)!important;
    line-height:1.42!important;
    margin:0!important;
    max-width:720px!important;
  }
  html body .page:not(#p-home):not(#p-choice) .cta-strip .btn-p,
  html body .page:not(#p-home):not(#p-choice) .lead-cta .btn-p,
  html body .page:not(#p-home):not(#p-choice) .cta-box .btn-p{
    flex:0 0 auto!important;
    min-width:210px!important;
    height:40px!important;
    min-height:40px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    white-space:nowrap!important;
  }

  /* About / Clients: intro text and body text follow working-page standard; body copy justified. */
  html body #p-about .inner,
  html body #p-clients .inner{
    width:var(--v94-site-w)!important;
    max-width:var(--v94-site-w)!important;
  }
  html body #p-about p,
  html body #p-about li,
  html body #p-clients p,
  html body #p-clients li{
    font-size:var(--v94-body)!important;
    line-height:1.5!important;
    text-align:justify!important;
    text-align-last:auto!important;
  }
  html body #p-about .lead,
  html body #p-about .intro,
  html body #p-about .hero-lead,
  html body #p-clients .lead,
  html body #p-clients .intro,
  html body #p-clients .hero-lead{
    font-size:var(--v94-body)!important;
    line-height:1.5!important;
    font-weight:500!important;
  }

  /* Contacts: preserve compact v87-like composition, only prevent overflow. */
  html body #p-contact .inner,
  html body #p-contact .contact-wrap,
  html body #p-contact .contact-grid{
    width:var(--v94-site-w)!important;
    max-width:var(--v94-site-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  html body #p-contact .contact-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(320px,420px)!important;
    gap:24px!important;
  }

  /* Choice: standard site font, contained width, no decorative overflow. */
  html body.choice-page-body,
  html body #p-choice{
    overflow-x:hidden!important;
  }
  html body.choice-page-body .choice-final-shell,
  html body.choice-page-body .choice-final-state,
  html body.choice-page-body .choice-final-text-state{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  html body.choice-page-body .choice-final-text{
    width:var(--v94-site-w)!important;
    max-width:min(var(--v94-site-w), 760px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding:0!important;
    overflow:hidden!important;
    text-align:center!important;
  }
  html body.choice-page-body .choice-final-text h1,
  html body.choice-page-body .choice-final-text .choice-final-last,
  html body.choice-page-body .choice-final-text p{
    font-family:Inter!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    text-align:center!important;
  }
  html body.choice-page-body .choice-final-text h1{
    font-size:28px!important;
    line-height:1.16!important;
    font-weight:800!important;
    letter-spacing:-.01em!important;
    margin:0 0 18px!important;
    color:var(--gold)!important;
  }
  html body.choice-page-body .choice-final-text p{
    font-size:14px!important;
    line-height:1.5!important;
    margin:0 0 12px!important;
  }
  html body.choice-page-body .choice-final-text .choice-final-last{
    font-size:18px!important;
    line-height:1.25!important;
    font-weight:800!important;
    margin-top:16px!important;
    color:#fff!important;
  }
  html body.choice-page-body .choice-final-text h1::before,
  html body.choice-page-body .choice-final-text h1::after,
  html body.choice-page-body .choice-final-text .choice-final-last::after{
    max-width:100%!important;
  }
}

/* ===== consolidated from desktop-v94-footer-final.css (load order preserved) ===== */
/* GEC v94.03 FINAL FOOTER ALIGNMENT
   DESKTOP ONLY. Home above footer is LOCKED and untouched.
   Footer content uses the exact same dynamic horizontal inset as header.
*/
@media (min-width:901px){
  :root{
    --v9403-frame-x:max(32px, calc((100% - min(1120px, calc(100vw - 160px))) / 2));
  }
  html body footer{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:var(--v9403-frame-x)!important;
    padding-right:var(--v9403-frame-x)!important;
    box-sizing:border-box!important;
  }
}

/* ===== consolidated from desktop-v94-06-global-master.css (load order preserved) ===== */
/*
  GEC v94.06 — DESKTOP GLOBAL MASTER STANDARD
  Source: approved v94.03.
  STANDARD 001: Header + entire Home desktop remain LOCKED.
  STANDARD 002: Every RU/EN desktop page uses the approved master width.
  STANDARD 003: Home / Licensing / Training cards share one geometry.
  Mobile (<=900px) is untouched.
*/
@media (min-width:901px){
  :root{
    /* Exact approved desktop working span: Header content = approved CTA width. */
    --gec-master-max:1120px;
    --gec-master-side:80px;
    --gec-master-w:min(var(--gec-master-max), calc(100vw - (2 * var(--gec-master-side))));
    --gec-master-gap:14px;
    --gec-master-card:calc((var(--gec-master-w) - (4 * var(--gec-master-gap))) / 5);
    --gec-header-h:64px;
    --gec-footer-h:64px;
    --gec-cta-footer-gap:1cm;
  }

  html,body{overflow-x:hidden!important;}

  /* STANDARD 001: no visual change to approved Header/Home; only expose their exact span. */
  body > nav{
    padding-left:max(32px, calc((100% - var(--gec-master-w)) / 2))!important;
    padding-right:max(32px, calc((100% - var(--gec-master-w)) / 2))!important;
  }

  /* Footer is the same measurable span as Header content, not full viewport width. */
  body > footer{
    width:var(--gec-master-w)!important;
    max-width:var(--gec-master-w)!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  /* STANDARD 002: one width and one axis for every internal RU/EN desktop page. */
  .page:not(#p-home) > .inner,
  .page:not(#p-home) .article,
  .page:not(#p-home) .content,
  .page:not(#p-home) .page-content,
  .page:not(#p-home) .main-content{
    width:var(--gec-master-w)!important;
    max-width:var(--gec-master-w)!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  .page:not(#p-home) table,
  .page:not(#p-home) .table-wrap,
  .page:not(#p-home) .table-responsive,
  .page:not(#p-home) .hbox,
  .page:not(#p-home) form,
  .page:not(#p-home) .cta-strip{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* STANDARD 003: exact Home card module copied to Licensing and Training. */
  #p-licenzii > .inner,
  #p-obuchenie > .inner{
    width:var(--gec-master-w)!important;
    max-width:var(--gec-master-w)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    align-items:stretch!important;
  }

  #p-licenzii .svc-grid,
  #p-obuchenie .svc-grid{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    grid-auto-rows:var(--gec-master-card)!important;
    gap:var(--gec-master-gap)!important;
    justify-content:stretch!important;
    justify-items:stretch!important;
    align-content:start!important;
    align-items:stretch!important;
    background:transparent!important;
    border:0!important;
  }

  #p-licenzii .svc-grid > .svc-card,
  #p-obuchenie .svc-grid > .svc-card{
    width:100%!important;
    height:var(--gec-master-card)!important;
    min-height:var(--gec-master-card)!important;
    max-height:var(--gec-master-card)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:18px 16px!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }

  #p-licenzii .svc-ic,#p-obuchenie .svc-ic{
    font-size:22px!important;line-height:1!important;margin:0 0 12px!important;
  }
  #p-licenzii .svc-nm,#p-obuchenie .svc-nm{
    font-family:Inter!important;
    font-size:clamp(12px,.92vw,15px)!important;
    line-height:1.12!important;
    font-weight:800!important;
    letter-spacing:.04em!important;
    text-transform:uppercase!important;
    margin:0 0 10px!important;
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }
  #p-licenzii .svc-ds,#p-obuchenie .svc-ds{
    font-family:Inter!important;
    font-size:clamp(11px,.78vw,13px)!important;
    line-height:1.28!important;
    margin:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    display:-webkit-box!important;
    -webkit-line-clamp:4!important;
    -webkit-box-orient:vertical!important;
  }

  /* One CTA width and exactly 1 cm clear space before Footer on every CTA page. */
  .page:not(#p-home):has(.cta-strip) > .inner{
    min-height:calc(100dvh - var(--gec-header-h) - var(--gec-footer-h))!important;
    display:flex!important;
    flex-direction:column!important;
    padding-bottom:0!important;
    box-sizing:border-box!important;
  }
  .page:not(#p-home) .cta-strip{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    margin-bottom:var(--gec-cta-footer-gap)!important;
  }
  .page:not(#p-home):has(.cta-strip) .cta-strip:last-child{
    margin-top:auto!important;
  }
}


/* v95.1 — make the restored <h1 class="pg-label"> byte-equivalent to the former <div>
   in every browser (incl. no :has() support). font-weight is already 800!important,
   so only the UA h1 top-margin needs neutralising. Scoped to h1.pg-label only (render-verified identical to the broader .pg-label form
   across 16 pages x 2 widths, 0 differences), so it cannot touch the other 70 .pg-label. */
html body h1.pg-label{margin-top:0!important;}

@media (min-width:901px){
  /* v95.2 — STANDARD 008 CTA 1cm-to-footer fix applied at source (One CTA standard: margin-top:auto). */

  /* v95.2 — STANDARD 004/006: working-page body text spans the full site width (1120,
     removing the 1080 cap on about/clients) and is justified everywhere (certification etc.
     were left-aligned). Headings are intentionally left untouched. */
  html body .page:not(#p-home) .inner .pg-text,
  html body .page:not(#p-home) .inner .pg-ul,
  html body .page:not(#p-home) .inner .pg-ul li{max-width:none!important;text-align:justify!important;}

  /* v95.2 — sitemap block was top-anchored; centre it vertically in its column. */
  html body .page#p-sitemap .inner{justify-content:center!important;}
}

@media (min-width:901px){
  /* v95.3 — one rectangle, perfectly symmetric on every page.
     Single width constant = footer/header/CTA width: min(1120px, 100% - 160px).
     Horizontal centering now uses 100% (content box, scrollbar-excluded) instead of 100vw,
     so left and right margins are equal even when a scrollbar is present; and the scrollbar
     is always reserved so every page shares the exact same rectangle. */
  html{ overflow-y:scroll!important; }
}
