/* ================================================================
   КИФА · ДИЗАЙН-СИСТЕМА alt · kifa-main.css
   Источник: kifa-alt.html, Блоки для страниц.html, Лендинг.html,
             О компании.html, Услуги.html, Контакты.html, Портфолио.html
   ================================================================ */

/* === BASE === */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --black:#1A1E24;
  --charcoal:#2D333B;
  --stone:#5C6370;
  --muted:#7E8694;
  --line:#D2D6DC;
  --line-light:#E4E7EB;
  --sand:#ECF0F4;
  --paper:#F4F6F9;
  --white:#FAFBFC;
  --terra:#6B849E;
  --terra-dark:#5A7189;
  --terra-light:#94AAC0;
  --fd:'Golos Text',sans-serif;
  --fb:'Manrope',sans-serif;
  --mx:1320px;
  --gx:24px
}
html{scroll-behavior:smooth}
body{font-family:var(--fb);font-size:16px;line-height:1.6;color:var(--charcoal);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--charcoal);color:var(--white)}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes kifaFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:translateY(0)}

/* ============== ПОДМЕНЮ ОСНОВНОГО МЕНЮ ============== */

/* --- ДЕСКТОП --- */
.nav__links > .menu-item-has-children { position: relative; }

.nav__links > .menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  margin-left: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .2s;
  opacity: .65;
  vertical-align: middle;
}
.nav__links > .menu-item-has-children:hover > a::after { opacity: 1; transform: rotate(45deg) translateY(0); }

.nav__links .sub-menu {
  position: absolute;
  top: 100%; left: 0;
  min-width: 240px;
  background: var(--white);
  border: 1px solid var(--line);
  list-style: none;
  margin: 0; padding: 8px 0;
  opacity: 0; visibility: hidden;
  transform: translateY(4px);
  transition: opacity .2s, visibility .2s, transform .2s;
  z-index: 50;
  box-shadow: 0 6px 18px rgba(26,30,36,.06);
}
.nav__links > .menu-item-has-children:hover > .sub-menu,
.nav__links > .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.nav__links .sub-menu li { margin: 0; list-style: none; }
.nav__links .sub-menu a {
  display: block;
  padding: 10px 18px;
  font-family: var(--fb); font-size: 15px;
  color: var(--charcoal); text-decoration: none;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.nav__links .sub-menu a:hover { background: var(--sand); color: var(--terra-dark); }

/* --- МОБИЛЬНОЕ МЕНЮ --- */
.nav__mob .menu-item-has-children { position: relative; }

.nav__mob .menu-item-has-children > .nav__sub-toggle {
  position: absolute; top: 0; right: 0;
  width: 48px; height: 48px;
  background: transparent; border: none;
  color: var(--charcoal); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  padding: 0; font: inherit;
}
.nav__mob .menu-item-has-children > .nav__sub-toggle::before {
  content: '';
  width: 8px; height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .2s;
  opacity: .7;
}
.nav__mob .menu-item-has-children.is-open > .nav__sub-toggle::before {
  transform: rotate(-135deg) translateY(0); opacity: 1;
}
.nav__mob .sub-menu {
  list-style: none; margin: 0; padding: 0;
  max-height: 0; overflow: hidden;
  transition: max-height .3s;
}
.nav__mob .menu-item-has-children.is-open > .sub-menu { max-height: 600px; }
.nav__mob .sub-menu li { list-style: none; }
.nav__mob .sub-menu a {
  display: block;
  padding: 12px 24px 12px 36px;
  font-size: 15px; color: var(--muted);
  text-decoration: none;
  border-top: 1px solid var(--line-light);
}
.nav__mob .sub-menu a:hover { color: var(--charcoal); }
.nav__mob > ul > li > a { padding-right: 56px; }

/* =========================================
   ОБЗОРНАЯ СТРАНИЦА УСЛУГ
   ========================================= */

.svc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--line);padding-top:32px}
.svc{display:flex;flex-direction:column;padding:32px;background:var(--white);border:1px solid var(--line);color:var(--charcoal);text-decoration:none;transition:border-color .25s,background .25s}
.svc:hover{border-color:var(--charcoal);background:var(--paper)}
.svc__head{margin-bottom:20px}
.svc__tag{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra);margin-bottom:12px}
.svc__name{font-family:var(--fd);font-size:24px;font-weight:800;letter-spacing:-.015em;color:var(--charcoal);line-height:1.2}
.svc__desc{font-size:15px;line-height:1.55;color:var(--stone);margin-bottom:28px;flex:1}
.svc__foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:20px;border-top:1px solid var(--line);font-size:13px}
.svc__term{color:var(--muted)}
.svc__more{font-family:var(--fd);font-weight:700;color:var(--terra-dark);letter-spacing:-.01em}
.svc:hover .svc__more{color:var(--charcoal)}
@media (max-width:1024px){.svc-list{grid-template-columns:1fr;gap:16px}.svc{padding:24px}}

/* =========================================
   СТРАНИЦА ЦЕН
   ========================================= */

/* thead таблицы прайса */
.ptbl thead tr { border-bottom: 2px solid var(--charcoal); }
.ptbl thead td { font-weight: 700; padding: 12px 16px; font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }

/* якоря категорий в таблице прячутся под шапку */
tr[id] { scroll-margin-top: 100px; }

/* футеры */
.pkgs__foot { margin-top: 28px; padding: 20px 0; border-top: 1px solid var(--line); font-size: 14px; color: var(--muted); line-height: 1.55; }
.pkgs__foot a { color: var(--terra-dark); font-weight: 600; text-decoration: none; }
.ptbl__foot { margin-top: 24px; padding: 20px 0; border-top: 1px solid var(--line); font-size: 14px; color: var(--muted); line-height: 1.55; }
.ptbl__foot a { color: var(--terra-dark); font-weight: 600; text-decoration: none; }

/* блок «Как считаем» */
.howcalc { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--line); }
.howcalc__item { display: grid; grid-template-columns: 40px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.howcalc__num { font-family: var(--fd); font-size: 14px; font-weight: 700; color: var(--terra); padding-top: 2px; }
.howcalc__name { font-family: var(--fd); font-size: 17px; font-weight: 700; letter-spacing: -.015em; color: var(--charcoal); margin-bottom: 6px; }
.howcalc__desc { font-size: 14px; color: var(--muted); line-height: 1.55; }

@media (max-width: 1024px) {
  .ptbl__unit { display: none; }
  .ptbl thead td:nth-child(3) { display: none; }
}
@media (max-width: 640px) {
  .pkg { padding: 24px; }
  .cat-nav { gap: 6px; }
  .cat-nav a { padding: 5px 10px; font-size: 12px; }
  .ptbl__num { width: 32px; padding: 10px 8px; }
  .ptbl__name { padding: 10px 8px; }
  .ptbl__price { width: auto; padding: 10px 8px; }
}

/* Раскрытие прайса */
.ptbl__row[data-core="0"]{display:none}
.ptbl.is-expanded .ptbl__row[data-core="0"]{display:table-row}
.ptbl__star{display:inline-block;color:var(--terra);margin-right:8px;font-size:.95em;vertical-align:1px}
.ptbl__more{margin:24px 0 0;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.ptbl__more-btn{background:var(--white);border:1px solid var(--charcoal);color:var(--charcoal);padding:12px 20px;font-family:var(--fb);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,color .2s}
.ptbl__more-btn:hover{background:var(--charcoal);color:var(--white)}
.ptbl__more-btn .ptbl__more-btn-hide{display:none}
.ptbl.is-expanded+.ptbl__more .ptbl__more-btn-show,.tbl-wrap.is-expanded .ptbl__more-btn-show{display:none}
.ptbl.is-expanded+.ptbl__more .ptbl__more-btn-hide,.tbl-wrap.is-expanded .ptbl__more-btn-hide{display:inline}
.ptbl__legend{font-size:13px;color:var(--muted);line-height:1.5}

/* Дисклеймер в футере */
.foot__disclaimer{font-size:12px;line-height:1.55;color:rgba(255,255,255,.3);padding:20px 0;border-top:1px solid rgba(255,255,255,.08);margin-top:24px;max-width:920px}

/* =========================================
   СТРАНИЦА О КОМПАНИИ
   ========================================= */

.about-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 32px 0;
}
.about-stat__val {
  font-family: var(--fd);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--charcoal);
  line-height: 1;
  margin-bottom: 12px;
}
.about-stat__val span { font-size: .6em; color: var(--terra); margin-left: 2px; }
.about-stat__label { font-size: 14px; color: var(--muted); line-height: 1.5; max-width: 220px; }

.about-text { max-width: 720px; }
.about-text p { font-size: 17px; line-height: 1.7; color: var(--stone); margin-bottom: 20px; }
.about-text p:last-child { margin-bottom: 0; }

@media (max-width: 768px) {
  .about-stats { grid-template-columns: 1fr; gap: 24px; padding: 24px 0; }
}

/* =========================================
   СЛАЙДЕР ГАЛЕРЕИ ПРОЕКТА
   ========================================= */

.gal-slider { position: relative; margin-top: 48px; }
.gal-slider__viewport { overflow: hidden; width: 100%; }
.gal-slider__track {
  display: flex;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
  will-change: transform;
}
.gal-slider__slide {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.gal-slider__slide img {
  width: 100%;
  display: block;
  aspect-ratio: 4/3;
  object-fit: cover;
  border: 1px solid var(--line);
}
.gal-slider__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--charcoal);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  padding: 0;
}
.gal-slider__nav:hover { background: var(--charcoal); border-color: var(--charcoal); color: var(--white); }
.gal-slider__nav:disabled { opacity: .35; cursor: not-allowed; }
.gal-slider__nav--prev { left: -22px; }
.gal-slider__nav--next { right: -22px; }
.sec--alt .gal-slider__nav { background: var(--white); }
.sec--alt .gal-slider__nav:hover { background: var(--charcoal); color: var(--white); }

@media (max-width: 768px) {
  .gal-slider__slide { grid-template-columns: 1fr; gap: 16px; }
  .gal-slider__nav { width: 40px; height: 40px; }
  .gal-slider__nav--prev { left: 8px; }
  .gal-slider__nav--next { right: 8px; }
}

/* =========================================
   COOKIE-БАННЕР (152-ФЗ, информационный)
   ========================================= */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:300;background:var(--white);border-top:1px solid var(--line);box-shadow:0 -2px 16px rgba(26,30,36,.06);padding:16px var(--gx,24px);transform:translateY(100%);transition:transform .35s cubic-bezier(.22,1,.36,1)}
