
/* =================================================================== */
/* ОБНОВЛЕННЫЕ СТИЛИ для унифицированного блока "героя" (как в каталоге) */
.page-hero {
    background-image: url('../img/chip.webp'); /* Путь к вашему фоновому изображению */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
    min-height: 450px; /* Базовая высота как в catalog-title */
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;

    /* Растягиваем на всю ширину экрана, игнорируя контейнер */
    width: 100vw;
    left: 50%;
    transform: translateX(-50%);
}

.page-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5); /* Затемнение как в catalog-title */
    z-index: 1;
}

.page-hero h1 {
    font-size: 55px; /* Размер шрифта как в catalog-title */
    color: #fff;
    margin: 0;
    font-weight: 700;
    line-height: 1.2;
    z-index: 2;
    position: relative; /* Важно для text-shadow */
    /* УСИЛЕННЫЕ ТЕНИ И ОТСТУП МЕЖДУ БУКВАМИ */
    text-shadow:
        0 0 15px rgba(0, 0, 0, 0.9), /* Более сильное размытие и темнее */
        0 0 25px rgba(0, 0, 0, 0.7), /* Дополнительная тень */
        0 6px 12px rgba(0, 0, 0, 0.8); /* Смещение и темнее */
    letter-spacing: 1.5px; /* Небольшой отступ между буквами */
}

/* Адаптивные стили для заголовка и высоты, скопированные из catalog.css */
@media (max-width: 992px) {
    /* Если в catalog.css есть что-то для 992px, используем. Если нет, то пропускаем.
       Сейчас в catalog.css нет отдельных медиа для min-height или font-size на 992px для .catalog-title */
}

@media (max-width: 768px) {
    .page-hero {
        min-height: 250px; /* Немного увеличено для средних экранов */
    }
    .page-hero h1 {
        font-size: 3rem; /* Немного уменьшим для средних экранов */
        letter-spacing: 1px; /* Чуть меньший отступ на меньших экранах */
    }
}

@media (max-width: 576px) {
    .page-hero h1 {
        font-size: 2.5rem; /* Размер шрифта для совсем маленьких экранов */
        letter-spacing: 0.8px; /* Ещё чуть меньший отступ */
    }

    .page-hero {
        min-height: 200px; /* Высота как в catalog-title на 576px */
    }
}
/* =================================================================== */

.vacancies-section {
    padding: 60px 0;
    background-color: #f9fafb; /* Используем основной фон body для этой секции */
}

.vacancies-header {
    text-align: center;
    margin-bottom: 50px;
    padding: 0 20px; /* Отступы по бокам */
}


.vacancies-header p {
    font-family: 'Arimo', sans-serif;
    font-size: 1.2em;
    color: #555; /* Мягкий серый для текста */
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.6;
}

/* --- СТАрые Стили для контейнера изображения чипа с наложенным текстом УДАЛЕНЫ/ЗАКОММЕНТИРОВАНЫ --- */
/*
.chip-image-container {
    position: relative;
    text-align: center;
    margin-bottom: 50px;
    padding: 0;
    width: 100%;
    overflow: hidden;
}

.chip-image {
    display: block;
    width: 100%;
    height: auto;
}

.image-overlay-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-size: 3em;
    font-weight: bold;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7);
    white-space: nowrap;
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 2px;
}
*/


.job-listings {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    padding: 0 20px; /* Отступы по бокам для карточек */
    align-items: stretch; /* Гарантирует, что все карточки в ряду будут одной высоты */
}

.job-card {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    padding: 30px; /* Внутренние отступы карточки */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Распределяет пространство, прижимая кнопку вниз */
    border: 1px solid #eee; /* Легкая граница */
    box-sizing: border-box; /* Убедимся, что padding учитывается в ширине/высоте карточки */
}

.job-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.job-card h3 {
    font-family: 'Montserrat', sans-serif;
    color: #007BFF; /* Используем ваш основной синий цвет для заголовков вакансий */
    font-size: 1.8em;
    margin-bottom: 15px;
    font-weight: 700;
}

/* --- Стили для секций внутри карточки (job-details) --- */
.job-details {
    flex-grow: 1; /* Позволяет содержимому занимать всё доступное пространство */
    margin-bottom: 25px; /* Отступ перед кнопкой "Откликнуться" */
    padding-top: 10px;
    padding-bottom: 10px;
    box-sizing: border-box; /* Важно: Убедимся, что padding учитывается в ширине/высоте */
}

.job-details h4 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.15em;
    color: #333;
    margin-top: 25px;
    margin-bottom: 10px;
    font-weight: 600;
    position: relative;
    padding-bottom: 5px;
}

.job-details h4::after {
    content: '';
    display: block;
    width: 30px;
    height: 3px;
    background-color: #007BFF;
    margin-top: 5px;
    border-radius: 2px;
}

.job-details ul {
    list-style: none; /* Убираем стандартные маркеры */
    padding: 0;
    margin: 0;
}

