/*
Theme Name: dpo_WP
Author: Araslanov
Version: 1.0
Text Domain: dpo_WP
*/
/* 1. Глобальные переменные и базовые стили */
html {
    overflow-x: hidden;
}

:root {
	--accent: #F9B240;
	--dark: #101010;
	--gray-bg: #F5F5F5;
	--shadow: 0px 0px 40px 5px rgba(213, 210, 239, 0.37);
}

body {
	font-family: 'Open Sans', sans-serif;
	color: #000;
	overflow-x: hidden !important;
        max-width: 100% !important;
}

.container {
	max-width: 1400px;
        width: 100%;
}

.breadcrumbs a{
    color: #000;
    margin: 0 5px;
    text-decoration: none;
}

a {
    cursor:pointer;
}

h1, h2 {
	font-size: 35px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 1.3;
}

h4 {
	font-weight: 600;
}

    /* 2. Навигация и кнопки (Header/Footer) */
.brand-box {
	display: flex;
	align-items: center;
	gap: 15px;
	text-decoration: none;
	color: #000;
}

.brand-text {
	font-size: 22px;
	font-weight: 400;
	text-transform: uppercase;
	line-height: 1.2;
	max-width: 400px;
}

.nav-link-custom {
	border: 1px solid #000;
	border-radius: 20px;
	padding: 8px 20px !important;
	margin: 5px;
	font-size: 16px;
	color: #000 !important;
	text-decoration: none;
}

.btn-header {
	background: var(--accent);
	color: #fff;
	border-radius: 20px;
	text-transform: uppercase;
	font-weight: 600;
	padding: 10px 25px;
	border: none;
}
    
    /* Соцсети */
.social-icons {
	display: flex;
	gap: 12px;
	align-items: center;
}

.policy{
	display:block;
}

.policy a{
	color:#FFF;
	font-size: 16px;
}

.social-link,
    .footer-social {
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}

.social-link {
	width: 42px;
	height: 42px;
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
    
    /* 3. Секции (Hero, Ticker, About) */
.hero {
	background: #F3F3F3;
	border-radius: 200px 600px 0px 0px;
	position: relative;
	padding: 25px;
}

.hero p {
	font-size: 22px;
	margin: 30px 0;
	max-width: 700px;
}

.hero-img {
	width: 100%;
	max-width: 380px;
	display: block;
	margin-left: auto;
	position: absolute;
	bottom: 0;
	right: 50px;
}

.ticker {
	background: var(--dark);
	color: #fff;
	padding: 15px 0;
	text-transform: uppercase;
	font-weight: 600;
        overflow: hidden;
        white-space: nowrap;
        width: 100%;
}

.ticker__inner {
  display: flex;
  width: max-content;
  animation: ticker-scroll 15s linear infinite;
}

.ticker__inner span {
  flex: 0 0 auto;
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left:6px;
}

.black-square {
	width: 12px;
	height: 12px;
	background-color: white;
	margin: 0 5px;
	display: inline-flex;
}

@keyframes ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.about-section {
	background: var(--gray-bg);
	padding: 80px 0;
}

.about-text {
	font-size: 22px;
	line-height: 1.6;
}

.director-img {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	object-fit: cover;
}

.direction {
	font-size: 25px;
}

    /* 4. Карточки и Программы */
.dir-card {
	background: #fff;
	border-radius: 20px;
	padding: 30px;
	box-shadow: var(--shadow);
	height: 100%;
	border: 2px solid transparent;
	transition: 0.3s;
}

.dir-card h3 {
	font-size: 24px;
	font-weight: 600;
	text-transform: uppercase;
	margin-bottom: 20px;
}

.edu-card {
	background: #fff;
	border-radius: 20px;
	padding: 30px;
	box-shadow: var(--shadow);
	position: relative;
	height: 100%;
	min-height: 290px;
}

.edu-card h4, .edu-card p {
	max-width: 75%;
}

.edu-num {
	font-family: 'Nixie One', cursive;
	font-size: 100px;
	color: transparent;
	-webkit-text-stroke: 1px #E1E1E1;
	position: absolute;
	right: 20px;
	top: 10px;
	line-height: 1;
}

.program-card {
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--shadow);
	min-height: 453px;
	overflow: hidden;
}

.program-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 453px;
	border-radius: 0 20px 20px 0;
}

.duration-badge {
	display: inline-flex;
	align-items: center;
	background: #000;
	color: #fff;
	font-size: 22px;
	text-transform: uppercase;
	padding: 4px 14px;
}

