/*!
Theme Name: pearl
Theme URI: http://underscores.me/
Author: life
Author URI: http://underscores.me/
Description: pearl
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: pearl
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

pearl is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

a {
  text-decoration: unset;
}

body {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  line-height: 1.6;
  color: #1a1a1a;
  overflow-x: hidden;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Header Styles */
.site-header {
  background: #1e2a4a;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 15px 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.site-header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo-icon {
  color: white;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.5px;
}

.main-navigation ul {
  display: flex;
  list-style: none;
  gap: 20px;
  margin: 0;
}

.main-navigation a {
  color: white;
  text-decoration: none;
  font-weight: 500;
  font-size: 15px;
  transition: color 0.3s ease;
}

.custom-logo {
  width: 151px;
  height: auto;
}

.main-navigation a:hover {
  color: #4a90e2;
}

.menu-toggle {
  display: none;
  background: none;
  border: none;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  padding: 5px;
}

.menu-toggle span {
  width: 25px;
  height: 3px;
  background: white;
  transition: all 0.3s ease;
}

/* Hero Section */
.hero-section {
  height: 100vh;
  position: relative;
  display: flex;
  align-items: center;
  color: white;
  overflow: hidden;
}

.hero-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  overflow: hidden;
}

.hero-background video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  background-color: #02130b66;
}

.hero-background img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  background-color: #02130b66;
}

.hero-content {
  position: relative;
  z-index: 3;
  max-width: 1200px;
}

.hero-content .btn {
  color: #fff;
}

.hero-title {
  font-size: 64px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 24px;
  letter-spacing: -1px;
}

.hero-subtitle {
  font-size: 18px;
  line-height: 1.6;
  margin-bottom: 40px;
  opacity: 0.95;
  font-weight: 400;
}

.hero-buttons {
  display: flex;
  gap: 20px;
}

.hero-buttons .btn {
  border-radius: 40px;
  padding: 18px 45px;
  border: 2px solid #ffffff;
  background: unset;
  text-transform: uppercase;
}

/* Button Styles */
.btn {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  font-size: 16px;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
  text-align: center;
}

.btn-primary {
  color: #101b86;
}

.btn-primary:hover {
  background: #6766fe;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(74, 144, 226, 0.3);
}

.btn-submit {
  background: #1e2a4a;
  color: white;
  width: 100%;
  padding: 16px;
  font-size: 16px;
  font-weight: 600;
}

.btn-submit:hover {
  background: #2a3a5a;
}

/* Section Styles */
section {
  padding: 80px 0;
}


/* Start of Selection */
.section-header {
  text-align: center;
  margin-bottom: 60px;
  display: flex;
  justify-content: space-between;

  gap: 40px;
  width: 100%;
}
.section-header-content {
  text-align: start;
}

.section-header-content span {
  color: #101b86;
}

.opportunities-section .section-header-content {
  width: 100%;
}

.opportunities-section .section-title {
  color: #101b86;
}

.section-badge.white {
  background: rgba(255, 255, 255, 0.15);
  color: white;
}

.section-title {
  font-size: 45px;
  font-weight: 700;

  color: #1a1a1a;
  line-height: 1.2;
}

.section-title.white {
  color: white;
}

.section-description {
  font-size: 16px;
  color: #232434;
  max-width: 700px;

  line-height: 1.7;
  text-align: end;
}

.section-description.white {
  color: rgba(255, 255, 255, 0.9);
}

/* Who We Are Section */
.who-we-are-section {
  background: url("/wp-content/themes/pearl/assets/images/back-1.png") no-repeat
    center center;
}

/* Why Choose Us Section */
.why-choose-section {
  background: url("/wp-content/themes/pearl/assets/images/why-choose-bg.jpg")
    no-repeat center center;
  color: white;
  position: relative;
  overflow: hidden;
}

.work-with-us-section {
  background: url("/wp-content/themes/pearl/assets/images/with-us.jpg")
    no-repeat center center;
  color: white;
  position: relative;
  overflow: hidden;
  height: 748px;
}

.why-choose-section .section-title,
.why-choose-section .section-header-content span,
.why-choose-section .section-description {
  color: white;
}

.work-with-us-section .section-title,
.work-with-us-section .section-header-content span,
.work-with-us-section .section-description {
  color: white;
}

.dark-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
      135deg,
      rgba(30, 42, 74, 0.95) 0%,
      rgba(74, 144, 226, 0.85) 100%
    ),
    url("/placeholder.svg?height=1080&width=1920&text=Network+Infrastructure")
      center / cover;
  opacity: 0.3;
}

.why-choose-section .container {
  position: relative;
  z-index: 2;
}

/* Opportunities Section */
.opportunities-section {
  background: #f8fafb;
}

.map-container {
  text-align: center;
  margin-top: 40px;
}

.usa-map {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

/* Work With Us Section */

.work-with-us-section .dark-overlay {
  background: #00000073;
  opacity: 1.5;
}

.work-with-us-section .container {
  position: relative;
  z-index: 2;
}

.careers-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  max-width: 900px;
  margin: 0 auto;
}

.career-card {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;

  transition: all 0.3s ease;
  cursor: pointer;
}

.career-content:hover {
  transform: translateY(-8px);

  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

.career-image {
  height: 306px;
  overflow: hidden;
  border-radius: 12px;
}

.career-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.career-content {
  position: absolute;
  bottom: -45px;
  left: 45px;
  right: 0;
  display: flex;
  align-items: center;
  gap: 0;
  z-index: 2;
  width: 360px;
}

.career-icon {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .work-with-us-section {
    height: 1225px;
  }

  .careers-grid {
    gap: 100px;
  }

  .career-content {
    left: 15px;
  }
}

/* Contact Section */
.contact-section {
  background: url("/wp-content/themes/pearl/assets/images/back-2.png") no-repeat
    center center;
  padding: 40px 0;
}

.contact-wrapper {
  max-width: 900px;
  margin: 0 auto;
}

.contact-header {
  text-align: left;
  margin-bottom: 40px;
}

.contact-header h2 {
  font-size: 2.5rem;
  font-weight: 700;
  color: #101b86;
}

/* 1) Скрываем reCAPTCHA */
.contact-section .wpcf7-recaptcha,
.contact-section .g-recaptcha,
.contact-section .wpcf7-form-control-wrap.recaptcha {
  display: none !important;
}

/* 2) Лейблы над полями */
.contact-section label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  font-size: 0.95rem;
}

