/* ============================================================
   css/ptt-landing.css
   wp-content/themes/ptt-urc/css/ptt-landing.css
   ============================================================ */

:root{
  --red:#b71918; --red-light:#e0444b;
  --purple:#393185; --purple-light:#5a51a8;
  --orange:#ef7f1a; --orange-light:#f79a44;
  --black:#070807;
  --body-color:#171719; --gray:#70727d; --gray-light:#a4a8ad; --gray-dark:#47494e;
  --border:#eaeaea;
  --border-strong:#c9ccd1;
  --grad-red:linear-gradient(270deg,#e0444b 5%,#b71918 95%);
  --grad-purple:linear-gradient(270deg,#5a51a8 5%,#393185 95%);
  --grad-orange:linear-gradient(270deg,#f79a44 5%,#ef7f1a 95%);

  --fs-n2:clamp(.694rem, .159vw + .657rem, .8rem);
  --fs-n1:clamp(.833rem, .25vw + .775rem, 1rem);
  --fs-0:clamp(1rem, .376vw + .912rem, 1.25rem);
  --fs-1:clamp(1.2rem, .545vw + 1.072rem, 1.5625rem);
  --fs-2:clamp(1.44rem, .771vw + 1.259rem, 1.953rem);
  --fs-3:clamp(1.728rem, 1.072vw + 1.477rem, 2.441rem);
  --fs-4:clamp(2.074rem, 1.47vw + 1.729rem, 3.052rem);
  --fs-5:clamp(2.488rem, 1.993vw + 2.021rem, 3.815rem);
  --fs-6:clamp(2.986rem, 2.678vw + 2.358rem, 4.768rem);
  --fs-7:clamp(3.583rem, 3.572vw + 2.746rem, 5.96rem);
  --fs-8:clamp(4.3rem, 4.734vw + 3.19rem, 7.45rem);

  --sp-3xs:clamp(.25rem, .188vw + .206rem, .375rem);
  --sp-2xs:clamp(.5rem, .376vw + .412rem, .75rem);
  --sp-xs:clamp(.75rem, .563vw + .618rem, 1.125rem);
  --sp-s:clamp(1rem, .751vw + .824rem, 1.5rem);
  --sp-m:clamp(1.5rem, 1.127vw + 1.236rem, 2.25rem);
  --sp-l:clamp(2rem, 1.502vw + 1.648rem, 3rem);
  --sp-xl:clamp(3rem, 2.254vw + 2.472rem, 4.5rem);
  --sp-2xl:clamp(4rem, 3.005vw + 3.296rem, 6rem);
  --sp-3xl:clamp(6rem, 4.507vw + 4.944rem, 9rem);

  --gutter:clamp(.75rem, 1.127vw + .486rem, 1.5rem);
  --header-height:clamp(4rem, 3.4vw + 2.9rem, 6.75rem);
  --wrapper-padding:var(--sp-xs);
  --wrapper-max:90rem;
  --easing:cubic-bezier(.17,.67,.3,1.33);
  --easing2:cubic-bezier(.77,0,.175,1);
  --font-body:'Manrope',system-ui,-apple-system,sans-serif;
  --font-head:'Chakra Petch',system-ui,-apple-system,sans-serif;
}
@media (min-width:1024px){ :root{ --header-height:clamp(3.5rem, 2.5vw + 2rem, 4.5rem); } }

/* ============ ГЛОБАЛЬНЫЕ СБРОСЫ ============ */
body.page-ptt-landing,
body.page-ptt-landing *,
body.page-ptt-landing *::before,
body.page-ptt-landing *::after{box-sizing:border-box}

body.page-ptt-landing{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--fs-0);
  font-weight:400;
  line-height:1.5;
  color:var(--body-color);
  background:#070807;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.page-ptt-landing h1,
body.page-ptt-landing h2,
body.page-ptt-landing h3,
body.page-ptt-landing h4,
body.page-ptt-landing h5,
body.page-ptt-landing h6{margin:0 0 var(--sp-s); font-family:var(--font-head); font-weight:600; text-transform:uppercase; line-height:1.1;}
body.page-ptt-landing p{margin:0 0 var(--sp-s)}
body.page-ptt-landing a{color:inherit;text-decoration:none}
body.page-ptt-landing img,
body.page-ptt-landing video{display:inline-block;max-width:100%;height:auto;vertical-align:middle}
body.page-ptt-landing button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
body.page-ptt-landing ul{margin:0;padding:0;list-style:none}

.wrapper{width:100%; max-width:var(--wrapper-max); margin:0 auto; padding-left:var(--wrapper-padding); padding-right:var(--wrapper-padding);}

/* ============ ХЕДЕР ============ */
.header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:transparent;
  color:#fff;
  border-bottom:1px solid #fff;
  transition:transform .4s var(--easing2), background .4s ease, color .4s ease, border-color .4s ease;
}
.header:hover,
.header.is-scrolled{
  background:#fff;
  color:#171719;
  border-bottom-color:var(--border);
}
.header.is-hidden{transform:translate3d(0,-100%,0)}
.header__inner{display:flex; align-items:stretch; height:var(--header-height)}
.header__logo{display:flex; align-items:center; padding-right:var(--wrapper-padding)}
.logo-header{display:flex; align-items:center; height:100%; padding:0 var(--wrapper-padding);}
.logo-header img,
.logo-header > svg{width:clamp(120px, 32vw, 180px); height:auto; display:block;}
@media (min-width:1024px){
  .logo-header img,
  .logo-header > svg{width:180px;}
}
.header__center{flex:1; display:none; justify-content:center;}
@media (min-width:1024px){ .header__center{display:flex} }
.nav-header__list{display:flex; align-items:stretch}
.nav-header__item{display:flex; position:relative}
.header__right{display:flex; align-items:stretch; margin-left:auto; gap:.5rem;}

body.page-ptt-landing .btn-header{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:100%;
  padding:0 var(--sp-s);
  color:currentColor;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.2;
  font-weight:500;
  background:transparent;
  transition:color .3s ease, background .3s ease;
  white-space:nowrap;
  text-transform:none;
}
@media (min-width:1024px){
  body.page-ptt-landing .btn-header{font-size:15px;}
}
@media (min-width:1440px){
  body.page-ptt-landing .btn-header{font-size:16px;}
}

body.page-ptt-landing .btn-header:hover,
body.page-ptt-landing .btn-header.is-active{color:var(--purple); background:#fff}
body.page-ptt-landing .btn-header::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--purple); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; z-index:1;}
body.page-ptt-landing .btn-header:hover::before,
body.page-ptt-landing .btn-header.is-active::before{transform:scaleX(1)}
body.page-ptt-landing .btn-header--line::after,
body.page-ptt-landing .btn-header--line .btn-header__line-l,
body.page-ptt-landing .btn-header--line .btn-header__line-r{content:""; position:absolute; top:0; bottom:0; width:1px; background:var(--border); opacity:0; transition:opacity .3s ease;}
body.page-ptt-landing .btn-header--line .btn-header__line-l{left:0}
body.page-ptt-landing .btn-header--line .btn-header__line-r{right:0}
body.page-ptt-landing .btn-header--line:hover .btn-header__line-l,
body.page-ptt-landing .btn-header--line:hover .btn-header__line-r{opacity:1}

body.page-ptt-landing .btn-header--phone{padding:0 var(--sp-s); gap:.55em;}
body.page-ptt-landing .btn-header--phone .btn-header__icon-phone{width:1.15em; height:1.15em; flex-shrink:0; position:relative; z-index:2;}
body.page-ptt-landing .btn-header--phone .btn-header__label{position:relative; z-index:2;}
@media (max-width:767px){
  body.page-ptt-landing .btn-header--phone{padding:0 .6rem;}
  body.page-ptt-landing .btn-header--phone .btn-header__label{display:none;}
  body.page-ptt-landing .header__right .header__burger{padding:0 .6rem;}
  body.page-ptt-landing .header__inner{padding-right:var(--sp-xs);}
}

body.page-ptt-landing .btn-header--red{color:#fff; padding:0 var(--sp-m);}
body.page-ptt-landing .header:hover .btn-header--red,
body.page-ptt-landing .header:hover .btn-header--phone,
body.page-ptt-landing .header.is-scrolled .btn-header--red,
body.page-ptt-landing .header.is-scrolled .btn-header--phone{color:#171719;}
body.page-ptt-landing .btn-header--red::before,
body.page-ptt-landing .btn-header--phone::before{display:none}
body.page-ptt-landing .btn-header--red::after,
body.page-ptt-landing .btn-header--phone::after{content:""; position:absolute; inset:0; background:var(--grad-orange); opacity:0; z-index:1; transition:opacity .4s ease; pointer-events:none;}
body.page-ptt-landing .header .btn-header--red:hover,
body.page-ptt-landing .header .btn-header--phone:hover,
body.page-ptt-landing .header:hover .btn-header--red:hover,
body.page-ptt-landing .header:hover .btn-header--phone:hover,
body.page-ptt-landing .header.is-scrolled .btn-header--red:hover,
body.page-ptt-landing .header.is-scrolled .btn-header--phone:hover{color:#fff; background:transparent;}
body.page-ptt-landing .header .btn-header--red:hover::after,
body.page-ptt-landing .header .btn-header--phone:hover::after,
body.page-ptt-landing .header:hover .btn-header--red:hover::after,
body.page-ptt-landing .header:hover .btn-header--phone:hover::after{opacity:1}

body.page-ptt-landing .btn-header > span,
body.page-ptt-landing .btn-header__inner{position:relative; z-index:2;}
body.page-ptt-landing .btn-header__arrow{width:.7em; height:.7em; margin-left:.4em; opacity:.5; transition:opacity .3s ease, transform .3s ease; flex-shrink:0; position:relative; z-index:2;}
body.page-ptt-landing .btn-header:hover .btn-header__arrow,
body.page-ptt-landing .btn-header.is-active .btn-header__arrow{opacity:1}
body.page-ptt-landing .btn-header.is-active .btn-header__arrow{transform:rotate(180deg)}
body.page-ptt-landing .btn-header__icon{width:1.5rem; height:1.5rem}
body.page-ptt-landing .header__burger{display:inline-flex}
@media (min-width:1280px){ body.page-ptt-landing .header__burger{display:none} }

@media (max-width:1279px){
  body.page-ptt-landing .header__right .btn-header--red[data-open-form]{display:none;}
}

/* ============ МОБИЛЬНОЕ МЕНЮ ============ */
.mobile-menu{
  position:fixed; top:var(--header-height); left:0; right:0; bottom:0;
  background:#fff; color:#171719; z-index:998;
  transform:translateY(-8px); opacity:0; visibility:hidden;
  transition:transform .4s var(--easing2), opacity .3s ease, visibility .4s;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.mobile-menu.is-open{transform:translateY(0); opacity:1; visibility:visible;}
.mobile-menu__inner{
  min-height:100%;
  display:flex; flex-direction:column;
  padding:var(--sp-m) 0 calc(var(--sp-2xl) + env(safe-area-inset-bottom));
}
.mobile-menu__item{border-bottom:1px solid var(--border);}
.mobile-menu__head{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-s);
  width:100%;
  padding:var(--sp-m) var(--wrapper-padding);
  font-family:var(--font-head);
  font-size:clamp(1.25rem, 5vw, 1.5rem);
  font-weight:600; text-transform:uppercase; letter-spacing:.02em;
  color:#171719; text-align:left; background:none; border:0; cursor:pointer;
}
.mobile-menu__head svg{width:1rem; height:1rem; flex-shrink:0; transition:transform .3s ease; opacity:.55;}
.mobile-menu__item.is-open .mobile-menu__head svg{transform:rotate(180deg); opacity:1;}
.mobile-menu__body{max-height:0; overflow:hidden; transition:max-height .45s var(--easing2);}
.mobile-menu__body-inner{padding:0 var(--wrapper-padding) var(--sp-m);}
.mobile-menu__col{margin-top:var(--sp-s);}
.mobile-menu__col-title{font-family:var(--font-head); font-size:calc(var(--fs-n2)*1.1); font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:#a4a8ad; margin-bottom:var(--sp-2xs);}
.mobile-menu__list{display:flex; flex-direction:column; gap:var(--sp-2xs);}
.mobile-menu__list a{display:flex; justify-content:space-between; align-items:center; gap:var(--sp-2xs); padding:var(--sp-2xs) 0; color:#171719; font-size:calc(var(--fs-0)*.95); line-height:1.4;}
.mobile-menu__list a svg{width:1em; height:1em; opacity:.4; flex-shrink:0;}
.mobile-menu__list a:active{color:var(--orange);}
.mobile-menu__cta{
  margin-top:auto;
  display:flex; flex-direction:column; gap:var(--sp-s);
  padding:var(--sp-l) var(--wrapper-padding) 0;
}
.mobile-menu__cta .btn-header{height:auto; padding:1em 1.5em; border:1px solid var(--border-strong); color:#171719; font-size:calc(var(--fs-n1)*1.05); justify-content:center; width:100%;}
.mobile-menu__cta .btn-header.btn-header--red{color:var(--orange); border-color:var(--orange); background:transparent;}
.mobile-menu__cta .btn-header.btn-header--phone{color:#171719; border-color:var(--border-strong);}
.mobile-menu__cta .btn-header.btn-header--phone .btn-header__label{display:inline;}
@media (min-width:1280px){ .mobile-menu{display:none;} }

body.page-ptt-landing.is-locked{overflow:hidden; padding-right:var(--scrollbar-width, 0px);}
body.page-ptt-landing.is-locked .header{padding-right:var(--scrollbar-width, 0px);}
body.page-ptt-landing.is-locked .megamenu{padding-right:var(--scrollbar-width, 0px);}

/* ============ МЕГА-МЕНЮ ============ */
.megamenu{position:fixed; top:var(--header-height); left:0; right:0; background:#fff; border-top:1px solid var(--border); border-bottom:1px solid var(--border); z-index:999; transform:translateY(-100%); opacity:0; visibility:hidden; transition:transform .6s var(--easing2), opacity .4s ease, visibility .4s; color:#171719;}
.megamenu.is-open{transform:translateY(0); opacity:1; visibility:visible;}

/* Ограничение высоты до 60vh и внутренний скролл */
.megamenu__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-m);
  padding:var(--sp-l) var(--wrapper-padding);
  max-height: 60vh;
  overflow-y: auto;
  scrollbar-width: thin;
  overscroll-behavior: contain; /* Фикс проскролливания страницы */
}
@media (min-width:1024px){ 
  .megamenu__inner{grid-template-columns:1fr 3fr;} 
}

.megamenu__title{font-family:var(--font-head); font-size:calc(var(--fs-2)*1.05); font-weight:500; text-transform:uppercase; color:#a4a8ad; line-height:1.2; margin:0 0 var(--sp-s);}
.megamenu__title a { color: inherit; text-decoration: none; transition: color 0.3s ease; }
.megamenu__title a:hover { color: var(--orange); }

.megamenu__desc{color:#47494e; font-size:calc(var(--fs-n1)*.975); line-height:1.7; max-width:22em;}
.megamenu__cols{display:grid; grid-template-columns:1fr; gap:var(--sp-m) var(--sp-l);}
@media (min-width:768px){ 
  .megamenu__cols{grid-template-columns:repeat(3,1fr);} 
}

.megamenu__col-title{font-family:var(--font-head); font-size:calc(var(--fs-n1)*1.05); font-weight:600; text-transform:uppercase; color:#a4a8ad; margin:0 0 var(--sp-s);}
.megamenu__col-title a { color: inherit; text-decoration: none; transition: color 0.3s ease; }
.megamenu__col-title a:hover { color: var(--orange); }

.megamenu__list{display:flex; flex-direction:column; gap:var(--sp-2xs);}
.megamenu__list a{
  display:flex; justify-content:space-between; align-items:flex-start; gap:var(--sp-2xs);
  color:#171719; font-size:calc(var(--fs-n1)*.975); line-height:1.4;
  text-decoration:underline; text-decoration-color:transparent; text-decoration-thickness:1px; text-underline-offset:.2em;
  transition:color .3s ease, text-decoration-color .3s ease;
}
.megamenu__list a:hover{color:var(--purple); text-decoration-color:currentColor}
.megamenu__list a svg{width:1.1em; height:1.1em; flex-shrink:0; opacity:.5; transition:opacity .3s ease, transform .3s ease; margin-top:0.2em;}
.megamenu__list a:hover svg{opacity:1; transform:rotate(45deg)}

body.page-ptt-landing{position:relative; z-index:0;}
body.page-ptt-landing .main{position:relative; z-index:1; padding-top:0; background:transparent;}
body.page-ptt-landing .footer{position:relative; z-index:1;}

/* ============ HERO ============ */
.dark-section{position:relative; z-index:1; color:#fff;}
.dark-section::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--grad-purple); z-index:5;}

.hero{position:relative; display:flex; flex-direction:column; color:#fff; background:transparent;}

.hero__bg{
  position:fixed; top:0; left:0; right:0;
  height:100vh;
  z-index:0;
  pointer-events:none;
  will-change:transform;
  background:#171719 url('https://pttural.ru/wp-content/uploads/2022/06/IMG_1713-scaled.jpg') center/cover no-repeat;
  filter:brightness(.7);
  transform-origin:center;
}

.hero__bg::after{content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,.75) 0%,
      rgba(0,0,0,.45) 25%,
      rgba(0,0,0,.55) 55%,
      rgba(0,0,0,.85) 80%,
      rgba(0,0,0,.95) 100%);
}

.hero__screen{
  position:relative; z-index:2;
  min-height:100vh;
  padding-top:calc(var(--header-height) + var(--sp-2xl));
  padding-bottom:var(--sp-2xl);
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-l);
  align-content:end;
}
@media (min-width:1024px){
  .hero__screen{ grid-template-columns:1.5fr 1fr; gap:var(--sp-xl); align-items:end; }
}
.hero__title{margin:0; font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:-.01em; line-height:1;}
.hero__title-brand{display:block; font-size:clamp(1.75rem,4.6vw,4rem); line-height:1.05; margin-bottom:.5em; word-break:break-word; overflow-wrap:anywhere;}
.hero__sub{
  display:block;
  font-family:var(--font-head);
  font-weight:600;
  font-size:clamp(1.05rem,2.2vw,1.5625rem);
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:0;
  color:#fff;
  max-width:22em;
}
.hero__since{
  margin:0;
  font-family:var(--font-head);
  font-weight:500;
  font-size:clamp(.95rem,1.6vw,1.5rem);
  line-height:1.35;
  text-transform:none;
  color:#fff;
  align-self:end;
  justify-self:start;
  text-align:left;
  max-width:100%;
}
@media (min-width:1024px){
  .hero__since{justify-self:end; text-align:right; max-width:22em;}
}

/* ============ КАТАЛОГ ============ */
.ptt-catalog{position:relative; z-index:2; padding:0 0 var(--sp-2xl);}

.ptt-catalog__grid{
  display:grid;
  gap:var(--gutter);
  grid-template-columns:1fr;
  align-items:stretch;
  padding:0 var(--wrapper-padding);
}
@media (min-width:640px){
  .ptt-catalog__grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
  .ptt-catalog__grid{
    grid-template-columns:repeat(3,1fr);
    padding:0;
  }
}

.ptt-catalog__info{padding:var(--sp-m) 0;}
@media (min-width:1024px){ .ptt-catalog__info{padding-top:var(--sp-l)} }
.ptt-catalog__info h2{font-size:clamp(1.75rem,3vw,2.5rem); margin-bottom:var(--sp-s); color:#fff; text-decoration:underline; text-decoration-color:rgba(255,255,255,.35); text-decoration-thickness:1px; text-underline-offset:.14em;}
.ptt-catalog__info p{color:#eaeaea; line-height:1.6; max-width:28em;}

.ptt-card{
  position:relative;
  min-height:18rem;
  background:rgba(255,255,255,.15);
  border:1px solid #70727d;
  color:#fff;
  padding:var(--sp-m);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:color .35s ease, border-color .35s ease;
  will-change:opacity;
}
@media (min-width:1024px){ .ptt-card{min-height:26rem;} }

.ptt-card::after{content:""; position:absolute; inset:0; background:var(--grad-orange); opacity:0; transition:opacity .35s ease; pointer-events:none; z-index:0;}
.ptt-card:hover{color:#fff; border-color:var(--orange)}
.ptt-card:hover::after{opacity:1}

.ptt-card__pic{
  position:relative;
  z-index:1;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:var(--sp-s) 0;
  color:#fff;
  font-family:var(--font-head);
  font-weight:700;
  font-size:clamp(2.75rem,8vw,7rem);
  line-height:1;
  letter-spacing:.05em;
  opacity:.65;
  transition:opacity .35s ease, transform .35s ease;
  user-select:none;
  pointer-events:none;
}
.ptt-card:hover .ptt-card__pic{opacity:.95; transform:scale(1.03)}

.ptt-card__bottom{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:var(--sp-xs);
  margin-top:auto;
  padding-top:var(--sp-s);
}
.ptt-card__title{margin:0; font-family:var(--font-head); font-size:calc(var(--fs-1)*1.041); font-weight:600; text-transform:uppercase; line-height:1.15;}

/* ============================================================
   Ссылки в карточках каталога
   ============================================================ */
.ptt-catalog-links{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:stretch;
  height:auto;
  min-height:0;
  margin-top:var(--sp-s);
  gap:var(--sp-2xs);
  padding:0;
  list-style:none;
}
.ptt-catalog-links li{
  display:block;
  height:auto;
  min-height:0;
  margin:0;
  padding:0;
}
.ptt-catalog-links li + li{
  margin-top:var(--sp-2xs);
}
.ptt-catalog-links a,
.ptt-catalog-links span{
  position:relative;
  z-index:5;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  height:auto;
  min-height:0;
  padding:0;
  margin:0;
  font-family:var(--font-head);
  font-size:calc(var(--fs-n2)*1.08);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  line-height:1.4;
  color:currentColor;
  text-decoration:underline;
  text-decoration-color:transparent;
  text-decoration-thickness:1px;
  text-underline-offset:.2em;
  transition:text-decoration-color .3s ease;
}
.ptt-catalog-links a:hover,
.ptt-catalog-links li:hover a{
  text-decoration-color:currentColor;
}
.ptt-catalog-links svg{
  width:1.2em;
  height:1.2em;
  flex-shrink:0;
  opacity:.6;
  margin-left:.35em;
  transition:opacity .3s ease, transform .3s ease;
}
.ptt-catalog-links a:hover svg,
.ptt-catalog-links li:hover svg{
  opacity:1;
  transform:rotate(45deg);
}
.ptt-catalog-links a[aria-disabled="true"]{cursor:default;}
.ptt-card__link[aria-disabled="true"]{cursor:default; pointer-events:none;}

/* ============ APPLICATIONS ============ */
.applications{padding:var(--sp-xl) 0; background:#eaeaea; color:#070807; position:relative; z-index:2;}
.applications__title{margin:0 0 var(--sp-m); font-size:clamp(2rem,4vw,3.5rem); font-weight:500; color:#a4a8ad; text-transform:uppercase; line-height:1.1;}
.app-list{position:relative;}
.app-item{position:relative;}
.app-item + .app-item{border-top:1px solid #070807;}
.app-item__head{display:grid; grid-template-columns:1fr; gap:var(--sp-s); align-items:start; padding:var(--sp-m) 0;}
@media (min-width:1024px){ .app-item__head{grid-template-columns:1fr 1.4fr; gap:var(--sp-l);} }
.app-item__title{margin:0; font-family:var(--font-head); font-size:clamp(1.5rem,3vw,2.5rem); font-weight:600; text-transform:uppercase; line-height:1; color:#070807; will-change:transform, opacity;}
.app-item__desc{padding:var(--sp-s) var(--sp-m); background:#fff; color:#171719; font-size:calc(var(--fs-n1)*1.05); line-height:1.7; margin:0; will-change:transform, opacity;}

/* ============ ABOUT ============ */
.about{background:#fff; overflow:hidden; position:relative; z-index:2;}
.about__intro{padding:var(--sp-2xl) 0 0;}
.about__video{position:relative; width:100%; aspect-ratio:16/8; background:#0d0d0f; overflow:hidden;}
.about__video iframe{width:100%; height:100%; display:block; border:0;}
.about__pin{position:relative; padding:calc(var(--header-height) + var(--sp-s)) 0 var(--sp-s); min-height:100vh; display:flex; flex-direction:column; justify-content:space-between; gap:var(--sp-m); overflow:hidden;}
.about__lead{margin:0; font-family:var(--font-head); font-size:min(clamp(1.05rem,2vw,1.75rem), 3.2vh); line-height:1.25; color:#70727d; font-weight:400; letter-spacing:-.01em; max-width:32em;}
.about__slider{display:flex; gap:var(--gutter); padding-bottom:var(--sp-s); will-change:transform; width:max-content; padding-left:calc(50vw - 12rem);}
@media (max-width:1023px){ .about__slider{padding-left:var(--wrapper-padding);} }
.about__slide{flex:0 0 22rem; padding:var(--sp-s) var(--sp-s) var(--sp-s) 20px; border-left:1px solid var(--border); display:flex; flex-direction:column; gap:var(--sp-m);}
@media (min-width:1024px){ .about__slide{flex:0 0 24rem} }
.about__slide p{color:#47494e; font-size:calc(var(--fs-n1)*.975); line-height:1.85; margin:0;}
.about__slide .num{display:block; font-family:var(--font-head); font-size:clamp(3rem,6vw,5rem); font-weight:500; color:var(--orange); line-height:1; letter-spacing:-.01em;}
.about__slide .label{display:block; font-family:var(--font-head); font-size:calc(var(--fs-0)*1.125); font-weight:500; color:var(--orange); line-height:1.2; margin-top:.25em;}

.marquee{background:#fff; overflow:hidden; padding:0; display:flex; white-space:nowrap; margin-top:0;}
.marquee__list{display:flex; flex-shrink:0; animation:marquee 30s linear infinite; will-change:transform;}
.marquee__item{padding:0 .15em; font-family:var(--font-head); font-size:min(clamp(2.5rem,7vw,7rem), 14vh); font-weight:700; line-height:1.05; letter-spacing:-.01em; text-transform:uppercase; color:#eaeaea;}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}

/* ============ PROJECTS ============ */
.projects{padding:var(--sp-2xl) 0; background:#fff; position:relative; z-index:2;}
.projects__head{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-m); margin-bottom:var(--sp-l); flex-wrap:wrap;}
.projects__title{font-size:clamp(1.75rem,3vw,2.5rem); margin:0; text-decoration:underline; text-decoration-color:rgba(0,0,0,.25); text-decoration-thickness:1px; text-underline-offset:.14em;}
.projects__all{display:inline-flex; align-items:center; justify-content:center; padding:.9em 2em; background:transparent; border:1px solid var(--border-strong); color:var(--gray-dark); font-family:var(--font-head); font-size:calc(var(--fs-n2)*1.08); font-weight:600; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; transition:background .4s ease, color .4s ease, border-color .4s ease; white-space:nowrap;}
.projects__all:hover{background:var(--grad-orange); color:#fff; border-color:transparent;}
.projects__grid{display:grid; gap:var(--sp-l) var(--gutter); grid-template-columns:1fr;}
@media (min-width:640px){ .projects__grid{grid-template-columns:repeat(2,1fr); gap:var(--gutter);} }
@media (min-width:1024px){ .projects__grid{grid-template-columns:repeat(3,1fr)} }
.project-card{position:relative; display:flex; flex-direction:column; color:#171719; background:#fff; text-decoration:none;}
.project-card__pic{width:100%; aspect-ratio:4/3; overflow:hidden; background:#f4f4f4;}
.project-card__pic img{width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1); transition:filter .5s ease;}
.project-card:hover .project-card__pic img{filter:grayscale(0);}
.project-card__title{display:inline; margin:var(--sp-m) 0 0; font-family:var(--font-head); font-size:calc(var(--fs-0)*1.05); font-weight:500; line-height:1.4; color:#171719; text-decoration:underline; text-decoration-color:transparent; text-decoration-thickness:1px; text-underline-offset:.22em; transition:text-decoration-color .3s ease;}
.project-card:hover .project-card__title{text-decoration-color:currentColor;}

/* ============ CLIENTS ============ */
.clients{padding:var(--sp-2xl) 0; background:#fff; position:relative; z-index:2;}
.clients__head{margin-bottom:var(--sp-l);}
.clients__title{font-size:clamp(1.75rem,3vw,2.5rem); margin:0; text-decoration:underline; text-decoration-color:rgba(0,0,0,.25); text-decoration-thickness:1px; text-underline-offset:.14em;}
.clients__grid{display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--border-strong); border-left:1px solid var(--border-strong);}
@media (min-width:480px){ .clients__grid{grid-template-columns:repeat(3,1fr)} }
@media (min-width:768px){ .clients__grid{grid-template-columns:repeat(4,1fr)} }
@media (min-width:1024px){ .clients__grid{grid-template-columns:repeat(6,1fr)} }
.client-cell{display:flex; align-items:center; justify-content:center; padding:var(--sp-s); border-right:1px solid var(--border-strong); border-bottom:1px solid var(--border-strong); min-height:8rem; background:#fff;}
.client-cell img{max-width:80%; max-height:4rem; width:auto; height:auto; filter:grayscale(1); opacity:.85; transition:opacity .3s ease;}
.client-cell:hover img{opacity:1;}
.clients__more{display:block; margin-top:var(--sp-l); font-family:var(--font-head); font-size:clamp(1.5rem, 5.5vw, 5rem); font-weight:400; line-height:1; color:#47494e; text-align:right; white-space:nowrap;}

/* ============ NEWS ============ */
.news{padding:var(--sp-2xl) 0; background:#fff; position:relative; z-index:2;}
.news__grid{display:grid; gap:var(--gutter); grid-template-columns:1fr;}
@media (min-width:640px){ .news__grid{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px){ .news__grid{grid-template-columns:repeat(3,1fr)} }
.news__title-block h2{font-size:clamp(1.75rem,3vw,2.5rem); margin-bottom:var(--sp-s); text-decoration:underline; text-decoration-color:rgba(0,0,0,.25); text-decoration-thickness:1px; text-underline-offset:.14em;}
.news-card{position:relative; padding:var(--sp-m); border:1px solid var(--border-strong); background:#fff; display:flex; flex-direction:column; min-height:11rem; transition:border-color .3s ease, color .3s ease;}
.news-card:hover{border-color:var(--orange); color:var(--orange);}
.news-card__text{font-family:var(--font-head); font-size:clamp(1.2rem, 2vw, 1.35rem); line-height:1.4; margin-bottom:auto; display:block;}
@media (min-width:1024px){ .news-card__text{font-size:calc(var(--fs-1)*1.02);} }
.news-card__date{display:block; margin-top:var(--sp-m); color:#70727d; font-size:calc(var(--fs-n2)*1.08); opacity:.7;}
.news-card__corner{position:absolute; right:-1px; bottom:-1px; width:1.5rem; height:1.5rem; background:#fff; border-right:1px solid var(--border-strong); border-bottom:1px solid var(--border-strong); clip-path:polygon(100% 0, 100% 100%, 0 100%); transition:border-color .3s ease; pointer-events:none;}
.news-card:hover .news-card__corner{border-color:var(--orange)}
.news-card--all{justify-content:center;}
.news-card--all .news-card__text{font-weight:600; text-transform:none;}
.news-card--all:hover{border-color:var(--purple); color:var(--purple);}
.news-card--all:hover .news-card__corner{border-color:var(--purple)}

/* ============ CTA ============ */
.cta{padding:var(--sp-3xl) 0 var(--sp-2xl); background:#fff; position:relative; overflow:hidden; z-index:2;}
.cta__bg{position:absolute; top:0; left:50%; transform:translateX(-50%); width:100%; max-width:60rem; height:100%; pointer-events:none; opacity:.35; z-index:0; background: linear-gradient(135deg,transparent 40%,#cfcfcf 40%,#cfcfcf 40.5%,transparent 40.5%), linear-gradient(45deg,transparent 55%,#cfcfcf 55%,#cfcfcf 55.5%,transparent 55.5%), linear-gradient(135deg,transparent 20%,#e0e0e0 20%,#e0e0e0 20.3%,transparent 20.3%), linear-gradient(45deg,transparent 75%,#e0e0e0 75%,#e0e0e0 75.3%,transparent 75.3%);}
.cta__block{position:relative; z-index:1; text-align:left; max-width:56rem;}
.cta__link{display:block; font-family:var(--font-head); font-weight:500; line-height:1.05; color:var(--orange); margin:0 0 var(--sp-2xs); background:none; border:0; padding:0; cursor:pointer; position:relative; text-align:left; font-size:clamp(2rem, 9.5vw, 5rem);}
.cta__link > span{display:inline; padding:.05em 0; background:var(--grad-orange); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.cta__link > span::after{content:""; position:absolute; left:0; right:0; bottom:-.02em; height:1px; background:currentColor; opacity:.45; transform:scaleX(0); transform-origin:left; transition:transform .35s var(--easing2);}
.cta__link:hover > span::after{transform:scaleX(1);}
.cta__icon{display:inline-block; width:.7em; height:.7em; color:var(--orange); margin-left:.15em; vertical-align:baseline; transition:transform .3s ease; transform:translateY(-.05em);}
.cta__link:hover .cta__icon{transform:translateY(-.05em) rotate(45deg)}
.cta__sub{display:block; font-family:var(--font-head); font-size:clamp(1.05rem, 4.9vw, 2.6rem); font-weight:400; line-height:1.05; color:#47494e; white-space:nowrap;}
@media (max-width:767px){
  .cta__block{width:100%;}
  .cta__link{font-size:32px; line-height:1.05; display:block; max-width:100%;}
  .cta__link > span{display:block; white-space:normal; padding:0; background:none; -webkit-text-fill-color:currentColor; color:var(--orange);}
  .cta__link > span::after{display:none;}
  .cta__link > span:last-child{display:inline-flex; align-items:baseline; gap:.15em;}
  .cta__sub{white-space:nowrap; width:100%; font-size:28px; line-height:1.05;}
}

/* ============ FOOTER ============ */
.footer{background:#070807; color:#fff; padding:var(--sp-xl) 0 var(--sp-m); position:relative; overflow:hidden; z-index:2;}
.footer::before{content:""; position:absolute; left:0; top:0; width:100%; height:1px; background:var(--grad-orange);}
.footer__top{display:grid; gap:var(--sp-l); grid-template-columns:1fr; padding-bottom:var(--sp-l);}
@media (min-width:768px){ .footer__top{grid-template-columns:1fr 1fr} }
.footer__contacts{display:flex; flex-direction:column; gap:var(--sp-m);}
.footer__label{font-family:var(--font-head); font-size:calc(var(--fs-n2)*1.08); font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:#47494e; line-height:2; margin-bottom:var(--sp-3xs);}
.footer__phone, .footer__email{font-family:var(--font-head); font-size:clamp(1.25rem,2.5vw,2rem); font-weight:500; color:#fff; line-height:1.2;}
.footer__address{color:#eaeaea; line-height:1.6; font-size:calc(var(--fs-n1)*1.05);}
.footer__nav{display:grid; gap:var(--sp-l); grid-template-columns:1fr;}
@media (min-width:480px){ .footer__nav{grid-template-columns:repeat(3,1fr)} }
.footer__nav ul{display:flex; flex-direction:column; gap:var(--sp-xs);}
.footer__nav a{color:#eaeaea; font-size:calc(var(--fs-0)*.95); transition:color .3s ease;}
@media (min-width:1024px){ .footer__nav a{font-size:calc(var(--fs-n1)*.975);} }
.footer__nav a:hover{color:var(--orange)}
.footer__bottom{padding-top:var(--sp-m); border-top:1px solid #47494e; display:grid; gap:var(--sp-m); grid-template-columns:1fr; color:#70727d; font-size:calc(var(--fs-n2)*1.08);}
@media (min-width:768px){ .footer__bottom{grid-template-columns:1fr 1fr 1fr; align-items:end;} }
.footer__bottom a{color:#70727d; transition:color .3s ease;}
.footer__bottom a:hover{color:var(--orange)}

/* ============ FADE-UP ============ */
.fade-up{opacity:0; transform:translateY(60px); transition:opacity .8s cubic-bezier(.77,0,.175,1), transform .8s cubic-bezier(.77,0,.175,1);}
.fade-up.is-visible{opacity:1; transform:translateY(0);}

/* ============ OFFCANVAS ============ */
.offcanvas-backdrop{position:fixed; inset:0; background:rgba(23,23,25,.6); z-index:1090; opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s;}
.offcanvas-backdrop.is-open{opacity:1; visibility:visible;}
.offcanvas{position:fixed; top:0; right:0; bottom:0; width:100%; max-width:44rem; background:#fff; z-index:1100; transform:translateX(100%); transition:transform .6s var(--easing2); display:flex; flex-direction:column;}
.offcanvas.is-open{transform:translateX(0)}
.offcanvas__head{display:flex; align-items:center; justify-content:space-between; padding:0 var(--sp-m); height:var(--header-height); border-bottom:1px solid var(--border); flex-shrink:0;}
.offcanvas__title{font-family:var(--font-body); font-size:calc(var(--fs-n1)*.975); font-weight:500;}
.offcanvas__close{width:3rem; height:3rem; display:flex; align-items:center; justify-content:center; color:#70727d; transition:color .3s ease;}
.offcanvas__close:hover{color:var(--orange)}
.offcanvas__close svg{width:1.5rem; height:1.5rem}
.offcanvas__body{padding:var(--sp-m); overflow-y:auto; flex:1;}
.form__title{font-family:var(--font-head); font-size:clamp(1.5rem,2.5vw,2rem); font-weight:500; line-height:1.2; margin:0 0 var(--sp-m);}
.form__field{position:relative; margin-bottom:var(--sp-s);}
.form__input, .form__textarea{display:block; width:100%; padding:1.5em .85em .5em; font-family:var(--font-body); font-size:calc(var(--fs-n2)*1.09); font-weight:500; color:#171719; background:#fff; border:1px solid var(--border); outline:none; transition:border-color .3s ease;}
.form__input:focus, .form__textarea:focus{border-color:#a4a8ad;}
.form__textarea{min-height:9em; resize:vertical;}
.form__field label{position:absolute; top:.85em; left:.85em; font-family:var(--font-body); font-size:calc(var(--fs-n1)*.975); font-weight:500; color:#47494e; pointer-events:none; transition:transform .3s ease, color .3s ease; transform-origin:0 0;}
.form__input:focus + label,
.form__input:not(:placeholder-shown) + label,
.form__textarea:focus + label,
.form__textarea:not(:placeholder-shown) + label{transform:scale(.7) translateY(-.8em); color:#70727d;}
.form__check{display:flex; align-items:flex-start; gap:.75em; font-size:calc(var(--fs-n2)*1.08); color:#70727d; line-height:1.5; margin:var(--sp-s) 0;}
.form__check input{width:1.2em; height:1.2em; flex-shrink:0; margin-top:.2em; accent-color:var(--orange);}
.form__check a{color:#171719; text-decoration:underline;}
.form__check a:hover{color:var(--orange)}
.form__submit{width:100%; padding:1.3em 2em; background:transparent; border:1px solid var(--orange); color:var(--orange); font-family:var(--font-head); font-size:calc(var(--fs-n2)*1.08); font-weight:600; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; transition:background .4s ease, color .4s ease;}
.form__submit:hover{background:var(--grad-orange); color:#fff; border-color:transparent;}

/* Форс: гарантированные боковые отступы для каталога в hero */
.ptt-catalog{
  padding-left:var(--wrapper-padding) !important;
  padding-right:var(--wrapper-padding) !important;
}
.ptt-catalog__grid{
  padding:0 !important;
}

/* Форс CTA: перебиваем любые внешние правила */
body.page-ptt-landing .cta__block{display:block !important; text-align:left !important; max-width:56rem !important;}
body.page-ptt-landing .cta__link{
  display:block !important;
  font-family:var(--font-head) !important;
  font-weight:500 !important;
  line-height:1.05 !important;
  background:none !important;
  border:0 !important;
  padding:0 !important;
  margin:0 0 var(--sp-2xs) !important;
  cursor:pointer !important;
  text-align:left !important;
  font-size:clamp(2rem, 9.5vw, 5rem) !important;
  color:var(--orange) !important;
}
body.page-ptt-landing .cta__link > span{
  display:inline !important;
  padding:.05em 0 !important;
  background:var(--grad-orange) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  color:transparent !important;
  font-size:inherit !important;
}
body.page-ptt-landing .cta__icon{
  display:inline-block !important;
  width:.7em !important;
  height:.7em !important;
  max-width:.7em !important;
  max-height:.7em !important;
  color:var(--orange) !important;
  margin-left:.15em !important;
  vertical-align:baseline !important;
  transform:translateY(-.05em) !important;
}
body.page-ptt-landing .cta__sub{
  display:block !important;
  font-family:var(--font-head) !important;
  font-size:clamp(1.05rem, 4.9vw, 2.6rem) !important;
  font-weight:400 !important;
  line-height:1.05 !important;
  color:#47494e !important;
  margin:0 !important;
  padding:0 !important;
}

.cta__icon{transition:transform .3s ease}
.cta__link:hover .cta__icon{transform:rotate(45deg) !important}

body.page-ptt-landing .cta__link:hover .cta__icon{transform:rotate(45deg) !important}

.megamenu__title a,
.megamenu__col-title a{
  color: inherit;
  text-decoration: none;
  transition: color .3s ease;
}
.megamenu__title a:hover,
.megamenu__col-title a:hover{
  color: var(--orange);
}
.megamenu__loading{
  padding: var(--sp-l) 0;
  color: #70727d;
  font-family: var(--font-head);
  font-size: calc(var(--fs-n1) * .975);
}

/* --- ФИКС СКРОЛЛБАРА --- */
body.page-ptt-landing.is-locked{overflow:hidden; padding-right:var(--scrollbar-width, 0px);}
body.page-ptt-landing.is-locked .header{padding-right:var(--scrollbar-width, 0px);}
body.page-ptt-landing.is-locked .megamenu{padding-right:var(--scrollbar-width, 0px);}