/* === ОБЩЕЕ === */
.visit-card {
  font-family: 'Poppins', sans-serif;
  color: #ffffff;
  background-color: #111212;
  padding: 0;
  margin: 0;
}

.visit-card .container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 20px;
  text-align: center;
}

/* === ХЕРО-БЛОК === */
.hero-block .executor-rating {
  font-size: 16px;
  margin-bottom: 10px;
  color: #f5f5f5 !important;
}

.hero-block .executor-title {
  font-size: 36px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #ffffff !important;
}

.hero-block .executor-subtitle {
  font-size: 18px;
  color: #bcbcbc !important;
  margin-bottom: 10px;
}

.hero-block .executor-location {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  color: #bcbcbc !important;
  margin-bottom: 40px;
}

.hero-block .executor-photo img {
  max-width: 100%;

}

/* === КНОПКИ === */
.executor-buttons {
  display: flex;
  justify-content: center;
  gap: 16px !important;
  flex-wrap: wrap;
  margin-top: 50px;
  margin-bottom: 60px;
}

.btn-outline,
.btn-primary {
  padding: 16px 50px;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  transition: all 1s ease;
}

.btn-outline {
  border: 1px solid #5E6062 !important;
  background-color: transparent;
  color: #CACACA !important;
}

.btn-outline:hover {
  background-color: #fff;
  color: #111212 !important;
  transform: translateY(4px)!important ;
}

.btn-primary {
  background-color: #F95D32;
  color: #fff !important;
  border: none;
}

.btn-primary:hover {
  background-color: #e14e26;
  transform: translateY(4px)!important ;
}

/* === УСЛУГИ === */
.services-block {
  background-color: #f6f6f6;
  padding: 60px 20px;
  color: #000000;
}

.section-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 40px;
  color: #111 !important;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 20px;
}

.service-card {
  background: #ffffff;
  padding: 20px;
  border-radius: 14px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
  text-align: left;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.check {
  font-size: 16px;
  color: #2ecc71;
  margin-top: 4px;
}

.service-text strong {
  display: block;
  font-weight: 600;
  margin-bottom: 4px;
  color: #000 !important;
}

.service-text p {
  font-size: 14px;
  color: #555 !important;
  margin: 0;
}

.services-footer {
  font-size: 13px;
  color: #333;
}

/* === БЛОК О КОМАНДЕ === */
.about-block {
  background-color: #fff;
  color: #111;
  padding: 60px 20px;
}

.about-block .section-title {
  color: #111 !important;
  margin-bottom: 30px;
}

.about-text {
  font-size: 16px;
  line-height: 1.6;
  color: #333;
  max-width: 800px;
  margin: 0 auto;
}

.about-text strong,
.about-text b {
  font-weight: 600;
  color: #000;
}

/* ================================
   Услуги: размер иконки и центрирование текста
====================================== */
.services-grid .service-card {
  display: flex !important;       /* чтобы гарантированно flex-контейнер */
  align-items: center !important; /* центрировать по вертикали */
}

.services-grid .service-card .check {
  display: inline-block !important;
  flex: 0 0 auto !important;     /* запретить сжатие/рост flex-элемента */
  min-width: 20px !important;     /* фиксированный минимальный размер */
  width: 20px !important;
  height: 20px !important;
  margin-top: 0 !important;
}

.services-grid .service-card .check img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  opacity: 0.2 !important;        /* 20% непрозрачности */
}

.services-grid .service-card .service-text {
  flex: 1 1 auto !important;
}

/* ====================================
   Скрываем «скрытые» карточки услуг
======================================= */
.services-grid .service-card--hidden {
  display: none !important;
}


/* ====================================
    Кнопка «Pokaż więcej» и счётчик
======================================= */
.services-footer {
  text-align: center;
  margin-top: 20px;
}
.services-footer .services-toggle {
  color: #888888;      /* серый цвет текста */
  font-size: 14px;
  text-decoration: none;
  cursor: pointer;
}

/* ====================================
     Выравнивание текста «О компании»
======================================= */
.about-block .about-text,
.about-block .about-text p {
  text-align: left;
}


/* ====================================
   Звёздочки рейтинга
======================================= */
.executor-rating {
  
  gap: 4px; /* расстояние между звёздами */
}
.executor-rating .star-icon {
  width: 16px !important;
  height: 16px !important;
  display: inline-block !important;
}
.executor-rating .reviews-count {
  margin-left: 8px !important;
  font-size: 14px !important;
  color: #f5f5f5 !important;
}


