:root{
  --ct-blue: #2b6fb2;
  --ct-blue2:#1f4f78;
  --ct-sand:#ece6dd;
  --ct-sand2:#e2dbd1;
  --ct-ink:#1c1a18;
  --ct-muted:#6b6259;
  --ct-font: "Manrope", "Inter", "Jost", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ct-font-alt: "Jost", "Inter", "Manrope", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ct-header-h: 72px;
}

html,body{height:100%}
body{
  margin:0;
  background: #0f1115;
  color:#fff;
  font-family: var(--ct-font);
}

.ct-topbar{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;

  background: rgba(20,18,16,.55);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  border-bottom: 1px solid rgba(255,255,255,.12);
}
.ct-logo{ width:60px;height:60px; object-fit:contain; filter: drop-shadow(0 6px 18px rgba(0,0,0,.35)); }
.ct-brand__name{ font-weight:800; line-height:1.05; }
.ct-brand__tag{ font-size:12px; color: rgba(255,255,255,.70); line-height:1.05; }
.navbar .nav-link{ color: rgba(255,255,255,.86) !important; font-size:14px; }
.navbar .nav-link:hover{ color:#fff !important; }
.ct-phone{ color: rgba(255,255,255,.88); font-size:14px; }
.ct-btn-call{
  background: #2e79bf;
  border-color:#2e79bf;
  border-radius: 4px;
}

/* HERO */
.ct-hero{
  /* Фолбэк на разные расширения. Достаточно, чтобы в папке был хотя бы один файл hero.(png|jpg|jpeg) */
  background: url("assets/img/hero4.jpg") center/cover no-repeat;
  background-image: image-set(
    url("assets/img/hero4.jpg") type("image/jpeg"),
  );
  position: relative;
}
.ct-hero::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,.05) 100%);
}
.ct-hero .container-xxl{ position:relative; }
.ct-hero__inner{
  padding: calc(120px + var(--ct-header-h)) 0 120px;
  max-width: 560px;
}
.ct-h1{
  font-weight: 800;
  letter-spacing: -0.25px;
  line-height: 1.05;
  font-size: clamp(38px, 4.6vw, 58px);
  margin: 0 0 10px 0;
  text-shadow: 0 10px 32px rgba(0,0,0,.35);
}
.ct-h1-sub{
  font-size: 18px;
  color: rgba(255,255,255,.85);
  margin-bottom: 18px;
}
.ct-hero__actions{ display:flex; gap: 12px; flex-wrap:wrap; }
.ct-btn{
  border-radius: 6px;
  padding: 12px 22px;
  font-weight: 600;
}
.ct-btn-light{
  background: #eee7dd;
  border-color: #eee7dd;
  color: #2a241f;
}
.ct-btn-primary{
  background: #2b6fb2;
  border-color: #2b6fb2;
}

/* FEATURES BAR (как на макете) */
/* если есть готовая полоска features.jpg — используем её как текстуру */
.ct-features{
  position: relative;
  margin-top: -48px; /* наезд на hero */
  z-index: 5;

  /* более прозрачный и «макетный» синий */
  background: linear-gradient(
    180deg,
    rgba(58,123,168,.55),
    rgba(38,86,122,.55)
  );
}
/* лёгкая тонировка, чтобы текст/иконки читались как на скрине */
.ct-features .container-xxl{ position: relative; }

.ct-features__grid{
  min-height: 82px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;

  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.ct-feature{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 14px 16px;
  color: rgba(255,255,255,.95);
  font-size: 15px;
  line-height: 1.15;
  border-right: 1px solid rgba(255,255,255,.10);
  text-align: left;
}
.ct-feature:last-child{ border-right: 0; }

.ct-feature__num{
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  text-shadow: 0 6px 18px rgba(0,0,0,.22);
}

.ct-feature__icon{
  width: 42px;
  height: 42px;
  min-width: 42px;
  display: flex;
  align-items: center;
  justify-content: center;

  filter: drop-shadow(0 10px 22px rgba(0,0,0,.28));
}

.ct-feature__icon img,
.ct-feature__icon svg{
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ct-feature__text{
  font-weight: 600;
  text-shadow: 0 2px 8px rgba(0,0,0,.25);
}

@media (max-width: 991.98px){
  .ct-features__grid{ grid-template-columns: 1fr 1fr; }
  .ct-feature{
    justify-content: flex-start;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.22);
  }
  .ct-feature:nth-child(3),
  .ct-feature:nth-child(4){ border-bottom: 0; }
}

@media (max-width: 575.98px){
  .ct-features__grid{ grid-template-columns: 1fr; }
  .ct-feature{
    border-bottom: 1px solid rgba(255,255,255,.22);
    padding: 12px 6px;
  }
  .ct-feature:last-child{ border-bottom: 0; }
}

/* Section backgrounds (screenshot has sand textures) */
.ct-cats{
  background: #e4ddd2;
  padding: 64px 0 72px;
}
.ct-design{
  background: url("assets/img/design_bg1.jpg") center/cover no-repeat;
  background-image: image-set(
    url("assets/img/design_bg1.png") type("image/png"),
    url("assets/img/design_bg1.jpg") type("image/jpeg"),
    url("assets/img/design_bg1.jpeg") type("image/jpeg")
  );
  position: relative;
  padding: 180px 0;
}
.ct-design::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.22) 58%, rgba(0,0,0,0) 100%);
}
.ct-design .container-xxl{ position:relative; }
.ct-works{
  background: #e4ddd2;
  padding: 72px 0 84px;
}
.ct-reviews{
  background: #e4ddd2;
  padding: 72px 0 88px;
}