/* 3) Двухколоночная строка для Name* */
.contact-section .two-col ,
.contact-section-us .two-col  {
  display: flex !important; /* вместо блокового <p> */
  gap: 1rem; /* дистанция между полями */
}

.careers-form .two-col .wpcf7-form-control-wrap {
  width: 100%;
}
.contact-section .two-col p br {
  display: none; /* скрываем <br> */
}
.contact-section .two-col  span,
.contact-section-us .two-col  span {
  flex: 1; /* равные колонки */
  display: flex;
  flex-direction: column;
}
.contact-section .two-col  span input,
.contact-section-us .two-col  span input {
  width: 100%;
  box-sizing: border-box;
}
.contact-section .wpcf7-form  br {
  display: none !important;
}
/* 4) Общий стиль для всех input и textarea */

.subcontractors-application input[type="text"],
.subcontractors-application input[type="email"],
.subcontractors-application input[type="tel"],
.subcontractors-application input[type="number"],
.contact-section-us input[type="text"],
.contact-section-us input[type="email"],
.contact-section-us input[type="tel"],
.contact-section-us input[type="number"],
.contact-section-us textarea,
.subcontractors-application textarea,
.contact-section input[type="text"],
.contact-section input[type="email"],
.contact-section input[type="tel"],
.contact-section textarea,
.careers-form textarea,
.careers-form input[type="text"],
.careers-form input[type="email"],
.careers-form input[type="tel"],
.careers-form input[type="number"],
.careers-form input[type="date"],
.careers-form input[type="time"] {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
  margin-bottom: 1rem;
}

/* 1) берем обёртку CF7 по data-name */
.block-perform-work
  span.wpcf7-form-control-wrap[data-name="work-area"]
  .wpcf7-form-control.wpcf7-checkbox {
  /* сбрасываем дефолтный row, ставим column */
  display: flex !important;
  flex-direction: column !important;
}

/* 2) каждый пункт списка — на своей строке */
.block-perform-work
  span.wpcf7-form-control-wrap[data-name="work-area"]
  .wpcf7-list-item {
  display: flex;
  align-items: center;
}

/* 3) немного отступа между квадратом и текстом */
.block-perform-work
  span.wpcf7-form-control-wrap[data-name="work-area"]
  .wpcf7-list-item
  input[type="checkbox"] {
  margin-right: 0.5em;
}

/* 4) последний пункт можно убрать margin-bottom, если хочется */
.block-perform-work
  span.wpcf7-form-control-wrap[data-name="work-area"]
  .wpcf7-list-item:last-child {
  margin-bottom: 0;
}

.block-perform-work .wpcf7-list-item {
  margin: 0 !important;
}

.cf7-heading {
  font-size: 18px;
  color: #101b86;
}

.cf7-title {
  font-size: 45px;
  color: #232434;
}
.cf7-block-title {
  font-size: 24px;
  color: #232434;
  margin-bottom: 40px;
}

.subcontractors-application__breadcrumbs {
  display: flex;
  margin-bottom: 20px;
}

.subcontractors-application__breadcrumbs a,
.subcontractors-application__breadcrumbs p {
  color: #232434;
}

/* 5) Фокус */
.contact-section input:focus,
.contact-section textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}

/* 6) Кнопка отправки */
.contact-section .submit-btn,
.contact-section-us .submit-btn,
.careers-form button,
.careers-form input[type="submit"] {
  display: inline-block !important;
  margin-top: 1rem !important;
  padding: 0.75rem 2rem !important;
  background-color: #101b86 !important;
  color: #fff !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: 40px !important;
  cursor: pointer !important;
  transition: background-color 0.2s !important;
}
.contact-section .submit-btn:hover,
.contact-section-us .submit-btn:hover,
.careers-form button:hover,
.careers-form input[type="submit"]:hover {
  background-color: #0033a1;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .careers-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .contact-section {
    padding: 40px 0;
  }

  .section-header {
    flex-direction: column;
  }
  .section-description {
    text-align: center;
  }

  .hero-title {
    font-size: 2.5rem;
  }

  .hero-subtitle {
    font-size: 16px;
  }

  .section-title {
    font-size: 2rem;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  section {
    padding: 30px 0;
  }

  .contact-form {
    padding: 30px 20px;
  }
}

@media (max-width: 480px) {
  .hero-title {
    font-size: 2rem;
    line-height: 1.2;
  }

  .hero-subtitle {
    font-size: 14px;
  }

  .section-title,
  .contact-header h2 {
    font-size: 1.8rem;
  }

  .btn {
    padding: 12px 24px;
    font-size: 14px;
  }

  .service-content,
  .career-content {
    padding: 20px;
  }

  .advantage-card {
    padding: 24px;
  }
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Loading and interaction states */
.loading {
  opacity: 0.7;
  pointer-events: none;
}

.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Header Styles */
.site-header {
  background: #040933;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.header-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 85px;
}

/* Logo Styles */
.site-branding {
  flex-shrink: 0;
}

.site-title {
  margin: 0;
  font-size: 1rem;
}

.site-title a {
  text-decoration: none;
  color: white;
  display: block;
}

.logo-wrapper {
  display: flex;
  align-items: center;
  gap: 12px;
}

.logo-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.logo-main {
  font-size: 20px;
  font-weight: 700;
  color: white;
  letter-spacing: -0.5px;
}

.logo-sub {
  font-size: 11px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: -2px;
}

/* Navigation Styles */
.main-navigation {
  position: relative;
}

.menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  gap: 4px;
  position: relative;
  z-index: 1002;
}

.hamburger-line {
  width: 24px;
  height: 3px;
  background: white;
  transition: all 0.3s ease;
  border-radius: 2px;
}

.menu-toggle.active .hamburger-line:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle.active .hamburger-line:nth-child(2) {
  opacity: 0;
}

.menu-toggle.active .hamburger-line:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -6px);
}

.menu-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 999;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.menu-overlay.active {
  opacity: 1;
}

/* Desktop Menu */
.primary-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
}

.primary-menu li {
  position: relative;
}

.primary-menu a {
  display: block;
  color: white;
  text-decoration: none;
  padding: 25px 20px;
  font-weight: 700;
  font-size: 16px;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.primary-menu a:hover,
.primary-menu a:focus {
  color: #4a90e2;
}

/* Dropdown Menu */
.primary-menu .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid currentColor;
  margin-left: 8px;
  vertical-align: middle;
  transition: transform 0.3s ease;
}

.primary-menu .menu-item-has-children:hover > a::after {
  transform: rotate(180deg);
}