/* Блок проектов */
.projects-block { background: #161A1C; padding: 60px 20px; }
.projects-block .section-title { text-align: center; margin-bottom: 16px; color: #fff !important; }
.project-card img { width: 100%; height: auto; border-radius: 8px; }

/* ====================================
   Сетка проектов: 2 колонки, 
   при нечётном количестве 
   последняя растягивается
======================================= */
.projects-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 20px !important;
}

/* Если последняя карточка — нечётная (т.е. единственная в последнем ряду), 
   растягиваем её на две колонки */
.projects-grid .project-card:last-child:nth-child(odd) {
  grid-column: 1 / -1 !important;
}

/* Мобильная версия — одна колонка */
@media (max-width: 768px) {
  .projects-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Убедимся, что картинки в карточках занимают всю ширину */
.projects-grid .project-card img.project-main-img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 8px !important;
}

/* ====================================
   Подзаголовок блока «Projekty»
======================================= */
.projects-block .projects-subtitle {
  text-align: center !important;
  font-size: 16px !important;
  color: #A1A1A1 !important;
  margin: 8px 0 50px !important;
}

/* ==============================
   Contact Block (Визитка) – Полный CSS-обход для переопределения Elementor
   Поместите этот блок в CSS-файл вашего шаблона (например, style.css),
   чтобы полностью заменить стили контейнера contact-block.
   ============================== */

/* 1. Общие стили секции contact-block */
.contact-block {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 auto !important;
  background: none !important;
  box-shadow: none !important;
}

/* 2. Контейнер внутри секции – расширяем на всю ширину */
.contact-block .container {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* 3. Сетка: две колонки, изображение слева и контент справа */
.contact-block .contact-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: space-between !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 4. Левая колонка – изображение */
.contact-block .contact-image {
  flex: 0 0 50% !important;
  max-width: 50% !important;
  width: 50% !important;
  height: auto !important;
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 4.1. Изображение в левой колонке – без скруглений, на всю площадь */
.contact-block .contact-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 5. Правая колонка – контент (фон, заголовок, форма) */
.contact-block .contact-content {
  flex: 0 0 50% !important;
  max-width: 50% !important;
  width: 50% !important;
  background-color: #1D2123 !important;
  color: #FFFFFF !important;
  padding: 60px 40px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: stretch !important;
  margin: 0 !important;
}

/* 5.1. Заголовок H2 внутри правой колонки */
.contact-block .contact-content h2 {
  margin: 0 0 30px !important;
  padding: 0 !important;
  font-size: 32px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
}

/* 5.2. Класс .executor-name (если используется внутри шорткода [executor_name]) */
.contact-block .contact-content .executor-name {
  margin: 0 0 20px !important;
  padding: 0 !important;
  font-size: 20px !important;
  line-height: 1.4 !important;
  color: #FFFFFF !important;
}

/* ============================================
   6. Стили для Contact Form 7 внутри визитки
   ============================================ */

/* 6.1. Обёртка CF7-поля (<p>) – убираем лишние отступы */
.contact-block .contact-content .wpcf7 .wpcf7-form p {
  margin: 0 0 16px !important;
  padding: 0 !important;
}

/* 6.2. Общие стили для input/textarea/select CF7 */
.contact-block .contact-content .wpcf7-form input[type="text"],
.contact-block .contact-content .wpcf7-form input[type="email"],
.contact-block .contact-content .wpcf7-form input[type="tel"],
.contact-block .contact-content .wpcf7-form input[type="url"],
.contact-block .contact-content .wpcf7-form input[type="number"],
.contact-block .contact-content .wpcf7-form textarea,
.contact-block .contact-content .wpcf7-form select {
  width: 100% !important;
  padding: 12px 14px !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: #FFFFFF !important;
  background-color: #2A2A2A !important;
  border: 1px solid #444444 !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

/* 6.2.1. Цвет текста-плейсхолдера */
.contact-block .contact-content .wpcf7-form ::-webkit-input-placeholder {
  color: #AAAAAA !important;
}
.contact-block .contact-content .wpcf7-form :-ms-input-placeholder {
  color: #AAAAAA !important;
}
.contact-block .contact-content .wpcf7-form ::placeholder {
  color: #AAAAAA !important;
}

/* 6.2.2. Стили при фокусе */
.contact-block .contact-content .wpcf7-form input:focus,
.contact-block .contact-content .wpcf7-form textarea:focus,
.contact-block .contact-content .wpcf7-form select:focus {
  border-color: #FF6E3A !important;
  background-color: #2A2A2A !important;
}

/* 6.3. Скрываем лишние лейблы CF7 (если они не нужны) */
.contact-block .contact-content .wpcf7-form label {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 6.4. Убираем стандартные обёртки (если CF7 добавляет лишние теги) */
.contact-block .contact-content .wpcf7-form .wpcf7-form-control-wrap {
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

/* 6.5. Стили для кнопки отправки CF7 */
.contact-block .contact-content .wpcf7-form input[type="submit"] {
  display: inline-block !important;
  background-color: #FF6E3A !important;
  color: #FFFFFF !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  padding: 14px 28px !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: opacity 0.2s ease !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* 6.5.1. Ховер у кнопки */
.contact-block .contact-content .wpcf7-form input[type="submit"]:hover {
  opacity: 0.9 !important;
}

/* 6.6. Сообщения об ошибках CF7 */
.contact-block .contact-content .wpcf7-form .wpcf7-not-valid-tip {
  color: #FF6E3A !important;
  font-size: 14px !important;
  margin-top: 4px !important;
  margin-bottom: 8px !important;
  display: block !important;
}

/* 6.7. Сообщение об успехе отправки CF7 */
.contact-block .contact-content .wpcf7 .wpcf7-mail-sent-ok {
  color: #A8E063 !important;
  font-size: 16px !important;
  margin-bottom: 16px !important;
  display: block !important;
}

/* 6.8. Убираем стандартный маржин-лист у ul/li (если CF7 генерирует список ошибок) */
.contact-block .contact-content .wpcf7-form ul.wpcf7-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.contact-block .contact-content .wpcf7-form ul.wpcf7-list li {
  margin: 0 !important;
  padding: 0 !important;
}

/* ============================================
   7. Адаптив (мобильная версия) – скрываем левую колонку
   ============================================ */
@media (max-width: 768px) {
  /* Скрыть колонку с картинкой */
  .contact-block .contact-grid .contact-image {
    display: none !important;
    width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Правый блок на всю ширину */
  .contact-block .contact-grid .contact-content {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 40px 20px !important;
  }

  /* Заголовок в мобильной версии */
  .contact-block .contact-content h2 {
    font-size: 28px !important;
    margin-bottom: 20px !important;
  }
}

/* ==============================
   8. Полезные доработки (по желанию)
   ============================== */

/* 8.1. Добавьте, если нужно убрать фон у полей при фокусе окончательно */
.contact-block .contact-content .wpcf7-form input:focus,
.contact-block .contact-content .wpcf7-form textarea:focus {
  background-color: #2A2A2A !important;
}

/* 8.2. Если вы хотите добавить отступ между шорткодом [executor_name] и формой */
.contact-block .contact-content .executor-name + .wpcf7-form {
  margin-top: 20px !important;
}

/* 8.3. Если вы хотите настроить конкретно селектор .executor-name (зависит от вашего шорткода) */
.contact-block .contact-content .executor-name {
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
}


/* === Visiting Card: точечные правки === */

/* 1) Больше верхний паддинг первого экрана — только десктоп */
@media (min-width: 1024px) {
  body.single-visiting_card .hero-block .container {
    padding-top: 60px; 
  }
}

/* 2) Заголовок компании: ограничить ширину на десктопе */
@media (min-width: 1024px) {
  body.single-visiting_card .executor-title {
    max-width: 700px;
	margin-left: auto; margin-right: auto;
    word-wrap: break-word;  /* безопасно переносим длинные слова */
  }
}

/* 3) Фото визитки: кроп по центру, 500/300 по высоте */
body.single-visiting_card .executor-photo {
  width: 100%;
  overflow: hidden;              /* обрезаем лишнее */
  border-radius: 16px;           /* если у тебя есть общий радиус — можно убрать */
}

@media (min-width: 1024px) {
  body.single-visiting_card .executor-photo { height: 600px; }
}
@media (max-width: 1023.98px) {
  body.single-visiting_card .executor-photo { height: 300px; }
}

body.single-visiting_card .executor-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;             /* не сжимает, а обрезает */
  object-position: center center;
}

/* 4) Стили ссылок внутри описания — чёрные, полужирные */
body.single-visiting_card .about-text a,
body.single-visiting_card .about-text a:visited {
  color: #000;                   /* чёрный */
  font-weight: 600;              /* полужирный */
  text-decoration: none;
}
body.single-visiting_card .about-text a:hover,
body.single-visiting_card .about-text a:focus {
  text-decoration: underline;    /* аккуратный ховер */
}