﻿/* ================================
   Глобальные сбросы и общие стили
   ================================ */
html, body {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
    line-height: 1.5;
}

a {
    text-decoration: none;
    color: inherit;
}

/* ================================
   КЛАСС ДЛЯ НЕПЕРЕНОСА (номер/почта)
   ================================ */
.text-nowrap {
    white-space: nowrap !important;
}

/* ================================
   ШАПКА (Header)
   ================================ */
.header-top {
    background-color: #ffffff; /* Белый фон */
    border-bottom: 1px solid #e0e0e0; /* Тонкая серая граница */
}

    /* Ограничиваем ширину контейнера по Bootstrap-сетке */
    .header-top .container {
        max-width: 1140px;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

/* Логотип: фиксированная высота, сохранение пропорций */
.header-logo {
    height: 60px;
    object-fit: contain;
}

/* Блок контактов (телефон + почта) */
.header-contacts {
    display: flex;
    align-items: center;
    gap: 1.5rem; /* Промежуток между «телефон» и «почта» */
}

    /* Каждый контакт (иконка + ссылка) */
    .header-contacts .contact-item {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

/* Иконки (телефон, почта) — точно 20×20 px */
.icon-20 {
    width: 20px;
    height: 20px;
}

/* Ссылки внутри контактов (телефон / e-mail) */
.contact-link {
    color: #212529; /* Тёмно-серый */
    font-size: 0.9rem;
}

    .contact-link:hover {
        text-decoration: underline;
        color: #0d6efd; /* Bootstrap primary при наведении */
    }

/* Кнопка «Оставить заявку» */
.header-apply-btn {
    min-width: 150px;
    font-size: 0.875rem;
    padding: 0.375rem 0.75rem;
}

/* === Адаптив: на экранах ниже 768px (.sm и меньше) === */
@media (max-width: 767.98px) {
    .header-top .container {
        flex-direction: column;
        align-items: flex-start;
    }

    .header-apply-btn {
        width: 100%; /* Растягиваем под всю ширину */
        margin-top: 0.5rem;
    }
}


/* ================================
   НАВИГАЦИОННОЕ МЕНЮ (NavMenu)
   ================================ */
.header-nav {
    background-color: #ffffff;
    border-bottom: 1px solid #e0e0e0;
}

    .header-nav .container {
        max-width: 1140px;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .header-nav .navbar {
        padding: 0; /* Убираем стандартные отступы Bootstrap */
    }

    .header-nav .nav-link {
        color: #212529;
        padding: 0.5rem 1rem;
        font-size: 0.9rem;
    }

        .header-nav .nav-link:hover {
            color: #0d6efd;
        }

/* Если используете в меню мини-лого (30px) */
.navbar-brand img {
    height: 30px;
    object-fit: contain;
}

/* Селектор языка (чтобы не съезжал) */
.language-select {
    min-width: 80px;
}


/* ================================
   ДРУГИЕ СЕКЦИИ (для примера)
   ================================ */

/* Hero (главный экран) — если понадобится */
#hero {
    background: url('../images/home/home_panel_background.jpg') center center no-repeat;
    background-size: cover;
    height: 100vh;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero {
    position: relative;
}

    .hero::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.5);
        z-index: 0;
    }

    .hero .container {
        position: relative;
        z-index: 1;
    }

/* Footer (пример) */
.footer {
    background-color: #f8f9fa;
    color: #212529;
}

    .footer a:hover {
        text-decoration: underline;
    }

/* ================================
   ProgramsSection (блок «Программы обучения»)
   ================================ */

.programs-img {
    height: 180px; /* Фиксированная высота изображений в карточках */
    object-fit: cover; /* Обрезает по центру, сохраняя соотношение сторон */
}

/* Чуть уменьшим высоту картинок на очень маленьких экранах */
@media (max-width: 575.98px) {
    .programs-img {
        height: 140px;
    }
}

/* Подстройки текстов и отступов внутри секции */
#programs-section h2 {
    font-size: 2rem;
}

#programs-section p.lead {
    font-size: 1.1rem;
}

#programs-section h3 {
    font-size: 1.25rem;
}

#programs-section .btn-outline-primary {
    font-size: 1rem;
    padding: 0.35rem 0.75rem;
}

/* Немного больше пространства между группами карточек */
#programs-section .mb-4 {
    margin-bottom: 2.5rem !important;
}

/* Ограничиваем размер иконок услуг */
.service-img {
    width: 100% !important;
    height: 320px !important;
    object-fit: cover;
    border-radius: 1.5rem 1.5rem 0 0;
    display: block;
}