.cookie-banner[hidden]{display:none}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner__in{max-width:var(--mx,1320px);margin:0 auto;display:flex;flex-direction:column;gap:12px;align-items:stretch}
.cookie-banner__text{font-size:13px;line-height:1.55;color:var(--stone);flex:1}
.cookie-banner__text a{color:var(--terra-dark);text-decoration:underline;font-weight:500}
.cookie-banner__text a:hover{color:var(--charcoal)}
.cookie-banner__btn{background:var(--charcoal);color:var(--white);border:none;padding:12px 24px;font-family:var(--fb);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;align-self:flex-end;min-height:44px;white-space:nowrap}
.cookie-banner__btn:hover{background:var(--black)}
@media(min-width:768px){
  .cookie-banner{padding:14px 32px}
  .cookie-banner__in{flex-direction:row;align-items:center;gap:24px}
  .cookie-banner__btn{align-self:center}
}
body.has-cookie-banner .sticky{display:none!important}
body.has-cookie-banner.landing .foot{padding-bottom:100px}

/* =========================================
   БРОНЯ ПРОТИВ IMPREZA (us-theme-css)
   Наш CSS грузится последним. Глушим навязывания темы по тегам
   внутри наших контейнеров. Без !important.
   ========================================= */

/* --- ЗАГОЛОВКИ: снять padding-top / margin / цвет Impreza --- */
.nav h1,.nav h2,.nav h3,.nav h4,.nav h5,.nav h6,
.ihero h1,.ihero h2,.ihero h3,.ihero h4,.ihero h5,.ihero h6,
.sec h1,.sec h2,.sec h3,.sec h4,.sec h5,.sec h6,
.cta-sec h1,.cta-sec h2,.cta-sec h3,
.foot h1,.foot h2,.foot h3,.foot h4,.foot h5,.foot h6,
.kifa-cta h1,.kifa-cta h2,.kifa-cta h3,
.kifa-service-hero h1,.kifa-service-hero h2,
.kifa-page-hero h1,.kifa-page-hero h2,
.kifa-404 h1,.kifa-404 h2,
.kifa-contacts h2,.kifa-contacts h3,
.kifa-service-features h2,.kifa-service-features h3,
.kifa-service-cases h2,.kifa-service-faq h2,
.kifa-form-modal h2 {
  padding-top: 0;
  margin: 0;
  font-family: var(--fd);
  color: inherit;
}

/* --- ЗАГОЛОВКИ: тёмные секции — явно белые --- */
.ihero .ihero__h,
.cta-sec .cta__title,
.cta-sec h2,
.foot .foot__logo,
.sec--dark h1,.sec--dark h2,.sec--dark h3,.sec--dark h4 {
  color: var(--white);
}

/* --- СПИСКИ: убить disc + margin-left Impreza --- */
.nav ul,.nav ol,
.ihero ul,.ihero ol,
.sec ul,.sec ol,
.cta-sec ul,.cta-sec ol,
.foot ul,.foot ol,
.kifa-cta ul,.kifa-contacts ul,
.kifa-service-features ul,.kifa-service-cases ul,
.kifa-service-faq ul,.kifa-form-modal ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav li,.ihero li,.sec li,.cta-sec li,.foot li {
  margin: 0;
}

/* --- АБЗАЦЫ: убить margin-bottom 1.5rem Impreza в не-контентных секциях --- */
.ihero p,.cta-sec p,.foot p,
.kifa-cta p,.kifa-service-hero p {
  margin-bottom: 0;
}

/* --- ПОЛЯ ФОРМ: снять min-height/line-height/шрифт Impreza --- */
.sec input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.sec textarea,.sec select,
.cta-sec input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.cta-sec textarea,.cta-sec select,
.kifa-form-modal input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.kifa-form-modal textarea {
  min-height: 0;
  line-height: normal;
  font-family: var(--fb);
  letter-spacing: normal;
  text-transform: none;
  box-shadow: none;
}

/* === PROGRESS BAR === */
.progress{position:fixed;top:0;left:0;height:2px;background:var(--terra);z-index:200;width:0%;pointer-events:none}

/* === NAV === */
.nav{position:sticky;top:0;z-index:100;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.nav__in{display:flex;align-items:center;justify-content:space-between;padding:14px var(--gx);max-width:var(--mx);margin:0 auto;gap:12px}
.nav__logo{font-family:var(--fd);font-size:18px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--charcoal);text-decoration:none;flex-shrink:0;display:flex;align-items:center;height:21px;width:120px}
.nav__links{display:none;list-style:none;gap:28px}
.nav__links a{color:var(--line);text-decoration:none;font-size:14px;font-weight:500;transition:color .3s}
.nav__links a:hover{color:var(--white)}
.nav__links a.active{color:var(--white);font-weight:600}
.nav--scrolled .nav__links a{color:var(--stone)}
.nav--scrolled .nav__links a:hover{color:var(--charcoal)}
.nav--scrolled .nav__links a.active{color:var(--charcoal);font-weight:600}
.nav__right{display:flex;align-items:center;gap:12px}
.nav__cta{display:none;padding:10px 20px;background:var(--charcoal);color:var(--white);text-decoration:none;font-size:13px;font-weight:600;transition:background .2s;white-space:nowrap}
.nav__cta:hover{background:var(--black)}
.nav__phone{color:var(--white);text-decoration:none;font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;transition:color .3s}
.nav--scrolled .nav__phone{color:var(--charcoal)}
.nav__burger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px;width:44px;height:44px;justify-content:center;align-items:center}
.nav__burger span{display:block;width:20px;height:1.5px;background:var(--white);transition:transform .3s,opacity .3s,background .3s}
.nav--scrolled .nav__burger span{background:var(--charcoal)}
.nav__burger.open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}
.nav__burger.open span:nth-child(2){opacity:0}
.nav__burger.open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}
.nav__mob{display:none;position:absolute;top:100%;left:0;right:0;background:var(--white);border-bottom:1px solid var(--line);padding:20px var(--gx);z-index:99}
.nav__mob.open{display:block}
.nav__mob ul{list-style:none;margin-bottom:20px}
.nav__mob li{border-bottom:1px solid var(--line-light)}
.nav__mob a{display:block;padding:14px 0;color:var(--charcoal);text-decoration:none;font-size:16px;font-weight:500}
.nav__mob-cta{display:block;text-align:center;padding:16px;background:var(--charcoal);color:var(--white);text-decoration:none;font-size:15px;font-weight:600}
/* Landing nav variant (no links, shows hours+phone) */
.nav__meta{display:none;align-items:center;gap:16px;font-size:13px;color:var(--stone)}
.nav__meta a{color:#000;text-decoration:none;font-weight:600}
.nav__phone-m{color:var(--white);text-decoration:none;font-size:14px;font-weight:600;transition:color .3s}
.nav--scrolled .nav__phone-m{color:var(--charcoal)}

/* === HERO (main page, fullscreen) === */
.hero{background:var(--charcoal);color:var(--white);min-height:100vh;display:flex;align-items:center;position:relative;top:-68px;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 40%,rgba(107,132,158,.12),transparent 65%);pointer-events:none}
.hero__in{max-width:var(--mx);margin:0 auto;padding:100px var(--gx);width:100%;position:relative;z-index:2}
.hero__grid{display:grid;gap:48px}
.hero__content{display:flex;flex-direction:column;justify-content:center}
.hero__label{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:40px;animation:fadeUp .8s cubic-bezier(.22,1,.36,1) both}
.hero__h{font-family:var(--fd);font-size:clamp(36px,8vw,96px);font-weight:800;line-height:1.04;letter-spacing:-.045em;max-width:900px;margin-bottom:40px}
.hero__h span{display:block;opacity:0;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) both}
.hero__h span:nth-child(1){animation-delay:.1s}
.hero__h span:nth-child(2){animation-delay:.2s}
.hero__h span:nth-child(3){animation-delay:.3s;color:var(--terra-light)}
.hero__h em{font-style:italic;color:var(--terra-light)}
.hero__desc{font-size:17px;line-height:1.65;color:rgba(255,255,255,.5);max-width:540px;margin-bottom:48px;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .4s both}
.hero__actions{display:flex;flex-direction:column;gap:12px;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .5s both}
.hero__btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:18px 32px;font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;font-family:var(--fb);width:100%}
.hero__btn--p{background:var(--terra);color:var(--white)}
.hero__btn--p:hover{background:var(--terra-dark)}
.hero__btn--g{border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.65)}
.hero__btn--g:hover{border-color:rgba(255,255,255,.35);color:var(--white)}
.hero__note{font-size:13px;color:rgba(255,255,255,.3);margin-top:8px}
.hero__bar{position:absolute;bottom:0;left:0;right:0;border-top:1px solid rgba(255,255,255,.08);padding:16px var(--gx)}
.hero__bar-in{max-width:var(--mx);margin:0 auto;display:flex;align-items:center;gap:12px;font-size:14px;color:rgba(255,255,255,.4)}
/* Landing hero bar — inline, not absolute */
.hero__bar--inline{border-top:1px solid rgba(255,255,255,.08);padding-top:16px;margin-top:auto;display:flex;align-items:center;gap:10px;font-size:14px;color:rgba(255,255,255,.4);animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .45s both}
.hero__dot{width:8px;height:8px;border-radius:50%;background:var(--terra-light);animation:shimmer 2.5s ease-in-out infinite;flex-shrink:0}

/* === HERO FORM (landing) === */
.hf{background:#3d4f63;padding:36px 28px;color:var(--charcoal);animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .3s both}
.hf__title{font-family:var(--fd);font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.hf__sub{font-size:14px;color:var(--muted);margin-bottom:24px}
.hf__fld{margin-bottom:16px}
.hf__fld label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.02em}
.hf__fld input{width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--line);font-size:16px;font-family:inherit;outline:none;background:transparent;transition:border-color .2s;border-radius:0;-webkit-appearance:none;appearance:none}
.hf__fld input::placeholder{color:var(--line)}
.hf__fld input:focus{border-color:var(--terra)}
.hf__btn{width:100%;padding:16px;background:var(--terra);color:var(--white);border:none;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s;margin-top:8px;min-height:48px}
.hf__btn:hover{background:var(--terra-dark)}
.hf__note{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.45}

