/*
 * Canonical component contracts, iteration 7.
 * Loaded last by the catalogue and assembled pages. Record sequencing and
 * one-off page heights stay outside this layer.
 */

/* The production play control is an asset, not a CSS glyph. */
.audit-link span{
  border:0!important;
  background:transparent url("assets/majesticons_play-cir.svg") center/cover no-repeat!important;
  color:transparent!important;
  font-size:0!important;
}
.audit-link span::before{content:none!important}
.battle-about nav button{
  width:35px;
  height:35px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent url("assets/majesticons_play-cir.svg") center/cover no-repeat;
}
.battle-about nav button img{display:none}
.back-to-top{
  width:50px;
  height:50px;
  border-radius:4px;
  background:#e68125;
  color:#fff;
}
.home-final-case{
  border:0;
  border-radius:0;
}
.review-shot-nav{
  display:none;
}

/* Production palette and typography tokens. These are component contracts:
   the assembled page and the catalogue must paint the same state. */
.home-copy{color:#000}
.home-copy .home-hero .hero-content>p,
.home-copy .home-about .about-copy>p,
.home-copy .home-about .about-copy li,
.home-copy .home-services .addon-grid p,
.home-copy .home-discount .discount-panel h3,
.home-copy .home-discount .discount-panel p,
.home-copy .home-contacts .contact-strip>div:first-child>p:not(.kicker){color:#000}
.home-copy .home-about .about-copy>p,
.home-copy .home-about .about-copy>p strong{color:#000!important}
.home-copy .home-benefits .info-card h3,
.home-copy .home-benefits .info-card p{color:#000}
.home-copy .home-reviews .video-card p{color:#1b1b1b}
.home-copy .home-case .case-details>p{color:#000;font-weight:500}
.home-copy .portfolio-case-card .case-details>p{font-weight:400}
.home-copy .case-stack[data-source-record="rec730479081"] .portfolio-case-card:first-child .case-details>p,
.home-copy .case-stack[data-source-record="rec730479081"] .portfolio-case-card:nth-child(2) .case-details>p:first-of-type{
  color:#000;
  font-weight:500;
}
.home-copy .case-stack[data-source-record="rec730479081"] .portfolio-case-card:nth-child(2) .case-details>p:nth-of-type(2),
.home-copy .case-stack[data-source-record="rec730479086"] .case-details>p,
.home-copy .case-stack[data-source-record="rec730479091"] .portfolio-case-card:nth-child(2) .case-details>p:not(:first-of-type){
  color:#1b1b1b;
  font-weight:400;
}
.home-copy .case-stack[data-source-record="rec730479091"] .portfolio-case-card:nth-child(2) .case-details>p{
  color:#1b1b1b;
  font-weight:500;
}
.home-copy .home-case[data-source-record="rec808196993"] .case-details>p:first-of-type{
  color:#1b1b1b;
  font-weight:400;
}
.home-copy .home-final-case .battle-case__copy>p{font-weight:500}
.home-copy .home-note{font-weight:500}
.home-copy .niche-strip{font-weight:500}
.home-copy .niche-strip a,
.home-copy .home-note a{font-weight:500}
.home-copy .battle-tariffs .price{font-weight:700}
.home-copy .battle-tariffs .kicker{font-weight:700}
.home-copy .battle-tariffs .tariff:not(.tariff--featured) h3,
.home-copy .battle-tariffs .tariff:not(.tariff--featured) .tariff-description,
.home-copy .battle-tariffs .tariff:not(.tariff--featured) .price{color:#000}
.home-copy .home-services .addon-grid h3{
  font-weight:600;
  line-height:29px;
}
.home-copy .home-services .addon-grid strong{
  font-family:"Montserrat-black",Arial,sans-serif;
  font-weight:700;
}
.home-copy .home-services .addon-grid article:nth-child(2) h3{color:#ff8562}
.home-copy .home-reviews .video-card h3 em,
.home-copy .home-reviews .wide-video-card h3 em,
.home-copy .portfolio-case-card h2 a{color:#ff8562}
.home-copy .home-reviews .video-card:nth-child(5) h3 em:first-of-type,
.home-copy .home-reviews .video-card:nth-child(6) h3 em{color:#e68125}
.home-copy .home-difference .difference-grid p{color:#1b1b1b}
.home-copy .home-difference .difference-grid article:nth-child(2)>p{color:#000}
.home-copy .home-difference .difference-links a:nth-child(2){font-weight:600}
.home-copy .home-footer .footer-email{color:#f09b4e!important;font-weight:500}
.home-copy .home-footer>.footer-legal p{color:#dadada!important}
.home-copy .home-footer>.footer-legal a{
  color:#e2e2e2!important;
  line-height:18px;
}

@media (min-width:1200px){
  /*
   * Additional-service card is a reusable measured grid. Production declares
   * its price as weight 400 in a black font family; comparing weight alone
   * made the rebuilt price visibly thin. Family + painted geometry are the
   * contract, while mobile/tablet keep their own flow layouts.
   */
  .home-copy .home-services .service-title>span{
    top:57px!important;
    transform:none;
    transform-origin:left center;
  }
  .home-copy .home-services .service-title>h2{
    /* This title remains position:relative; offset its measured 69px flow
       origin by 59px to reach production y=128. */
    top:59px!important;
    transform:scaleX(.97);
    transform-origin:left center;
  }
  .home-copy .home-services .addon-grid article{
    display:grid;
    min-height:335px;
    padding:23px 18px 22px;
    grid-template-rows:58px 17px 100px 20px 32px 12px 47px;
    align-content:start;
    gap:0;
  }
  .home-copy .home-services .addon-grid h3{
    position:relative;
    grid-row:1;
    height:58px;
    margin:0;
    padding:0;
    border:0;
    line-height:29px;
  }
  .home-copy .home-services .addon-grid h3::after{
    content:"";
    position:absolute;
    top:63px;
    left:0;
    width:108px;
    height:4px;
    background:#e68125;
  }
  .home-copy .home-services .addon-grid p{
    grid-row:3;
    height:100px;
    margin:0;
    line-height:25px;
  }
  .home-copy .home-services .addon-grid article:nth-child(1)>p{width:240px}
  .home-copy .home-services .addon-grid article:nth-child(2)>p{width:209px}
  .home-copy .home-services .addon-grid article:nth-child(3)>p{width:222px}
  .home-copy .home-services .addon-grid article:nth-child(4)>p{width:215px}
  .home-copy .home-services .addon-grid strong{
    grid-row:5;
    width:168px;
    height:32px;
    margin:0;
    font-size:24px;
    line-height:32px;
  }
  .home-copy .home-services .addon-grid .btn{
    grid-row:7;
    width:155px;
    min-width:155px;
    height:47px;
    min-height:47px;
    margin:0;
  }

  /*
   * Tariff cards share one responsive family, with three measured desktop
   * variants. Explicit grid columns stop long copy from changing card widths;
   * named content rhythm replaces Tilda's unrelated absolute atoms.
   */
  .home-copy .home-tariffs .battle-tariffs{
    grid-template-columns:390px 380px 390px;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff{
    width:auto;
    margin-left:0;
    transform:translateY(11px);
  }
  .home-copy .home-tariffs .battle-tariffs .tariff:nth-child(1){
    padding-right:28px;
    padding-left:62px;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff--featured{
    margin-left:0;
    padding-top:100px;
    padding-right:39px;
    padding-left:41px;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff:nth-child(3){
    margin-left:0;
    padding-right:15px;
    padding-left:53px;
  }
  .home-copy .home-tariffs .battle-tariffs .kicker{
    height:25px;
    font-size:15px;
    line-height:25px;
    letter-spacing:-1px;
  }
  .home-copy .home-tariffs .battle-tariffs h3{
    height:74px;
    margin:2px 0 29px;
    font-size:48px;
    line-height:74px;
    letter-spacing:-3px;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff--featured h3{
    margin-top:-9px;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff:nth-child(3) h3{
    margin-top:-7px;
    margin-bottom:10px;
  }
  .home-copy .home-tariffs .tariff-description{
    margin:0;
    font-size:16px;
    line-height:32px;
  }
  .home-copy .home-tariffs .tariff:nth-child(1) .tariff-description{width:300px}
  .home-copy .home-tariffs .tariff--featured .tariff-description{width:300px}
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-description{width:322px}
  .home-copy .home-tariffs .tariff-action{
    position:absolute;
    top:430px;
    left:57px;
    display:flex;
    height:94px;
    margin:0;
    align-items:flex-start;
    gap:15px;
  }
  .home-copy .home-tariffs .tariff--featured .tariff-action{
    top:482px;
    left:40px;
    gap:17px;
  }
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-action{
    top:430px;
    left:43px;
    gap:16px;
  }
  .home-copy .home-tariffs .tariff-action .btn{
    width:167px;
    min-width:167px;
    height:58px;
    min-height:58px;
    padding:0;
    border-radius:30px;
    font-size:14px;
    font-weight:600;
    line-height:21.7px;
  }
  .home-copy .home-tariffs .tariff--featured .tariff-action .btn{width:164px;min-width:164px}
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-action .btn{width:163px;min-width:163px}
  .home-copy .home-tariffs .price{
    position:relative;
    display:block;
    width:133px;
    height:auto;
    margin:16px 0 0;
    white-space:normal;
    font-size:30px;
    font-weight:700;
    line-height:47px;
    letter-spacing:-.5px;
  }
  .home-copy .home-tariffs .tariff--featured .price{
    width:159px;
    margin-top:18px;
  }
  .home-copy .home-tariffs .tariff:nth-child(3) .price{
    width:134px;
    margin-top:21px;
  }
  .home-copy .home-tariffs .price small{
    position:absolute;
    top:-14px;
    left:0;
    width:auto;
    margin:0;
    font-size:13px;
    line-height:13px;
    letter-spacing:normal;
  }
}

/* Two-layer headings must never crop the lower part of the watermark. */
.section-title,
.home-heading{
  overflow:visible;
}
.home-copy .section-title>span{
  font-weight:700;
}

/* Inline emphasis in process copy is a painted component state, not merely a
   link color. Production uses the orange underline as part of the hierarchy. */
.process-grid a{
  border-bottom:1px solid currentColor;
}

/* Case CTA typography is shared by every portfolio-card variant. */
.case-layout .case-copy>.btn,
.portfolio-case-card>.btn,
.battle-case__copy>.btn{
  color:#fff;
  font-size:14px;
  font-weight:400;
  line-height:21.7px;
}

/* Information badges belong to the final text line, not the card edge. */
.difference-grid article.has-info::after{content:none}
.difference-grid article.has-info p:last-of-type::after{
  content:"i";
  display:inline-grid;
  place-items:center;
  width:19px;
  height:19px;
  margin-left:8px;
  border:1px solid #1b1b1b;
  border-radius:50%;
  background:#e68125;
  color:#1b1b1b;
  font:600 13px/1 Arial,sans-serif;
  vertical-align:middle;
}

@media (min-width:1200px){
  /*
   * One two-layer heading component, with measured semantic variants.
   * The variables describe visual geometry; content and markup stay shared.
   */
  .home-heading{
    --heading-height:230px;
    --heading-watermark-top:44px;
    --heading-title-top:120px;
    height:var(--heading-height)!important;
    min-height:var(--heading-height)!important;
    margin-top:0!important;
    padding:0!important;
  }
  .home-heading>.container,
  .home-heading .section-title{
    height:100%;
    min-height:100%;
    padding:0;
  }
  .home-heading .section-title>span{
    top:var(--heading-watermark-top)!important;
    bottom:auto!important;
  }
  .home-heading .section-title>h2{
    position:absolute;
    top:var(--heading-title-top)!important;
    left:0;
  }
  .home-heading--benefits{
    --heading-height:270px;
    --heading-watermark-top:117px;
    --heading-title-top:194px;
  }
  .home-heading--benefits .section-title>span{
    transform:translateX(-8px);
  }
  .home-heading--benefits .section-title>h2{
    transform:translateX(-3px) scaleX(.973)!important;
  }
  .home-heading--reviews{
    --heading-height:200px;
    --heading-watermark-top:61px;
    --heading-title-top:133px;
    margin-top:30px!important;
  }
  .home-heading--reviews .section-title>span{
    transform:scaleX(1.019);
  }
  .home-heading--reviews .section-title>h2{
    transform:scaleX(.966);
  }
  .home-heading--process{
    --heading-height:175px;
    --heading-watermark-top:44px;
    --heading-title-top:114px;
  }
  .home-heading--process .section-title>span{
    transform:scaleX(1.028);
  }
  .home-heading--process .section-title>h2{
    transform:translateX(-3px) scaleX(.98);
  }
  .home-heading--pricing{
    --heading-height:212px;
    --heading-watermark-top:58px;
    --heading-title-top:128px;
  }
  .home-heading--pricing .section-title>span{
    transform:none;
  }
  .home-heading--pricing .section-title>h2{
    transform:scaleX(.957);
  }
  .home-heading--compact{
    --heading-height:140px;
    --heading-watermark-top:2px;
    --heading-title-top:74px;
  }
  .home-heading--compact .section-title>span{
    font-size:134px;
    line-height:134px;
    transform:translateX(-6px) scaleX(1.071);
  }
  .home-heading--compact .section-title>h2{
    font-size:51px;
    line-height:51px;
    transform:scaleX(1.023);
  }
  .home-heading--faq{
    --heading-height:180px;
    --heading-watermark-top:30px;
    --heading-title-top:116px;
    margin-top:60px!important;
  }
  .home-heading--faq .section-title>span{
    transform:translateX(-6px) scaleX(1.049);
  }
  .home-heading--faq .section-title>h2{
    transform:scaleX(.981);
  }

  /* A benefit card owns its inner geometry; text may wrap without overflow. */
  .home-benefits .battle-work-grid .info-card{
    padding:18px 12px 18px 29px;
    overflow:hidden;
  }
  .home-benefits .battle-work-grid .info-card h3{
    min-height:37px;
    margin:0 0 8px;
    font-size:24px;
    font-weight:600;
    line-height:29px;
    white-space:normal;
  }
  .home-benefits .battle-work-grid .info-card p{
    font-size:16px;
    line-height:22px;
  }
  .home-benefits{
    min-height:440px!important;
  }

  /* About is a content-driven grid: portrait and actions are real grid items. */
  .home-about .battle-about{
    display:grid;
    grid-template-columns:435px minmax(0,1fr);
    grid-template-rows:auto 1fr;
    gap:0;
    padding:12px 56px 0 0;
  }
  .home-about .about-copy{
    grid-column:2;
    grid-row:1;
    min-width:0;
  }
  .home-about .about-actions{
    grid-column:2;
    grid-row:2;
    align-self:end;
    margin-bottom:11px;
  }
  .home-about .about-mobile-portrait{
    position:static;
    z-index:2;
    grid-column:1;
    grid-row:1 / 3;
    align-self:end;
    justify-self:start;
    display:block;
    width:530px;
    height:555px;
    margin-left:-79px;
    max-width:none;
    object-fit:contain;
    object-position:center bottom;
    pointer-events:none;
  }
  .battle-about .about-copy h2{
    margin:0;
    padding-bottom:0;
    font-size:24px;
    font-weight:700;
    line-height:37px;
  }
  .battle-about .about-copy h2::after{
    top:35px;
    bottom:auto;
  }
  .battle-about .about-copy>p{
    font-size:16px!important;
    font-weight:400;
    line-height:22px!important;
  }
  .battle-about .about-copy>p:last-of-type{
    max-width:100%;
    font-weight:500;
  }
  .battle-about .about-copy li{
    line-height:19px;
  }
  .home-about .section-title>h2{
    transform:scaleX(.964);
    transform-origin:left center;
  }
  .home-about .section-title>span{
    transform:scaleX(1.049);
    transform-origin:left center;
  }
  .home-about .section-title>span{
    bottom:22px;
  }
  .battle-about nav a{
    font-size:16px;
    font-weight:600;
    line-height:21px;
  }

  /* The review surface is one band; grids themselves are transparent. */
  .home-reviews{
    position:relative;
    background:#fff!important;
  }
  .home-reviews::before{
    content:"";
    position:absolute;
    z-index:0;
    top:145px;
    right:0;
    left:0;
    height:891px;
    border-top:3px solid #e68125;
    border-bottom:3px solid #e68125;
    background:#ededed;
    pointer-events:none;
  }
  .home-reviews>*{
    position:relative;
    z-index:1;
  }
  .home-video-grid{
    border:0!important;
    background:transparent!important;
  }
  .home-video-grid .review-cta{
    padding-right:12px;
    padding-left:12px;
  }
  .home-wide-videos{
    background:transparent;
  }
  .review-shot-gallery{
    min-height:630px!important;
  }
  .home-video-grid .review-cta h3{
    width:264px;
    margin-top:20px;
    margin-left:0;
    font-size:42px;
    line-height:46px;
  }
  .home-video-grid .review-cta p{
    margin-top:41px;
  }
  .home-video-grid .review-cta .btn{
    margin-top:61px;
    font-size:14px;
    font-weight:600;
  }

  /* The process line is derived from the 60px marker centre. */
  .home-process{padding:0 0 86px}
  .process-grid article{
    min-height:428px;
    padding:27px 0;
  }
  .process-grid{
    grid-template-rows:428px 428px;
  }
  .process-grid::before{top:57px}
  .process-grid::after{top:485px}
  .process-grid h3{
    width:225px;
    max-width:100%;
    min-height:52px;
    margin:20px 0 32px;
    line-height:26px;
  }
  .process-grid article:nth-child(n+5) h3{
    margin-bottom:24px;
    line-height:24px;
  }
  .process-grid article:nth-child(5) h3{
    margin-bottom:26px;
  }
  .process-grid p{
    width:240px;
    max-width:100%;
  }

  .home-difference .difference-grid article{
    padding-right:10px;
    padding-bottom:24px;
  }
  .home-difference .difference-grid h3{
    font-size:24px;
    line-height:29px;
  }
  .home-difference .difference-links{
    justify-content:flex-start;
    gap:18px;
  }
  .home-services{
    min-height:590px!important;
  }

  /* Portfolio family: shared 430px visual card with content allowed to grow. */
  .niche-strip,
  .home-note{
    justify-content:flex-start;
    width:100%;
    padding-right:max(20px,calc((100vw - 1160px)/2));
    padding-left:max(20px,calc((100vw - 1160px)/2));
    text-align:left;
  }
  .niche-strip,
  .home-note[data-source-record="rec730479116"]{
    min-height:70px!important;
  }
  .home-note[data-source-record="rec730479124"]{
    min-height:100px!important;
  }
  .home-case[data-source-record="rec808197806"]{
    min-height:651px!important;
  }
  .home-case[data-source-record="rec808199276"]{
    min-height:611px!important;
  }
  .case-stack:not(.case-stack--large){
    padding:31px 0 27px;
  }
  .case-stack:not(.case-stack--large) .portfolio-case-card{
    min-height:430px!important;
    padding-top:35px;
    padding-bottom:35px;
  }
  .case-stack--large .portfolio-case-card:first-child{
    min-height:466px!important;
  }
  .case-stack--large .portfolio-case-card:nth-child(2){
    min-height:457px!important;
  }
  .case-stack--large{
    padding:66px 0 31px;
  }
  .case-stack--regional-pair .portfolio-case-card>img,
  .home-final-case .battle-case__body img{
    object-fit:contain;
  }

  /* The final portfolio variant uses the same measured shell and inner grid. */
  .home-final-case{
    min-height:500px!important;
    padding:31px 0 39px;
  }
  .home-final-case>.container{
    min-height:430px;
    padding:40px 28px 30px 50px;
  }
  .home-final-case>.container>h3{
    margin:0 0 16px;
    font-size:24px;
    line-height:30px;
    text-align:center;
  }
  .home-final-case .battle-case__body{
    grid-template-columns:652px minmax(0,1fr);
    gap:57px;
  }
  .home-final-case .battle-case__body>div:first-child>p{
    line-height:18px;
  }
  .home-final-case .battle-case__copy,
  .home-final-case .battle-case__copy li{
    line-height:16px;
  }

  /* Restore the visual contract that the generic flow reset had erased. */
  .home-discount.battle-discount{
    min-height:580px!important;
    padding:78px 0 0;
  }
  .home-footer{
    min-height:240px!important;
  }
}

@media (min-width:1200px){
  /* Wide production uses a single-line foreground heading. */
  .home-heading .section-title>h2{
    white-space:nowrap;
  }
  .home-difference .difference-grid h3{
    white-space:nowrap;
  }
  .home-process .process-grid{
    width:1252px;
    max-width:none;
    margin-right:0;
    margin-left:max(20px,calc((100vw - 1160px)/2));
    grid-template-columns:repeat(4,313px);
  }
}

@media (max-width:1199px){
  .home-reviews{background:#fff}
  .home-video-grid{border:0;background:transparent}
  .home-about .battle-about{
    display:grid;
    grid-template-columns:302px minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);
    width:610px;
    height:1086px;
    min-height:1086px;
    gap:0;
    margin-right:auto;
    margin-left:auto;
    padding:18px 24px 0;
  }
  .home-about .about-copy{
    grid-column:1 / -1;
    grid-row:1;
    min-width:0;
  }
  .home-about .about-actions{
    grid-column:2;
    grid-row:2;
    align-self:end;
    margin:0 0 24px;
  }
  .home-about .about-actions nav{
    display:flex;
    height:330px;
    flex-direction:column;
    align-items:flex-start;
    justify-content:space-around;
  }
  .home-about .about-mobile-portrait{
    position:static;
    z-index:2;
    grid-column:1;
    grid-row:2;
    align-self:end;
    justify-self:start;
    display:block;
    width:331px;
    height:470px;
    max-width:none;
    object-fit:contain;
    object-position:center bottom;
  }
  .home-about .battle-about ul{
    display:flex;
    flex-direction:column;
  }
  .home-about .battle-about .about-fact--proof{order:1}
  .home-about .battle-about .about-fact--hard-niches{order:2}
  .home-about .battle-about .about-fact--builders{order:3}
  .home-about .battle-about .about-fact--budgets{order:4}
  .home-about .battle-about .about-fact--federal{order:5}
  .home-about .battle-about .about-fact--leadership{order:6}
}

@media (min-width:641px) and (max-width:1199px){
  .home-heading .section-title>span{
    top:-9px;
    left:57px;
  }
  .home-heading .section-title>h2{
    top:21px;
    left:57px;
    width:min(620px,calc(100% - 80px));
  }
  .home-about .section-title{
    height:184px;
    min-height:184px;
  }
}

/*
 * Static desktop shells. Their inner components remain flow/grid based; these
 * values only preserve the measured whitespace carried by the production
 * record. Every shell has verified spare space below its last painted child.
 */
@media (min-width:1200px){
  .home-case[data-source-record="rec730479078"],
  .home-case[data-source-record="rec808196993"]{
    min-height:571px!important;
  }
  .case-stack[data-source-record="rec730479081"]{
    min-height:1081px!important;
  }
  .case-stack[data-source-record="rec730479086"]{
    min-height:980px!important;
  }
  .case-stack[data-source-record="rec730479091"]{
    min-height:982px!important;
  }
  .home-reviews[data-source-record="rec838515986"]{
    padding-bottom:36px;
  }
  .review-shot-gallery[data-source-record="rec730479110"]{
    min-height:629.375px!important;
  }
  .niche-strip[data-source-record="rec730479076"],
  .home-note[data-source-record="rec730479116"]{
    min-height:69.796875px!important;
  }
  .home-note[data-source-record="rec730479124"]{
    min-height:99.796875px!important;
  }
  .home-faq[data-source-record="rec730479132"]{
    min-height:1098.046875px!important;
  }
}

@media (max-width:640px){
  .home-copy:has(.mobile-menu-demo[open]) .lead-fabs{
    visibility:hidden;
  }
  .home-copy .mobile-menu-panel .mobile-menu-logo,
  .home-copy .mobile-menu-panel .mobile-menu-logo img{
    width:267px;
  }
  .niche-strip[data-source-record="rec730479076"]{
    min-height:137.75px!important;
  }
  .home-note[data-source-record="rec730479116"]{
    min-height:114.5625px!important;
  }
  .home-note[data-source-record="rec730479124"]{
    min-height:167.75px!important;
  }
  .case-stack[data-source-record="rec730479091"]{
    min-height:1512px!important;
  }
  .case-stack[data-source-record="rec730479081"]{
    min-height:1625px!important;
  }
}

@media (max-width:640px){
  .back-to-top{display:none}
  .home-heading{padding:0!important}
  .home-heading>.container,
  .home-heading .section-title{
    height:100%;
    min-height:0;
    padding:0;
  }
  .home-heading .section-title>h2{
    left:-4px;
    width:calc(100% + 2px);
    font-size:30px;
    line-height:32px;
    text-align:center;
  }
  .home-heading--process{
    min-height:183px!important;
    margin-top:0!important;
  }
  .home-heading--benefits .section-title>h2{top:75px}
  .home-heading--reviews .section-title>span{top:64px}
  .home-heading--reviews .section-title>h2{top:124px}
  .home-heading--process .section-title>span{top:47px}
  .home-heading--process .section-title>h2{top:70px}
  .home-heading--pricing .section-title>span{top:59px}
  .home-heading--pricing .section-title>h2{top:87px;font-size:32px}
  .home-heading--compact .section-title>h2{top:64px}
  .home-heading--faq .section-title>h2{top:46px}
  .home-about .section-title>h2{
    top:61px;
  }
  .home-about .battle-about{
    display:flex;
    width:auto;
    min-height:0;
    gap:0;
    padding:9px 24px 0;
    flex-direction:column;
  }
  .home-about .about-copy{
    flex:none;
  }
  .home-about .about-actions{
    margin:0;
    flex:none;
  }
  .home-about .about-mobile-portrait{
    position:static;
    width:350px;
    height:391px;
    margin-top:-35px;
    margin-left:-58px;
  }
  .home-about .battle-about .about-actions nav{
    display:grid;
    height:auto;
    grid-template-columns:127px 105px;
    column-gap:8px;
  }
  .home-about .battle-about ul{
    display:flex;
    flex-direction:column;
  }
  .home-about .battle-about .about-fact--proof{order:1}
  .home-about .battle-about .about-fact--federal{order:2}
  .home-about .battle-about .about-fact--leadership{order:3}
  .home-about .battle-about .about-fact--builders{order:4}
  .home-about .battle-about .about-fact--budgets{order:5}
  .home-about .battle-about .about-fact--hard-niches{order:6}
  .home-video-grid .video-card h3{
    max-width:100%;
  }

  .home-heading--benefits{
    min-height:170px!important;
  }
  .home-heading--reviews{
    min-height:190px!important;
  }
  .home-heading--pricing{
    min-height:140px!important;
  }
  .home-heading--compact{
    min-height:180px!important;
  }
  .home-heading--faq{
    min-height:150px!important;
  }
  .review-shot-gallery{
    position:relative;
    display:block!important;
    min-height:198px!important;
    padding:40px 0 54px;
    background:#fff;
  }
  .review-shot-gallery>.container{
    display:block;
    width:236px;
    height:104px;
    margin-inline:auto;
  }
  .review-shot-gallery article{
    display:none;
    width:236px;
    height:104px;
    margin:0;
  }
  .review-shot-gallery article.is-active{
    display:block;
  }
  .review-shot-gallery article img{
    width:236px;
    height:104px;
    object-fit:cover;
  }
  .review-shot-gallery article p{
    display:none;
  }
  .review-shot-gallery .review-shot-nav{
    position:absolute;
    top:77px;
    z-index:2;
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    padding:0 0 3px;
    border:2px solid #e68125;
    border-radius:50%;
    background:#fff;
    color:#e68125;
    font:400 30px/1 Arial,sans-serif;
    cursor:pointer;
  }
  .review-shot-nav--prev{left:5px}
  .review-shot-nav--next{right:5px}
  .niche-strip{
    min-height:138px!important;
  }
  .home-note[data-source-record="rec730479116"]{
    min-height:115px!important;
  }
  .home-note[data-source-record="rec730479124"]{
    min-height:168px!important;
  }
  .home-faq{
    min-height:1192px!important;
  }
  .home-case>.case-layout{
    width:300px;
    max-width:calc(100% - 20px);
  }
  .home-case--list{
    min-height:865px!important;
  }
  .home-case--prose{
    min-height:855px!important;
  }
  .case-stack--large{
    min-height:1625px!important;
  }
  .case-stack--regional-pair>.container{
    gap:27px!important;
  }
  .case-stack--compact-copy>.container{
    gap:66px!important;
  }
  .home-case--dense-heading>.case-layout{
    padding-top:14px;
    padding-bottom:21px;
  }
  .home-case--dense-heading .case-copy h2{
    font-size:18px;
    line-height:21px;
  }

  .home-final-case{
    min-height:850px!important;
    padding:42px 0 10px;
  }
  .home-final-case>.container{
    width:calc(100% - 18px);
    min-height:769px;
    margin-inline:auto;
    padding:36px 11px 52px;
  }
  .home-final-case>.container>h3{
    margin:0 0 38px;
    font-size:18px;
    line-height:20px;
    text-align:center;
  }
  .home-final-case .battle-case__body{
    gap:22px;
  }
  .home-final-case .battle-case__body>div:first-child>p{
    margin-bottom:14px;
    font-size:16px;
    line-height:19px;
    text-align:center;
  }
  .home-final-case .battle-case__copy>.btn{
    display:flex;
    width:212px;
    margin-inline:auto;
  }

  .home-discount.battle-discount{
    min-height:520px!important;
    padding:40px 0 0;
  }
  .home-discount .discount-title{
    width:302px;
    max-width:calc(100% - 18px);
  }
  .home-discount.battle-discount .discount-title>span{
    top:-28px;
    left:50%;
    font-size:32px;
    line-height:36px;
    transform:translateX(-50%);
  }
  .home-discount .discount-title h2{
    margin:74px 0 21px;
    font-size:32px;
    line-height:32px;
    white-space:nowrap;
  }
  .home-discount .discount-panel{
    display:block;
    width:300px;
    max-width:calc(100% - 20px);
    min-height:164px;
    padding:14px 24px;
    text-align:center;
  }
  .home-discount .discount-panel h3{
    margin:0 0 14px;
    font-size:24px;
    line-height:28px;
    white-space:nowrap;
  }
  .home-discount .discount-panel .btn{
    position:absolute;
    top:370px;
    left:51px;
    width:219px;
    height:56px;
    margin:0;
  }
  .home-footer{
    min-height:590px!important;
  }
}

/* Constructor chrome is a real responsive component, not an always-rendered
   state specimen. Closed details must not leak their panels into layout. */
.site-header-demo .menu-dropdown:not([open])>.services-mega,
.site-header-demo .mobile-menu-demo:not([open])>.mobile-menu-panel{
  display:none!important;
}

/* УНИВЕРСАЛЬНО, а не по списку известных случаев (2026-08-06).
   Правило выше перечисляло два конкретных `details` — выпадашку меню и мобильную
   панель. На главной FAQ собран на `.faq details`, в этот список не попал, и
   содержимое ВСЕХ девяти закрытых вопросов рисовалось поверх соседних: ответ
   первого вопроса вылезал на 529 px и накрывал следующие три. Дефект жил
   незамеченным, потому что главная единственная из 58 страниц была без
   traceability-манифеста и не попадала в пакетный гейт.
   Перечисление потомков всегда пропускает того, о ком не подумали, поэтому
   правило теперь общее: закрытый `details` не отдаёт в поток ничего, кроме
   своего `summary`. Открытому это не мешает. */
details:not([open]) > *:not(summary){
  display:none!important;
}

@media (max-width:900px){
  .site-header-demo>nav{
    display:none!important;
  }
}

/* Oversized watermark text is intentionally cropped by the viewport, exactly
   as on production; it must never increase the document scrollable width. */
/* Horizontal clipping belongs to the document viewport only.  Applying any
   non-visible overflow-x to BODY couples its computed overflow-y to `auto`.
   On desktop BODY is 49 px taller than HTML, so Chromium paints a second,
   independently scrollable rail.  HTML remains the sole scrolling element;
   BODY must not become a scroll container. */
html{
  max-width:100%;
  overflow-x:clip;
}
body{max-width:100%}

/*
 * Canonical tablet contracts.
 *
 * home-copy-v5-flow deliberately removes legacy artboard heights.  At the
 * tablet breakpoint that generic reset used to win over the measured
 * production composition and silently changed every following section.
 * These rules describe the reusable tablet variants at the final cascade
 * layer: shells own their rhythm, cards own their intrinsic layout.
 */
@media (min-width:641px) and (max-width:1199px){
  .home-benefits{
    min-height:440px!important;
    padding:14px 0 0;
    overflow:hidden;
  }
  .home-benefits .battle-work-grid{
    width:1160px;
    margin:0 0 0 84px;
    grid-template-columns:repeat(3,360px);
    grid-template-rows:repeat(2,162px);
    gap:56px 40px;
  }
  .home-benefits .info-card{
    width:360px;
    height:162px;
    min-height:162px;
  }

  .home-heading[data-source-record="rec730479066"]{
    min-height:260px!important;
  }
  .home-heading[data-source-record="rec730479108"]{
    min-height:250px!important;
    margin-top:30px;
  }
  .home-heading[data-source-record="rec730479114"]{
    min-height:215px!important;
  }
  .home-heading[data-source-record="rec730479120"]{
    min-height:170px!important;
  }
  .home-heading[data-source-record="rec730479127"]{
    min-height:180px!important;
  }
  .home-heading[data-source-record="rec730479131"]{
    min-height:190px!important;
    margin-top:60px;
  }

  .niche-strip[data-source-record="rec730479076"],
  .home-note[data-source-record="rec730479116"]{
    min-height:94.6px!important;
  }
  .home-note[data-source-record="rec730479124"]{
    min-height:124.6px!important;
  }

  .home-case{
    overflow:visible;
  }
  .home-case>.case-layout{
    width:618px;
    max-width:calc(100% - 80px);
    padding:36px 56px;
    gap:40px;
  }
  .home-case .case-copy h2{
    font-size:24px;
    font-weight:600;
    line-height:29px;
  }
  .home-case .case-copy h2 a{
    display:inline-block;
    font-weight:700;
    transform:scaleX(.95);
    transform-origin:center;
  }
  .home-case .case-layout>img{
    width:461px;
    height:267px;
    margin-inline:auto;
    object-fit:cover;
    object-position:center;
  }
  .home-case .case-details p,
  .home-case .case-details ul{
    font-size:16px;
    line-height:23px;
  }
  .home-case .case-details{
    position:relative;
    width:534px;
    border-top-color:transparent;
  }
  .home-case .case-details::before{
    content:"";
    position:absolute;
    top:-4px;
    left:0;
    width:156px;
    height:4px;
    background:#e68125;
  }
  .home-case .case-details p{
    width:514px;
    font-weight:500;
    line-height:22px;
  }
  .home-case .case-copy>.btn{
    width:212px;
    min-width:212px;
    height:55px;
    margin-top:-24px;
    margin-right:auto;
    margin-left:auto;
  }
  .home-case[data-source-record="rec730479078"]{
    min-height:871px!important;
  }
  .home-case[data-source-record="rec808197806"]{
    min-height:791px!important;
  }
  .home-case[data-source-record="rec808199276"]{
    min-height:701px!important;
  }
  .home-case[data-source-record="rec808196993"]{
    min-height:871px!important;
  }

  .case-stack[data-source-record="rec730479081"]{
    min-height:1711px!important;
    padding:65px 0 31px;
  }
  .case-stack[data-source-record="rec730479081"]>.container{
    width:619px;
    gap:60px;
  }
  .case-stack[data-source-record="rec730479081"] .portfolio-case-card{
    width:619px;
    padding:42px 58px;
  }
  .case-stack[data-source-record="rec730479081"] .portfolio-case-card:first-child{
    height:742px!important;
  }
  .case-stack[data-source-record="rec730479081"] .portfolio-case-card:nth-child(2){
    height:813px!important;
  }
  .case-stack[data-source-record="rec730479081"] .portfolio-case-card:first-child>img{
    height:267px;
  }
  .case-stack[data-source-record="rec730479081"] .portfolio-case-card:nth-child(2)>img{
    height:308px;
  }

  .case-stack[data-source-record="rec730479086"]{
    min-height:1362px!important;
    padding:30px 0 32px;
  }
  .case-stack[data-source-record="rec730479086"]>.container{
    width:620px;
    gap:50px;
  }
  .case-stack[data-source-record="rec730479086"] .portfolio-case-card{
    width:620px;
    padding:36px 48px;
  }
  .case-stack[data-source-record="rec730479086"] .portfolio-case-card:first-child{
    height:650px!important;
  }
  .case-stack[data-source-record="rec730479086"] .portfolio-case-card:nth-child(2){
    height:600px!important;
  }
  .case-stack[data-source-record="rec730479086"] .portfolio-case-card>img{
    height:229px;
  }

  .case-stack[data-source-record="rec730479091"]{
    min-height:1032px!important;
    padding:30px 0 18px;
  }
  .case-stack[data-source-record="rec730479091"]>.container{
    width:620px;
    gap:60px;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card{
    display:grid;
    width:620px;
    padding:38px 34px;
    grid-template-columns:270px 258px;
    grid-template-rows:auto 1fr auto;
    gap:14px 16px;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card:first-child{
    height:430px!important;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card:nth-child(2){
    height:494px!important;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card h2{
    grid-column:1/-1;
    grid-row:1;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card>img{
    grid-column:2;
    grid-row:2;
    width:258px;
    height:174px;
    order:initial;
    object-fit:contain;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card .case-details{
    grid-column:1;
    grid-row:2/4;
    order:initial;
  }
  .case-stack[data-source-record="rec730479091"] .portfolio-case-card>.btn{
    grid-column:2;
    grid-row:3;
    order:initial;
    justify-self:start;
  }
  .home-final-case[data-source-record="rec730479096"]{
    min-height:726px!important;
    padding:0;
  }

  .home-reviews[data-source-record="rec838515986"]{
    position:relative;
    min-height:3130px!important;
    padding:36px 0 0;
    overflow:hidden;
    background:#fff!important;
  }
  .home-reviews[data-source-record="rec838515986"]::before{
    content:"";
    position:absolute;
    z-index:0;
    top:139px;
    right:0;
    left:0;
    height:1857px;
    border-top:3px solid #e68125;
    border-bottom:3px solid #e68125;
    background:#ededed;
    pointer-events:none;
  }
  .home-reviews[data-source-record="rec838515986"]>*{
    position:relative;
    z-index:1;
  }
  .home-reviews .home-video-grid{
    width:564px;
    margin-inline:auto;
    padding:0;
    grid-template-columns:repeat(2,225px);
    grid-template-rows:547px 547px 582px 1fr;
    gap:0 74px;
    background:transparent;
  }
  .home-reviews .home-video-grid .video-card{
    width:225px;
    margin-left:0!important;
  }
  .home-reviews .home-video-grid .video-frame{
    height:362px;
  }
  .home-reviews .home-video-grid .video-card h3{
    margin:0;
  }
  .home-reviews .home-video-grid .video-card:nth-child(1) h3{height:78px}
  .home-reviews .home-video-grid .video-card:nth-child(2) h3{height:75px}
  .home-reviews .home-video-grid .video-card:nth-child(3) h3{height:76px}
  .home-reviews .home-video-grid .video-card:nth-child(4) h3{height:77px}
  .home-reviews .home-video-grid .video-card:nth-child(5) h3{height:79px}
  .home-reviews .home-video-grid .video-card:nth-child(6) h3{height:77px}
  .home-reviews .home-video-grid .video-card:nth-child(7) h3{height:55px}
  .home-reviews .home-video-grid .video-card:nth-child(1) .video-frame{
    width:212px;
    height:359px;
  }
  .home-reviews .home-video-grid .video-card:nth-child(3) .video-frame{
    width:221px;
    height:364px;
    margin-left:1px;
  }
  .home-reviews .home-video-grid .video-card:nth-child(5) .video-frame{
    width:221px;
    height:343px;
  }
  .home-reviews .home-video-grid .video-card:nth-child(6) .video-frame{
    width:225px;
    height:352px;
    margin-left:8px;
  }
  .home-reviews .home-video-grid .video-card:nth-child(7) .video-frame{
    height:292px;
  }
  .home-reviews .home-video-grid .review-cta{
    position:relative;
    width:302px;
    height:433px;
    min-height:433px;
    margin:0 0 0 -7px;
    padding:0;
    background:#e68125;
  }
  .home-reviews .home-video-grid .review-cta .competition-dots{
    position:absolute;
    top:18px;
    left:15px;
  }
  .home-reviews .home-video-grid .review-cta>b{
    position:absolute;
    top:89px;
    left:15px;
    width:280px;
    font-size:16px;
    line-height:26px;
  }
  .home-reviews .home-video-grid .review-cta h3{
    position:absolute;
    top:126px;
    left:15px;
    width:283px;
    height:72px;
    margin:0;
    font-size:32px;
    line-height:36px;
    letter-spacing:-1px;
  }
  .home-reviews .home-video-grid .review-cta p{
    position:absolute;
    top:221px;
    left:20px;
    width:282px;
    height:87px;
    margin:0;
    font-size:16px;
    line-height:29px;
  }
  .home-reviews .home-video-grid .review-cta .btn{
    position:absolute;
    top:331px;
    left:23px;
    width:259px;
    height:58px;
    margin:0;
    font-size:14px;
    line-height:21.7px;
  }
  .home-reviews .home-wide-videos{
    position:absolute;
    top:2179px;
    left:50%;
    display:grid;
    width:621px;
    margin:0;
    grid-template-columns:1fr;
    gap:43px;
    transform:translateX(-50%);
  }
  .home-reviews .home-wide-videos .wide-video-card h3{
    width:396px;
    min-height:0;
    margin:0 0 26px 4px;
    line-height:21px;
  }
  .home-reviews .home-wide-videos .wide-video-card:nth-child(2) h3{
    margin-bottom:19px;
  }
  .home-reviews .home-wide-videos .wide-video{
    width:621px;
    height:333px;
  }
  .home-reviews .home-wide-videos .wide-video-card>p{
    margin:24px 2px 0;
    line-height:21px;
  }

  .review-shot-gallery[data-source-record="rec730479110"]{
    min-height:470.7px!important;
    padding-block:38px;
  }
  .home-process[data-source-record="rec730479115"]{
    position:relative;
    min-height:1282px!important;
    padding:0;
  }
  .home-process[data-source-record="rec730479115"]::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:4px;
    background:#e68125;
  }
  .home-process .process-grid{
    display:block;
    padding-top:32px;
  }
  .home-process .process-grid article{
    min-height:0;
    padding:20px 0 0 80px;
  }
  .home-process .process-grid article:nth-child(1){height:159px}
  .home-process .process-grid article:nth-child(2){height:161px}
  .home-process .process-grid article:nth-child(3){height:140px}
  .home-process .process-grid article:nth-child(4){height:142px}
  .home-process .process-grid article:nth-child(5){
    height:157px;
    padding-top:15px;
  }
  .home-process .process-grid article:nth-child(6){height:164px}
  .home-process .process-grid article:nth-child(7){height:163px}
  .home-process .process-grid article:nth-child(8){height:164px}
  .home-process .process-grid article>span{
    top:0;
    left:0;
    z-index:1;
  }
  .home-process .process-grid article:not(:last-child)::after{
    top:30px;
    bottom:-30px;
    left:30px;
  }
  .home-process .process-grid h3,
  .home-process .process-grid p{
    width:522px;
  }
  .home-tariffs[data-source-record="rec730479121"]{
    min-height:1865px!important;
    padding-block:48px;
  }
  .home-services[data-source-record="rec730479123"]{
    min-height:1100px!important;
    padding-block:48px;
  }
  .home-services .service-title{
    margin-top:0;
  }
  .home-faq[data-source-record="rec730479132"]{
    min-height:860.5px!important;
    padding-bottom:55px;
    overflow:hidden;
  }
  .home-contacts[data-source-record="rec730479135"]{
    min-height:520px!important;
    padding-block:48px;
  }
  .home-discount[data-source-record="rec730479136"]{
    min-height:600px!important;
    padding-block:40px 70px;
  }

  .home-footer{
    position:relative;
    display:block;
    width:100%;
    min-height:270px!important;
    padding:0;
  }
  .home-footer .footer-brand,
  .home-footer .footer-main,
  .home-footer .footer-contact-row{
    display:block;
    transform:none;
  }
  .home-footer .site-logo{
    position:absolute;
    top:65px;
    left:75px;
    width:220px;
    margin:0;
  }
  .home-footer .site-logo::before{font-size:20px}
  .home-footer .site-logo::after{
    font-size:18px;
    border-width:2px;
  }
  .home-footer .youtube-link{
    position:absolute;
    top:113px;
    left:75px;
    transform:none;
  }
  .home-footer .footer-nav{
    position:absolute;
    top:68px;
    left:313px;
    display:flex;
    gap:24px;
    padding:0;
    transform:none;
  }
  .home-footer .footer-socials{
    position:absolute;
    top:112px;
    left:205px;
    display:flex;
    gap:18px;
  }
  .home-footer .footer-email{
    position:absolute;
    top:116px;
    left:508px;
  }
  .home-footer>.footer-legal{
    position:absolute;
    top:169px;
    left:75px;
    display:grid;
    width:260px;
    gap:17px;
  }
}

/*
 * Footer desktop contract. The legacy page positions these groups inside one
 * centred 1160px artboard; this expresses the same relationship through a
 * single responsive coordinate system instead of independent Tilda atoms.
 */
@media (min-width:1200px){
  .home-copy .home-footer{
    position:relative;
    display:block;
    width:100%;
    min-height:240px!important;
    padding:0;
  }
  .home-copy .home-footer .footer-brand,
  .home-copy .home-footer .footer-main,
  .home-copy .home-footer .footer-contact-row{
    display:block;
    transform:none;
  }
  .home-copy .home-footer .site-logo{
    position:absolute;
    top:55px;
    left:max(18px,calc((100% - 1160px)/2 - 2px));
    width:285px;
    margin:0;
  }
  .home-copy .home-footer .youtube-link{
    position:absolute;
    top:128px;
    left:max(18px,calc((100% - 1160px)/2 - 1px));
    margin:0;
    transform:none;
  }
  .home-copy .home-footer .footer-nav{
    position:absolute;
    top:64.6px;
    left:max(360px,calc((100% - 1160px)/2 + 372px));
    display:grid;
    width:498px;
    padding:0;
    grid-template-columns:83px 65px 71px 79px 50px;
    column-gap:40px;
    transform:none;
  }
  .home-copy .home-footer .footer-nav a{
    width:100%;
    padding-left:6px;
    font-size:16px!important;
    font-weight:500!important;
    line-height:24.8px!important;
  }
  .home-copy .home-footer .footer-nav a:last-child{
    padding-left:8px;
  }
  .home-copy .home-footer .footer-socials{
    position:absolute;
    top:147px;
    left:max(512px,calc((100% - 1160px)/2 + 532px));
    display:flex;
    gap:24px;
  }
  .home-copy .home-footer .footer-socials a,
  .home-copy .home-footer .footer-socials img{
    width:24px;
    height:24px;
  }
  .home-copy .home-footer .footer-email{
    position:absolute;
    top:146px;
    left:max(632px,calc((100% - 1160px)/2 + 693px));
    width:180px;
    height:24px;
    border-bottom:1px solid #f09b4e;
    font-size:16px!important;
    font-weight:400;
    line-height:24px;
    text-decoration:none;
  }
  .home-copy .home-footer>.footer-legal{
    position:absolute;
    top:67px;
    left:max(890px,calc((100% - 1160px)/2 + 951px));
    display:block;
    width:254px;
    transform:none;
  }
  .home-copy .home-footer>.footer-legal a{
    display:block;
    width:207px;
    height:18px;
    font-size:12px!important;
    line-height:18px;
  }
  .home-copy .home-footer>.footer-legal p{
    position:absolute;
    top:38px;
    left:0;
    width:254px;
    height:48px;
    margin:0;
    font-size:12px!important;
    line-height:16px;
  }
}

/* Final mobile shell ownership: this must remain after the general mobile
   component layer so rounded legacy minima cannot re-expand the records. */
@media (max-width:640px){
  /*
   * Canonical 320px site chrome.
   * These coordinates describe the shared footer composition, not a page
   * patch: every rebuilt page reuses the same component and mobile contract.
   */
  .home-copy .site-header-demo .mobile-menu-demo>summary{
    position:fixed;
    top:16px;
    right:16px;
    display:block;
    width:48px;
    height:48px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#fff;
    box-shadow:0 4px 20px rgba(0,0,0,.08);
  }
  .home-copy .site-header-demo .mobile-menu-demo:not([open])>summary i{
    position:absolute;
    left:14px;
    display:block;
    width:20px;
    height:2px;
    margin:0;
    background:#e68125;
    transform:none;
  }
  .home-copy .site-header-demo .mobile-menu-demo:not([open])>summary i:nth-child(1){top:17px}
  .home-copy .site-header-demo .mobile-menu-demo:not([open])>summary i:nth-child(2){top:23px}
  .home-copy .site-header-demo .mobile-menu-demo:not([open])>summary i:nth-child(3){top:29px}
  .home-copy .site-header-demo .mobile-menu-demo[open]>summary{
    top:16px;
    right:8px;
    width:48px;
    height:48px;
  }
  .home-copy .site-header-demo .mobile-menu-demo[open]>summary i{
    top:23px;
    left:12px;
  }

  .home-copy .home-footer{
    position:relative;
    display:block;
    width:100%;
    min-height:590px!important;
    padding:0;
    overflow:hidden;
  }
  .home-copy .home-footer .footer-brand,
  .home-copy .home-footer .footer-main,
  .home-copy .home-footer .footer-contact-row{
    display:block;
    transform:none;
  }
  .home-copy .home-footer .site-logo{
    position:absolute;
    top:98px;
    left:57px;
    display:flex;
    width:206px;
    height:30px;
    margin:0;
    align-items:center;
    white-space:nowrap;
  }
  .home-copy .home-footer .site-logo::before{
    font-size:23px;
    line-height:30px;
    letter-spacing:-.035em;
  }
  .home-copy .home-footer .site-logo::after{
    height:22px;
    margin-left:5px;
    padding:0 3px;
    border-width:2px;
    border-radius:5px;
    font-size:18px;
    line-height:18px;
  }
  .home-copy .home-footer .youtube-link{
    position:absolute;
    top:159px;
    left:11px;
    display:flex!important;
    width:97px;
    height:21px;
    gap:3px!important;
    align-items:center;
    transform:none;
    font-family:Arial,sans-serif;
    font-size:18px!important;
    font-weight:700;
    line-height:21px;
    letter-spacing:-1.2px;
    white-space:nowrap;
  }
  .home-copy .home-footer .youtube-link b{
    flex:0 0 29px;
    width:29px;
    height:20px;
    border-radius:5px;
    font-size:12px;
    line-height:20px;
  }
  .home-copy .home-footer .footer-nav{
    position:absolute;
    top:158px;
    left:237px;
    display:grid;
    width:83px;
    height:auto;
    padding:0;
    gap:13px;
    transform:none;
  }
  .home-copy .home-footer .footer-nav a{
    display:block;
    width:max-content;
    min-width:0;
    height:25px;
    padding:0;
    font-size:16px;
    font-weight:500;
    line-height:25px;
    white-space:nowrap;
  }
  .home-copy .home-footer .footer-nav a:last-child{
    display:block;
  }
  .home-copy .home-footer .footer-socials{
    position:absolute;
    top:223px;
    left:11px;
    display:flex;
    width:78px;
    height:24px;
    margin:0;
    gap:30px;
    transform:none;
  }
  .home-copy .home-footer .footer-socials a,
  .home-copy .home-footer .footer-socials img{
    flex:0 0 24px;
    width:24px;
    height:24px;
  }
  .home-copy .home-footer .footer-email{
    position:absolute;
    top:357px;
    left:11px;
    display:block;
    width:180px;
    height:24px;
    margin:0;
    border-bottom:1px solid #f09b4e;
    font-size:16px;
    font-weight:500;
    line-height:24px;
    text-decoration:none;
    transform:none;
    white-space:nowrap;
  }
  .home-copy .home-footer>.footer-legal{
    position:absolute;
    top:420px;
    left:11px;
    display:block;
    width:298px;
    height:85px;
    margin:0;
    gap:0;
    transform:none;
  }
  .home-copy .home-footer>.footer-legal a{
    display:block;
    width:max-content;
    height:18px;
    font-size:12px;
    font-weight:400;
    line-height:18px;
    white-space:nowrap;
  }
  .home-copy .home-footer>.footer-legal p{
    position:absolute;
    top:31px;
    left:0;
    width:273px;
    height:54px;
    margin:0;
    font-size:12px;
    font-weight:400;
    line-height:18px;
  }

  .niche-strip[data-source-record="rec730479076"]{
    min-height:137.75px!important;
  }
  .home-note[data-source-record="rec730479116"]{
    min-height:114.5625px!important;
  }
  .home-note[data-source-record="rec730479124"]{
    min-height:167.75px!important;
  }
  .case-stack[data-source-record="rec730479091"]{
    min-height:1512px!important;
  }
  .case-stack[data-source-record="rec730479086"]{
    min-height:1450px!important;
  }
  .home-process[data-source-record="rec730479115"]{
    min-height:1330px!important;
    overflow:hidden;
  }
  .home-process .process-grid{
    position:relative;
    display:block;
  }
  .home-process .process-grid::before{
    content:"";
    position:absolute;
    display:block;
    z-index:1;
    top:35px;
    left:22px;
    width:2px;
    height:1160px;
    background:#e68125;
  }
  .home-process .process-grid article{
    min-height:0;
  }
  .home-process .process-grid article:nth-child(1){height:175px}
  .home-process .process-grid article:nth-child(2){height:173px}
  .home-process .process-grid article:nth-child(3){height:141px}
  .home-process .process-grid article:nth-child(4){height:152px}
  .home-process .process-grid article:nth-child(5){height:173px}
  .home-process .process-grid article:nth-child(6){height:180px}
  .home-process .process-grid article:nth-child(7){height:181px}
  .home-process .process-grid article:nth-child(8){height:155px}
  .home-process .process-grid article::after{content:none}
  .home-process .process-grid article>span{z-index:2}
  .home-process .process-grid article:nth-child(1)>span{top:10px}
  .home-process .process-grid article:nth-child(2)>span{top:11px}
  .home-process .process-grid article:nth-child(3)>span{top:13px}
  .home-process .process-grid article:nth-child(4)>span{top:11px}
  .home-process .process-grid article:nth-child(5)>span{top:22px}
  .home-process .process-grid article:nth-child(6)>span{top:14px}
  .home-process .process-grid article:nth-child(7)>span{top:15px}
  .home-process .process-grid article:nth-child(8)>span{top:14px}

  /*
   * Measured mobile tariff family. The card shell remains one reusable,
   * fixed-height component; per-tier custom properties describe its content
   * rhythm instead of reproducing Tilda's unrelated absolute atoms.
   */
  .home-copy .home-tariffs .battle-tariffs .tariff{
    --tariff-content-x:8px;
    --tariff-kicker-y:69px;
    --tariff-description-gap:15px;
    --tariff-description-width:250px;
    --tariff-price-y:298px;
    --tariff-button-y:371px;
    display:block;
    padding:0 var(--tariff-content-x);
    background:#ededed;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff--featured{
    --tariff-content-x:13px;
    --tariff-kicker-y:87px;
    --tariff-description-gap:0px;
    --tariff-description-width:249px;
    --tariff-price-y:301px;
    --tariff-button-y:372px;
    background:#e68125;
  }
  .home-copy .home-tariffs .battle-tariffs .tariff:nth-child(3){
    --tariff-content-x:10px;
    --tariff-kicker-y:72px;
    --tariff-description-gap:8px;
    --tariff-description-width:267px;
    --tariff-price-y:344px;
    --tariff-button-y:399px;
  }
  .home-copy .home-tariffs .competition-dots{
    position:absolute;
    top:14px;
    right:10px;
    display:flex;
    width:auto;
    height:49px;
    margin:0;
    align-items:flex-start;
    justify-content:flex-end;
    gap:10px;
  }
  .home-copy .home-tariffs .tariff:nth-child(1) .competition-dots{
    right:18px;
  }
  .home-copy .home-tariffs .tariff--featured .competition-dots{
    top:16px;
    gap:12px;
  }
  .home-copy .home-tariffs .competition-dots i{
    flex:0 0 auto;
    margin-top:6px;
  }
  .home-copy .home-tariffs .competition-dots i:nth-child(2){
    margin-top:0;
  }
  .home-copy .home-tariffs .tariff:nth-child(3) .competition-dots{
    top:8px;
  }
  .home-copy .home-tariffs .tariff:nth-child(3) .competition-dots i{
    margin-top:0;
  }
  .home-copy .home-tariffs .kicker{
    height:25px;
    margin:var(--tariff-kicker-y) 0 0;
    font-size:16px;
    line-height:25px;
    letter-spacing:-1px;
    white-space:nowrap;
  }
  .home-copy .home-tariffs .tariff:nth-child(1) .kicker{width:292px}
  .home-copy .home-tariffs .tariff--featured .kicker{width:276px}
  .home-copy .home-tariffs .tariff:nth-child(3) .kicker{width:290px}
  .home-copy .home-tariffs .battle-tariffs h3{
    height:56px;
    margin:0;
    font-size:32px;
    line-height:56px;
    letter-spacing:-2px;
  }
  .home-copy .home-tariffs .tariff-description,
  .home-copy .home-tariffs .tariff:nth-child(1) .tariff-description,
  .home-copy .home-tariffs .tariff--featured .tariff-description,
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-description{
    width:var(--tariff-description-width);
    height:auto;
    margin:var(--tariff-description-gap) 0 0 5px;
    font-size:14px;
    line-height:28px;
  }
  .home-copy .home-tariffs .tariff--featured .tariff-description,
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-description{
    margin-left:0;
  }
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-description{
    margin-left:3px;
  }
  .home-copy .home-tariffs .tariff-action,
  .home-copy .home-tariffs .tariff--featured .tariff-action,
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-action{
    position:absolute;
    inset:0;
    display:block;
    width:auto;
    height:auto;
    margin:0;
  }
  .home-copy .home-tariffs .price,
  .home-copy .home-tariffs .tariff--featured .price,
  .home-copy .home-tariffs .tariff:nth-child(3) .price{
    position:absolute;
    top:var(--tariff-price-y);
    left:14px;
    display:flex;
    width:auto;
    height:36px;
    margin:0;
    align-items:center;
    gap:16px;
    white-space:nowrap;
    font-size:23px;
    line-height:36px;
    letter-spacing:0;
  }
  .home-copy .home-tariffs .price small{
    position:static;
    width:auto;
    margin:0;
    font-size:13px;
    line-height:20px;
  }
  .home-copy .home-tariffs .tariff-action .btn,
  .home-copy .home-tariffs .tariff--featured .tariff-action .btn,
  .home-copy .home-tariffs .tariff:nth-child(3) .tariff-action .btn{
    position:absolute;
    top:var(--tariff-button-y);
    left:22px;
    width:236px;
    min-width:236px;
    height:50px;
    min-height:50px;
    padding:0;
    border-radius:30px;
    font-size:14px;
    font-weight:600;
    line-height:21.7px;
  }
}
/* Unified navigation contract.
 * One semantic nav is reused at every viewport; the burger changes only its
 * layout/state, so crawlers and users receive the same links and megamenu.
 */
.site-header-demo .menu-toggle{
  display:none;
  border:0;
  background:transparent;
  cursor:pointer;
}
.site-header-demo .menu-toggle i{
  display:block;
  width:22px;
  height:2px;
  border-radius:2px;
  background:#e68125;
  transition:transform .2s ease,opacity .2s ease;
}
.home-copy .home-footer .footer-email,
.home-copy .home-footer .footer-email:link,
.home-copy .home-footer .footer-email:visited,
.home-copy .home-footer .footer-email:hover,
.home-copy .home-footer .footer-email:focus{
  border-bottom:0!important;
  text-decoration:none!important;
}
@media(max-width:900px){
  body.menu-locked{overflow:hidden}
  body.menu-locked .lead-fabs{display:none!important}
  .site-header-demo .menu-toggle{
    position:fixed;
    top:14px;
    right:14px;
    z-index:1202;
    display:grid;
    width:46px;
    height:46px;
    padding:13px 12px;
    align-content:center;
    gap:5px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 4px 20px rgba(0,0,0,.16);
  }
  .site-header-demo.is-menu-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:1198;
    background:rgba(0,0,0,.78);
  }
  .site-header-demo.is-menu-open .menu-toggle{
    background:transparent;
    box-shadow:none;
  }
  .site-header-demo.is-menu-open .menu-toggle i{
    position:absolute;
    top:22px;
    left:12px;
    width:24px;
  }
  .site-header-demo.is-menu-open .menu-toggle i:nth-child(1){transform:rotate(45deg)}
  .site-header-demo.is-menu-open .menu-toggle i:nth-child(2){opacity:0}
  .site-header-demo.is-menu-open .menu-toggle i:nth-child(3){transform:rotate(-45deg)}
  .site-header-demo>nav{
    display:none!important;
  }
  .site-header-demo.is-menu-open>nav{
    position:fixed!important;
    inset:0 0 0 auto!important;
    z-index:1199;
    display:flex!important;
    width:min(360px,100vw)!important;
    height:100dvh;
    min-height:0!important;
    margin:0!important;
    padding:104px 26px 190px!important;
    overflow-x:hidden;
    overflow-y:auto;
    flex-direction:column;
    flex-wrap:nowrap!important;
    align-content:stretch!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:5px!important;
    background:#fff;
    transform:none!important;
  }
  .site-header-demo.is-menu-open .site-logo{
    position:fixed;
    top:31px;
    right:min(82px,calc(100vw - 238px));
    z-index:1201;
    display:block!important;
    width:221px!important;
    max-width:calc(100vw - 92px);
    margin:0;
  }
  .site-header-demo.is-menu-open .site-logo img{
    width:100%!important;
    height:auto;
  }
  .site-header-demo.is-menu-open>nav>a,
  .site-header-demo.is-menu-open>nav>.menu-dropdown>summary{
    display:block;
    width:100%;
    padding:11px 4px;
    border-bottom:1px solid #f09b4e;
    color:#e68125;
    font-size:16px;
    font-weight:500;
    line-height:22px;
    text-align:left;
  }
  .site-header-demo.is-menu-open .menu-dropdown{
    width:100%;
  }
  .site-header-demo.is-menu-open .menu-dropdown>summary::after{
    content:"+"!important;
    float:right;
    color:#e68125;
    font-size:20px;
  }
  .site-header-demo.is-menu-open .menu-dropdown[open]>summary::after{
    content:"−"!important;
  }
  .site-header-demo.is-menu-open .menu-dropdown>div.services-mega{
    position:static!important;
    display:grid;
    width:100%!important;
    min-height:0!important;
    margin:0;
    padding:18px 4px 8px!important;
    grid-template-columns:1fr!important;
    gap:24px!important;
    border:0;
    border-radius:0;
    box-shadow:none;
    transform:none!important;
  }
  .site-header-demo.is-menu-open .services-mega__column--wide ul{
    columns:1;
  }
  .site-header-demo.is-menu-open .services-mega__column h2,
  .site-header-demo.is-menu-open .services-mega__column .services-mega__title{
    text-align:left;
  }
  .site-header-demo.is-menu-open .header-socials{
    position:fixed;
    right:28px;
    bottom:88px;
    z-index:1200;
    display:flex!important;
    gap:14px;
    margin:0!important;
  }
  .site-header-demo.is-menu-open .header-consult{
    position:fixed;
    right:22px;
    bottom:25px;
    z-index:1200;
    display:grid!important;
    width:min(316px,calc(100vw - 44px));
    height:46px;
    margin:0!important;
    border-width:3px;
    background:#fff;
  }
}


/* ══════════════════════════════════════════════════════════════════════════
   ДИЗАЙН-ПРАВКИ ПО РЕВИЗИИ 2026-08-12

   Найдено осмотром страниц во всю ширину, а не гейтом: гейт проверяет
   корректность (наложения, пустоты, клиппинг) и молчит, когда вёрстка
   технически исправна, но выглядит сломанной.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 2. Первый экран новых страниц: 340 px пустоты внизу ─────────────────────
   `.yandex-hero` несёт боевую высоту под первый экран с фотографией и списком
   преимуществ. У новых страниц содержимого меньше — заголовок, абзац и кнопка, —
   и низ секции оставался пустым, что читается как обрыв вёрстки. */
.sh1-hero--new { min-height: 0; padding: 46px 0 54px; }
.sh1-hero--new .yandex-container {
  min-height: 0;
  display: block;
}
.sh1-hero--new h1 { margin: 0 0 16px; }
.sh1-hero--new .sh1-hero__lead {
  margin: 0 0 24px;
  max-width: 780px;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(15,15,15,.85);
}

/* ── 3. Видеоотзывы: чёрные плиты 854×1518 вместо роликов ────────────────────
   `.kb-review__video` не имел размеров, растягивался на всю колонку и уводил
   секцию отзывов в 3193 px высоты. Ставим боевую пропорцию ролика 225×392. */
.kb-reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}
.kb-review { display: grid; gap: 10px; }
.kb-review__who { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.4; }
.kb-review__video {
  display: grid;
  place-items: center;
  width: 100%;
  max-width: 225px;
  aspect-ratio: 225 / 392;
  border-radius: 12px;
  background: #1b1b1b;
  color: rgba(255, 255, 255, .55);
  font-size: 12px;
}
.kb-reviews__cta {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
  padding: 22px 26px;
  border-radius: 18px;
  background: var(--sh1-accent, #e68125);
  color: #fff;
}
.kb-reviews__cta b { font-size: 18px; }
.kb-reviews__cta p { margin: 0; flex: 1 1 260px; font-size: 15px; }
.kb-reviews__cta .sh1-btn { background: #fff; color: #1b1b1b; }

/* ── 4. Ритм секций на собранных страницах ────────────────────────────────────
   Блоки библиотеки шли вплотную: заголовок следующей секции начинался сразу
   под карточками предыдущей. Одинаковая отбивка задаёт ритм чтения. */
.sh1-block { padding: 44px 0; }
.sh1-block + .sh1-block { padding-top: 0; }
.sh1-block > .yandex-container > h2 {
  margin: 0 0 22px;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.2;
}

@media (max-width: 900px) {
  .kb-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .kb-reviews { grid-template-columns: minmax(0, 1fr); }
  .kb-review__video { max-width: 100%; }
  .sh1-block { padding: 32px 0; }
}


/* ── Добор по ревизии: боевые правила перебивали правки выше ─────────────────
   Замер после первой правки показал, что у `nav` осталось `flex-wrap:nowrap`,
   а у контейнера первого экрана — заданная высота 559 px. Оба значения приходят
   из боевых правил с большей специфичностью, поэтому здесь они перебиваются
   явно. Это тот случай, когда !important оправдан: мы не «продавливаем стиль»,
   а снимаем унаследованное ограничение, несовместимое с другим содержимым. */
.home-copy .sh1-hero--new .yandex-container,
.sh1-hero--new .yandex-container {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
}
.home-copy .sh1-hero--new,
.sh1-hero--new {
  height: auto !important;
  min-height: 0 !important;
}

/* ── Шапка: меню ведёт себя как на бою (2026-08-12, переделано) ──────────────
   Первая попытка чинить наезд меню на иконки сделала `nav` флексом с переносом
   и своей шириной. Это сломало шапку на ВСЕХ страницах: меню уехало влево и
   налезло на логотип. Замер боевой шапки показал, что там `nav` — это ОБЫЧНЫЙ
   БЛОК с инлайновыми ссылками, которые переносятся сами: 14 px, две строки,
   пункты кончаются на 925 при иконках на 982.

   Поэтому здесь ровно одно изменение: возвращаем боевой режим отображения.
   Флекс без переноса и был причиной, по которой пункты вылезали за границу
   контейнера и ложились на иконки. */
.site-header-demo > nav {
  display: block;
  text-align: center;
  line-height: 1.35;
  /* Занимать доступную ширину, а не долю от флекса. Без этого меню получало
     720 px и переносилось на вторую строку даже на 1920, где места хватает
     с запасом; вторая строка падала на заголовок первого экрана — 54 страницы
     с наложением. На 1440 ширины действительно не хватает, и перенос там
     остаётся: ровно как на бою. */
  flex: 1 1 auto;
  min-width: 0;
}
.site-header-demo > nav > a {
  display: inline-block;
  margin: 0 7px;
  font-size: 14px;
  white-space: nowrap;
}

/* Выпадашка «Услуги» внутри меню была блочной и занимала всю ширину nav,
   отбрасывая «Кейсы» и «Контакты» на третью строку — та ложилась на заголовок
   первого экрана (54 страницы с наложением). Внутри строки меню она обязана
   вести себя как пункт, а не как блок. */
.site-header-demo > nav > .menu-dropdown {
  display: inline-block;
  width: auto;
  vertical-align: top;
}
.site-header-demo > nav > .menu-dropdown > summary {
  display: inline-block;
  margin: 0 7px;
  font-size: 14px;
  white-space: nowrap;
  cursor: pointer;
  list-style: none;
}

@media (max-width: 1360px) {
  /* Между 900 и 1360 меню, логотип, иконки и кнопка перестают помещаться в
     строку. Сжимаем меню, а на самой узкой ступени убираем иконки мессенджеров:
     они продублированы плавающими кнопками, и потеря там нулевая, тогда как
     наезд пунктов меню на иконки — заметный дефект. */
  .site-header-demo > nav > a,
  .site-header-demo > nav > .menu-dropdown > summary { margin: 0 5px; font-size: 13px; }
}
@media (max-width: 1200px) {
  .site-header-demo .header-socials { display: none; }
}
