/* ============================================================
   GRANI — main.css
   Все стили сайта. Префикс .ccf-, без !important, без трогания body/html/*.
   ============================================================ */

:root{
  --ccf-bg:       #FFFFFF;
  --ccf-bg-alt:   #F4F4F2;
  --ccf-ink:      #0E1116;
  --ccf-ink-soft: #2A2F37;
  --ccf-muted:    #7A7F88;
  --ccf-line:     #E5E5E2;
  --ccf-dark:     #111923;
  --ccf-white:    #FFFFFF;
  --ccf-accent:   #0E1116;
  --ccf-font:     'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  --ccf-max:      1440px;
  --ccf-gutter:   clamp(20px, 4vw, 56px);
  --ccf-section:  clamp(80px, 10vw, 160px);
  --ccf-ease:     cubic-bezier(0.22, 1, 0.36, 1);
}

/* ===== БАЗА ===== */
.ccf-header, .ccf-mobile-menu, .ccf-hero, .ccf-section, .ccf-bigimg,
.ccf-final, .ccf-footer, .ccf-progress{
  font-family:var(--ccf-font);
  font-size:16px;
  line-height:1.55;
  color:var(--ccf-ink);
  -webkit-font-smoothing:antialiased;
}
.ccf-header *,.ccf-mobile-menu *,.ccf-hero *,.ccf-section *,
.ccf-bigimg *,.ccf-final *,.ccf-footer *{ box-sizing:border-box; }

.ccf-container{
  max-width:var(--ccf-max);
  margin-left:auto; margin-right:auto;
  padding-left:var(--ccf-gutter);
  padding-right:var(--ccf-gutter);
}

.ccf-eyebrow{
  font-size:12px; font-weight:600;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--ccf-ink);
}
.ccf-eyebrow--muted{ color:var(--ccf-muted); }

.ccf-h1{ font-weight:600; font-size:clamp(40px, 6.5vw, 92px); line-height:1.02; letter-spacing:-0.03em; margin:0; }
.ccf-h2{ font-weight:600; font-size:clamp(34px, 4.5vw, 68px); line-height:1.03; letter-spacing:-0.025em; margin:0; }

.ccf-arrow{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--ccf-font);
  font-weight:500; font-size:16px;
  color:var(--ccf-ink);
  padding-bottom:8px;
  border-bottom:1px solid currentColor;
  text-decoration:none;
  transition:gap .35s var(--ccf-ease);
}
.ccf-arrow:hover{ gap:22px; color:var(--ccf-ink); }
.ccf-arrow svg{ width:22px; height:16px; flex-shrink:0; }
.ccf-arrow--light,
.ccf-arrow--light:hover{ color:var(--ccf-white); }

/* ===== SCROLL PROGRESS BAR ===== */
.ccf-progress{
  position:fixed;
  top:0; left:0;
  width:0;
  height:2px;
  background:var(--ccf-ink);
  z-index:999;
  transition:width .15s linear;
  pointer-events:none;
}

/* ===== ШАПКА (фиксированная + появляется фон при скролле) ===== */
.ccf-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:500;
  padding:24px 0;
  transition:padding .35s var(--ccf-ease), background-color .35s var(--ccf-ease), box-shadow .35s var(--ccf-ease);
  background-color:transparent;
}
.ccf-header.is-scrolled{
  padding:14px 0;
  background-color:rgba(255,255,255,0.92);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(14,17,22,0.06);
}

.ccf-header__row{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center; gap:40px;
}
.ccf-logo{
  font-weight:800; font-size:22px;
  letter-spacing:-0.02em;
  color:var(--ccf-white);
  text-decoration:none;
  transition:color .35s var(--ccf-ease);
}
.ccf-header.is-scrolled .ccf-logo,
.ccf-header.is-scrolled .ccf-nav a{ color:var(--ccf-ink); }
.ccf-header.is-scrolled .ccf-burger{ border-color:rgba(14,17,22,0.2); }
.ccf-header.is-scrolled .ccf-burger span{ background:var(--ccf-ink); }