.description-box {
	background: #F9F9F9;
	border-radius: 20px;
	padding: 18px 20px;
	font-size: 20px;
	line-height: 1.35;
	max-width: 790px;
}

.articles-link {
	color: #000;
	text-decoration: none;
	font-weight: 600;
	font-size: 25px;
}

.articles-icon {
	width: 17px;
	height: 17px;
	display: inline-flex;
	background: url("image/link.png") no-repeat 100% / cover;
	margin-left: 10px;
}

.tags-dark-section {
	background: var(--dark);
}

.tag-pill {
	display: inline-block;
	border: 1px solid #fff;
	color: #fff;
	border-radius: 50px;
	padding: 8px 20px;
	font-size: 15px;
}

    /* Кнопки общие */
.btn-card, .btn-accent-custom {
	background: var(--accent);
	color: #fff;
	border-radius: 20px;
	padding: 10px 20px;
	text-decoration: none;
	display: inline-block;
	font-weight: 600;
	border: 1px solid var(--accent);
}

.btn-dark-custom {
	background: #000;
	color: #fff;
	border-radius: 20px;
	padding: 10px 20px;
	text-decoration: none;
}

.btn-outline-dark-custom {
	border: 1px solid #000;
	border-radius: 20px;
	padding: 10px 20px;
	color: #000;
	text-decoration: none;
}

    /* 5. Формы и Экспертный баннер */
.expert-banner {
	position: relative;
	width: 100%;
	min-height: 455px;
	background: url("image/expert-banner.jpg") no-repeat 100% / cover;
}

.expert-banner__head, .expert-banner__card {
	background: rgba(192, 192, 192, 0.18);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 16px;
	padding: 24px 28px;
	color: #fff;
	position: relative;
	top: 40px;
}

.expert-banner__head {
	left: 40px;
	max-width: 418px;
}

.expert-banner__card {
	right: 40px;
	max-width: 341px;
}

.form-container {
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--shadow);
	overflow: hidden;
}

.form-header {
	background: var(--accent);
	color: #fff;
	padding: 20px;
	font-weight: 600;
	max-width: fit-content;
	border-radius: 20px 0;
}

.form-control {
	background: #F5F5F5;
	border: none;
	border-radius: 10px;
	padding: 12px;
	font-family: 'Montserrat';
}

.custom-select {
	width: 100%;
	appearance: none;
	background: #f4f4f4;
	border: none;
	border-radius: 10px;
	padding: 14px 24px;
	cursor: pointer;
}

.custom-checkbox-label {
	display: flex;
	gap: 12px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.4;
	color: #444;
}

.custom-checkbox-input {
	display: none;
}

.custom-checkbox-box {
	width: 33px;
	height: 33px;
	min-width: 22px;
	border-radius: 8px;
	border: 2px solid #ccc;
	background: #fff;
	transition: 0.2s;
}

.custom-checkbox-input:checked + .custom-checkbox-box {
	background: #222;
	border-color: #222;
}

.custom-select-wrapper {
	position: relative;
	width: 100%;
}

.custom-select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: #f4f4f4;
	border: none;
	border-radius: 10px;
	padding: 14px 50px 14px 24px;
	font-size: 16px;
	color: #222;
	cursor: pointer;
	outline: none;
}

.wpcf7 .custom-select {
	margin-top: 32px;
  	max-height: 48px;
}

.custom-select-arrow {
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
}

.custom-select-arrow img {
	display: block;
}
    
    /* 6. Footer (Общие стили) */
.footer-dark {
	background: var(--dark);
	color: #fff;
}

.footer-brand-text {
	font-size: 22px;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.3;
}

.btn-footer-outline {
	border: 1px solid #fff;
	border-radius: 50px;
	padding: 10px 28px;
	color: #fff;
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	text-transform: uppercase;
	transition: 0.2s;
}

.btn-footer-outline:hover {
	background: #fff;
	color: #000;
}
    /*.footer-social { width: 38px; height: 38px; background: #2a2a2a; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: 0.2s; }*/
.footer-nav-link {
	border: 1px solid #555;
	border-radius: 50px;
	padding: 7px 18px;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	transition: 0.2s;
}

.contact-info p::before {
	content: '';
	display: inline-block;
	width: 40px;
	height: 40px;
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
	vertical-align: middle;
}

.contact-phone::before {
	background-image: url('image/phone.png');
}