/* === INNER HERO (inner pages) === */
.ihero{background:var(--charcoal);color:var(--white);position:relative;overflow:hidden;top:-73px}
.ihero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 40%,rgba(107,132,158,.12),transparent 65%);pointer-events:none}
.ihero__in{max-width:var(--mx);margin:0 auto;padding:120px var(--gx) 80px;position:relative;z-index:2}
.ihero__label{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:28px;animation:fadeUp .8s cubic-bezier(.22,1,.36,1) both}
.ihero__h{font-family:var(--fd);font-size:clamp(32px,5vw,64px);font-weight:800;line-height:1.08;letter-spacing:-.04em;max-width:800px;margin-bottom:20px;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .1s both}
.ihero__h em{font-style:italic;color:var(--terra-light)}
.ihero__desc{font-size:17px;line-height:1.6;color:rgba(255,255,255,.45);max-width:560px;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .2s both}

/* === BREADCRUMB === */
.bread{max-width:var(--mx);margin:0 auto;padding:16px var(--gx);font-size:13px;color:var(--muted)}
.bread a{color:var(--muted);text-decoration:none;transition:color .2s}
.bread a:hover{color:var(--charcoal)}
.bread span{margin:0 6px;color:var(--line)}

/* === SECTIONS === */
.sec{border-bottom:1px solid var(--line);position:relative}
.sec--alt{background:var(--paper)}
.sec--dark{background:var(--charcoal);color:var(--white);border-color:rgba(255,255,255,.1)}
.g{max-width:var(--mx);margin:0 auto;padding:80px var(--gx);display:grid;gap:40px}
.g--wide{grid-template-columns:1fr!important}
.sec__num{font-family:var(--fd);font-size:clamp(44px,7vw,64px);font-weight:300;line-height:1;letter-spacing:-.03em;color:var(--line)}
.sec--dark .sec__num{color:rgba(255,255,255,.1)}
.sec__label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.sec--dark .sec__label{color:rgba(255,255,255,.3)}
.sec__title{font-family:var(--fd);font-size:clamp(24px,3.5vw,42px);font-weight:700;line-height:1.14;letter-spacing:-.03em;margin-top:14px}
.sec__title em{font-style:italic;color:var(--terra)}
.sec--dark .sec__title{color:var(--white)}
.sec--dark .sec__title em{color:var(--terra-light)}
.sec__subtitle{font-size:15px;color:var(--muted);margin-top:10px;line-height:1.55;max-width:540px}

/* === NUMBERS (main page — 4-col strip) === */
.nums{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.nums__item{padding:28px var(--gx);border-bottom:1px solid var(--line)}
.nums__item:nth-child(odd){border-right:1px solid var(--line)}
.nums__val{font-family:var(--fd);font-size:clamp(40px,10vw,80px);font-weight:800;line-height:1;letter-spacing:-.04em}
.nums__val small{font-size:.35em;font-weight:500;color:var(--muted);letter-spacing:0}
.nums__label{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.4}

/* === NUMBERS ROW (inner pages) === */
.nrow{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.nrow__i{background:var(--white);padding:24px 20px}
.sec--alt .nrow__i{background:var(--paper)}
.nrow__v{font-family:var(--fd);font-size:clamp(36px,8vw,56px);font-weight:800;line-height:1;letter-spacing:-.04em;margin-bottom:6px}
.nrow__v small{font-size:.4em;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:2px}
.nrow__l{font-size:13px;color:var(--muted);line-height:1.4}
.nrow-foot{font-size:15px;line-height:1.6;color:var(--stone);max-width:640px}

/* === PHOTO PLACEHOLDER === */
.ph{background:var(--charcoal);position:relative;overflow:hidden}
.ph::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 14px,rgba(255,255,255,.02) 14px,rgba(255,255,255,.02) 28px)}
.ph::after{content:attr(data-ph);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:11px;color:rgba(255,255,255,.18);text-align:center;padding:24px;text-transform:uppercase;letter-spacing:.06em;line-height:1.6}

/* === TEXT BLOCK === */
.txt{font-size:16px;line-height:1.7;color:var(--stone);max-width:680px}
.txt p{margin-bottom:16px}
.txt p:last-child{margin-bottom:0}
.txt em{color:var(--terra);font-style:italic}
.txt strong{color:var(--charcoal);font-weight:600}
.txt h3{font-family:var(--fd);font-size:20px;font-weight:700;color:var(--charcoal);letter-spacing:-.02em;margin:28px 0 10px}

/* === APPROACH === */
.ap__cols{display:flex;flex-direction:column;gap:40px}
.ap__stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:24px}
.ap__stat-lbl{font-size:11px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.ap__stat-val{font-family:var(--fd);font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.ap__img{aspect-ratio:16/10;width:100%;margin-top:24px}
.ap__cap{font-size:12px;color:var(--muted);margin-top:8px}
.ap__text{font-size:16px;line-height:1.65;color:var(--stone)}
.ap__text em{color:var(--terra);font-style:italic}
.ap__text p{margin-bottom:16px}
.ap__text p:last-child{margin-bottom:0}

/* === FEARS === */
.fr{padding:24px 0;border-bottom:1px solid var(--line)}
.fr:first-child{border-top:1px solid var(--line)}
.fr__num{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--terra);letter-spacing:.08em;margin-bottom:6px}
.fr__q{font-family:var(--fd);font-size:clamp(17px,2vw,22px);font-weight:700;line-height:1.25;letter-spacing:-.015em;margin-bottom:8px}
.fr__a{font-size:15px;line-height:1.6;color:var(--muted)}
.fr__a strong{color:var(--charcoal);font-weight:600}

/* === TIMELINE === */
.tl{border-left:1px solid var(--line);margin-left:12px}
.ts{padding:20px 0 20px 28px;position:relative}
.ts::before{content:'';position:absolute;left:-5px;top:26px;width:9px;height:9px;border-radius:50%;background:var(--line);border:2px solid var(--white)}
.ts:first-child::before{background:var(--terra)}
.ts__num{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.ts__name{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.015em;margin-bottom:4px}
.ts__desc{font-size:14px;color:var(--muted);line-height:1.55}
/* Extended timeline (kifa-alt main page) */
.ts__day{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.ts__day strong{color:var(--charcoal);font-weight:700;font-size:16px;font-family:var(--fd);letter-spacing:-.01em;text-transform:none;margin-left:4px}
.ts__tag{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:4px 10px;background:rgba(107,132,158,.1);border-left:2px solid var(--terra);font-size:13px;color:var(--terra-dark);font-weight:500}

/* === PORTFOLIO CARDS === */
.pj{display:block;margin-bottom:56px}
.pj:last-child{margin-bottom:0}
.pj__img{aspect-ratio:16/9;width:100%;margin-bottom:20px}
.pj__loc{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra);margin-bottom:10px}
.pj__name{font-family:var(--fd);font-size:clamp(18px,2.5vw,26px);font-weight:700;letter-spacing:-.02em;margin-bottom:14px;line-height:1.2}
.pj__stats{display:grid;grid-template-columns:repeat(3,auto);gap:20px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px}
.pj__sv{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.02em;margin-bottom:2px}
.pj__sl{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.pj__desc{font-size:15px;line-height:1.6;color:var(--stone)}
.pj__quote{font-size:16px;line-height:1.55;color:var(--stone);padding-left:16px;border-left:2px solid var(--terra);margin-bottom:8px}
.pj__author{font-size:13px;color:var(--muted);padding-left:16px}
/* Gallery grid (portfolio page) */
.gal{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.gal img{width:100%;display:block;border:1px solid var(--line);aspect-ratio:4/3;object-fit:cover}
.pj__img img{width:100%;height:100%;object-fit:cover;display:block}
section[id]{scroll-margin-top:100px}

/* === PRICING — TIER CARDS (kifa-alt main page) === */
.ps{display:grid;grid-template-columns:1fr;border:1px solid var(--line);margin-bottom:36px}
.ps__i{padding:18px 16px;border-bottom:1px solid var(--line);display:flex;gap:10px;font-size:14px;align-items:baseline}
.ps__i:last-child{border-bottom:none}
.ps__n{font-size:12px;font-weight:700;color:var(--terra);flex-shrink:0}
@media(min-width:1024px){.ps{grid-template-columns:repeat(2,1fr)}}
.tfs{display:flex;flex-direction:column;gap:16px;margin-bottom:40px}
.tf{border:1px solid var(--line);padding:28px 20px;position:relative}
.tf--pop{border-color:var(--terra);box-shadow:0 8px 28px rgba(107,132,158,.12)}
.tf__badge{position:absolute;top:-11px;left:20px;background:var(--terra);color:var(--white);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px}
.tf__name{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.tf__price{font-family:var(--fd);font-size:clamp(32px,7vw,56px);font-weight:800;letter-spacing:-.04em;color:var(--terra);line-height:1;margin-bottom:6px}
.tf__price .from{font-size:.45em;color:var(--muted);margin-right:4px;font-weight:500}
.tf__sub{font-size:14px;color:var(--muted);margin-bottom:14px;line-height:1.5}
.tf__area{font-size:13px;color:var(--charcoal);font-weight:600;margin-bottom:16px;padding:4px 10px;background:var(--sand);display:inline-block}
.tf__list{list-style:none;margin-bottom:20px}
.tf__list li{font-size:14px;padding:5px 0;border-bottom:1px solid var(--line-light);display:flex;align-items:baseline;gap:8px}
.tf__list li::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--terra);flex-shrink:0;margin-top:7px}
.tf__list li:last-child{border-bottom:none}
.tf__cta{display:flex;align-items:center;justify-content:center;padding:14px;background:var(--charcoal);color:var(--white);text-decoration:none;font-size:14px;font-weight:600;transition:background .2s;min-height:48px}
.tf__cta:hover{background:var(--black)}
.tf--pop .tf__cta{background:var(--terra)}
.tf--pop .tf__cta:hover{background:var(--terra-dark)}

/* === PRICING CARDS (landing, simpler) === */
.pcards{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px}
.pc{border:1px solid var(--line);padding:28px 24px;transition:box-shadow .2s}
.pc:hover{box-shadow:0 8px 24px rgba(0,0,0,.04)}
.pc__name{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.pc__area{font-size:14px;color:var(--stone);margin-bottom:12px}
.pc__val{font-family:var(--fd);font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-.03em;color:var(--charcoal);line-height:1}
.pc__val .from{font-size:.5em;color:var(--muted);font-weight:500;margin-right:4px}
.pnote{font-size:13px;color:var(--muted);line-height:1.55;padding-top:16px;border-top:1px solid var(--line)}

/* === ESTIMATE BLOCK === */
.ec{border:1px solid var(--line)}
.ec__meta{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.ec__mi{font-size:14px;color:var(--charcoal);font-weight:500}
.ec__mi span{display:block;font-size:11px;color:var(--muted);letter-spacing:.03em;text-transform:uppercase;margin-bottom:2px;font-weight:500}
.ec__total{font-family:var(--fd);font-size:22px;font-weight:800;color:var(--terra);letter-spacing:-.02em}
.ec__total span{display:block;font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;font-family:var(--fb);font-weight:500}
.ec__row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line);align-items:center}
.ec__row:last-child{border-bottom:none}
.ec__rl{font-size:14px;font-weight:500}
.ec__rd{font-size:12px;color:var(--muted)}
.ec__rv{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--terra);text-align:right;white-space:nowrap}
.ec__bar{height:3px;background:var(--line-light);margin-top:6px;grid-column:1/-1;overflow:hidden}
.ec__bf{height:100%;background:linear-gradient(90deg,var(--terra),var(--terra-light));transform-origin:left;transform:scaleX(0);transition:transform 1s cubic-bezier(.22,1,.36,1)}
.ec__bf.animated{transform:scaleX(1)}
.ec__foot{padding:16px 20px;border-top:1px solid var(--line);text-align:center}
.ec__cta{display:inline-flex;align-items:center;gap:10px;background:var(--terra);color:var(--white);padding:14px 24px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s}
.ec__cta:hover{background:var(--terra-dark)}

/* === EXCLUSIONS === */
.ex{padding:18px 0;border-bottom:1px solid var(--line)}
.ex:first-child{border-top:1px solid var(--line)}
.ex__mark{font-size:18px;color:var(--stone);font-family:var(--fd);margin-bottom:4px}
.ex__what{font-family:var(--fd);font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}
.ex__why{font-size:14px;color:var(--muted);line-height:1.5}

/* === TEAM === */
.team{display:grid;grid-template-columns:1fr;gap:32px}
.team__card{display:grid;grid-template-columns:80px 1fr;gap:16px;padding:24px 0;border-bottom:1px solid var(--line)}
.team__card:last-child{border-bottom:none}
.team__ava{width:80px;height:80px}
.team__name{font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:2px}
.team__role{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra);margin-bottom:8px}
.team__bio{font-size:14px;line-height:1.6;color:var(--muted)}
.sec--dark .team__card{border-color:rgba(255,255,255,.1)}
.sec--dark .team__name{color:var(--white)}
.sec--dark .team__bio{color:rgba(255,255,255,.45)}

/* === PRINCIPLES (bordered list) === */
.prn{padding:24px 0;border-bottom:1px solid var(--line)}
.prn:first-child{border-top:1px solid var(--line)}
.prn__num{font-family:var(--fd);font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--terra);margin-bottom:8px}
.prn__title{font-family:var(--fd);font-size:clamp(17px,2vw,22px);font-weight:700;line-height:1.25;letter-spacing:-.01em;margin-bottom:8px}
.prn__text{font-size:15px;line-height:1.6;color:var(--muted)}
.sec--dark .prn{border-color:rgba(255,255,255,.1)}
.sec--dark .prn__num{color:var(--terra-light)}
.sec--dark .prn__title{color:var(--white)}
.sec--dark .prn__text{color:rgba(255,255,255,.45)}