/* Articles */
.ct-articles{
  background: #e4ddd2;
  padding: 72px 0 84px;
}

.ct-article-card{
  height: 100%;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.60);
  box-shadow: 0 12px 28px rgba(0,0,0,.10);
}

.ct-article-card__img{
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
  filter: saturate(1.02) contrast(1.02);
}

.ct-article-card__body{
  padding: 14px 14px 16px;
}

.ct-article-card__title{
  color: #2a241f;
  font-weight: 800;
  font-size: 15px;
  line-height: 1.25;
  margin-bottom: 8px;
}

.ct-article-card__text{
  color: rgba(42,36,31,.78);
  font-size: 13px;
  line-height: 1.35;
  margin-bottom: 12px;
}

.ct-article-card__link{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #2b6fb2;
  font-weight: 800;
  font-size: 13px;
  text-decoration: none;
}

.ct-article-card__link:hover{
  color: #1f4f78;
  text-decoration: none;
}

/* Categories cards */
.ct-cat{
  display:block;
  border-radius: 6px;
  overflow:hidden;
  border: 1px solid rgba(0,0,0,.12);
  text-decoration:none;
  background: rgba(255,255,255,.55);
}
.ct-cat__img{
  width:100%;
  height: 300px;
  object-fit: cover;
  display:block;
}
.ct-cat__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 10px 12px;
  color: #2a241f;
  font-weight: 600;
  font-size: 14px;
  background: #f4efe8;
}
.ct-cat__arrow{ opacity:.6; }

/* Design text */
.ct-design__inner{
  max-width: 520px;
  color:#fff;
}
.ct-design__title{
  font-size: 34px;
  font-weight: 800;
  line-height: 1.05;
}
.ct-design__sub{
  font-size: 18px;
  color: rgba(255,255,255,.85);
  margin: 4px 0 16px;
}

/* Works */
.ct-tabs{ display:flex; gap:10px; margin-bottom: 14px; flex-wrap:wrap; }
.ct-tab{
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.65);
  color: #2a241f;
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
}
.ct-tab.active{
  background: rgba(90,74,60,.86);
  color:#fff;
  border-color: rgba(90,74,60,.86);
}
.ct-work{
  border-radius: 6px;
  overflow:hidden;
  border: 1px solid rgba(0,0,0,.12);
  background:#fff;
}
.ct-work img{
  width:100%;
  height: 200px;
  object-fit: cover;
  display:block;
}
.ct-btn-projects{
  padding: 10px 22px;
  border-radius: 6px;
}