.primary-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: white;
  min-width: 220px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
  border-radius: 8px;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s ease;
  z-index: 1001;
  list-style: none;
  margin: 0;
  padding: 8px 0;
  flex-direction: column;
  gap: 10px;
}

.primary-menu .menu-item-has-children:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.primary-menu .sub-menu a {
  color: #1a1a1a;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 500;
  border-bottom: none;
}

.primary-menu .sub-menu a:hover,
.primary-menu .sub-menu a:focus {
  background: #f8fafb;
  color: #4a90e2;
}

.primary-menu .sub-menu li:last-child a {
  border-bottom: none;
}

/* Mobile Menu */
@media (max-width: 768px) {
  .menu-toggle {
    display: flex;
  }

  .main-navigation ul {
    gap: 20px;
  }

  .menu-wrapper.active {
    left: 0;
  }

  .primary-menu {
    flex-direction: column;
    gap: 0;
  }

  .primary-menu a {
    padding: 15px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 16px;
  }

  .primary-menu .menu-item-has-children > a::after {
    float: right;
    margin-left: 0;
    margin-top: 10px;
    pointer-events: none; 
  }

  .primary-menu .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: rgba(255, 255, 255, 0.1);
    box-shadow: none;
    border-radius: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    padding: 0;
  }

  .primary-menu .menu-item-has-children.active .sub-menu {
    max-height: 300px;
    padding: 0;
  }

  .primary-menu .sub-menu a {
    color: rgba(255, 255, 255, 0.9);
    padding: 12px 40px;
    font-size: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  }

  .primary-menu .sub-menu a:hover {
    background: rgba(255, 255, 255, 0.1);
    color: white;
  }
}

/* Mobile Menu Animation */
@media (max-width: 768px) {
  .focus .sub-menu {
    max-height: 500px;
  }

  body.menu-open {
    overflow: hidden;
  }

  .menu-overlay.active {
    display: block;
  }
  .menu-wrapper {
    position: fixed;
    top: 80px;
    left: 0;
    width: 80%;
    max-width: 300px;
    height: 100vh;
    background: #1e2a4a;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    z-index: 1000;
    overflow-y: auto;
    padding-top: 10px; /* чтобы не заезжать на хедер */
  }

  .menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 900;
  }

  /* Открытое состояние */
  .menu-wrapper.is-open {
    transform: translateX(0);
  }
  .menu-overlay.is-active {
    opacity: 1;
    pointer-events: all;
  }

  /* Стили для контактов внутри меню */
  .mobile-contact {
    padding: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
  .mobile-contact a {
    display: block;
    color: #fff;
    text-decoration: none;
    margin-bottom: 12px;
    font-size: 14px;
  }
  .mobile-social {
    display: flex;
    gap: 12px;
  }
  .mobile-social a {
    color: #fff;
    font-weight: 600;
    text-decoration: none;
  }
  /* .primary-menu .sub-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  } */

  /* когда у LI есть класс open — раскрываем */
  .primary-menu .menu-item-has-children.open > .sub-menu {
    max-height: 500px; /* или высоту, достаточную для всех пунктов */
  }

  /* можно чуть подкрутить стрелку */
  /* .primary-menu .menu-item-has-children > a::after {
    transition: transform 0.3s ease;
  } */
  /* .primary-menu .menu-item-has-children.open > a::after {
    transform: rotate(180deg);
  } */
}

/* Accessibility */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.skip-link {
  background: #1e2a4a;
  color: white;
  padding: 8px 16px;
  text-decoration: none;
  position: absolute;
  top: -40px;
  left: 6px;
  z-index: 999999;
  transition: top 0.3s ease;
}

.skip-link:focus {
  top: 7px;
}

/* Header Scroll Effect */
.site-header.scrolled {
  background: rgba(30, 42, 74, 0.98);
  backdrop-filter: blur(20px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

/* Logo hover effect */
.logo-wrapper {
  transition: transform 0.3s ease;
}

.site-title a:hover .logo-wrapper {
  transform: scale(1.05);
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .site-header {
    border-bottom: 2px solid white;
  }

  .primary-menu a {
    border: 1px solid transparent;
  }

  .primary-menu a:hover,
  .primary-menu a:focus {
    border-color: white;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .menu-wrapper,
  .hamburger-line,
  .primary-menu .sub-menu,
  .logo-wrapper {
    transition: none;
  }
}

@media (min-width: 768px) {
  .mobile-contact {
    display: none;
  }
}

/* Services Section */
.services-section {
  padding: 80px 0;
  background: #f8fafb;
}

/* Services Grid */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 70px;
}

/* Service Card */
.service-card {
  position: relative;
  background: white;
  border-radius: 16px;

  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  cursor: pointer;
  height: 280px;
}

/* Service Image */
.service-image {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  border-radius: 12px;
}

.service-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

/* Service Content */
.service-content {
  position: absolute;
  bottom: -40px;
  left: 15px;
  right: 0;
  display: flex;
  align-items: center;
  gap: 0;
  z-index: 2;
  width: 300px;
}

/* Service Icon */
.service-icon {
  width: 80px;
  height: 80px;
  background: #101B86;
  border-radius: 12px 0px 0px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;

  box-shadow: 0 4px 12px rgba(30, 42, 74, 0.3);
}
.career-icon {
  width: 80px;
  height: 80px;
  background: #101B86;
  border-radius: 12px 0px 0px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;

  box-shadow: 0 4px 12px rgba(30, 42, 74, 0.3);
}

.service-icon svg {
  width: 32px;
  height: 32px;
}

.career-icon svg {
  width: 32px;
  height: 32px;
}

/* Service Info */
.service-info {
  flex: 1;
  background: white;
  border-radius: 0px 12px 12px 0px;
  min-height: 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(30, 42, 74, 0.3);
  padding-left: 10px;
}

.career-info {
  flex: 1;
  background: white;
  border-radius: 0px 12px 12px 0px;
  min-height: 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(30, 42, 74, 0.3);
  padding-left: 10px;
}

.service-label {
  font-size: 12px;
  font-weight: 600;
  color: #1e2a4a;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.career-label {
  font-size: 12px;
  font-weight: 600;
  color: #1e2a4a;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.service-title {
  font-size: 24px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
}

.career-title {
  font-size: 24px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }
}

@media (max-width: 768px) {
  .services-section {
    padding: 60px 0;
  }

  .services-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .service-card {
    height: 250px;
  }

  .service-title {
    font-size: 20px;
  }
}

@media (max-width: 480px) {
  .services-grid {
    gap: 40px;
  }

  .service-card {
    height: 220px;
  }

  .service-icon svg {
    width: 24px;
    height: 24px;
  }

  .service-title {
    font-size: 18px;
  }

  .service-label {
    font-size: 10px;
  }
}

/* Animation for cards appearing */
.service-card {
  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 0.6s ease forwards;
}

.service-card:nth-child(1) {
  animation-delay: 0.1s;
}
.service-card:nth-child(2) {
  animation-delay: 0.2s;
}
.service-card:nth-child(3) {
  animation-delay: 0.3s;
}
.service-card:nth-child(4) {
  animation-delay: 0.4s;
}
.service-card:nth-child(5) {
  animation-delay: 0.5s;
}
.service-card:nth-child(6) {
  animation-delay: 0.6s;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Accessibility */
.service-card:focus {
  outline: 2px solid #4a90e2;
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .service-card {
    border: 2px solid #1a1a1a;
  }

  .service-icon {
    border: 2px solid white;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .service-card,
  .service-image img {
    transition: none;
    animation: none;
  }

  .service-card {
    opacity: 1;
    transform: none;
  }
}

/* Print styles */
@media print {
  .service-card {
    break-inside: avoid;
    box-shadow: none;
    border: 1px solid #ccc;
  }

  .service-card:hover {
    transform: none;
  }
}

/* Advantages Section */
.advantages-section {
  position: relative;
  padding: 100px 0;
  overflow: hidden;
  min-height: 100vh;
}

/* Background */
.advantages-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, #1e2a4a 0%, #2a3a5a 50%, #1e2a4a 100%);
  z-index: 1;
}

.advantages-background::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("/placeholder.svg?height=1080&width=1920&text=City+Network+Background")
    center / cover;
  opacity: 0.3;
  z-index: 1;
}

.advantages-background::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
      circle at 20% 30%,
      rgba(74, 144, 226, 0.1) 0%,
      transparent 50%
    ),
    radial-gradient(
      circle at 80% 70%,
      rgba(74, 144, 226, 0.1) 0%,
      transparent 50%
    ),
    radial-gradient(
      circle at 40% 80%,
      rgba(74, 144, 226, 0.05) 0%,
      transparent 50%
    );
  z-index: 2;
}