.ccf-nav{ display:flex; justify-content:center; gap:40px; }
.ccf-nav a, .ccf-nav__list a, .ccf-nav__list li{
  font-size:15px; font-weight:500;
  color:var(--ccf-white);
  text-decoration:none;
  opacity:.88;
  transition:opacity .3s var(--ccf-ease), color .35s var(--ccf-ease);
  list-style:none;
}
.ccf-nav__list{ display:flex; gap:40px; margin:0; padding:0; list-style:none; }
.ccf-nav a:hover, .ccf-nav__list a:hover{ opacity:1; }

.ccf-header__cta{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 22px;
  font-family:var(--ccf-font);
  font-size:14px; font-weight:500;
  color:var(--ccf-ink);
  background:var(--ccf-white);
  border-radius:999px;
  text-decoration:none;
  transition:background .3s var(--ccf-ease), color .3s var(--ccf-ease), transform .3s var(--ccf-ease);
}
.ccf-header__cta svg{ width:18px; height:14px; transition:transform .3s var(--ccf-ease); }
.ccf-header__cta:hover{ background:var(--ccf-ink); color:var(--ccf-white); transform:translateY(-1px); }
.ccf-header__cta:hover svg{ transform:translateX(4px); }
/* В скролл-режиме шапки инвертируем кнопку — на белом фоне она становится тёмной */
.ccf-header.is-scrolled .ccf-header__cta{
  background:var(--ccf-ink); color:var(--ccf-white);
}
.ccf-header.is-scrolled .ccf-header__cta:hover{
  background:var(--ccf-white); color:var(--ccf-ink);
  box-shadow:0 0 0 1px var(--ccf-ink);
}

.ccf-burger{
  display:none;
  width:44px; height:44px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  position:relative;
  transition:border-color .35s var(--ccf-ease);
}
.ccf-burger span{
  position:absolute; left:50%;
  width:16px; height:1px; background:#fff;
  transform:translateX(-50%);
  transition:transform .35s var(--ccf-ease), top .35s var(--ccf-ease), background .35s var(--ccf-ease);
}
.ccf-burger span:nth-child(1){ top:18px; }
.ccf-burger span:nth-child(2){ top:25px; }
.ccf-burger.is-active span:nth-child(1){ top:21px; transform:translateX(-50%) rotate(45deg); }
.ccf-burger.is-active span:nth-child(2){ top:21px; transform:translateX(-50%) rotate(-45deg); }

.ccf-mobile-menu{
  position:fixed; inset:0; z-index:400;
  background:var(--ccf-dark);
  padding:100px 32px 40px;
  display:flex; flex-direction:column; gap:4px;
  transform:translateY(-100%);
  transition:transform .55s var(--ccf-ease);
}
.ccf-mobile-menu.is-open{ transform:translateY(0); }
.ccf-mobile-menu a{
  font-family:var(--ccf-font);
  font-size:32px; font-weight:600; color:#fff;
  padding:12px 0;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.08);
  letter-spacing:-0.02em;
}
.ccf-mobile-menu__cta{ margin-top:24px; border-bottom:none; }

@media (max-width:960px){
  .ccf-nav, .ccf-header__cta{ display:none; }
  .ccf-burger{ display:inline-flex; align-items:center; justify-content:center; }
  .ccf-header__row{ grid-template-columns:auto auto; }
}

/* ===== HERO ===== */
.ccf-hero{
  position:relative; min-height:100vh;
  color:var(--ccf-white);
  overflow:hidden;
  display:flex; align-items:flex-end;
  padding-bottom:80px; padding-top:160px;
}
.ccf-hero__bg{ position:absolute; inset:-10% 0; z-index:0; will-change:transform; }
.ccf-hero__bg img{
  width:100%; height:100%;
  object-fit:cover;
  transform:scale(1.08);
  animation:graniZoomIn 12s var(--ccf-ease) forwards;
}
.ccf-hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,17,22,.35) 0%, rgba(14,17,22,.1) 40%, rgba(14,17,22,.55) 100%);
}
@keyframes graniZoomIn{ to{ transform:scale(1); } }