/* Reviews */
.ct-review{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 8px;
  padding: 14px;
  height:100%;
}
.ct-review__head{ display:flex; gap:10px; align-items:center; margin-bottom: 10px; }
.ct-ava{ width:34px; height:34px; border-radius: 999px; background: rgba(0,0,0,.16); }
.ct-name{ color:#2a241f; font-weight: 800; }
.ct-stars{ color:#caa04b; font-size: 12px; }
.ct-review__text{ color: rgba(42,36,31,.82); font-size: 13px; line-height: 1.35; }

.ct-form{
  background: rgba(90,74,60,.90);
  border-radius: 8px;
  padding: 16px;
  border: 1px solid rgba(0,0,0,.12);
  height:100%;
}
.ct-form__title{
  font-weight: 800;
  font-size: 18px;
  line-height: 1.15;
  margin-bottom: 12px;
}
.ct-input{
  background: rgba(255,255,255,.92) !important;
  border: 0 !important;
}
/* Modal backdrop & window */
.ct-modal{
  background: rgba(18,20,26,.65) !important; /* полупрозрачный тёмный */
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Modal window paddings (Bootstrap modal) */
.modal-dialog{
  padding: 40px;
  max-width: 960px; /* шире и «воздушнее» */
  margin: 0 auto;
}

.modal-dialog.modal-xl{
  max-width: 1100px;
}

.modal-content{
  padding: 40px;
  border-radius: 16px;
  background: rgba(255,255,255,.96);
}

/* Make sections match screenshot spacing on large */
@media (min-width: 992px){
  .ct-hero__inner{ padding: calc(260px + var(--ct-header-h)) 0 220px; }
  .ct-work img{ height: 220px; }
}

@media (max-width: 768px){
  .ct-cats,
  .ct-works,
  .ct-reviews{
    padding: 48px 0 56px;
  }

  .ct-articles{ padding: 48px 0 56px; }
  .ct-article-card__img{ height: 170px; }

  .ct-design{
    padding: 120px 0;
  }

  .ct-h1{
    font-size: 32px;
  }

  .ct-h2{
    font-size: 28px;
  }

  .ct-feature__icon{
    width: 32px;
    height: 32px;
    min-width: 32px;
  }
}
/* Premium micro-interactions (очень мягко) */
:where(.ct-cat, .ct-work, .ct-review, .ct-form, .ct-article-card, .ct-tab, .ct-btn){
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}

/* Базовые тени (премиально, но спокойно) */
.ct-cat{ box-shadow: 0 10px 26px rgba(0,0,0,.10); }
.ct-work{ box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.ct-article-card{ box-shadow: 0 12px 26px rgba(0,0,0,.10); }
.ct-review{ box-shadow: 0 10px 22px rgba(0,0,0,.08); }
.ct-form{ box-shadow: 0 14px 34px rgba(0,0,0,.18); }
.ct-btn{ box-shadow: 0 10px 24px rgba(0,0,0,.16); }

/* Hover — только где реально есть hover */
@media (hover: hover) and (pointer: fine){
  .ct-cat:hover{
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(0,0,0,.14);
  }
  .ct-work:hover{
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(0,0,0,.16);
  }
  .ct-review:hover{
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0,0,0,.12);
  }
  .ct-tab:hover{ transform: translateY(-1px); }
  .ct-btn:hover{
    transform: translateY(-1px);
    box-shadow: 0 16px 34px rgba(0,0,0,.20);
  }
  .ct-article-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(0,0,0,.14);
  }
}

/* Чуть более “дорогие” заголовки */
.ct-h1, .ct-h2, .ct-design__title{
  font-family: var(--ct-font-alt);
}

/* Focus (аккуратно и премиально) */
:where(a, button, input, .ct-tab):focus-visible{
  outline: 3px solid rgba(43,111,178,.35);
  outline-offset: 3px;
}

/* Уважать reduced motion */
@media (prefers-reduced-motion: reduce){
  :where(.ct-cat, .ct-work, .ct-review, .ct-form, .ct-tab, .ct-btn){
    transition: none !important;
  }
}
@media (max-width: 575.98px){
  :root{ --ct-header-h: 64px; }
  .ct-topbar{
    background: rgba(20,18,16,.62);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
}
@media (max-width: 768px){
  .ct-features{
    margin-top: -28px;
  }
  .ct-features__grid{
    border-radius: 10px;
    min-height: 72px;
  }
}
@media (max-width: 768px){
  .modal-dialog{
    padding: 24px;
    max-width: 100%;
  }

  .modal-content{
    padding: 32px;
    border-radius: 12px;
  }
}

/* Map section — выше и с песочным фоном */
.ct-map {
  width: 100%;
  height: 570px; /* 380 × 1.5 */
  background: var(--ct-sand);
}

.ct-yamap {
  width: 100%;
  height: 570px;
}

@media (max-width: 768px) {
  .ct-yamap {
    height: 480px; /* 320 × 1.5 */
  }
}

/* ================= PRODUCT PAGE FIXES ================= */

/* Светлый h2 внутри тёмного product-блока */
.ct-product .ct-h2{
  color: #ffffff;
}

/* Чтобы текст в табах не был белым на белом */
.ct-product .ct-tabpanes{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
}

/* Таблица в деталях — читаемый контраст */
.ct-product .ct-table td{
  color: #ffffff;
}

.ct-product .ct-td-k{
  color: rgba(255,255,255,.75);
}

/* Обычный текст в описании */
.ct-product .ct-prose,
.ct-product .ct-prose p{
  color: rgba(255,255,255,.92);
}

/* Заголовки h3 внутри product */
.ct-product .ct-h3{
  color: #ffffff;
}

/* Чтоб muted не был слишком бледным */
.ct-product .ct-muted{
  color: rgba(255,255,255,.75);
}

/* ================= DETAILS TAB DARK TEXT ================= */

#pane-details{
  color: #2a241f;
}

#pane-details .ct-h2{
  color: #f5f3ef; /* светлый цвет для заголовка */
}

#pane-details .ct-table td{
  color: #2a241f;
}

#pane-details .ct-td-k{
  color: #5a4a3c;
}

#pane-details .ct-muted{
  color: #6b6259;
}

.ct-filters{ color: #2a241f; }
.ct-filters .fw-bold,
.ct-filters .form-check-label{ color: #2a241f; }
.ct-filters .text-muted{ color: rgba(42,36,31,.65) !important; }
.ct-filters .ct-input{ color: #2a241f !important; }
.ct-filters .form-check-input{ border-color: rgba(0,0,0,.28); }