/* Grid */
.advantages-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}
.advantages-grid .advantage-card {
  flex: 0 1 360px;
  max-width: 360px;
}

/* Advantage Card */
.advantage-card {
  position: relative;
  background: white;
  border-radius: 16px;
  padding: 40px 30px 30px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  overflow: hidden;
  min-height: 280px;
}

.advantage-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);
}

/* Card Corner */
.card-corner {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  height: 80px;
  background: #1e2a4a;
  border-radius: 0 0 40px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.corner-icon {
  margin-top: 15px;
  margin-left: 70px;
}

.corner-icon svg {
  width: 28px;
  height: 28px;
}

/* Card Number */
.card-number {
  position: absolute;
  top: 0px;
  right: 5px;
  font-size: 80px;
  font-weight: 400;
  color: #d5d9ea;
  line-height: 1;
  z-index: 1;
  user-select: none;
}

/* Card Content */
.card-content {
  position: relative;
  z-index: 2;
  margin-top: 70px;
}

.advantage-title {
  font-size: 24px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 16px;
  line-height: 1.3;
}

.advantage-description {
  font-size: 16px;
  color: #232434;
  line-height: 1.6;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .advantages-grid {
    display: flex;
    flex-wrap: wrap; /* перенос строк */
    justify-content: center; /* центрируем элементы в каждой строке */
    gap: 30px; /* расстояние между карточками */
  }

  .advantage-card {
    min-height: 260px;
    padding: 35px 25px 25px;
  }

  .card-number {
    font-size: 100px;
    top: 15px;
    right: 25px;
  }

  .advantage-title {
    font-size: 22px;
  }

  .advantage-description {
    font-size: 15px;
  }
}

@media (max-width: 768px) {
  .advantages-section {
    padding: 80px 0;
  }

  .advantages-grid {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, 1fr);
    gap: 20px;
  }

  .advantage-card {
    min-height: 240px;
    padding: 30px 20px 20px;
  }

  .card-corner {
    width: 70px;
    height: 70px;
    border-radius: 0 0 35px 0;
  }

  .corner-icon svg {
    width: 24px;
    height: 24px;
  }

  .card-number {
    font-size: 80px;
    top: 10px;
    right: 20px;
  }

  .advantage-title {
    font-size: 20px;
    margin-bottom: 12px;
  }

  .advantage-description {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .advantages-grid {
    gap: 15px;
  }

  .advantage-card {
    min-height: 220px;
    padding: 25px 15px 15px;
  }

  .card-corner {
    width: 60px;
    height: 60px;
    border-radius: 0 0 30px 0;
  }

  .corner-icon svg {
    width: 20px;
    height: 20px;
  }

  .card-number {
    font-size: 70px;
    top: 8px;
    right: 15px;
  }

  .advantage-title {
    font-size: 18px;
    margin-bottom: 10px;
  }

  .advantage-description {
    font-size: 13px;
    line-height: 1.5;
  }
}

/* Animation for cards appearing */
.advantage-card {
  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 0.8s ease forwards;
}

.advantage-card:nth-child(1) {
  animation-delay: 0.1s;
}
.advantage-card:nth-child(2) {
  animation-delay: 0.2s;
}
.advantage-card:nth-child(3) {
  animation-delay: 0.3s;
}
.advantage-card:nth-child(4) {
  animation-delay: 0.4s;
}
.advantage-card:nth-child(5) {
  animation-delay: 0.5s;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Accessibility */
.advantage-card:focus {
  outline: 2px solid #4a90e2;
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .advantage-card {
    border: 2px solid #1a1a1a;
  }

  .card-corner {
    border: 2px solid white;
  }

  .card-number {
    color: #e0e0e0;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .advantage-card {
    transition: none;
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* Print styles */
@media print {
  .advantages-section {
    background: white;
    color: black;
  }

  .advantages-background {
    display: none;
  }

  .advantage-card {
    break-inside: avoid;
    box-shadow: none;
    border: 1px solid #ccc;
  }

  .card-corner {
    background: #333;
  }

  .card-number {
    color: #f0f0f0;
  }
}

/* Hover effects for interactive elements */
.advantage-card {
  cursor: pointer;
}

.advantage-card:hover .card-corner {
  background: #4a90e2;
  transform: scale(1.05);
}

.advantage-card:hover .corner-icon {
  transform: rotate(5deg);
}

.advantage-card:hover .card-number {
  color: #e8eaed;
}

/* Smooth transitions */
.card-corner,
.corner-icon,
.card-number {
  transition: all 0.3s ease;
}

.usa-seq-wrap {
  height: 620px;
}
#usaSeq {
  position: relative;
  max-width: 1200px;
  margin: auto;
}

#usaSeq img {
  display: none;
}
#usaSeq img:first-child {
  display: block;
}

#usaSeq img {
  inset: 0;

  display: none;
}

