/* Настройки шаблона */
@font-face { font-family: 'Tektur'; src: url("../fonts/Tektur.ttf") format("truetype"); }
@font-face { font-family: 'Inter'; src: url("../fonts/Inter.ttf") format("truetype"); }
@font-face { font-family: 'Mulish'; src: url("../fonts/Mulish.ttf") format("truetype"); }

:root {
    --light: #F8F8F8;
    --dark: #05270E;
    --contrast: #118d33;
    --accent: #0FD946;
    --gray: #F5F5F5;
}

:root, body { font-size: 10px; }

/* Адаптивные размеры шрифта */
@media screen and (min-width: 320px) { :root, body { font-size: 8px; } }
@media screen and (min-width: 576px) { :root, body { font-size: 10px; } }
@media screen and (min-width: 768px) { :root, body { font-size: 11px; } }
@media screen and (min-width: 992px) { :root, body { font-size: 12px; } }
@media screen and (min-width: 1200px) { :root, body { font-size: 14px; } }
@media screen and (min-width: 1600px) { :root, body { font-size: 16px; } }

/* Элементы */
html { width: calc(100% + calc(100vw - 100%)); overflow-x: hidden; }
body { display: flex; flex-direction: column; margin: 0 auto; max-width: 1920px; font-family: "Inter", sans-serif; font-weight: 600; color: var(--dark); overflow-x: hidden; background-color: var(--light); position: relative; }

/* Контейнер */
.container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1145px; } }
@media (min-width: 1400px) { .container { max-width: 1305px; } }

#middle main { overflow: inherit; }

/* Заголовки */
h1, .h1 { font-size: 2.8rem; font-family: "Tektur", sans-serif; font-weight: 700; color: var(--contrast); }
h2, .h2 { font-size: 2.4rem; font-family: "Tektur", sans-serif; font-weight: 800; }
h3, .h3 { font-size: 2rem; font-family: "Mulish", sans-serif; font-weight: 700; }
h4, .h4 { font-size: 1.6rem; font-family: "Inter", sans-serif; font-weight: 600; }
h5, .h5 { font-size: 1.4rem; font-family: "Inter", sans-serif; font-weight: 700; }
h6, .h6 { font-size: 1.2rem; font-family: "Inter", sans-serif; font-weight: 500; }

@media (min-width: 768px) {
    h1, .h1 { font-size: 3.2rem; }
    h2, .h2 { font-size: 2.8rem; }
    h3, .h3 { font-size: 2.2rem; }
    h4, .h4 { font-size: 1.8rem; }
    h5, .h5 { font-size: 1.5rem; }
    h6, .h6 { font-size: 1rem; }
}

@media (min-width: 992px) {
    h1, .h1 { font-size: 3.75rem; }
    h2, .h2 { font-size: 3rem; }
    h3, .h3 { font-size: 1.875rem; }
    h4, .h4 { font-size: 1.375rem; }
    h5, .h5 { font-size: 1.25rem; }
    h6, .h6 { font-size: 1rem; }
}

a { text-decoration: none; color: inherit; }
a:hover { color: var(--contrast); }

.ff-inter { font-family: "Inter", sans-serif !important; }
.ff-tektur { font-family: "Tektur", sans-serif !important; }
.ff-mulish { font-family: "Mulish", sans-serif !important; }