.job-details ul li {
    font-family: 'Arimo', sans-serif;
    font-size: 1em;
    line-height: 1.6;
    color: #444;
    margin-bottom: 8px;
    padding-left: 25px;
    position: relative;
}

.job-details ul li::before {
    content: '✓'; /* Простая галочка */
    color: #28a745; /* Зеленый цвет для галочки */
    font-weight: bold;
    font-size: 1.1em;
    position: absolute;
    left: 0;
    top: 0;
    line-height: inherit;
}

/* --- Стиль для выделения денег/важных цифр --- */
.highlight-money {
    color: #28a745; /* Зеленый цвет для привлечения внимания к доходу */
    font-weight: 700; /* Очень жирный, чтобы было хорошо видно */
}

/* --- Стили для кнопки "Откликнуться" --- */
.job-card .details-button {
    display: block;
    background: linear-gradient(90deg, #69b3ff 0%, #007BFF 100%);
    color: #fff;
    padding: 12px 25px; /* Эти внутренние отступы */
    border-radius: 5px;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    text-align: center;
    width: 100%; /* Занимает 100% ширины доступного пространства */
    margin-top: auto; /* Прижимает кнопку к низу */
    box-shadow: 0 4px 10px rgba(9, 132, 255, 0.3);
    box-sizing: border-box; /* Это гарантирует, что padding (12px 25px) будет ВКЛЮЧЕН в 100% ширины */
}
.job-card .details-button:hover {
    background: linear-gradient(90deg, #007BFF 0%, #004bbf 100%);
    transform: translateY(-2px); /* Легкий подъем при наведении */
    box-shadow: 0 6px 15px rgba(0, 75, 191, 0.4);
}


/* --- Стили для формы отклика --- */
.apply-section {
    padding: 80px 0;
    background-color: #f2f4f6;
}

.apply-section h2 {
    font-family: 'Montserrat', sans-serif;
    text-align: center;
    font-size: 2.8em;
    color: #1a1a1a;
    margin-bottom: 40px;
    font-weight: 700;
}
.apply-section h2 .title-muted {
    color: #555;
}

.apply-form {
    max-width: 700px;
    margin: 0 auto;
    padding: 40px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
}

.form-group {
    margin-bottom: 25px;
}

.form-group label {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
    color: #333;
    font-family: 'Arimo', sans-serif;
    font-size: 1.1em;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 14px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 1em;
    box-sizing: border-box; /* Важно для корректного отображения ширины */
    font-family: 'Arimo', sans-serif;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    color: #333;
}
.form-group input[type="text"]:focus,
.form-group input[type="email"]:focus,
.form-group input[type="tel"]:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #007BFF;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
    outline: none;
}

.form-group textarea {
    min-height: 120px;
    resize: vertical;
}


.form-submit-button {
    display: block;
    width: 100%;
    padding: 15px;
    background: linear-gradient(90deg, #69b3ff 0%, #007BFF 100%);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1.2em;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 6px 15px rgba(9, 132, 255, 0.4);
    font-family: 'Montserrat', sans-serif;
    box-sizing: border-box;
}
.form-submit-button:hover {
    background: linear-gradient(90deg, #007BFF 0%, #004bbf 100%);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 75, 191, 0.6);
}

/* --- Стили для красивой кнопки загрузки файла --- */
.custom-file-upload {
    position: relative;
    overflow: hidden;
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-top: 5px;
}

.custom-file-upload input[type="file"] {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
    z-index: 2;
    box-sizing: border-box;
}

.upload-button {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 20px;
    background-color: #f0f0f0;
    color: #333;
    border: 1px solid #ccc;
    border-radius: 6px;
    cursor: pointer;
    font-size: 1em;
    font-family: 'Arimo', sans-serif;
    transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    position: relative;
    z-index: 1;
    box-sizing: border-box;
}

.upload-button:hover {
    background-color: #e5e5e5;
    border-color: #999;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
}

.upload-button svg {
    margin-right: 10px;
    color: #007BFF;
    flex-shrink: 0;
}

#file-name {
    flex-grow: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
}

/* Дополнительные стили для фокуса на кастомной кнопке */
.custom-file-upload input[type="file"]:focus + .upload-button {
    border-color: #007BFF;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
    outline: none;
}

/* Медиа-запросы для адаптивности страницы Вакансий - ОБНОВЛЕНЫ */
@media (max-width: 992px) {
    /* Удален .vacancies-header h1, так как он заменен на .page-hero h1 */
    .vacancies-header p {
        font-size: 1.1em;
    }
    /* Удалены .chip-image-container и .image-overlay-text, они заменены на .page-hero */
    .job-card h3 {
        font-size: 1.6em;
    }
    .job-details h4 {
        font-size: 1.05em;
    }
    .job-details ul li {
        font-size: 0.95em;
    }
    .job-card .details-button {
        padding: 12px 25px;
        font-size: 1em;
    }
    .apply-section h2 {
        font-size: 2.2em;
    }
    .apply-form {
        padding: 30px;
    }
    .form-group label {
        font-size: 1em;
    }
    .form-group input, .form-group select, .form-group textarea {
        padding: 12px;
        font-size: 0.95em;
    }
    .form-submit-button {
        padding: 14px;
        font-size: 1.1em;
    }
}

@media (max-width: 768px) {
    /* Удален .vacancies-header h1, так как он заменен на .page-hero h1 */
    .vacancies-header p {
        font-size: 1em;
    }
    /* Удалены .chip-image-container и .image-overlay-text, они заменены на .page-hero */
    .job-listings {
        grid-template-columns: 1fr;
        padding: 0 15px;
        align-items: start;
    }
    .job-card {
        padding: 25px;
        height: auto;
    }
    .job-card h3 {
        font-size: 1.4em;
    }
    .job-details h4 {
        font-size: 1em;
    }
    .job-details ul li {
        font-size: 0.9em;
    }
    .job-card .details-button {
        width: 100%;
        padding: 12px 25px;
    }
    .apply-section {
        padding: 50px 0;
    }
    .apply-section h2 {
        font-size: 1.8em;
    }
    .apply-form {
        padding: 25px;
    }
    .form-group label {
        font-size: 0.95em;
    }
    .form-group input, .form-group select, .form-group textarea {
        padding: 10px;
        font-size: 0.9em;
    }
    .form-submit-button {
        padding: 12px;
        font-size: 1em;
    }
}

/* Общие стили для области уведомлений */
#notification-area {
    position: fixed;
    top: 20px; /* Отступ сверху */
    right: 20px; /* Отступ справа */
    z-index: 1000; /* Убедитесь, что уведомления находятся поверх других элементов */
    display: flex;
    flex-direction: column;
    gap: 10px; /* Отступ между уведомлениями, если их несколько */
}

/* Базовый стиль уведомления */
.notification {
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    color: #fff;
    font-family: 'Arimo', sans-serif;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 280px; /* Минимальная ширина уведомления */
    max-width: 400px; /* Максимальная ширина, чтобы не растягивалось слишком сильно */
    opacity: 0; /* Изначально скрыто */
    transform: translateY(-20px); /* Небольшое смещение для анимации появления */
    animation: fadeInSlideDown 0.3s ease-out forwards; /* Анимация появления */
}

/* Стили для разных типов уведомлений */
.notification-success {
    background-color: #4CAF50; /* Зеленый для успеха */
}

.notification-error {
    background-color: #f44336; /* Красный для ошибки */
}

.notification-info {
    background-color: #2196F3; /* Синий для информации */
}

/* Стили для кнопки закрытия */
.notification-close {
    cursor: pointer;
    margin-left: 15px;
    font-size: 24px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.8);
    transition: color 0.2s ease;
}