@media (max-width: 768px) {
  .usa-seq-wrap {
    height: 190px;
  }

  #usaSeq img {
    max-width: 100%;
  }

  .opportunities-section .section-header {
    margin-bottom: 20px;
  }
}

/* Footer Styles */
.site-footer {
  background: #040933;
  color: white;
  padding: 60px 0 0;
  margin-top: auto;
}

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.footer-content {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}

/* Company Info Section */
.company-info {
  grid-column: 1 / 2;
}

.footer-logo {
  margin-bottom: 20px;
}

.footer-logo .custom-logo {
  max-height: 70px;
  width: auto;
}

.logo-wrapper {
  display: flex;
  align-items: center;
  gap: 12px;
}

.logo-icon {
  flex-shrink: 0;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.logo-main {
  font-size: 24px;
  font-weight: 700;
  color: white;
  letter-spacing: -0.5px;
}

.logo-sub {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.8);
  text-transform: lowercase;
  letter-spacing: 0.5px;
  margin-top: -2px;
}

.company-description {
  color: rgba(255, 255, 255, 0.8);
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
}

/* Links Section */
.links-section {
  grid-column: 2 / 3;
}

.footer-title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 24px;
  color: white;
}

.footer-navigation {
  margin: 0;
}

.footer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-menu li {
  margin-bottom: 12px;
  position: relative;
  padding-left: 20px;
}

.footer-menu li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  background: #4a90e2;
  border-radius: 50%;
}

.footer-menu a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  font-size: 16px;
  font-weight: 400;
  transition: color 0.3s ease;
}

.footer-menu a:hover,
.footer-menu a:focus {
  color: #6766fe;
}

/* Contact Section */
.contact-section {
  grid-column: 3 / 4;
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.contact-icon {
  width: 40px;
  height: 40px;
  background: #6766fe;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: white;
}

.contact-item span,
.address {
  color: rgba(255, 255, 255, 0.9);
  font-size: 16px;
  line-height: 1.5;
}

.address {
  display: flex;
  flex-direction: column;
}

/* Social Section */
.social-section {
  grid-column: 4 / 5;
}

.social-links {
  display: flex;
  gap: 12px;
}

.social-link {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-decoration: none;
  transition: all 0.3s ease;
}

.social-link.facebook {
  background: #6766fe;
}

.social-link.instagram {
  background: #6766fe;
}

.social-link.linkedin {
  background: #6766fe;
}

.social-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* Footer Bottom */
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 30px 0;
}

.copyright {
  text-align: left;
}

.copyright p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  margin: 0;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .footer-content {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .company-info {
    grid-column: 1 / 2;
  }

  .links-section {
    grid-column: 2 / 3;
  }

  .contact-section {
    grid-column: 1 / 2;
  }

  .social-section {
    grid-column: 2 / 3;
  }
}