#services {
    background: linear-gradient(135deg, #F0F9FF 0%, #F1F5F9 100%);
    border-top: 1.5px solid #e4eaf2;
    box-shadow: none !important;
    padding-top: 3rem;
    padding-bottom: 3rem;
}
/* Фон + тёмная полупрозрачная маска */
#contact-cta {
    position: relative;
    background: url('../images/home/home_panel_background_1.jpg') center/cover no-repeat;
    overflow: hidden;
}

    #contact-cta::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(0, 0, 0, 0.6);
        z-index: 0;
    }

    #contact-cta .container {
        position: relative;
        z-index: 1;
    }
    /* Тень для текста (опционально) */
    #contact-cta h2,
    #contact-cta p {
        text-shadow: 0 2px 4px rgba(0,0,0,0.7);
    }

.fleet-img {
    height: 300px;
    object-fit: cover; /* масштабирование с обрезкой по центру */
    width: 100%;
}

.carousel-control-prev,
.carousel-control-next {
    width: 3rem;
    height: 3rem;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    /* делаем иконку белой и чуть больше */
    filter: invert(1) brightness(2);
    width: 1.5rem;
    height: 1.5rem;
    background-size: 100%, 100%;
}

#fleet .carousel-item img {
    width: 100%;
    height: 300px; /* фиксированная высота */
    object-fit: cover; /* обрезка по центру, без искажений */
}

/* Секция «Почему именно мы» */
#reasons .bi {
    color: #0d6efd; /* основной цвет */
}

#reasons h2 {
    font-size: 2rem;
}

#reasons p.lead {
    font-size: 1.1rem;
}

#reasons .fs-1 {
    font-size: 2.5rem; /* размер иконок */
}

/* Фон для блока услуг + причин */
#services,
#reasons {
    background-color: #f8f9fa;
}

#reasons {
    border-top: 1px solid #dee2e6;
}

#reasons {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

#services .text-center h2,
#reasons .text-center h2 {
    color: #212529;
}

#reasons h2 {
    color: #0d6efd;
}

/* ================================
   PromotionsSection
   ================================ */
#promotions {
    background: linear-gradient(135deg, #F0F9FF 0%, #F1F5F9 100%);
}

.promo-card {
    border: none;
    border-radius: 1rem;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

    .promo-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 10px 20px rgba(0,0,0,0.15);
    }

.promo-icon {
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    padding: 1.25rem 0;
}

#promotions .card-title {
    margin-top: 0.75rem;
    margin-bottom: 0.5rem;
    font-size: 1.25rem;
}

#promotions .btn-outline-primary,
#promotions .btn-outline-success,
#promotions .btn-outline-warning {
    border-radius: 50px;
    padding: 0.6rem 1.2rem;
    font-weight: 500;
    transition: background-color 0.3s ease, color 0.3s ease;
}

    #promotions .btn-outline-primary:hover {
        background-color: #0d6efd;
        color: #fff;
    }

    #promotions .btn-outline-success:hover {
        background-color: #198754;
        color: #fff;
    }

    #promotions .btn-outline-warning:hover {
        background-color: #ffc107;
        color: #212529;
    }

/* ================================
   ContactSection
   ================================ */
#contact-section {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
}

    #contact-section .icon-circle {
        width: 50px;
        height: 50px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.3s ease;
    }

        #contact-section .icon-circle:hover {
            transform: scale(1.1);
        }

    #contact-section .contact-info h5 {
        margin-bottom: 0.25rem;
    }

    #contact-section .social-links a {
        color: #495057;
        transition: color 0.3s ease;
    }

        #contact-section .social-links a:hover {
            color: #0d6efd;
        }

    #contact-section .contact-form {
        animation: fadeInUp 0.6s ease both;
    }

    #contact-section .map-container {
        animation: fadeIn 0.8s ease both;
    }

/* анимации */
.fade-up {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.6s ease forwards;
}

.fade-in {
    opacity: 0;
    animation: fadeIn 0.8s ease forwards;
}

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

@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

/* ================================
   Header (NavMenu) улучшения
   ================================ */
#site-header {
    background-color: rgba(255,255,255,0.8);
    transition: background-color 0.3s, box-shadow 0.3s;
}

    #site-header.sticky-top.scrolled {
        background-color: #fff;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }

.logo-img {
    height: 40px;
    object-fit: contain;
}

/* Навигация */
#site-header .nav-link {
    position: relative;
    padding: 0.5rem 1rem;
    color: #333;
    font-weight: 500;
    transition: color 0.3s;
}

    #site-header .nav-link::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        width: 0;
        height: 2px;
        background: #0d6efd;
        transition: width 0.3s, left 0.3s;
    }

    #site-header .nav-link:hover {
        color: #0d6efd;
    }

        #site-header .nav-link:hover::after {
            width: 100%;
            left: 0;
        }

/* Кнопка CTA */
#site-header .btn-primary {
    padding: 0.4rem 1rem;
    font-weight: 600;
}