/* === ABOUT / FOUNDERS === */
.about__intro{font-size:clamp(18px,2.2vw,24px);line-height:1.45;color:var(--charcoal);margin-bottom:32px;max-width:720px;letter-spacing:-.01em}
.about__intro em{color:var(--terra);font-style:italic}
.fds{display:flex;flex-direction:column;gap:28px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:28px}
.fd{display:grid;grid-template-columns:56px 1fr;gap:14px}
.fd__ava{width:56px;height:56px;overflow:hidden}
.fd__name{font-family:var(--fd);font-size:17px;font-weight:700;margin-bottom:2px}
.fd__role{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra);margin-bottom:6px}
.fd__bio{font-size:14px;line-height:1.55;color:var(--muted)}
.fcts{display:grid;grid-template-columns:1fr;gap:16px}
.fct{display:grid;grid-template-columns:72px 1fr;gap:10px}
.fct__l{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.fct__v{font-size:15px;line-height:1.5}
.fct__v strong{font-weight:600;color:var(--terra-dark)}

/* === STATS (О компании — 4-col number grid) === */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:0}
.stat{padding:28px 0;border-bottom:1px solid var(--line)}
.stat:nth-child(-n+2){border-top:1px solid var(--line)}
.stat__val{font-family:var(--fd);font-size:clamp(36px,5vw,56px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--charcoal);margin-bottom:8px}
.stat__val span{color:var(--terra)}
.stat__label{font-size:13px;color:var(--muted);line-height:1.4}

/* === PRINCIPLES ALT (О компании — numbered with icon col) === */
.princ{display:grid;grid-template-columns:1fr;gap:0}
.princ__item{padding:24px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:40px 1fr;gap:16px;align-items:start}
.princ__item:first-child{border-top:1px solid var(--line)}
.princ__num{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--terra);letter-spacing:.04em;padding-top:2px}
.princ__name{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.015em;margin-bottom:6px}
.princ__desc{font-size:14px;color:var(--muted);line-height:1.55}

/* === HISTORY TIMELINE (О компании) === */
.htl{display:grid;grid-template-columns:1fr;gap:0}
.htl__item{display:grid;grid-template-columns:72px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}
.htl__item:first-child{border-top:1px solid var(--line)}
.htl__year{font-family:var(--fd);font-size:15px;font-weight:800;color:var(--terra);letter-spacing:-.02em;padding-top:2px}
.htl__name{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.015em;margin-bottom:4px}
.htl__desc{font-size:14px;color:var(--muted);line-height:1.55}

/* === SERVICE CARDS === */
.svc-grid{display:grid;grid-template-columns:1fr;gap:20px}
.svc{border:1px solid var(--line);padding:28px 24px;transition:box-shadow .2s}
.svc:hover{box-shadow:0 8px 28px rgba(0,0,0,.04)}
.svc__num{font-family:var(--fd);font-size:12px;font-weight:700;color:var(--terra);letter-spacing:.08em;margin-bottom:12px}
.svc__name{font-family:var(--fd);font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px;line-height:1.2}
.svc__desc{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:16px}
.svc__link{font-size:13px;font-weight:600;color:var(--terra-dark);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:color .2s}
.svc__link:hover{color:var(--charcoal)}

/* === FEATURES LIST === */
.feats{display:grid;grid-template-columns:1fr;gap:0}
.feat{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}
.feat:first-child{border-top:1px solid var(--line)}
.feat__icon{width:48px;height:48px;background:var(--sand);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:16px;font-weight:700;color:var(--terra)}
.feat__name{font-family:var(--fd);font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}
.feat__desc{font-size:14px;color:var(--muted);line-height:1.5}

/* === CONTACT INFO === */
.ci{display:grid;grid-template-columns:1fr;gap:0}
.ci__item{padding:20px 0;border-bottom:1px solid var(--line)}
.ci__item:first-child{border-top:1px solid var(--line)}
.ci__label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ci__val{font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.ci__val a{color:var(--charcoal);text-decoration:none;transition:color .2s}
.ci__val a:hover{color:var(--terra)}
.ci__sub{font-size:13px;color:var(--muted);margin-top:4px}
/* Contacts page two-column layout */
.ct-grid{display:grid;gap:56px}

/* === CONTACT FORM === */
.cform{max-width:480px}
.cform__title{font-family:var(--fd);font-size:22px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.cform__sub{font-size:14px;color:var(--muted);margin-bottom:28px}
.cform__fld{margin-bottom:18px}
.cform__fld label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.02em}
.cform__fld input,.cform__fld textarea{width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--line);font-size:16px;font-family:inherit;outline:none;background:transparent;transition:border-color .2s;border-radius:0;-webkit-appearance:none;appearance:none;resize:none}
.cform__fld input::placeholder,.cform__fld textarea::placeholder{color:var(--line)}
.cform__fld input:focus,.cform__fld textarea:focus{border-color:var(--terra)}
.cform__btn{padding:16px 32px;background:var(--charcoal);color:var(--white);border:none;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s;margin-top:8px;min-height:48px}
.cform__btn:hover{background:var(--black)}
.cform__note{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.45}
.map-frame{width:100%;aspect-ratio:2.2/1;position:relative;border:1px solid var(--line);overflow:hidden;background:var(--sand)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* CF7 — светлый вариант (на белом/светлом фоне).
   Двойной класс даёт бо́льшую специфичность, чем базовые правила .kifa-cf7-form. */
.kifa-cf7-form.kifa-cf7-form--light .forma__input input[type="text"],
.kifa-cf7-form.kifa-cf7-form--light .forma__input input[type="tel"],
.kifa-cf7-form.kifa-cf7-form--light .forma__input input[type="email"],
.kifa-cf7-form.kifa-cf7-form--light .forma__input textarea {
  width: 100%;
  padding: 12px 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  color: var(--charcoal);
  font-family: var(--fb);
  font-size: 16px;
  letter-spacing: normal;
  outline: none;
  transition: border-color .2s;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
  resize: none;
}
.kifa-cf7-form.kifa-cf7-form--light .forma__input input::placeholder,
.kifa-cf7-form.kifa-cf7-form--light .forma__input textarea::placeholder {
  color: var(--line);
  opacity: 1;
}
.kifa-cf7-form.kifa-cf7-form--light .forma__input input:focus,
.kifa-cf7-form.kifa-cf7-form--light .forma__input textarea:focus {
  border-bottom-color: var(--terra);
}
.kifa-cf7-form.kifa-cf7-form--light .forma__input_button input[type="submit"],
.kifa-cf7-form.kifa-cf7-form--light .forma__input_button .wpcf7-submit,
.kifa-cf7-form.kifa-cf7-form--light input[type="submit"] {
  background: var(--charcoal);
  color: var(--white);
  border: none;
  padding: 16px 32px;
  font-family: var(--fb);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
  transition: background .2s;
  min-height: 48px;
  width: auto;
  border-radius: 0;
}
.kifa-cf7-form.kifa-cf7-form--light .forma__input_button input[type="submit"]:hover,
.kifa-cf7-form.kifa-cf7-form--light .forma__input_button .wpcf7-submit:hover,
.kifa-cf7-form.kifa-cf7-form--light input[type="submit"]:hover {
  background: var(--black);
}
.kifa-cf7-form.kifa-cf7-form--light .polit,
.kifa-cf7-form.kifa-cf7-form--light .forma__polit,
.kifa-cf7-form.kifa-cf7-form--light .wpcf7-list-item-label {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.45;
}
.kifa-cf7-form.kifa-cf7-form--light .polit a {
  color: var(--terra);
  border-bottom: 1px solid rgba(107,132,158,.3);
}
.kifa-cf7-form.kifa-cf7-form--light .wpcf7-response-output {
  border: 1px solid var(--line);
  color: var(--charcoal);
  font-size: 13px;
  padding: 10px 14px;
  margin: 16px 0 0;
  border-radius: 0;
  text-align: left;
}
.kifa-cf7-form.kifa-cf7-form--light form.sent .wpcf7-response-output {
  border-color: var(--terra);
  background: rgba(107, 132, 158, 0.08);
}
.kifa-cf7-form.kifa-cf7-form--light .wpcf7-not-valid-tip {
  color: #C24A4A;
  font-size: 12px;
  margin-top: 4px;
}
.kifa-cf7-form.kifa-cf7-form--light .wpcf7-not-valid {
  border-bottom-color: #C24A4A !important;
}
.kifa-cf7-form.kifa-cf7-form--light .wpcf7-spinner { background-color: var(--charcoal); }

/* === MAP PLACEHOLDER === */
.map-ph{width:100%;aspect-ratio:2.2/1;background:var(--sand);position:relative;border:1px solid var(--line)}
.map-ph::after{content:attr(data-ph);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}

/* === PACKAGE CARDS (Каталог услуг) === */
.pkgs{display:grid;grid-template-columns:1fr;gap:20px}
.pkg{border:1px solid var(--line);padding:32px 28px;transition:box-shadow .2s}
.pkg:hover{box-shadow:0 8px 28px rgba(0,0,0,.04)}
.pkg--accent{border-color:var(--terra);background:linear-gradient(to bottom right,rgba(107,132,158,.03),transparent)}
.pkg__tag{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra);margin-bottom:14px}
.pkg__name{font-family:var(--fd);font-size:22px;font-weight:700;letter-spacing:-.02em;margin-bottom:6px;line-height:1.2}
.pkg__desc{font-size:14px;color:var(--muted);line-height:1.55;margin-bottom:20px}
.pkg__price{font-family:var(--fd);font-size:28px;font-weight:800;letter-spacing:-.03em;margin-bottom:4px}
.pkg__note{font-size:12px;color:var(--muted);margin-bottom:20px}
.pkg__list{list-style:none!important;margin-bottom:20px!important}
.pkg__list li{font-size:14px;color:var(--stone);padding:6px 0;padding-left:18px;position:relative;line-height:1.45}
.pkg__list li::before{content:'·';position:absolute;left:0;font-weight:700;color:var(--terra)}
.pkg__link{font-size:13px;font-weight:600;color:var(--terra-dark);text-decoration:none;transition:color .2s}
.pkg__link:hover{color:var(--charcoal)}