.notification-close:hover {
    color: #fff;
}

/* Анимация появления */
@keyframes fadeInSlideDown {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* Область для всех уведомлений */
#notification-area {
    position: fixed;
    top: 20px; /* Отступ от верха */
    right: 20px; /* Отступ от правого края */
    z-index: 1000; /* Убедитесь, что уведомления поверх других элементов */
    display: flex;
    flex-direction: column; /* Уведомления будут располагаться друг под другом */
    gap: 10px; /* Отступ между уведомлениями */
}

/* Базовые стили для отдельного уведомления */
.notification {
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); /* Мягкая тень для объема */
    color: #fff; /* Белый текст */
    font-family: 'Arimo', sans-serif; /* Используем ваш шрифт */
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between; /* Распределение содержимого и кнопки закрытия */
    min-width: 280px; /* Минимальная ширина */
    max-width: 350px; /* Максимальная ширина */
    opacity: 0; /* Изначально прозрачно для анимации */
    transform: translateY(-20px); /* Смещено вверх для анимации скольжения */
    animation: fadeInSlideDown 0.4s ease-out forwards; /* Анимация появления */
}

/* Стили для кнопки закрытия */
.notification-close {
    cursor: pointer;
    margin-left: 15px; /* Отступ от текста */
    font-size: 24px;
    line-height: 1; /* Выравнивание по центру */
    color: rgba(255, 255, 255, 0.8); /* Полупрозрачный белый */
    transition: color 0.2s ease; /* Плавное изменение цвета при наведении */
}

.notification-close:hover {
    color: #fff; /* Полностью белый при наведении */
}

/* Цвета для разных типов уведомлений */
.notification-success {
    background-color: #4CAF50; /* Яркий зеленый для успеха */
}

.notification-error {
    background-color: #f44336; /* Яркий красный для ошибки */
}

.notification-info {
    background-color: #2196F3; /* Яркий синий для информационных сообщений */
}

/* Анимация появления уведомления */
@keyframes fadeInSlideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Анимация исчезновения (можно добавить, если нужно более сложное поведение) */
.notification.fade-out {
    animation: fadeOutSlideUp 0.4s ease-out forwards;
}

@keyframes fadeOutSlideUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-20px);
    }
}