@media (max-width: 768px) {
  .site-footer {
    padding: 40px 0 0;
  }

  .footer-content {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .company-info,
  .links-section,
  .contact-section,
  .social-section {
    grid-column: 1 / 2;
  }

  .footer-title {
    font-size: 18px;
    margin-bottom: 20px;
  }

  .social-links {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .footer-container {
    padding: 0 15px;
  }

  .footer-content {
    gap: 25px;
  }

  .logo-wrapper {
    gap: 8px;
  }

  .logo-main {
    font-size: 20px;
  }

  .logo-sub {
    font-size: 10px;
  }

  .contact-item {
    gap: 8px;
  }

  .contact-icon {
    width: 36px;
    height: 36px;
  }

  .social-link {
    width: 44px;
    height: 44px;
  }
}

.footer-section.links-section .footer-menu ul li::marker {
  content: none;
}

/* Accessibility */
.social-link:focus,
.footer-menu a:focus {
  outline: 2px solid #4a90e2;
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .site-footer {
    border-top: 2px solid white;
  }

  .footer-menu li::before {
    border: 1px solid white;
  }

  .contact-icon {
    border: 2px solid white;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .social-link,
  .footer-menu a {
    transition: none;
  }
}

.about-section {
  padding: 12rem 1rem;
  color: #111;
  background: url("/wp-content/themes/pearl/assets/images/back-1.png") no-repeat
    center center;
  height: 100vh;
}

.about-container {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}

/* Левый столбец */
.about-header {
  flex: 1 1 40%;
  min-width: 280px;
}
.about-badge {
  display: block;
  font-size: 0.875rem;
  color: #1e40af;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  text-transform: uppercase;
  font-weight: 700;
}
.about-title {
  font-size: 45px;
  line-height: 1.1;
  margin: 0;
}

/* Правый столбец */
.about-content {
  flex: 1 1 35%;
  min-width: 300px;
}
.about-content p {
  margin-bottom: 16px;
  line-height: 2;
  font-size: 1rem;
}

.subcontractors-hero .container,
.about-us-hero .container,
.services-hero .container,
.careers-hero .container,
.contact-us-hero .container,
.open-positions-hero .container,
.open-positions-hero-single .container,
.page-hero-single .container {
  margin: 0;
  padding: 0 60px;
}

/* Responsive */
@media (max-width: 768px) {
  .subcontractors-hero .container,
  .about-us-hero .container,
  .services-hero .container,
  .careers-hero .container,
  .contact-us-hero .container,
  .open-positions-hero .container,
  .open-positions-hero-single .container {
    margin: 0 auto;
    padding: 0 20px;
  }

  .about-us-hero .hero-content {
    right: 0;
  }
  .about-section {
    height: 130vh;
    padding: 2rem 1rem;
  }

  .about-container {
    flex-direction: column;
  }
  .about-header {
    margin-bottom: 2rem;
  }
}

.mv-core-section {
  /* сюда подставьте ваш фон (паттерн слева можно в .mv-core-sidebar) */
  padding: 11rem 1rem;
  position: relative;
  background: url("/wp-content/themes/pearl/assets/images/back-3.png") no-repeat
    center center;
  height: 100%;
}
.mv-core-container {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 2rem;
}
.mv-core-sidebar {
  position: relative;
  padding-right: 1.5rem;
  /* например, фон-паттерн: */
  /* background: url('/path/to/pattern.svg') no-repeat center bottom; */
}
.mv-badge {
  display: block;
  color: #101b86;
  letter-spacing: 0.05em;
  font-size: 18px;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
  font-weight: 700;
}
.mv-title {
  font-size: 45px;
  line-height: 1.1;
  margin: 0;
  color: #111827;
}
.mv-core-content .mv-point + .mv-point {
  margin-top: 2rem;
}
.mv-core-content h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
  color: #111827;
}
.mv-core-content p {
  line-height: 1.6;
  margin: 0 0 1rem;
  color: #374151;
}
.mv-values {
  margin-top: 2rem;
}
.values-list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
.values-list li {
  display: flex;
  gap: 0.75rem;
}
.value-icon {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: 0.25rem;
}
.values-list strong {
  display: block;
  font-weight: 600;
  margin-bottom: 0.25rem;
  color: #111827;
}
.values-list p {
  margin: 0;
  font-size: 0.95rem;
  color: #4b5563;
}

/* Responsive */
@media (max-width: 992px) {
  .mv-core-container {
    grid-template-columns: 1fr;
  }
  .values-list {
    grid-template-columns: 1fr;
  }
}
.partners-metrics-section {
  padding-top: 4rem;
  padding-bottom: 0rem;
}

@media (max-width: 1124px) {

  .mv-core-section {
    height: 140vh;
  }
}

/* Сетка логотипов */
.partners-logos {
  position: relative;
  padding: 2rem 0;
}

.partners-logos  .swiper-slide {
  height: unset;
}


.partners-logos .swiper-slide {
  width: auto; /* чтобы slidesPerView: 'auto' работал */
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.9;
  transition: opacity 0.3s;
}
.partners-logos .swiper-slide-active {
  opacity: 1;
}
.partners-logos img {
  max-height: 140px;
  object-fit: contain;
}
.partners-logos .swiper-button-prev,
.partners-logos .swiper-button-next {
  color: #fff;
}
.partners-logos .swiper-pagination-bullet {
  background: #fff;
  opacity: 0.5;
}
.partners-logos .swiper-pagination-bullet-active {
  opacity: 1;
}

/* Полоса с метриками */
.metrics-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  background: #001675; /* тёмно-синий фон */
  color: #fff;
  text-align: center;
  padding: 2.5rem 7rem;
  gap: 1rem;
  height: 25vh;
  align-content: center;
}

.metric-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.metric-plus {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  vertical-align: top;
}

.metric-value {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 700;
  line-height: 1;
}

.metric-top {
  display: flex;
  align-items: baseline; /* базовая линия цифры и плюса совпадёт */
  gap: 0.25rem; /* расстояние между ними */
}

.metric-label {
  margin-top: 0.5rem;
  font-size: 1rem;
  font-weight: 500;
}

/* Адаптив */
@media (max-width: 768px) {
  .partners-metrics-section {
    padding: 0;
  }
  .metrics-bar {
    height: 40vh;
  }
  .partners-logos {
    /* вместо 5 колонок — две */
    grid-template-columns: repeat(2, minmax(100px, 1fr));

    padding: 0;
  }
  .mv-core-section {
    height: 100%;
  }
  .partners-logos {
    gap: 1.5rem;
  }
  .metrics-bar {
    grid-template-columns: 1fr 1fr;
    padding: 2.5rem 1rem;
  }
  .metric-value {
    font-size: 2.5rem;
  }
}

.subcontractors-hero .hero-background,
.services-hero .hero-background {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Service Block */
.service-block-page {
  padding: 100px 0;
  background: white;
  position: relative;
}

.service-block-page:nth-child(even) {
  background: #f8fafb;
}

.service-content-page {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  min-height: 500px;
}

/* Reverse layout for alternating blocks */
.service-block-page.reverse-page .service-content-page {
  direction: rtl;
}

.service-block-page.reverse-page .service-text-page {
  direction: ltr;
}

.service-block-page.reverse-page .service-image-page {
  direction: ltr;
}

/* Service Image */
.service-image-page {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
}

.service-image-page img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  transition: transform 0.5s ease;
}

/* .service-block-page:hover .service-image-page img {
  transform: scale(1.05);
} */

/* Service Text */
.service-text-page {
  padding: 20px 0;
}

.service-label-page {
  font-size: 14px;
  font-weight: 600;
  color: #101B86;
  letter-spacing: 1px;
  margin-bottom: 16px;
  text-transform: uppercase;
}

.service-title-page {
  font-size: 3rem;
  font-weight: 800;
  color: #1a1a1a;
  margin-bottom: 32px;
  line-height: 1.1;
}

.service-description-page {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.service-description-page p {
  font-size: 16px;
  line-height: 1.7;
  color: #555;
  font-weight: 400;
}

.service-description-page p:first-child {
  font-size: 17px;
  color: #333;
  font-weight: 500;
}

/* Scroll margin for anchor navigation */
.service-block-page {
  scroll-margin-top: 80px;
}

/* Animation on scroll */
.service-block-page {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease;
}

.service-block-page.visible-page {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive Design */
@media (max-width: 1024px) {
  .service-content-page {
    gap: 60px;
  }

  .service-title-page {
    font-size: 2.5rem;
  }

  .service-description-page p {
    font-size: 15px;
  }

  .service-description-page p:first-child {
    font-size: 16px;
  }
}

@media (max-width: 768px) {
  .services-hero .hero-background img {
    object-position: 38% center;
  }
  .services-hero .hero-content {
    right: 0;
  }

  .service-block-page {
    padding: 80px 0;
  }

  .service-content-page {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }

  .service-block-page.reverse-page .service-content-page {
    direction: ltr;
  }

  .service-image-page {
    order: 1;
    max-width: 500px;
    margin: 0 auto;
    overflow: hidden;
  }

  .service-text-page {
    order: 2;
  }

  .service-title-page {
    font-size: 2.2rem;
  }

  .service-description-page p {
    font-size: 14px;
  }

  .service-description-page p:first-child {
    font-size: 15px;
  }
}

@media (max-width: 480px) {
  .container-page {
    padding: 0 15px;
  }

  .service-block-page {
    padding: 60px 0;
  }

  .service-content-page {
    gap: 30px;
  }

  .service-title-page {
    font-size: 1.9rem;
    margin-bottom: 24px;
  }

  .service-label-page {
    font-size: 12px;
    margin-bottom: 12px;
  }

  .service-description-page {
    gap: 16px;
  }

  .service-description-page p {
    font-size: 13px;
  }

  .service-description-page p:first-child {
    font-size: 14px;
  }

  .service-image-page img {
    height: 300px;
  }
}

/* Hover Effects */
.service-block-page {
  transition: all 0.3s ease;
}

.service-block-page:hover {
  transform: translateY(-2px);
}

.service-text-page {
  transition: all 0.3s ease;
}

.service-block-page:hover .service-text-page {
  transform: translateX(5px);
}

.service-block-page.reverse-page:hover .service-text-page {
  transform: translateX(-5px);
}

/* Focus styles for accessibility */
.service-block-page:focus-within {
  outline: 2px solid #4a90e2;
  outline-offset: 4px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .service-block-page {
    border: 2px solid #1a1a1a;
  }

  .service-label-page {
    background: #4a90e2;
    color: white;
    padding: 4px 8px;
    border-radius: 4px;
  }

  .service-image-page {
    border: 3px solid #1a1a1a;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .service-block-page,
  .service-image-page img,
  .service-text-page {
    transition: none;
    transform: none;
  }

  .service-block-page:hover .service-image-page img {
    transform: none;
  }

  .service-block-page:hover .service-text-page {
    transform: none;
  }
}

/* Print styles */
@media print {
  .service-block-page {
    break-inside: avoid;
    padding: 40px 0;
    box-shadow: none;
  }

  .service-content-page {
    gap: 30px;
  }

  .service-image-page {
    box-shadow: none;
  }

  .service-title-page {
    font-size: 2rem;
  }

  .service-description-page p {
    font-size: 12px;
  }
}

/* Loading states */
.service-image-page img {
  opacity: 0;
  transition: opacity 0.5s ease;
}

.service-image-page img.loaded-page {
  opacity: 1;
}

/* Intersection observer classes */
.service-block-page.animate-in-page {
  animation: slideInUp-page 0.8s ease-out forwards;
}

@keyframes slideInUp-page {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Service-specific styling */
#construction {
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(248, 250, 251, 0.9) 100%
  );
}

#fiber-splicing {
  background: linear-gradient(
    135deg,
    rgba(248, 250, 251, 0.9) 0%,
    rgba(255, 255, 255, 0.9) 100%
  );
}

#engineering {
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(248, 250, 251, 0.9) 100%
  );
}