/* === PRICE TABLE (Каталог услуг) === */
.ptbl{width:100%;border-collapse:collapse}
.ptbl__cat{background:var(--sand);font-family:var(--fd);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--stone)}
.ptbl__cat td{padding:12px 16px;border-bottom:1px solid var(--line)}
.ptbl__row td{padding:12px 16px;border-bottom:1px solid var(--line-light);font-size:14px;vertical-align:top}
.ptbl__row:hover{background:rgba(107,132,158,.03)}
.ptbl__num{color:var(--muted);font-family:var(--fd);font-size:13px;font-weight:600;width:40px;text-align:center}
.ptbl__name{color:var(--charcoal);font-weight:500;line-height:1.4}
.ptbl__unit{color:var(--muted);font-size:13px;text-align:center;white-space:nowrap;width:80px}
.ptbl__price{font-family:var(--fd);font-weight:700;color:var(--charcoal);text-align:right;white-space:nowrap;width:120px;letter-spacing:-.02em}
.tbl-wrap{overflow-x:auto;margin:0 calc(var(--gx)*-1)}
@media(min-width:768px){.tbl-wrap{padding:0 var(--gx)}}
.tbl-wrap::-webkit-scrollbar{height:4px}
.tbl-wrap::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}
.cat-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.cat-nav a{display:inline-block;padding:8px 16px;border:1px solid var(--line);font-size:13px;font-weight:500;color:var(--stone);text-decoration:none;transition:all .2s}
.cat-nav a:hover{border-color:var(--terra);color:var(--charcoal)}

/* === FAQ === */
.qi{padding:18px 0;border-bottom:1px solid var(--line)}
.qi:first-child{border-top:1px solid var(--line)}
.qi__q{font-family:var(--fd);font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.3;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;cursor:pointer;transition:color .2s;min-height:44px;padding-top:2px}
.qi__q:hover{color:var(--terra)}
.qi__tog{font-size:20px;font-weight:300;color:var(--muted);flex-shrink:0;transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.qi.open .qi__tog{transform:rotate(45deg);color:var(--terra)}
.qi__a{font-size:15px;line-height:1.6;color:var(--muted);max-width:640px;margin-top:10px}
.qi__a strong{color:var(--charcoal);font-weight:600}
.qi.collapsed .qi__a{display:none}

/* === CTA SECTION === */
.cta-sec{background:var(--charcoal);color:var(--white);border:none}
.cta__title{font-family:var(--fd);font-size:clamp(26px,4.5vw,48px);font-weight:800;line-height:1.08;letter-spacing:-.035em;margin-bottom:14px!important}
.cta__title em{font-style:italic;color:var(--terra-light)}
.cta__desc{font-size:16px;line-height:1.6;color:rgba(255,255,255,.5);max-width:480px}
/* Button variant (inner pages) */
.cta__btn{display:inline-flex;align-items:center;gap:10px;padding:18px 32px;background:var(--terra);color:var(--white);text-decoration:none;font-size:15px;font-weight:600;transition:background .2s}
.cta__btn:hover{background:var(--terra-dark)}
/* Flex columns layout (kifa-alt main page) */
.cta__cols{display:flex;flex-direction:column;gap:48px}
/* Grid layout (landing) */
.cta__grid{display:grid;gap:48px}
/* Inline form */
.cta__form{padding-top:28px;border-top:1px solid rgba(255,255,255,.1)}
.cta__fl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:24px}
.cta__fld{margin-bottom:18px}
.cta__fld label{display:block;font-size:13px;color:rgba(255,255,255,.4);margin-bottom:6px}
.cta__fld input{width:100%;padding:14px 0;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.18);color:var(--white);font-family:inherit;font-size:16px;outline:none;transition:border-color .2s;border-radius:0;-webkit-appearance:none;appearance:none}
.cta__fld input::placeholder{color:rgba(255,255,255,.2)}
.cta__fld input:focus{border-color:var(--terra-light)}
.cta__submit{width:100%;padding:18px;background:var(--terra);color:var(--white);border:none;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s;min-height:52px;margin-top:8px}
.cta__submit:hover{background:var(--terra-dark)}
.cta__note{font-size:12px;color:rgba(255,255,255,.3);margin-top:12px}
/* Messenger links (landing) */
.cta__messengers{margin-top:20px;font-size:14px;color:rgba(255,255,255,.35)}
.cta__messengers a{color:rgba(255,255,255,.6);text-decoration:none;font-weight:500;transition:color .2s}
.cta__messengers a:hover{color:var(--white)}