.contact-email::before {
	background-image: url('image/mail.png');
}

.contact-address::before {
	background-image: url('image/point.png');
}

    /* 7. Бургер-меню */
.burger-btn {
	width: 44px;
	height: 38px;
	border: none;
	background: transparent;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	padding: 0;
}

.burger-btn span {
	display: block;
	width: 100%;
	height: 4px;
	background: #222;
	border-radius: 10px;
}

.burger-white span {
	background: #fff !important;
}

.mobile-menu {
	display: none;
	padding-top: 16px;
}

.mobile-menu.open {
	display: block;
        position: absolute;
        background: #FFF;
        border: 1px solid;
        border-radius: 10px;
        max-width: 94%;
}

footer .mobile-menu.open {
	display: block;
        position: relative;
        background:none;
        border:unset;
        max-width: unset;
}

.mobile-link {
	font-size: 14px;
	padding: 8px 14px !important;
	border-radius: 20px;
	background: #fff;
	margin: 0;
	text-decoration: none;
}

    /* 8. МЕД�?А-ЗАПРОСЫ */
@media (max-width: 991px) {
	.hero {
		border-radius: 0;
	}

	.hero h1, .expert-banner__head h1 {
		font-size: 28px !important;
	}

	.program-card {
		min-height: auto;
	}

	.program-image {
		min-height: 260px;
		border-radius: 0 0 20px 20px;
	}

	.desktop-header-actions {
		display: none !important;
	}

	.footer-brand-text, .brand-text {
		font-size: 13px !important;
	}
}

@media (max-width: 767px) {
        body, section, nav, footer{
            width: 100vw !important;
            max-width: 100% !important;
        }
        
	h1 {
		font-size: 22px;
	}

	h2 {
		font-size: 20px;
	}

	.brand-box {
		/*gap: 10px;
		max-width: 40%;*/
                max-width: 100%;
	}

	.brand-box img {
		width: 44px !important;
	}

	.nav-link-custom, .tag-pill, .footer-nav-link, .btn-footer-outline {
		font-size: 13px;
		padding: 6px 14px !important;
	}

	.hero {
		border-radius: 60px 300px 0 0;
		padding: 20px 15px 0;
	}

	.hero p {
		font-size: 15px;
		margin: 16px 0;
	}

	.hero-img {
		position: absolute;
		right: -10px;
		bottom: 0;
		max-width: 38%;
	}

	.edu-card {
		min-height: auto;
		padding: 20px;
	}

	.edu-card h4, .edu-card p {
		max-width: 65%;
	}

	.edu-card .position-absolute {
		position: relative !important;
		margin-top: 20px;
	}

	.expert-banner {
		background-position: center;
		padding: 30px 0;
	}

	.expert-banner .row {
		flex-direction: column;
	}

	.expert-banner__head, .expert-banner__card {
		left: 0;
		top: 0;
		right: 0;
		max-width: 100%;
		margin-bottom: 15px;
	}

	.description-box {
		font-size: 15px;
		padding: 14px 16px;
	}

	.direction {
		font-size: 14px;
	}

	.about-section {
		padding: 40px 0;
	}

	.director-img {
		width: 100px;
		height: 100px;
	}

	.contact-info p {
		font-size: 16px !important;
	}

	.contact-info p::before {
		width: 30px;
		height: 30px;
	}

	.col-12.mt-4.d-flex {
		flex-direction: column;
		gap: 16px;
		align-items: flex-start !important;
	}
        
        /* Мобильный подвал */
	.footer-top {
		flex-direction: column;
		padding: 24px 16px !important;
	}

	.footer-social {
		margin-left: 0;
	}

	#footerMobileMenu .footer-nav {
		padding: 20px 0 !important;
	}

	.btn-header {
		font-size: 14px !important;
		padding: 10px 20px !important;
		margin-bottom: 20px;
	}

	.expert-banner__head {
		left: 0;
		top: 0;
		margin-bottom: 16px;
		max-width: 100%;
	}

	.expert-banner__head h1 {
		font-size: 28px !important;
	}

	.expert-banner__card {
		right: 0;
		top: 0;
		max-width: 100%;
	}

	.expert-banner .col-6.d-flex {
		justify-content: flex-start !important;
	}

	.program-card h3 {
		font-size: 20px;
		font-weight: 600;
	}

	.about-text {
		font-size: 20px;
	}

	.custom-checkbox-box {
		height: 27px;
	}

	.social-icons {
		gap: 8px;
	}

	.social-link,
        .footer-social {
		width: 38px;
		height: 38px;
		flex: 0 0 38px;
	}

	.social-link img,
        .footer-social img {
		width: 35px;
		height: 35px;
	}
        .edu-card .d-flex.gap-2 {
            /*flex-wrap: wrap;*/
            max-width: 100%;
        }

        .btn-outline-dark-custom,
        .btn-dark-custom {
            max-width: 100%;
            text-align: center;
            white-space: normal;
        }
        .hero-img {
            right: 0;
            max-width: 38%;
        }
        .education-modal-num{
            display: none;
        }
}