#maintenance {
  background: linear-gradient(
    135deg,
    rgba(248, 250, 251, 0.9) 0%,
    rgba(255, 255, 255, 0.9) 100%
  );
}

#installation {
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(248, 250, 251, 0.9) 100%
  );
}

#drop-bury {
  background: linear-gradient(
    135deg,
    rgba(248, 250, 251, 0.9) 0%,
    rgba(255, 255, 255, 0.9) 100%
  );
}

/* Navigation indicator */
.service-block-page.active-page {
  background: linear-gradient(
    135deg,
    rgba(74, 144, 226, 0.05) 0%,
    rgba(74, 144, 226, 0.02) 100%
  );
}

.service-block-page.active-page .service-label-page {
  color: #1e40af;
  font-weight: 700;
}

.service-block-page.active-page .service-title-page {
  color: #1e40af;
}

/* ====== SECTION WRAPPER ====== */
.partners-cta {
  padding: 40px 0;
  background: #fff;
}

.partners-cta__inner {
  max-width: 1260px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 4vw, 4rem);
}

/* ====== FLEX ROW ====== */
.partners-cta__row {
  display: flex;
  gap: clamp(2rem, 4vw, 5rem);
  align-items: flex-start;
}

/* ====== MEDIA (фото) ====== */
.partners-cta__media {
  flex: 0 0 50%;
  max-width: 590px;
  position: relative;
}

.partners-cta__media img {
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
  object-fit: cover;
  display: block;
}

/* ====== CONTENT COLUMNS ====== */
.partners-cta__content,
.partners-cta__steps {
  flex: 1 1 0;
  min-width: 0;
}

.partners-cta__badge {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #101b86;
}

.partners-cta__title {
  font-size: clamp(1.9rem, 3.5vw, 2.6rem);
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--pc-blue);
}

.partners-cta__subtitle {
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  font-weight: 700;
  margin: 2rem 0 0.75rem;
}

.partners-cta__list,
.partners-cta__ordered {
  margin: 0 0 1.25rem 1.25rem;
  padding: 0;
  line-height: 1.5;
}

.partners-cta__lead {
  margin: 1rem 0 1.75rem;
  font-weight: 600;
}

/* ====== BUTTON (можно заменить на кнопку темы) ====== */
.btn {
  display: inline-block;
  padding: 0.85rem 2.5rem;
  border: none;
  font-weight: 600;
  border-radius: 2rem;
  text-decoration: none;
  transition: background 0.25s ease;
}

.btn--primary {
  background: #101b86;
  color: #fff;
}

.btn--primary:hover,
.btn--primary:focus-visible {
  background: #6766fe;
  color: #fff;
}

.partners-cta__row .btn {
  background-color: #101b86;
}

.partners-cta__row .btn:hover {
  background-color: #6766fe;
}

/* ======  RESPONSIVE  ======= */
@media (max-width: 768px) {
  .subcontractors-hero .hero-content {
    right: 0;
  }
  .partners-cta__row,
  .partners-cta__row--reverse {
    flex-direction: column;
  }
  .partners-cta__row--reverse {
    flex-direction: column-reverse;
  }
  .partners-cta__media,
  .partners-cta__content,
  .partners-cta__steps {
    flex: 1 1 100%;
  }
  .partners-cta__media {
    max-width: 100%;
  }
}

/* Два столбца там, где нужен side-by-side */
.cf7-two-col {
  display: flex;
  gap: 1.25rem;
}
.cf7-two-col label {
  width: 100%;
}
@media (max-width: 680px) {
  .cf7-two-col {
    flex-direction: column;
  }
}

/* Заголовки секций */
.cf7-block-title {
  margin: 1.75rem 0 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
}

/* Таблица “Type of Work & Number of Crews” */
.cf7-work-table {
  width: 50%;
  border-collapse: collapse;
  margin-bottom: 1rem;
}

.cf7-work-table input[type="number"],
.cf7-work-table input[type="text"] {
  width: 100%;
  max-width: 185px;
}

.subcontractors-application .wpcf7-list-item {
  margin: 0 !important;
}

@media (max-width: 768px) {
  .cf7-work-table {
    width: 100%;
  }

  .cf7-title, .careers-form h1 {
    font-size: 20px;
  }
}