.ccf-hero__list{
  position:absolute;
  top:160px; left:var(--ccf-gutter);
  display:flex; flex-direction:column; gap:12px;
  z-index:2;
}
.ccf-hero__list-item{
  display:flex; align-items:center; gap:14px;
  font-size:18px; color:#fff;
  opacity:0; transform:translateX(-20px);
  animation:graniSlideL .7s var(--ccf-ease) forwards;
}
.ccf-hero__list-item:nth-child(1){ animation-delay:.3s; }
.ccf-hero__list-item:nth-child(2){ animation-delay:.45s; }
.ccf-hero__list-item:nth-child(3){ animation-delay:.6s; }
.ccf-hero__list-item::before{
  content:""; width:7px; height:7px; background:#fff; flex-shrink:0;
}
@keyframes graniSlideL{ to{ opacity:1; transform:translateX(0); } }

.ccf-hero__inner{ position:relative; z-index:2; width:100%; }
.ccf-hero__bottom{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:60px; align-items:end;
}
.ccf-hero__h1 .ccf-line{ display:block; overflow:hidden; }
.ccf-hero__h1 .ccf-line > span{
  display:inline-block;
  transform:translateY(102%);
  animation:graniLineUp 1.1s var(--ccf-ease) forwards;
}
.ccf-hero__h1 .ccf-line:nth-child(2) > span{ animation-delay:.15s; }
@keyframes graniLineUp{ to{ transform:translateY(0); } }

.ccf-hero__sub{
  margin-top:28px;
  font-size:clamp(15px, 1.2vw, 17px);
  line-height:1.55;
  color:rgba(255,255,255,.8);
  max-width:38ch;
  opacity:0;
  animation:graniFadeIn .9s var(--ccf-ease) .6s forwards;
}
@keyframes graniFadeIn{ to{ opacity:1; } }

.ccf-hero__cta{ text-align:right; padding-bottom:12px; }

/* Индикатор скролла */
.ccf-hero__scroll{
  position:absolute;
  bottom:32px; left:50%;
  transform:translateX(-50%);
  width:1px; height:54px;
  background:rgba(255,255,255,.3);
  overflow:hidden;
  z-index:3;
}
.ccf-hero__scroll span{
  position:absolute; top:-54px; left:0;
  width:100%; height:54px;
  background:#fff;
  animation:graniScrollLine 2.2s var(--ccf-ease) infinite;
}
@keyframes graniScrollLine{
  0%   { top:-54px; }
  50%  { top:0; }
  100% { top:54px; }
}

@media (max-width:900px){
  .ccf-hero__list{ display:none; }
  .ccf-hero__bottom{ grid-template-columns:1fr; gap:32px; }
  .ccf-hero__cta{ text-align:left; }
  .ccf-hero__scroll{ display:none; }
}

/* ===== SECTION ===== */
.ccf-section{ padding-top:var(--ccf-section); padding-bottom:var(--ccf-section); }

/* ===== ABOUT ===== */
.ccf-about__grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:100px; align-items:center;
}
.ccf-about__text > * + *{ margin-top:32px; }
.ccf-about__meta{
  display:grid; grid-template-columns:140px 1fr;
  gap:32px; margin-top:48px; align-items:start;
}
.ccf-about__meta-body{
  font-size:16px; line-height:1.7;
  color:var(--ccf-ink-soft); max-width:42ch;
  margin:0;
}
.ccf-about__more{ margin-top:24px; }
.ccf-about__img{
  aspect-ratio:4/5; overflow:hidden;
  background:var(--ccf-bg-alt);
}
.ccf-about__img img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--ccf-ease);
}
.ccf-about__img:hover img{ transform:scale(1.04); }
@media (max-width:900px){
  .ccf-about__grid{ grid-template-columns:1fr; gap:48px; }
  .ccf-about__meta{ grid-template-columns:1fr; gap:16px; }
}