/* === FOOTER === */
.foot{background:var(--black);color:var(--white);padding:40px var(--gx)}
.foot__in{max-width:var(--mx);margin:0 auto}
@media(min-width:768px){.foot__in{padding:0 48px}}
.foot__top{display:flex;flex-direction:column;gap:32px;margin-bottom:32px}
.foot__logo{font-family:var(--fd);font-size:15px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#fff;width:120px;margin-bottom:8px}
.foot__desc{font-size:13px;color:rgba(255,255,255,.35);max-width:320px;line-height:1.5}
.foot__cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.foot__ct{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.25);margin-bottom:10px}
.foot__col ul{list-style:none}
.foot__col li{margin-bottom:7px}
.foot__col a{color:rgba(255,255,255,.55);text-decoration:none;font-size:13px;transition:color .2s}
.foot__col a:hover{color:var(--terra-light)}
.foot__contact{font-size:14px;color:var(--white);font-weight:500;margin-bottom:4px}
.foot__csub{font-size:12px;color:rgba(255,255,255,.3);margin-bottom:10px}
/* Compact contact row (landing footer) */
.foot__contacts{display:flex;flex-wrap:wrap;gap:16px 28px;font-size:13px;color:rgba(255,255,255,.45)}
.foot__contacts a{color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s}
.foot__contacts a:hover{color:var(--terra-light)}
.foot__contacts strong{color:var(--white);font-weight:600}
.foot__bottom{padding-top:24px;border-top:1px solid rgba(255,255,255,.07);font-size:12px;color:rgba(255,255,255,.22);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
.foot__bottom a{color:inherit;text-decoration:none;transition:color .2s}
.foot__bottom a:hover{color:rgba(255,255,255,.4)}

/* === STICKY MOBILE BAR === */
.sticky{position:fixed;bottom:0;left:0;right:0;z-index:150;background:var(--charcoal);padding:10px 16px;display:flex;gap:12px;align-items:center;transform:translateY(100%);transition:transform .35s cubic-bezier(.22,1,.36,1);border-top:1px solid rgba(255,255,255,.08)}
.sticky.visible{transform:translateY(0)}
.sticky__btn{flex:1;background:var(--terra);color:var(--white);text-align:center;padding:13px;font-size:14px;font-weight:600;text-decoration:none;min-height:44px;display:flex;align-items:center;justify-content:center}
.sticky__ph{color:rgba(255,255,255,.8);text-decoration:none;font-size:13px;white-space:nowrap;font-weight:500;min-height:44px;display:flex;align-items:center;justify-content:center}

/* === RESPONSIVE === */
@media(min-width:600px){
  .nrow{grid-template-columns:repeat(3,1fr)}
  .svc-grid{grid-template-columns:1fr 1fr}
  .feats{grid-template-columns:1fr 1fr;gap:0 40px}
  .ci{grid-template-columns:1fr 1fr}
  .pkgs{grid-template-columns:1fr 1fr}
  .pcards{grid-template-columns:repeat(3,1fr)}
  .ps{grid-template-columns:1fr 1fr}
  .ps__i:nth-child(odd){border-right:1px solid var(--line)}
  .ps__i:nth-child(3),.ps__i:nth-child(4){border-top:none}
  .stats{grid-template-columns:repeat(4,1fr)}
  .stat{border-top:1px solid var(--line)!important}
  .princ{grid-template-columns:1fr 1fr;gap:0 40px}
}
@media(min-width:768px){
  :root{--gx:32px}
  .nav__links{display:flex}
  .nav__cta{display:inline-flex}
  .nav__burger,.nav__phone{display:none}
  .nav__mob{display:none!important}
  .nav__meta{display:flex}
  .nav__phone-m{display:none}
  .g{padding:100px var(--gx)}
  .hero__actions{flex-direction:row}
  .hero__btn{width:auto}
  .hero__in{padding:120px var(--gx)}
  .hero__grid{grid-template-columns:1fr 360px;align-items:center;gap:56px}
  .ihero__in{padding:180px var(--gx) 140px}
  .ap__cols{flex-direction:row;gap:56px}
  .ap__left{flex:1;min-width:0}
  .ap__right{flex:1;min-width:0}
  .fr{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;padding:28px 0}
  .fr__num{grid-row:1/3}
  .fds{flex-direction:row;gap:36px}
  .fd{grid-template-columns:64px 1fr}
  .fd__ava{width:64px;height:64px}
  .fcts{grid-template-columns:1fr 1fr;gap:24px 40px}
  .pj__lay{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
  .pj__img{margin-bottom:0}
  .ps{grid-template-columns:1fr 1fr}
  .ps__i:nth-child(3){border-top:1px solid var(--line)}
  .ps__i:nth-child(4){border-top:1px solid var(--line)}
  .ex{display:grid;grid-template-columns:36px 1fr 2fr;gap:4px 20px;align-items:baseline}
  .ex__mark{grid-row:1}
  .ex__what{grid-column:2}
  .ex__why{grid-column:3}
  .ct-grid{grid-template-columns:1fr 1fr;gap:64px;align-items:start}
  .cta__cols{flex-direction:row;gap:72px;align-items:start}
  .cta__left{flex:3;min-width:0}
  .cta__form-w{flex:2;min-width:0}
  .cta__grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px}
  .nums{grid-template-columns:repeat(4,1fr)}
  .nums__item{border-bottom:none;border-right:1px solid var(--line);padding:36px 24px}
  .nums__item:last-child{border-right:none}
  .team{grid-template-columns:1fr 1fr;gap:24px 40px}
  .team__card{grid-template-columns:72px 1fr}
  .team__ava{width:72px;height:72px}
  .foot__top{flex-direction:row;justify-content:space-between;gap:40px}
  .foot__cols{grid-template-columns:1fr 1fr 1fr}
  .foot__bottom{flex-direction:row}
  .sticky{display:none}
}
@media(min-width:900px){
  .pkgs{grid-template-columns:1fr 1fr 1fr}
}
@media(min-width:1024px){
  :root{--gx:48px}
  .g{padding:140px var(--gx);grid-template-columns:260px 1fr;gap:64px}
  .g--wide{grid-template-columns:1fr!important}
  .sec__meta{position:sticky;top:100px;align-self:start}
  .hero__in{padding:160px var(--gx)}
  .hero__grid{grid-template-columns:1fr 380px;gap:72px}
  .hero__h{font-size:clamp(40px,5vw,72px);color:#ffffff}
  .fr{grid-template-columns:44px 1fr 2fr;gap:6px 24px}
  .fr__num{grid-row:1}
  .fr__q{grid-column:2}
  .fr__a{grid-column:3;grid-row:1}
  .tfs{flex-direction:row;gap:20px}
  .tf{flex:1;padding:32px 28px}
  .tf--pop{transform:translateY(-8px)}
  .tf:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.05)}
  .tf--pop:hover{transform:translateY(-12px);box-shadow:0 16px 44px rgba(107,132,158,.14)}
  .ps{grid-template-columns:repeat(4,1fr)}
  .ps__i:nth-child(2){border-right:1px solid var(--line)}
  .ps__i:nth-child(3),.ps__i:nth-child(4){border-top:none}
  .ps__i:last-child{border-right:none}
  .ec__meta{padding:24px 28px;gap:24px}
  .ec__total{margin-left:auto}
  .ec__row{padding:14px 28px}
  .cta__cols{gap:100px}
  .cta__grid{gap:100px}
  .pj__lay{gap:48px}
  .svc-grid{grid-template-columns:1fr 1fr}
}
@media(min-width:1280px){
  .g{padding:160px var(--gx)}
}
@media(max-width:767px){
  .foot{padding-bottom:80px}
}

/* =========================================
   FORM MODAL — Модалка заявки на замер
   ========================================= */

.kifa-form-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.kifa-form-modal.is-open {
  display: block;
  opacity: 1;
}

.kifa-form-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 26, 26, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
}

.kifa-form-modal__dialog {
  position: relative;
  max-width: 560px;
  width: calc(100% - 40px);
  max-height: calc(100vh - 40px);
  margin: 20px auto;
  background: var(--terra);
  color: var(--white);
  border-radius: 4px;
  overflow: hidden;
  transform: translateY(20px) scale(0.98);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
}

.kifa-form-modal.is-open .kifa-form-modal__dialog {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.kifa-form-modal__close {
  position: absolute; top: 16px; right: 16px;
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--white); font-size: 20px; line-height: 1;
  cursor: pointer; z-index: 10; font-family: var(--fb);
  transition: background 0.2s ease;
}

.kifa-form-modal__close:hover { background: rgba(255, 255, 255, 0.15); }

.kifa-form-modal__content {
  padding: 56px 48px 48px;
  overflow-y: auto;
  max-height: calc(100vh - 40px);
}

.kifa-form-modal__eyebrow {
  font-size: 12px; font-weight: 500; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--terra-light);
  margin-bottom: 20px; display: block;
}

.kifa-form-modal__title {
  font-family: var(--fb);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 600; line-height: 1.15; letter-spacing: -0.03em;
  color: var(--white); margin: 0 0 20px 0;
}

.kifa-form-modal__title em {
  font-family: var(--fd); font-style: italic; font-weight: 400;
  color: var(--terra-light);
}

.kifa-form-modal__desc {
  font-size: 15px; line-height: 1.55;
  color: rgba(255, 255, 255, 0.7); margin: 0 0 32px 0;
}

.kifa-form-modal__form { margin-top: 8px; }

@media (max-width: 640px) {
  .kifa-form-modal__content { padding: 48px 24px 32px; }
  .kifa-form-modal__dialog {
    width: calc(100% - 24px);
    margin: 12px auto;
    max-height: calc(100vh - 24px);
  }
}

body.kifa-burger-open { overflow: hidden; }

/* =========================================
   SERVICE FAQ ITEMS (используются на страницах услуг)
   ========================================= */

.kifa-faq-item { padding: 22px 0; border-bottom: 1px solid var(--line); }

.kifa-faq-item__q {
  font-size: 18px; font-weight: 600;
  letter-spacing: -0.01em; line-height: 1.3;
  display: flex; justify-content: space-between;
  align-items: flex-start; gap: 24px;
  cursor: pointer; color: var(--charcoal);
  transition: color 0.2s ease;
}

.kifa-faq-item__q:hover { color: var(--terra); }

.kifa-faq-item__toggle {
  font-size: 24px; font-weight: 300;
  color: var(--muted); flex-shrink: 0; line-height: 1;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), color 0.2s ease;
}

.kifa-faq-item.is-open .kifa-faq-item__toggle { transform: rotate(45deg); color: var(--terra); }

.kifa-faq-item__answer {
  font-size: 16px; line-height: 1.65;
  color: var(--muted); max-width: 680px;
  overflow: hidden; max-height: 0; opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin-top 0.3s ease;
  margin-top: 0;
}

.kifa-faq-item.is-open .kifa-faq-item__answer { max-height: 500px; opacity: 1; margin-top: 24px; }
.kifa-faq-item__answer strong { color: var(--charcoal); font-weight: 500; }

/* =========================================
   PAGE HERO
   ========================================= */

.kifa-page-hero {
  padding: 120px 0 80px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}

.kifa-page-hero::before {
  content: '';
  position: absolute;
  top: 50%;
  right: -10%;
  transform: translateY(-50%);
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(122, 165, 184, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.kifa-page-hero__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 2;
}

.kifa-page-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 40px;
}

.kifa-page-hero__eyebrow-line {
  width: 48px;
  height: 1px;
  background: var(--terra);
}