/* ======  базовый контейнер  ====== */
.contact-section-us {
  padding: clamp(3rem, 8vw, 6rem) 0;
}
.contact-section-us .wrap {
  max-width: 1220px;
  margin-inline: auto;
  display: flex;
  gap: 3rem;
  align-items: flex-start;
}

/* ======  колонки  ====== */
.contact-col-us {
  flex: 1 1 50%;
}
.contact-col-us--info {
  min-width: 280px;
}
.contact-col-us--form {
  min-width: 620px;
}

/* =====  типографика  ===== */
.contact-eyebrow-us {
  font-size: 0.875rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  color: var(--accent-clr, #1937b6);
  margin-bottom: 0.5rem;
}
.contact-title-us {
  font-size: clamp(2rem, 5vw, 2.75rem);
  line-height: 1.15;
  margin-bottom: 2rem;
}
.contact-intro-us {
  text-align: center;
  max-width: 28rem;
  margin: 0 auto 2rem;
  font-weight: 500;
}

/* =====  карта  ===== */
.contact-map-us {
  width: 100%;
  height: 250px;
  aspect-ratio: 1 / 1;
  border: 0;
  border-radius: 0.5rem;
  margin-bottom: 1.5rem;
}

/* =====  контактные подробности  ===== */
.contact-details-us h4 {
  font-size: 24px;
  margin-bottom: 0.5rem;
  color: #0056b4;
}
.contact-details-us p strong {
  margin: 0.25rem 0;
  color: #0056b4;
  font-size: 16px;
}
.contact-details-us p {
  line-height: 2;
}
.contact-details-us a {
  color: inherit;
  text-decoration: underline;
}

/* =====  Адаптив: ≤ 960 px — колонки в столбик ===== */
@media (max-width: 768px) {
  .contact-section-us .container {
    flex-direction: column;
    gap: 2.5rem;
  }
  .contact-col-us--form .contact-intro-us {
    text-align: left;
    margin: 20px 0;
  }
  .contact-col-us--form {
    min-width: 100%;
  }

  .contact-section-us .wrap {
    max-width: unset;
    margin-inline: unset;

    gap: unset;
    align-items: unset;
  }
}

/* -- Careers table shell ------------------------------------------------ */
.careers-table {
  background: #fff;
  border-radius: 8px;
  padding: 3rem;
  max-width: 1180px;
  margin: 0 auto;
}
.careers-form,
.subcontractors-application__inner {
  background: #fff;
  border-radius: 8px;
  padding: 3rem;
  max-width: 1180px;
  margin: 0 auto;
}

.careers-table h2 {
  font-size: clamp(1.8rem, 3vw, 2.25rem);
  margin: 0.3em 0 1.2em;
}

.eyebrow {
  font-size: 18px;
  font-weight: 600;
  color: #1b2fb8;
  letter-spacing: 0.03em;
}

.careers-table__controls {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
#jobSearch {
  flex: 1 1 260px;
  padding: 0.55rem 0.9rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
}
#locFilter {
  flex: 0 0 220px;
  padding: 0.55rem 0.9rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
}

.jobs {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.jobs thead th {
  text-align: left;
  padding: 0.75rem 0;
  border-bottom: 2px solid #111827;
  font-weight: 600;
}
.jobs td {
  padding: 0.55rem 0;
  border-bottom: 1px solid #e5e7eb;
}
.jobs a {
  color: #0f172a;
  text-decoration: underline;
}
.jobs tr:hover td {
  background: #f1f5ff;
}
@media (max-width: 768px) {
  .subcontractors-application__breadcrumbs a,
  .subcontractors-application__breadcrumbs p {
    font-size: 14px;
  }

  .cf7-heading {
    font-size: 14px;
  }
  .subcontractors-application__inner {
    padding: 1rem;
  }
  .jobs thead {
    display: none;
  }
  .jobs tr {
    display: block;
    padding: 0.6rem 0;
  }
  .jobs td {
    display: block;
    border: none;
  }
  .jobs td:first-child {
    font-weight: 600;
  }
}

table.jobs th:first-child,
table.jobs td:first-child {
  width: 70%;
}

table.jobs th:nth-child(2),
table.jobs td:nth-child(2) {
  width: 30%;
  white-space: nowrap; /* не даём ломать “NY – State of New York” */
  text-align: right; /* опционально выровнять вправо */
}

.careers-table__hero,
.subcontractors__hero {
  background: #040933;
}

header .entry-title {
  font-size: 45px;
  font-weight: 700;
  color: #101b86;
}

header hr {
  border: 1px solid #101b86;
  margin: 1.5rem 0;
}

.careers-table__buttons a {
  margin: 2rem 2rem 0rem 0rem;
}

.view-all-jobs {
  border: 1px solid #6766fe;
  background: #fff;
  color: #6766fe;
}

@media (max-width: 768px) {
  table.jobs th:nth-child(2),
table.jobs td:nth-child(2) {
  width: 30%;
  white-space: nowrap; 
  text-align: left; 
}
  .careers-table__buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  header .entry-title {
    font-size: 24px;
  }
  .eyebrow {
    font-size: 14px;
  }

  #locFilter {
    flex: 0 0 100%;
  }

  .careers-table__buttons a {
    margin: 1rem 0 0 0;
  }
}

.careers-form {
  background: #fff;
  border-radius: 8px;
  padding: 3rem;
  max-width: 1180px;
  margin: 50px auto;
}

.careers-form .label-bold {
  font-weight: 600;
}

.careers-form .howhear .wpcf7-form-control-wrap .wpcf7-radio {
  display: flex;
  flex-direction: column;
}
.careers-form .two-col {
  display: flex;
  gap: 1.25rem;
}
.careers-form .two-col label,
.careers-form .two-col span {
  flex: 1 1 0;

  flex-direction: column;
}

.careers-form__logo {
  text-align: center;
  margin-bottom: 2rem;
}

.careers-form .upload-container p {
  display: flex;
  margin: 2rem 0;
}

.careers-form .note {
  font-weight: 600;
}

.careers-form .wpcf7-list-item {
  margin: 0 !important;
}

@media (max-width: 768px) {
  .careers-form {
    padding: 1rem;
  }
  .careers-form .two-col {
    display: block;
  }
}

.page-hero-single {
  background: #040933;
}

.privacy-policy ul {
  margin-left: 25px;
}

.cf7-work-table tr:nth-child(7) {
  height: 60px !important;
}

.job-posting-single h2 {
  font-size: 24px;
  font-weight: 600;
  color: #101b86;
  margin-bottom: 1rem;
  margin-top: 1rem;
}

.job-posting-single section{
  padding: 1rem 0;
}