/* ===== BENEFITS ===== */
.ccf-benefits{
  background:var(--ccf-bg-alt);
}
.ccf-benefits__head{
  margin-bottom:72px;
  max-width:60ch;
}
.ccf-benefits__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border-top:1px solid var(--ccf-line);
}
.ccf-benefit{
  padding:48px 40px;
  position:relative;
  transition:background-color .4s var(--ccf-ease);
}
.ccf-benefit:first-child{ padding-left:0; }
.ccf-benefit:last-child{ padding-right:0; }
/* Вертикальная линия-разделитель с отступами сверху и снизу — деликатнее */
.ccf-benefit + .ccf-benefit::before{
  content:"";
  position:absolute;
  left:0; top:40px; bottom:40px;
  width:1px;
  background:var(--ccf-line);
}
.ccf-benefit:hover{ background-color:rgba(14,17,22,0.02); }
.ccf-benefit:hover .ccf-benefit__icon{ transform:translateY(-4px); color:var(--ccf-ink); }
.ccf-benefit__icon{
  margin-bottom:32px;
  color:var(--ccf-ink);
  font-size:56px;
  line-height:1;
  display:inline-block;
  transition:transform .4s var(--ccf-ease);
}
.ccf-benefit__icon i{
  display:block;
  line-height:1;
}
.ccf-benefit__icon svg{ width:56px; height:56px; display:block; }
.ccf-benefit__num{
  font-size:13px; font-weight:500;
  color:var(--ccf-muted);
  margin-bottom:16px;
  letter-spacing:0.04em;
}
.ccf-benefit__title{
  font-family:var(--ccf-font);
  font-size:clamp(20px, 1.6vw, 24px);
  font-weight:600;
  letter-spacing:-0.015em;
  line-height:1.2;
  margin:0 0 16px;
  color:var(--ccf-ink);
}
.ccf-benefit__desc{
  font-size:15px;
  line-height:1.6;
  color:var(--ccf-ink-soft);
  margin:0;
}
@media (max-width:1100px){
  .ccf-benefits__grid{ grid-template-columns:1fr 1fr; }
  .ccf-benefit{ padding:40px 32px; }
  .ccf-benefit:first-child{ padding-left:0; }
  .ccf-benefit:last-child{ padding-right:32px; }
  .ccf-benefit:nth-child(2){ padding-right:0; }
  .ccf-benefit:nth-child(3){ padding-left:0; }
  /* Разделители в сетке 2×2 */
  .ccf-benefit:nth-child(2)::before{ display:none; }
  .ccf-benefit:nth-child(3)::before{ display:none; }
  .ccf-benefit:nth-child(4)::before{ content:""; position:absolute; left:0; top:40px; bottom:40px; width:1px; background:var(--ccf-line); }
  .ccf-benefit:nth-child(1), .ccf-benefit:nth-child(2){ border-bottom:1px solid var(--ccf-line); }
}
@media (max-width:640px){
  .ccf-benefits__grid{ grid-template-columns:1fr; }
  .ccf-benefit{ padding:40px 0; border-bottom:1px solid var(--ccf-line); }
  .ccf-benefit:last-child{ border-bottom:none; padding-bottom:0; }
  .ccf-benefit::before, .ccf-benefit:nth-child(4)::before{ display:none; }
  .ccf-benefit:nth-child(1), .ccf-benefit:nth-child(2){ border-bottom:1px solid var(--ccf-line); }
}