.kifa-page-hero__eyebrow-text {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.kifa-page-hero__title {
  font-family: var(--fd);
  font-size: clamp(40px, 6vw, 88px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.045em;
  margin: 0 0 32px 0;
  color: var(--charcoal);
  max-width: 1100px;
}

.kifa-page-hero__title-accent {
  font-family: var(--fd);
  font-style: italic;
  font-weight: 400;
  color: var(--terra);
  letter-spacing: -0.02em;
}

.kifa-page-hero__subtitle {
  font-size: 19px;
  line-height: 1.55;
  color: var(--muted);
  max-width: 700px;
  margin: 0;
}

/* =========================================
   PAGE CONTENT
   ========================================= */

.kifa-page-content {
  padding: 80px 0 160px;
  background: var(--white);
}

.kifa-page-content__inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 48px;
  font-size: 17px;
  line-height: 1.7;
  color: var(--charcoal);
}

.kifa-page-content__inner h2 {
  font-family: var(--fb);
  font-size: clamp(26px, 2.8vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: var(--charcoal);
  margin: 64px 0 24px 0;
}

.kifa-page-content__inner h3 {
  font-family: var(--fb);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: var(--charcoal);
  margin: 48px 0 16px 0;
}

.kifa-page-content__inner p {
  margin: 0 0 20px 0;
}

.kifa-page-content__inner em {
  font-family: var(--fd);
  font-style: italic;
  color: var(--terra);
  font-size: 1.05em;
}

.kifa-page-content__inner strong {
  font-weight: 600;
  color: var(--charcoal);
}

.kifa-page-content__inner a {
  color: var(--terra);
  border-bottom: 1px solid var(--terra-light);
  transition: color 0.2s ease, border-color 0.2s ease;
}

.kifa-page-content__inner a:hover {
  color: var(--terra-dark);
  border-color: var(--terra);
}

.kifa-page-content__inner ul,
.kifa-page-content__inner ol {
  margin: 0 0 24px 0;
  padding-left: 24px;
}

.kifa-page-content__inner li {
  margin-bottom: 10px;
}

.kifa-page-content__inner blockquote {
  margin: 32px 0;
  padding: 0 0 0 28px;
  border-left: 2px solid var(--terra);
  font-family: var(--fd);
  font-style: italic;
  font-size: 22px;
  line-height: 1.5;
  color: var(--charcoal);
}

/* =========================================
   404
   ========================================= */

.kifa-404 {
  padding: 160px 0 200px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
  min-height: 70vh;
  display: flex;
  align-items: center;
}

.kifa-404::before {
  content: '404';
  position: absolute;
  top: 50%;
  right: -5%;
  transform: translateY(-50%);
  font-family: var(--fd);
  font-style: italic;
  font-size: clamp(300px, 40vw, 600px);
  font-weight: 400;
  line-height: 0.8;
  color: rgba(61, 79, 99, 0.05);
  pointer-events: none;
  z-index: 0;
  letter-spacing: -0.05em;
}

.kifa-404__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 2;
  max-width: 700px;
}

.kifa-404__code {
  font-family: var(--fd);
  font-style: italic;
  font-size: 24px;
  letter-spacing: 0.15em;
  color: var(--terra);
  margin-bottom: 24px;
}

.kifa-404__title {
  font-family: var(--fd);
  font-size: clamp(40px, 6vw, 80px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.045em;
  margin: 0 0 32px 0;
  color: var(--charcoal);
}

.kifa-404__title-accent {
  font-family: var(--fd);
  font-style: italic;
  font-weight: 400;
  color: var(--terra);
}

.kifa-404__text {
  font-size: 19px;
  line-height: 1.55;
  color: var(--muted);
  margin: 0 0 48px 0;
  max-width: 580px;
}

.kifa-404__btn {
  display: inline-flex;
  align-items: center;
  background: var(--terra);
  color: var(--white);
  padding: 22px 36px;
  font-size: 15px;
  font-weight: 600;
  border-radius: 4px;
  transition: background 0.25s ease;
}

.kifa-404__btn:hover {
  background: var(--terra-dark);
  color: var(--white);
}

/* =========================================
   CONTACTS
   ========================================= */

.kifa-contacts {
  padding: 100px 0 160px;
  background: var(--white);
}

.kifa-contacts__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
}

.kifa-contacts__grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 80px;
  align-items: start;
}

.kifa-contacts__info {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--line);
}

.kifa-contact-block {
  padding: 32px 0;
  border-bottom: 1px solid var(--line);
}

.kifa-contact-block__label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}

.kifa-contact-block__value {
  font-family: var(--fb);
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 500;
  letter-spacing: -0.025em;
  color: var(--charcoal);
  text-decoration: none;
  display: inline-block;
  transition: color 0.2s ease;
}

a.kifa-contact-block__value:hover {
  color: var(--terra);
}

.kifa-contact-block__sub {
  font-size: 14px;
  color: var(--muted);
  margin-top: 10px;
  line-height: 1.6;
}

.kifa-contact-block--note {
  border-bottom: none;
  padding-top: 32px;
}

.kifa-contact-note {
  font-size: 17px;
  line-height: 1.6;
  color: var(--charcoal);
  padding: 24px 28px;
  background: var(--paper);
  border-left: 2px solid var(--terra);
  border-radius: 0 4px 4px 0;
}

.kifa-contact-note em {
  font-family: var(--fd);
  font-style: italic;
  color: var(--terra);
  font-size: 1.05em;
  letter-spacing: -0.01em;
}

.kifa-contact-messengers {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}

.kifa-msg {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  background: var(--paper);
  color: var(--charcoal);
  border: 1px solid var(--line);
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.25s ease;
  text-decoration: none;
}

.kifa-msg:hover {
  background: var(--terra);
  color: var(--white);
  border-color: var(--terra);
  transform: translateY(-2px);
}

.kifa-msg__icon {
  font-size: 13px;
  font-weight: 600;
  opacity: 0.7;
}

.kifa-msg:hover .kifa-msg__icon {
  opacity: 1;
}

.kifa-contacts__map-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 500px;
  border-radius: 4px;
  overflow: hidden;
  background: var(--sand);
  border: 1px solid var(--line);
}

/* =========================================
   ADAPTIVE — PAGE HERO / CONTENT / 404 / CONTACTS
   ========================================= */

@media (max-width: 1024px) {
  .kifa-page-hero__inner,
  .kifa-page-content__inner,
  .kifa-404__inner,
  .kifa-contacts__inner {
    padding: 0 32px;
  }

  .kifa-page-hero { padding: 80px 0 60px; }
  .kifa-page-content { padding: 60px 0 120px; }

  .kifa-contacts {
    padding: 80px 0 120px;
  }

  .kifa-contacts__grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .kifa-contacts__map-frame {
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 640px) {
  .kifa-page-hero__inner,
  .kifa-page-content__inner,
  .kifa-404__inner,
  .kifa-contacts__inner {
    padding: 0 20px;
  }

  .kifa-page-hero {
    padding: 60px 0 40px;
  }

  .kifa-page-hero__eyebrow {
    margin-bottom: 24px;
  }

  .kifa-page-content {
    padding: 40px 0 80px;
  }

  .kifa-page-content__inner h2 {
    margin: 40px 0 16px 0;
  }

  .kifa-404 {
    padding: 100px 0 140px;
    min-height: auto;
  }

  .kifa-contacts {
    padding: 60px 0 100px;
  }

  .kifa-contact-block {
    padding: 24px 0;
  }

  .kifa-contact-messengers {
    flex-direction: column;
  }

  .kifa-msg {
    width: 100%;
    justify-content: center;
  }
}

/* =========================================
   PORTFOLIO PAGE
   ========================================= */

.kifa-portfolio-page {
  padding: 80px 0 120px;
  background: var(--white);
}

.kifa-portfolio-page__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
}

.kifa-portfolio-page__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 64px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--line);
}

.kifa-pf-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 4px;
  font-family: var(--fb);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--charcoal);
  cursor: pointer;
  transition: all 0.25s ease;
}

.kifa-pf-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
}

.kifa-pf-btn.is-active {
  background: var(--terra);
  border-color: var(--terra);
  color: var(--white);
}

.kifa-pf-btn__count {
  font-size: 11px;
  opacity: 0.6;
  font-weight: 400;
}

.kifa-portfolio-page__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px 48px;
}

.kifa-project.is-hidden {
  display: none;
}

.kifa-portfolio-empty {
  padding: 80px 0;
  text-align: center;
  color: var(--muted);
  font-family: var(--fd);
  font-style: italic;
  font-size: 22px;
  grid-column: 1 / -1;
  display: none;
}

.kifa-portfolio-empty.is-visible {
  display: block;
}

@media (max-width: 1024px) {
  .kifa-portfolio-page__inner {
    padding: 0 32px;
  }
  .kifa-portfolio-page__grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .kifa-portfolio-page__filters {
    margin-bottom: 48px;
    padding-bottom: 32px;
  }
}

@media (max-width: 640px) {
  .kifa-portfolio-page {
    padding: 60px 0 80px;
  }
  .kifa-portfolio-page__inner {
    padding: 0 20px;
  }
  .kifa-pf-btn {
    padding: 8px 14px;
    font-size: 12px;
  }
}

/* =========================================
   SERVICE HERO
   ========================================= */

.kifa-service-hero {
  padding: 120px 0 100px;
  background: var(--paper);
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}

.kifa-service-hero::before {
  content: '';
  position: absolute;
  top: 50%;
  right: -15%;
  transform: translateY(-50%);
  width: 700px;
  height: 700px;
  background: radial-gradient(circle, rgba(122, 165, 184, 0.1) 0%, transparent 65%);
  pointer-events: none;
}

.kifa-service-hero__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
  position: relative;
  z-index: 2;
}

.kifa-service-hero__left {
  max-width: 1100px;
}

.kifa-service-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 48px;
  opacity: 0;
  animation: kifaFadeUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.kifa-service-hero__eyebrow-line {
  width: 48px;
  height: 1px;
  background: var(--terra);
}

.kifa-service-hero__eyebrow-text {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.kifa-service-hero__title {
  font-family: var(--fd);
  font-size: clamp(44px, 6.5vw, 96px);
  font-weight: 700;
  line-height: 1.03;
  letter-spacing: -0.045em;
  margin: 0 0 40px 0;
  color: var(--charcoal);
  opacity: 0;
  animation: kifaFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

.kifa-service-hero__title em {
  font-family: var(--fd);
  font-style: italic;
  font-weight: 400;
  color: var(--terra);
  letter-spacing: -0.02em;
}

.kifa-service-hero__subtitle {
  font-size: 19px;
  line-height: 1.6;
  color: var(--charcoal);
  max-width: 760px;
  margin: 0 0 56px 0;
  opacity: 0;
  animation: kifaFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;
}

.kifa-service-hero__meta {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
  opacity: 0;
  animation: kifaFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.45s both;
}

.kifa-service-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: var(--terra);
  color: var(--white);
  padding: 22px 36px;
  font-size: 15px;
  font-weight: 600;
  border-radius: 4px;
  transition: background 0.25s ease, gap 0.3s ease;
  font-family: var(--fb);
}

.kifa-service-hero__cta:hover {
  background: var(--terra-dark);
  color: var(--white);
  gap: 24px;
}

.kifa-service-hero__cta-arrow {
  width: 18px;
  height: 10px;
  position: relative;
  flex-shrink: 0;
}

.kifa-service-hero__cta-arrow::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 1.5px;
  background: var(--white);
}

.kifa-service-hero__cta-arrow::before {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: right center;
  width: 8px;
  height: 1.5px;
  background: var(--white);
  margin-top: -3px;
}

.kifa-service-hero__meta-text {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.5;
}

/* =========================================
   SERVICE FEATURES
   ========================================= */

.kifa-service-features {
  padding: 140px 0;
  background: var(--white);
}

.kifa-service-features__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
}

.kifa-service-features__header {
  margin-bottom: 80px;
  max-width: 900px;
}

.kifa-service-features__eyebrow {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.kifa-service-features__title {
  font-family: var(--fd);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.04em;
  margin: 24px 0 0 0;
  color: var(--charcoal);
}

.kifa-service-features__title-accent {
  font-family: var(--fd);
  font-style: italic;
  font-weight: 400;
  color: var(--terra);
  letter-spacing: -0.02em;
  margin-left: 12px;
}

.kifa-service-features__list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
}