@media (max-width: 576px) {
	.brand-text {
  			max-width: 250px;
		}
	.wpcf7 select option{
			font-size:12px;
		}
	.policy a{
		font-size: 12px;
	}
}

@media (max-width: 400px) {
        body{
            width: 100vw !important;
            max-width: 99% !important;
        }
	.brand-text, .footer-brand-text {
		font-size: 11px !important;
		max-width: 160px;
	}

	h1 {
		font-size: 19px;
	}

	.hero p {
		font-size: 14px;
	}
        .btn-header {
		font-size: 12px !important;
	}
         .btn-header {
                margin-bottom: 0;
        }
        .hero h1, .expert-banner__head h1 {
                font-size: 20px !important;
        }
        .edu-num {
                font-size: 70px;
        }
         .edu-card h4, .edu-card p {
                max-width: 75%;
        }
         a.btn-outline-dark-custom, a.btn-dark-custom {
                font-size: 14px;
                padding: 5px 10px;
        }
}

.education-modal-content {
    position: relative;
    border-radius: 20px;
    border: none;
    padding: 30px 34px;
    overflow: hidden;
}

.education-modal-close {
    position: absolute;
    top: 22px;
    right: 24px;
    z-index: 3;
    opacity: 1;
}

.education-modal-num {
    position: absolute;
    right: 23px;
    top: 90px;
    font-size: 76px;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1px #e5e5e5;
    text-stroke: 1px #e5e5e5;
    z-index: 1;
}

.education-modal-body {
    position: relative;
    z-index: 2;
    max-width: 82%;
}

.education-modal-text {
    font-size: 15px;
    line-height: 1.35;
}

.education-modal-text ul {
    margin-bottom: 0;
    padding-left: 22px;
}

.education-modal-text p {
    margin-bottom: 12px;
}

@media (max-width: 767px) {
    .education-modal-content {
        padding: 26px 22px;
        border-radius: 18px;
    }

    .education-modal-body {
        max-width: 100%;
    }

    .education-modal-num {
        right: 22px;
        top: 110px;
        font-size: 58px;
        opacity: 0.7;
    }
}

.custom-checkbox-label {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.custom-checkbox-label .wpcf7-form-control-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 24px;
  height: 24px;
  z-index: 5;
  opacity: 0;
}

.custom-checkbox-label .wpcf7-form-control,
.custom-checkbox-label .wpcf7-list-item,
.custom-checkbox-label label {
  display: block;
  margin: 0;
  width: 24px;
  height: 24px;
}

.custom-checkbox-label input[type="checkbox"] {
  width: 24px;
  height: 24px;
  margin: 0;
  cursor: pointer;
}

.custom-checkbox-box {
  width: 24px;
  height: 24px;
  min-width: 24px;
  border: 2px solid #ccc;
  border-radius: 4px;
  background: #fff;
  pointer-events: none;
	display: block;
}

.custom-checkbox-text {
  font-size: 14px;
  line-height: 1.3;
  cursor: pointer;
}

.custom-checkbox-label:has(input[type="checkbox"]:checked) .custom-checkbox-box {
  background: #f4b23a;
  border-color: #f4b23a;
}

.custom-checkbox-label:has(input[type="checkbox"]:checked) .custom-checkbox-box::after {
  content: "";
  display: block;
  width: 7px;
  height: 12px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  margin-left: 7px;
  margin-top: 3px;
}
.custom-checkbox-label.checked .custom-checkbox-box {
  background: #f4b23a;
  border-color: #f4b23a;
}

.custom-checkbox-label.checked .custom-checkbox-box::after {
  content: "";
  display: block;
  width: 7px;
  height: 12px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  margin-left: 7px;
  margin-top: 3px;
}
.wpcf7-form-control-wrap {
  position: relative;
  display: block;
}

.wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  top: 100%;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.2;
  color: #dc3232;
  z-index: 5;
}