/* ===== SERVICES ===== */
.ccf-services__head{
  display:grid; grid-template-columns:2fr 1fr;
  gap:60px; align-items:end; margin-bottom:72px;
}
.ccf-services__head-side{
  font-size:16px; line-height:1.7;
  color:var(--ccf-muted);
  max-width:38ch; padding-bottom:8px;
  margin:0;
}
.ccf-services__grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:40px;
}
.ccf-service{
  display:block; position:relative;
  text-decoration:none;
  transition:transform .4s var(--ccf-ease);
}
.ccf-service:hover{ transform:translateY(-6px); }
.ccf-service__media{
  aspect-ratio:4/5; overflow:hidden;
  background:var(--ccf-bg-alt);
  position:relative;
}
.ccf-service__media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--ccf-ease);
}
.ccf-service:hover .ccf-service__media img{ transform:scale(1.06); }
.ccf-service__plus{
  position:absolute;
  top:20px; right:20px;
  width:44px; height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  color:var(--ccf-ink);
  display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:300;
  opacity:0; transform:scale(.6);
  transition:opacity .35s var(--ccf-ease), transform .4s var(--ccf-ease);
}
.ccf-service:hover .ccf-service__plus{ opacity:1; transform:scale(1); }
.ccf-service__info{
  display:grid; grid-template-columns:60px 1fr;
  gap:16px; padding-top:24px; align-items:baseline;
}
.ccf-service__num{ font-size:15px; font-weight:500; color:var(--ccf-ink); }
.ccf-service__name{
  font-size:clamp(18px, 1.5vw, 22px); font-weight:500;
  letter-spacing:-0.01em;
  color:var(--ccf-ink);
  transition:color .3s var(--ccf-ease);
  margin:0;
}
.ccf-service:hover .ccf-service__name{ color:var(--ccf-muted); }
.ccf-service--offset{ margin-top:80px; }
@media (max-width:900px){
  .ccf-services__head{ grid-template-columns:1fr; gap:24px; }
  .ccf-services__grid{ grid-template-columns:1fr; gap:48px; }
  .ccf-service--offset{ margin-top:0; }
}

/* ===== BIG IMAGE ===== */
.ccf-bigimg{
  position:relative; min-height:80vh;
  display:flex; align-items:flex-end;
  padding:56px var(--ccf-gutter);
  color:#fff; overflow:hidden;
}
.ccf-bigimg__bg{ position:absolute; inset:-10% 0; z-index:0; will-change:transform; }
.ccf-bigimg__bg img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 2s var(--ccf-ease);
}
.ccf-bigimg:hover .ccf-bigimg__bg img{ transform:scale(1.03); }
.ccf-bigimg__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(14,17,22,.55) 100%);
}
.ccf-bigimg__inner{
  position:relative; z-index:2;
  max-width:var(--ccf-max); width:100%; margin:0 auto;
}
.ccf-bigimg__h{
  font-family:var(--ccf-font);
  font-weight:600;
  font-size:clamp(32px, 4.5vw, 66px);
  line-height:1.05; letter-spacing:-0.025em;
  max-width:22ch; margin:0;
  color:#fff;
}

/* ===== PROCESS ===== */
.ccf-process__top{
  display:grid; grid-template-columns:240px 1fr 280px;
  gap:60px; align-items:start;
}
.ccf-process__img{
  aspect-ratio:4/3; overflow:hidden; background:var(--ccf-bg-alt);
}
.ccf-process__img img{ width:100%; height:100%; object-fit:cover; }

.ccf-process__steps{
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:40px; margin-top:72px; padding-top:40px;
  border-top:1px solid var(--ccf-line);
  position:relative;
}
/* Анимированная линия прогресса под степами */
.ccf-process__steps::before{
  content:"";
  position:absolute;
  top:-1px; left:0;
  width:0; height:2px;
  background:var(--ccf-ink);
  transition:width 1.6s var(--ccf-ease);
}
.ccf-process__steps.is-visible::before{ width:100%; }

.ccf-step__num{ font-size:15px; font-weight:500; color:var(--ccf-ink); margin-bottom:20px; }
.ccf-step__title{
  font-family:var(--ccf-font);
  font-size:clamp(18px, 1.5vw, 22px); font-weight:600;
  letter-spacing:-0.01em; margin:0 0 14px;
  color:var(--ccf-ink);
}
.ccf-step__desc{ font-size:15px; line-height:1.6; color:var(--ccf-muted); margin:0; }

@media (max-width:1000px){
  .ccf-process__top{ grid-template-columns:1fr; }
  .ccf-process__img{ order:-1; aspect-ratio:16/9; }
  .ccf-process__steps{ grid-template-columns:1fr 1fr; gap:32px; }
}
@media (max-width:560px){ .ccf-process__steps{ grid-template-columns:1fr; } }