/* ==============================================
   How to Charter — единая карточка со Steps
   ============================================== */
#charter-process .charter-step-card {
    position: relative;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    padding: 2.5rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

    #charter-process .charter-step-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    }

/* Бейдж номера шага */
#charter-process .step-badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40px;
    height: 40px;
    background-color: #0d6efd;
    color: #fff;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    z-index: 1;
}

/* Заголовок шага — перенос по словам */
#charter-process .step-title {
    margin-top: 0.75rem;
    font-size: 1.1rem;
    font-weight: 600;
    word-break: break-word;
}

/* Блоки «You» & «We» */
#charter-process .step-block {
    border-left: 4px solid transparent;
    padding-left: 0.75rem;
    margin-bottom: 1rem;
}

#charter-process .user-block {
    background-color: rgba(13,110,253,0.1);
    border-color: #0d6efd;
}

#charter-process .agency-block {
    background-color: rgba(25,135,84,0.1);
    border-color: #198754;
}

#charter-process .step-block strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #212529;
}

#charter-process .step-block p {
    margin: 0;
    color: #495057;
    font-size: 0.95rem;
    line-height: 1.4;
}

/* ====== Charter CTA (аренда) ====== */
#charter-contact-cta {
    position: relative; /* чтобы ::before позиционировался внутри */
    overflow: hidden; /* ничего не вылезет за края */
    background: url('../images/charter-cta.jpg') center/cover no-repeat;
    color: #fff;
    padding: 3rem 0; /* py-5 */
}

    #charter-contact-cta::before {
        content: '';
        position: absolute;
        inset: 0; /* top:0; right:0; bottom:0; left:0 */
        background-color: rgba(0, 0, 0, 0.4);
        z-index: 0; /* под контентом */
    }

    #charter-contact-cta .container {
        position: relative; /* «подняли» контент над маской */
        z-index: 1;
    }

    /* Немного текстовой тени для читабельности */
    #charter-contact-cta h2,
    #charter-contact-cta .btn {
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    }

/* =========================================
   Styles for Management Page (Management.razor)
   ========================================= */

/* 1. Hero section */
#management-hero {
    position: relative;
    background: url('../images/management/management_hero.jpg') center/cover no-repeat;
    min-height: 60vh;
    display: flex;
    align-items: center;
    color: #fff;
}

    #management-hero .overlay {
        content: '';
        position: absolute;
        inset: 0;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 0;
    }

    #management-hero .container {
        position: relative;
        z-index: 1;
    }

    #management-hero h1 {
        text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
    }

    #management-hero p,
    #management-hero .btn {
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    }


/* 2. Parking section */
#management-parking {
    position: relative;
    background: url('../images/management/parking_bg.jpg') center/cover no-repeat;
    padding: 5rem 0;
}

    #management-parking .overlay {
        content: '';
        position: absolute;
        inset: 0;
        background-color: rgba(255, 255, 255, 0.8);
        z-index: 0;
    }

    #management-parking .container {
        position: relative;
        z-index: 1;
    }

    #management-parking .card {
        border-radius: 0.75rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }

        #management-parking .card:hover {
            transform: translateY(-4px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
        }

/* Uniform circular icon container */
.icon-circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}


/* 3. Offer section */
#management-offer {
    padding: 4rem 0;
}

    #management-offer .card {
        border-radius: 0.75rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }

        #management-offer .card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
        }


/* 4. Wishes section */
#management-wishes {
    padding: 5rem 0;
}

    #management-wishes .card {
        border-radius: 0.75rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        display: flex;
        flex-direction: column;
    }

        #management-wishes .card:hover {
            transform: translateY(-4px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
        }

    #management-wishes .flex-fill {
        flex: 1;
    }


/* 5. Contact Form section */
#management-form {
    padding: 5rem 0;
}

    #management-form .card {
        border-radius: 0.75rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }

        #management-form .card:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
        }

    #management-form .text-danger {
        margin-bottom: 1rem;
    }

.service-card {
    border-radius: 1.5rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.13);
    overflow: hidden;
    background: #fff;
}

.service-img {
    width: 100%;
    height: 320px; /* можно сделать 320px если хочется больше */
    object-fit: cover;
    border-radius: 1.5rem 1.5rem 0 0;
    display: block;
}

.swiper-slide {
    display: flex;
    justify-content: center;
    align-items: stretch;
    width: 100% !important;
}

.swiper.mySwiper {
    width: 100%;
}

.validation-message, .input-validation-error, .validation-summary-errors {
    color: #d9534f;
    font-weight: 500;
    margin-top: 3px;
    margin-bottom: 5px;
    font-size: 1.03rem;
    list-style: none;
}

.validation-message {
    padding-left: 0.1em;
}