.kifa-service-feature {
  padding: 40px 32px 40px 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.kifa-service-feature:nth-child(3n) {
  border-right: none;
  padding-right: 0;
}

.kifa-service-feature:nth-last-child(-n+3) {
  border-bottom: none;
}

.kifa-service-feature__num {
  font-family: var(--fd);
  font-style: italic;
  font-size: 24px;
  color: var(--terra);
  margin-bottom: 24px;
}

.kifa-service-feature__title {
  font-family: var(--fb);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.025em;
  color: var(--charcoal);
  margin: 0 0 16px 0;
}

.kifa-service-feature__text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0;
}

/* =========================================
   SERVICE CASES
   ========================================= */

.kifa-service-cases {
  padding: 120px 0;
  background: var(--paper);
}

.kifa-service-cases__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
}

.kifa-service-cases__header {
  max-width: 720px;
  margin: 0 0 72px 0;
}

.kifa-service-cases__eyebrow {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: 24px;
}

.kifa-service-cases__title {
  font-family: var(--fd);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.035em;
  color: var(--charcoal);
  margin: 0 0 40px 0;
}

.kifa-service-cases__title-accent {
  font-family: var(--fd);
  font-style: italic;
  font-weight: 400;
  color: var(--terra);
}

.kifa-service-cases__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px 48px;
  margin-bottom: 80px;
}

.kifa-service-cases__footer {
  text-align: center;
}

.kifa-service-cases__all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 32px;
  background: transparent;
  border: 1px solid var(--terra);
  color: var(--terra);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
  border-radius: 4px;
  transition: all 0.25s ease;
}

.kifa-service-cases__all:hover {
  background: var(--terra);
  color: var(--white);
  gap: 16px;
}

/* =========================================
   SERVICE FAQ
   ========================================= */

.kifa-service-faq {
  padding: 140px 0;
  background: var(--white);
}

.kifa-service-faq__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 48px;
}

.kifa-service-faq__header {
  margin-bottom: 64px;
}

.kifa-service-faq__eyebrow {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.kifa-service-faq__title {
  font-family: var(--fd);
  font-size: clamp(32px, 4vw, 56px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.035em;
  margin: 24px 0 0 0;
  color: var(--charcoal);
}

.kifa-service-faq__title-accent {
  font-family: var(--fd);
  font-style: italic;
  font-weight: 400;
  color: var(--terra);
}

.kifa-service-faq__list {
  border-top: 1px solid var(--line);
}

/* =========================================
   ADAPTIVE — SERVICE PAGES
   ========================================= */

@media (max-width: 1024px) {
  .kifa-service-hero__inner,
  .kifa-service-features__inner,
  .kifa-service-cases__inner,
  .kifa-service-faq__inner {
    padding: 0 32px;
  }

  .kifa-service-hero {
    padding: 80px 0 60px;
  }

  .kifa-service-features,
  .kifa-service-faq {
    padding: 100px 0;
  }

  .kifa-service-cases {
    padding: 80px 0;
  }

  .kifa-service-cases__grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .kifa-service-features__list {
    grid-template-columns: 1fr 1fr;
  }

  .kifa-service-feature:nth-child(3n) {
    border-right: 1px solid var(--line);
    padding-right: 32px;
  }

  .kifa-service-feature:nth-child(2n) {
    border-right: none;
    padding-right: 0;
  }

  .kifa-service-feature:nth-last-child(-n+3) {
    border-bottom: 1px solid var(--line);
  }

  .kifa-service-feature:nth-last-child(-n+2) {
    border-bottom: none;
  }
}

@media (max-width: 640px) {
  .kifa-service-hero__inner,
  .kifa-service-features__inner,
  .kifa-service-cases__inner,
  .kifa-service-faq__inner {
    padding: 0 20px;
  }

  .kifa-service-hero {
    padding: 60px 0 40px;
  }

  .kifa-service-hero__eyebrow {
    margin-bottom: 32px;
  }

  .kifa-service-hero__subtitle {
    margin-bottom: 40px;
  }

  .kifa-service-hero__meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .kifa-service-features,
  .kifa-service-faq {
    padding: 80px 0;
  }

  .kifa-service-cases {
    padding: 60px 0;
  }

  .kifa-service-features__list {
    grid-template-columns: 1fr;
  }

  .kifa-service-feature {
    border-right: none !important;
    padding-right: 0 !important;
    padding: 32px 0;
  }

  .kifa-service-feature:not(:last-child) {
    border-bottom: 1px solid var(--line) !important;
  }
}

/* =========================================
   CTA (секция «Оставьте заявку», используется в contacts.php)
   ========================================= */

.kifa-cta {
  padding: 180px 0;
  background: var(--charcoal); color: var(--white);
  position: relative; overflow: hidden;
}

.kifa-cta::after {
  content: '';
  position: absolute; top: -30%; left: -10%;
  width: 70%; height: 100%;
  background: radial-gradient(ellipse at center, rgba(122, 165, 184, 0.22) 0%, transparent 60%);
  pointer-events: none;
}

.kifa-cta::before {
  content: 'Кифа';
  position: absolute; bottom: -80px; right: -40px;
  font-family: var(--fd);
  font-style: italic; font-size: 420px;
  letter-spacing: -0.04em;
  color: rgba(255, 255, 255, 0.05);
  pointer-events: none; line-height: 1;
}

.kifa-cta__inner {
  max-width: 1440px; margin: 0 auto; padding: 0 48px;
  position: relative; z-index: 2;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 120px; align-items: start;
}

.kifa-cta__col {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.kifa-cta[data-kifa-reveal].in .kifa-cta__col:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.05s; }
.kifa-cta[data-kifa-reveal].in .kifa-cta__col:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.2s; }

.kifa-cta__eyebrow { font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--terra-light); margin-bottom: 32px; display: block; }

.kifa-cta .kifa-cta__title {
  font-family: var(--fd);
  font-size: clamp(40px, 5vw, 80px);
  font-weight: 600; line-height: 1.02; letter-spacing: -0.04em;
  color: var(--white); margin: 0 0 40px 0;
  padding-top: 0;
}

.kifa-cta__title-accent { font-family: var(--fd); font-style: italic; font-weight: 400; color: var(--terra-light); }

.kifa-cta__desc { font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, 0.75); max-width: 480px; margin: 0; }

.kifa-cta__form { padding-top: 32px; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.kifa-cta__form-label { font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); margin-bottom: 32px; }

.kifa-cta__note { font-size: 12px; color: rgba(255, 255, 255, 0.5); margin-top: 20px; line-height: 1.5; }

/* =========================================
   CF7 — стили полей формы (.kifa-cf7-form)
   ========================================= */

.kifa-cf7-form .forma__input {
  margin-bottom: 24px;
}

.kifa-cf7-form .forma__input .wpcf7-form-control-wrap {
  display: block;
}

.kifa-cf7-form .forma__input input[type="text"],
.kifa-cf7-form .forma__input input[type="tel"],
.kifa-cf7-form .forma__input input[type="email"],
.kifa-cf7-form .forma__input textarea {
  width: 100%;
  padding: 16px 0;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 0;
  color: var(--white);
  font-family: var(--fb);
  font-size: 17px;
  letter-spacing: -0.01em;
  outline: none;
  resize: none;
  transition: border-color 0.2s ease;
  box-shadow: none;
}

.kifa-cf7-form .forma__input textarea {
  min-height: 80px;
  padding-top: 16px;
  font-family: var(--fb);
  line-height: 1.5;
}

.kifa-cf7-form .forma__input input::placeholder,
.kifa-cf7-form .forma__input textarea::placeholder {
  color: rgba(255, 255, 255, 0.35);
  font-family: var(--fb);
  font-size: 17px;
}

.kifa-cf7-form .forma__input input:focus,
.kifa-cf7-form .forma__input textarea:focus {
  border-bottom-color: var(--terra-light);
}

.kifa-cf7-form .forma__input:has(input[type="hidden"]) {
  display: none;
  margin: 0;
}

.kifa-cf7-form .forma__input_button {
  margin-top: 36px;
  margin-bottom: 16px;
}

.kifa-cf7-form .forma__input_button input[type="submit"],
.kifa-cf7-form .forma__input_button .wpcf7-submit {
  width: 100%;
  padding: 22px 32px;
  background: var(--terra);
  color: var(--white) !important;
  border: none;
  font-family: var(--fb);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  border-radius: 0;
  transition: background 0.25s ease, letter-spacing 0.3s ease;
}

.kifa-cf7-form .forma__input_button input[type="submit"]:hover,
.kifa-cf7-form .forma__input_button .wpcf7-submit:hover {
  background: var(--terra-dark);
}

.kifa-cf7-form .polit {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  margin-top: 16px;
  line-height: 1.55;
}

.kifa-cf7-form .polit a {
  color: var(--terra-light);
  border-bottom: 1px solid rgba(122, 165, 184, 0.3);
  transition: border-color 0.2s ease;
}

.kifa-cf7-form .polit a:hover {
  border-bottom-color: var(--terra-light);
}

.kifa-cf7-form .wpcf7-response-output {
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: var(--white) !important;
  font-size: 14px;
  padding: 16px 20px !important;
  margin: 20px 0 0 0 !important;
  border-radius: 4px;
  text-align: center;
}

.kifa-cf7-form form.sent .wpcf7-response-output {
  border-color: var(--terra-light) !important;
  background: rgba(122, 165, 184, 0.15);
}

.kifa-cf7-form .wpcf7-not-valid-tip {
  color: var(--terra-light) !important;
  font-size: 12px;
  margin-top: 6px;
}

.kifa-cf7-form .wpcf7-spinner {
  background-color: var(--white);
}

/* Адаптив CTA */
@media (max-width: 1024px) {
  .kifa-cta__inner {
    padding: 0 32px;
    grid-template-columns: 1fr;
    gap: 60px;
  }
}

@media (max-width: 640px) {
  .kifa-cta__inner {
    padding: 0 20px;
  }
}

/* =========================================
   VISIBILITY GUARANTEE — inner page reveal elements
   JS initKifaReveal watches .rv, not [data-kifa-reveal],
   so inner page animated elements must be visible by default.
   ========================================= */

.kifa-cta__col,
.kifa-contacts__info,
.kifa-contacts__map,
.kifa-portfolio-page__filters,
.kifa-portfolio-page__grid .kifa-project,
.kifa-service-features__header,
.kifa-service-feature,
.kifa-service-cases__header,
.kifa-service-cases__grid,
.kifa-service-cases__footer,
.kifa-service-faq__header,
.kifa-service-faq__list {
  opacity: 1 !important;
  transform: none !important;
}