/* ===== FINAL CTA ===== */
.ccf-final{
  position:relative; min-height:80vh;
  display:flex; align-items:center; justify-content:center;
  color:#fff; text-align:center; overflow:hidden;
  padding:80px var(--ccf-gutter);
}
.ccf-final__bg{ position:absolute; inset:-10% 0; z-index:0; will-change:transform; }
.ccf-final__bg img{ width:100%; height:100%; object-fit:cover; }
.ccf-final__bg::after{ content:""; position:absolute; inset:0; background:rgba(14,17,22,.45); }
.ccf-final__inner{ position:relative; z-index:2; }
.ccf-final h2{
  font-family:var(--ccf-font);
  font-weight:600; font-size:clamp(36px, 5vw, 72px);
  line-height:1.05; letter-spacing:-0.03em;
  margin:0 0 32px; max-width:20ch;
  color:#fff;
}

/* ===== FOOTER ===== */
.ccf-footer{
  background:var(--ccf-dark);
  color:var(--ccf-white);
  padding:120px 0 0;
  position:relative;
}
.ccf-footer__cols{
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:60px; margin-bottom:80px;
}
.ccf-footer__col h4{
  font-family:var(--ccf-font);
  font-size:12px; font-weight:600;
  letter-spacing:0.18em; text-transform:uppercase;
  color:rgba(255,255,255,.6);
  margin:0 0 28px;
}
.ccf-footer__col-right{ text-align:right; }
.ccf-footer__col ul{ list-style:none; padding:0; margin:0; }
.ccf-footer__col li{ margin-bottom:12px; }
.ccf-footer__col a{
  font-size:16px; color:rgba(255,255,255,.9);
  text-decoration:none;
  transition:color .3s var(--ccf-ease);
}
.ccf-footer__col a:hover{ color:#fff; }
.ccf-footer__office{ font-size:16px; line-height:1.7; color:rgba(255,255,255,.85); margin:0; }
.ccf-footer__phone{
  display:flex; align-items:center; gap:12px;
  margin-top:20px; font-size:16px; color:#fff;
  text-decoration:none;
}
.ccf-footer__phone svg{ width:18px; height:18px; opacity:.7; }
.ccf-footer__social{ font-size:16px; color:rgba(255,255,255,.9); text-align:right; }
.ccf-footer__social a{ margin:0 8px; }
.ccf-footer__social a:first-child{ margin-left:0; }
.ccf-footer__social a:last-child{ margin-right:0; }
.ccf-footer__social a:hover{ color:#fff; }
.ccf-footer__sep{ opacity:.4; }

.ccf-footer__bar{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px;
  padding:24px 0;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:13px; color:rgba(255,255,255,.5);
}
.ccf-footer__bar a{ color:inherit; text-decoration:none; transition:color .3s var(--ccf-ease); }
.ccf-footer__bar a:hover{ color:#fff; }
.ccf-footer__bar > div:nth-child(2){ text-align:center; }
.ccf-footer__bar > div:nth-child(3){ text-align:right; }

@media (max-width:900px){
  .ccf-footer__cols{ grid-template-columns:1fr; gap:32px; margin-bottom:40px; }
  .ccf-footer__bar{ grid-template-columns:1fr; gap:8px; text-align:left; }
  .ccf-footer__col-right, .ccf-footer__social,
  .ccf-footer__bar > div:nth-child(2), .ccf-footer__bar > div:nth-child(3){ text-align:left; }
}

/* ===== REVEAL ===== */
.ccf-reveal{
  opacity:0; transform:translateY(24px);
  transition:opacity .9s var(--ccf-ease), transform .9s var(--ccf-ease);
}
.ccf-reveal.is-visible{ opacity:1; transform:translateY(0); }
.ccf-reveal[data-delay="1"]{ transition-delay:.1s; }
.ccf-reveal[data-delay="2"]{ transition-delay:.2s; }
.ccf-reveal[data-delay="3"]{ transition-delay:.3s; }

/* ===== Hello Elementor overrides ===== */
.site-header.site-header,
.site-footer.site-footer{ display:none; } /* Если Hello пытается вывести свои */

/* ===== ТЕЛЕФОН В ШАПКЕ ===== */
.ccf-header__row{ grid-template-columns:auto 1fr auto auto auto !important; }
.ccf-header__phone-top{
  font-size:15px; font-weight:500;
  color:var(--ccf-white);
  text-decoration:none;
  opacity:.9;
  transition:opacity .3s var(--ccf-ease), color .35s var(--ccf-ease);
}
.ccf-header__phone-top:hover{ opacity:1; }
.ccf-header.is-scrolled .ccf-header__phone-top{ color:var(--ccf-ink); }
@media (max-width:1100px){ .ccf-header__phone-top{ display:none; } }

/* Email в подвале */
.ccf-footer__email{
  display:inline-block;
  margin-top:10px;
  font-size:15px;
  color:rgba(255,255,255,.85);
  text-decoration:none;
  transition:color .3s var(--ccf-ease);
}
.ccf-footer__email:hover{ color:#fff; }

/* ===== ПОП-АП ===== */
.ccf-popup{
  position:fixed; inset:0;
  z-index:9999;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; visibility:hidden;
  transition:opacity .35s var(--ccf-ease), visibility .35s var(--ccf-ease);
}
.ccf-popup.is-open{ opacity:1; visibility:visible; }
.ccf-popup__backdrop{
  position:absolute; inset:0;
  background:rgba(14,17,22,0.65);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  cursor:pointer;
}
.ccf-popup__dialog{
  position:relative;
  width:100%; max-width:980px;
  max-height:90vh;
  overflow:auto;
  background:var(--ccf-white);
  border-radius:4px;
  transform:translateY(20px) scale(.98);
  transition:transform .45s var(--ccf-ease);
  font-family:var(--ccf-font);
}
.ccf-popup.is-open .ccf-popup__dialog{ transform:translateY(0) scale(1); }
.ccf-popup__close{
  position:absolute;
  top:20px; right:20px;
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid var(--ccf-line);
  background:transparent;
  cursor:pointer;
  z-index:5;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--ccf-ink);
  transition:background .3s var(--ccf-ease), border-color .3s var(--ccf-ease), transform .3s var(--ccf-ease);
}
.ccf-popup__close:hover{ background:var(--ccf-ink); color:var(--ccf-white); border-color:var(--ccf-ink); transform:rotate(90deg); }
.ccf-popup__close svg{ width:18px; height:18px; }

.ccf-popup__inner{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  min-height:520px;
}
.ccf-popup__left{
  padding:56px 48px;
  background:var(--ccf-dark);
  color:var(--ccf-white);
  display:flex; flex-direction:column;
}
.ccf-popup__left .ccf-eyebrow{ color:rgba(255,255,255,.6); }
.ccf-popup__title{
  font-family:var(--ccf-font);
  font-weight:600;
  font-size:clamp(24px, 2.2vw, 32px);
  line-height:1.15;
  letter-spacing:-0.02em;
  margin:20px 0 16px;
  color:#fff;
}
.ccf-popup__sub{
  font-size:15px; line-height:1.6;
  color:rgba(255,255,255,.7);
  margin:0 0 32px;
}
.ccf-popup__direct{
  margin-top:auto;
  display:flex; flex-direction:column; gap:1px;
  background:rgba(255,255,255,.1);
}
.ccf-popup__direct-item{
  display:flex; flex-direction:column;
  padding:18px 20px;
  background:var(--ccf-dark);
  text-decoration:none;
  transition:background .3s var(--ccf-ease);
}
.ccf-popup__direct-item:hover{ background:#1B2430; }
.ccf-popup__direct-label{
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
  margin-bottom:4px;
}
.ccf-popup__direct-value{
  font-size:16px; font-weight:500;
  color:#fff;
}

.ccf-popup__right{
  padding:56px 48px;
  display:flex; flex-direction:column;
  justify-content:center;
}

/* Форма */
.ccf-form__row{ margin-bottom:20px; }
.ccf-form__field{ display:block; position:relative; }
.ccf-form__label{
  display:block;
  font-size:12px; font-weight:500;
  letter-spacing:0.06em;
  color:var(--ccf-muted);
  margin-bottom:8px;
  text-transform:uppercase;
}
.ccf-form input,
.ccf-form textarea{
  width:100%;
  padding:14px 16px;
  font-family:var(--ccf-font);
  font-size:15px;
  color:var(--ccf-ink);
  background:var(--ccf-bg-alt);
  border:1px solid transparent;
  border-radius:4px;
  transition:border-color .3s var(--ccf-ease), background .3s var(--ccf-ease);
  resize:vertical;
}
.ccf-form input:focus,
.ccf-form textarea:focus{
  outline:none;
  background:var(--ccf-white);
  border-color:var(--ccf-ink);
}
.ccf-form__honeypot{
  position:absolute !important;
  left:-9999px; top:-9999px;
  width:1px; height:1px;
  opacity:0;
  pointer-events:none;
}
.ccf-form__submit{
  width:100%;
  display:inline-flex; align-items:center; justify-content:center;
  gap:12px;
  margin-top:8px;
  padding:16px 24px;
  font-family:var(--ccf-font);
  font-size:15px; font-weight:500;
  color:var(--ccf-white);
  background:var(--ccf-ink);
  border:none;
  border-radius:999px;
  cursor:pointer;
  transition:background .3s var(--ccf-ease), transform .3s var(--ccf-ease);
}
.ccf-form__submit:hover{ background:#000; transform:translateY(-1px); }
.ccf-form__submit svg{ width:18px; height:14px; transition:transform .3s var(--ccf-ease); }
.ccf-form__submit:hover svg{ transform:translateX(4px); }
.ccf-form.is-loading .ccf-form__submit{ opacity:.6; pointer-events:none; }
.ccf-form.is-loading .ccf-form__submit-text::after{
  content:""; display:inline-block;
  width:14px; height:14px;
  margin-left:8px;
  border:2px solid currentColor;
  border-top-color:transparent;
  border-radius:50%;
  animation:graniSpin .8s linear infinite;
  vertical-align:-2px;
}
@keyframes graniSpin{ to{ transform:rotate(360deg); } }

.ccf-form__privacy{
  margin:14px 0 0;
  font-size:12px; line-height:1.5;
  color:var(--ccf-muted);
}
.ccf-form__status{
  margin-top:16px;
  padding:14px 16px;
  border-radius:4px;
  font-size:14px;
  display:none;
}
.ccf-form__status.is-success{
  display:block;
  background:rgba(34,139,82,.08);
  color:#1f6f47;
  border:1px solid rgba(34,139,82,.2);
}
.ccf-form__status.is-error{
  display:block;
  background:rgba(176,73,46,.08);
  color:#a83a20;
  border:1px solid rgba(176,73,46,.25);
}

@media (max-width:768px){
  .ccf-popup__inner{ grid-template-columns:1fr; min-height:0; }
  .ccf-popup__left{ padding:40px 28px; }
  .ccf-popup__right{ padding:36px 28px 40px; }
  .ccf-popup__direct{ display:grid; grid-template-columns:1fr 1fr; gap:1px; }
  .ccf-popup__direct-item:first-child{ grid-column:1 / -1; }
}

/* Блокировка скролла body */
body.ccf-no-scroll{ overflow:hidden; }

/* ===== СТРАНИЦА 404 ===== */
.ccf-404{
  min-height:100vh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center;
  padding:140px var(--ccf-gutter) 80px;
  background:var(--ccf-bg);
}
.ccf-404__num{
  font-family:var(--ccf-font);
  font-weight:600;
  font-size:clamp(120px, 22vw, 280px);
  line-height:.9;
  letter-spacing:-0.05em;
  color:var(--ccf-ink);
  margin:0;
}
.ccf-404__title{
  font-family:var(--ccf-font);
  font-weight:600;
  font-size:clamp(28px, 3.5vw, 44px);
  letter-spacing:-0.02em;
  margin:32px 0 16px;
  color:var(--ccf-ink);
}
.ccf-404__desc{
  font-size:17px;
  color:var(--ccf-muted);
  max-width:44ch;
  margin:0 auto 40px;
  line-height:1.6;
}
.ccf-404__actions{
  display:inline-flex; gap:16px; flex-wrap:wrap; justify-content:center;
}