.moduletable { position: relative; }
.navbar-toggler:focus { box-shadow: none; }
.card-shadow { box-shadow: 0rem .25rem .25rem 0rem #00000040; }

/* Bootstrap */
.btn-success { --bs-btn-color: var(--light); --bs-btn-bg: var(--contrast); --bs-btn-border-color: transparent; --bs-btn-hover-color: var(--light); --bs-btn-hover-bg: var(--dark); --bs-btn-hover-border-color: transparent; --bs-btn-active-color: var(--light); --bs-btn-active-bg: var(--dark); --bs-btn-active-border-color: transparent; --bs-btn-disabled-color: var(--light); --bs-btn-disabled-bg: var(--contrast); --bs-btn-disabled-border-color: transparent; }
.btn-dark { --bs-btn-color: var(--light); --bs-btn-bg: var(--dark); --bs-btn-border-color: transparent; --bs-btn-hover-color: var(--light); --bs-btn-hover-bg: var(--contrast); --bs-btn-hover-border-color: transparent; --bs-btn-active-color: var(--light); --bs-btn-active-bg: var(--contrast); --bs-btn-active-border-color: transparent; --bs-btn-disabled-color: var(--light); --bs-btn-disabled-bg: var(--dark); --bs-btn-disabled-border-color: transparent; }
.btn-light { --bs-btn-color: var(--contrast); --bs-btn-bg: var(--light); --bs-btn-border-color: transparent; --bs-btn-hover-color: var(--contrast); --bs-btn-hover-bg: var(--dark); --bs-btn-hover-border-color: transparent; --bs-btn-active-color: var(--contrast); --bs-btn-active-bg: var(--dark); --bs-btn-active-border-color: transparent; --bs-btn-disabled-color: var(--contrast); --bs-btn-disabled-bg: var(--light); --bs-btn-disabled-border-color: transparent; }

.bg-success { background-color: var(--contrast) !important; }
.bg-secondary { background-color: var(--gray) !important; }
.text-success { color: var(--contrast) !important; }
.text-dark { color: var(--dark); }
.text-light { color: var(--light); }

/* Меню и шапка */
header { position: relative; z-index: 100; }
.navbar { padding: 1rem 0; }
.navbar-brand img { max-height: 50px; width: auto; }

@media (min-width: 768px) { .navbar-brand img { max-height: 60px; width: 360px; } }
@media (min-width: 1024px) { .navbar-brand img { max-height: 60px; width: 320px; } }
@media (min-width: 1400px) { .navbar-brand img { max-height: 60px; width: 400px; } }

.home header { position: absolute; width: 100%; top: 0; left: 0; color: var(--light); z-index: 10; }
@media (max-width: 991px) { .home header { position: static; color: var(--dark); background: var(--light); } }
.home header #logo { position: relative; border-bottom-right-radius: var(--bs-border-radius-xxl); }

/* Подвал */
footer { background-color: var(--dark); color: var(--light); padding: 3rem 0; }
footer .footer_items { margin-bottom: 2rem; }
@media (max-width: 767px) { footer .footer_items > div { flex-direction: column !important; gap: 2rem !important; text-align: center; } }

/* ========== БАННЕР ========== */
.mod-banner { margin-bottom: 3rem; width: 100%; }
.mod-banner .banner-content { border-radius: 2rem; overflow: hidden; position: relative; width: 100%; }
.mod-banner .banner-content::after { content: ''; width: 100%; height: 100%; position: absolute; top: 0; left: 0; opacity: .25; z-index: -1; }
.mod-banner .banner-content .banner-title { display: flex; align-items: center; width: 100%; min-height: 41rem; }

/* Адаптив для баннера */
@media (max-width: 424px) { .mod-banner .banner-content .banner-title { height:6rem !important; min-height:8rem;} }
@media (min-width: 425px) and (max-width: 670px) { .mod-banner .banner-content .banner-title { min-height: 14rem !important; } }
@media (min-width: 671px) and (max-width: 991px) { .mod-banner .banner-content .banner-title { min-height: 13.5rem !important; } }
@media (min-width: 992px) and (max-width: 1199px) { .mod-banner .banner-content .banner-title { min-height: 41.1rem !important; } }
@media (min-width: 1200px) and (max-width: 1400px) { .mod-banner .banner-content .banner-title { min-height: 40.3rem !important; } }
@media (min-width: 1400px) { .mod-banner .banner-content .banner-title { min-height: 47.5rem !important; } }
@media (min-width: 1600px) { .mod-banner .banner-content .banner-title { min-height: 40.6rem !important; } }

/* ========== АДАПТИВНАЯ КНОПКА ========== */
.contacts-btn .btn.cus-title { display: inline-block; width: 416px; height: 54px; min-width: 200px; white-space: nowrap; transition: all 0.3s ease; color: #118D33 !important; background: #FFFFFF !important; border: 1px solid #118D33; font-family: Inter; font-weight: 500; font-size: 20px; line-height: 100%; letter-spacing: 0%; text-align: center; vertical-align: middle; }
.contacts-btn .btn.cus-title:hover { background-color: #118D33 !important; color: #FFFFFF !important; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(17, 141, 51, 0.3); border-color: #118D33; }

@media (max-width: 991px) { .contacts-btn .btn.cus-title { min-width: 160px; padding: 1rem 2rem !important; font-size: 1.2rem; } }
@media (max-width: 767px) { .contacts-btn { text-align: center !important; width: 100%; } .contacts-btn .btn.cus-title { width: 100%; min-width: 100%; padding: 0.8rem 1.5rem !important; font-size: 1.2rem; white-space: normal; text-align: center; } }
@media (max-width: 480px) { .contacts-btn .btn.cus-title { padding: 0.7rem 1.2rem !important; font-size: 1.5rem; } }

/* ========== КЛАСС CCC ========== */
.ccc { position: relative; bottom: 6rem; }
@media (max-width: 1400px) { .ccc { bottom: 5rem; } }
@media (max-width: 1200px) { .ccc { bottom: 3rem; } }
@media (max-width: 992px) { .ccc { bottom: 1rem; } }
@media (max-width: 768px) { .ccc { bottom: 1rem; } }
@media (max-width: 576px) { .ccc { bottom: 1rem; } }
@media (max-width: 425px) { .ccc { bottom: 0.5rem; } }

/* ========== КАРТА ========== */
.mod-contacts { margin-bottom: 3rem; }
.map { position: relative; width: 100%; max-width: 636px; height: auto; aspect-ratio: 636 / 357; border-radius: 33px; background: linear-gradient(180deg, #118D33 0%, rgba(43, 43, 43, 0) 100%); padding: 2px; display: inline-block; opacity: 1; transition: border-radius 0.3s ease; }
.map iframe { width: 100%; height: 100%; border: none; border-radius: 28px; display: block; }

/* Адаптив для border-radius */
@media (min-width: 2560px) { .map { border-radius: 35px; } .map iframe { border-radius: 23px; } }
@media (max-width: 1200px) { .map { border-radius: 25px; } .map iframe { border-radius: 23px; } }
@media (max-width: 992px) { .map { border-radius: 25px; } .map iframe { border-radius: 18px; } }
@media (max-width: 768px) { .map { border-radius: 20px; } .map iframe { border-radius: 13px; } }
@media (max-width: 576px) { .map { border-radius: 19px; } .map iframe { border-radius: 10px; } }
@media (max-width: 375px) { .map { border-radius: 20px; } .map iframe { border-radius: 6px; } }

/* ========== КНОПКА ИЗ МАКЕТА ========== */
.w-25 { width: 45% !important; height: 62px !important; gap: 10px; border-radius: 50px !important; padding: 10px 30px !important; background-color: #19211D !important; color: white !important; border: none !important; display: inline-flex !important; align-items: center; justify-content: center; font-family: 'Inter', sans-serif; font-weight: 500; font-style: normal; font-size: 18px; line-height: 1.2; letter-spacing: 0; white-space: nowrap; transition: all 0.3s ease; }
.w-25:hover { background-color: #2a332f !important; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(25, 33, 29, 0.3); }

/* Планшеты */
@media (max-width: 1200px) { .w-25 { padding: 10px 25px !important; font-size: 17px; } }
@media (max-width: 992px) { .w-25 { padding: 10px 20px !important; font-size: 13px; height: 56px !important; } }
@media (max-width: 768px) { .w-25 { width: 100% !important; max-width: 100%; height: 52px !important; padding: 8px 15px !important; font-size: 15px; white-space: normal; text-align: center; word-break: break-word; } }
@media (max-width: 576px) { .w-25 { height: 48px !important; padding: 8px 12px !important; font-size: 14px; } }
@media (max-width: 375px) { .w-25 { font-size: 13px; padding: 8px 10px !important; } }

/* ========== ОТСТУПЫ ========== */
section, .moduletable:not(:empty) { margin-bottom: 4rem; }
@media (max-width: 767px) { section, .moduletable:not(:empty) { margin-bottom: 3rem; } }

/* ========== УТИЛИТЫ ========== */
@media (min-width: 768px) { .w-75 { width: 75% !important; } .w-50 { width: 70% !important; } .w-25 { width: 45% !important; } }
@media (max-width: 767px) { .w-75, .w-50, .w-25 { width: 100% !important; } }

/* ========== АДАПТАЦИЯ ========== */
@media screen and (max-width: 991px) { .home header { position: static; color: var(--dark); background: var(--light); } header #logo { max-width: 60%; } }

@media screen and (max-width: 767px) {
    .container { padding-left: 20px; padding-right: 20px; }
    h1, .h1 { font-size: 1.5rem; }
    h2, .h2 { font-size: 2.2rem; }
    h3, .h3 { font-size: 1.8rem; }
    h4, .h4 { font-size: 1.5rem; }
    h5, .h5 { font-size: 1.3rem; }
    h6, .h6 { font-size: 1.1rem; }
    .btn { padding: 1rem 2rem; font-size: 1.5rem; }
}

@media screen and (max-width: 480px) { :root, body { font-size: 9px; } .container { padding-left: 15px; padding-right: 15px; } }

/* ========== КАСТОМНЫЙ ФУТЕР ========== */
.custom-footer { width: 100%; background-color: #EDEDED; padding: 2rem 0; border-top: 1px solid #E0E0E0; margin-top: 0; }
.footer-container { max-width: 1296px; margin: 0 auto; padding: 0 30px; }
.footer-content { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.footer-copyright { font-family: 'Inter', sans-serif; font-weight: 400; font-size: 14px; line-height: 1.1; letter-spacing: -0.02em; color: #878787; max-width: 100%; }
.footer-phones { font-family: 'Inter', sans-serif; font-weight: 400; font-size: 14px; line-height: 1.1; letter-spacing: -0.02em; text-align: right; color: #333333; white-space: nowrap; }

/* Адаптив для планшетов 1024px */
@media (max-width: 1024px) { .footer-content { flex-direction: row; gap: 2rem; justify-content: space-between; } .footer-copyright { max-width: 100%; font-size: 14px; text-align: left; } .footer-phones { font-size: 14px; white-space: normal; text-align: right; } }
@media (max-width: 992px) { .footer-content { flex-direction: column; gap: 1.5rem; text-align: center; } .footer-copyright { max-width: 100%; text-align: center; } .footer-phones { text-align: center; white-space: normal; } }
@media (max-width: 768px) { .custom-footer { padding: 1.5rem 0; } .footer-copyright, .footer-phones { font-size: 13px; line-height: 1.2; } }
@media (max-width: 480px) { .footer-copyright, .footer-phones { font-size: 12px; } }

/* Удаляем дублирующиеся медиа-запросы для 768px и 480px */
/* Оставляем только один экземпляр */

.xtt { position: relative !important; right: 1rem !important; bottom: 0.1rem !important; }

/* ========== МОДАЛЬНОЕ ОКНО ========== */
.modal-dialog a { color: var(--light) !important; }
@media (min-width: 576px) { .modal-dialog { max-width: 53rem; } }
.modal-dialog .modal-header { border-bottom: none; }
.modal-dialog .modal-content { background: linear-gradient(rgba(17, 141, 51, 0.8), rgba(17, 141, 51, 0.8)), url("/images/patterns/back-1.png"); background-size: cover; background-repeat: no-repeat; background-position: center; }

/* Стили для формы в модальном окне */
.modal-dialog .form-control { color: var(--light) !important; background-color: transparent; border: 1px solid rgba(255, 255, 255, 0.3); }
.modal-dialog .form-control:focus { background-color: transparent; border-color: var(--light); box-shadow: unset; }
.modal-dialog .form-control::placeholder { color: rgba(255, 255, 255, 0.7); }
.modal-dialog .btn-light { --bs-btn-color: var(--contrast); --bs-btn-bg: var(--light); --bs-btn-border-color: transparent; --bs-btn-hover-color: var(--contrast); --bs-btn-hover-bg: var(--dark); --bs-btn-hover-border-color: transparent; --bs-btn-active-color: var(--contrast); --bs-btn-active-bg: var(--dark); --bs-btn-active-border-color: transparent; --bs-btn-disabled-color: var(--contrast); --bs-btn-disabled-bg: var(--light); --bs-btn-disabled-border-color: transparent; }
.modal-dialog .check-label { display: flex; align-items: center; color: white; }
.modal-dialog .check-label a { color: white; text-decoration: underline; }
.modal-dialog .form-check-input { margin-top: 0; border: 1px solid rgba(255, 255, 255, 0.3); }
.modal-dialog .form-check-input:checked { background-color: var(--contrast); border-color: var(--contrast); }