/* Базовые стили */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html { scroll-behavior: smooth; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif;
    background-color: #000;
    color: #fff;
    line-height: 1.6;
    overflow-x: hidden;
}

h1, h2, h3, h4 {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    letter-spacing: 0.5px;
}

/* Типографика увеличена для лучшей читаемости */
h1 { font-size: 3.6rem; }
h2 { font-size: 2.1rem; margin-bottom: 15px; }
h3 { font-size: 1.4rem; }
p, li { font-size: 1.1rem; }

.gold-gradient {
    background: linear-gradient(to right, #BF953F, #FCF6BA, #BF953F);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    background-size: 200% auto;
    animation: gradient-shine 3s linear infinite;
}

@keyframes gradient-shine {
    to { background-position: 200% center; }
}

.btn-gold {
    display: inline-block;
    padding: 15px 40px;
    color: #FCF6BA;
    background: transparent;
    border: 2px solid;
    border-image: linear-gradient(to right, #BF953F, #FCF6BA);
    border-image-slice: 1;
    text-decoration: none;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.4s ease;
}

.btn-gold:hover {
    background: linear-gradient(to right, #BF953F, #FCF6BA);
    color: #000;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(191, 149, 63, 0.3);
}

/* Навигация */
.navbar {
    position: fixed;
    top: 0;
    width: 100%;
    padding: 20px 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 1000;
    transition: background 0.3s ease;
}
.navbar.scrolled {
    background: rgba(0, 0, 0, 0.9);
    padding: 15px 5%;
}
.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}
.logo-img {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    object-fit: cover;
    background: #000;
}
.brand-name {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    letter-spacing: 2px;
    font-size: 1.4rem;
}
.nav-links a {
    color: #fff;
    text-decoration: none;
    margin-left: 30px;
    transition: color 0.3s;
}
.nav-links a:hover {
    color: #FCF6BA;
}

/* Герой секция */
.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #000;
    position: relative;
}
.hero::before{
    content: "";
    position:absolute; inset:0; 
    background: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.75));
    z-index:1;
}
.hero-video{
    position:absolute; inset:0; overflow:hidden; z-index:0;
}
.hero-video video{ 
    width:100%; height:100%; object-fit:cover; filter: saturate(1.05) contrast(1.05);
}
.hero-content h1 {
    font-size: 3.8rem;
    margin-bottom: 20px;
}
.hero-content p {
    font-size: 1.2rem;
    margin-bottom: 30px;
    color: #ccc;
}
.hero-content{ position:relative; z-index:2; padding:0 10%; }

/* Карточки услуг */
.service-card {
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, background 0.35s ease;
    cursor: default;
}
.service-card h3 { transition: color 0.3s ease; margin-bottom: 8px; }
.service-card:hover, .service-card:focus-within {
    transform: translateY(-6px);
    border-color: rgba(191,149,63,0.65) !important;
    box-shadow: 0 16px 40px rgba(191,149,63,0.18);
    background: #0e0e0e !important;
}
.service-card:hover h3, .service-card:focus-within h3 { color: #FCF6BA; }

/* Отзывы */
.reviews-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:20px; }
.review-card { background:#0b0b0b; padding:20px; border-radius:12px; border:1px solid rgba(191,149,63,0.25); display:grid; grid-template-columns:56px 1fr; grid-template-rows:auto auto; column-gap:14px; row-gap:6px; align-items:center; }
.review-avatar { width:56px; height:56px; border-radius:50%; object-fit:cover; border:1px solid rgba(191,149,63,0.35); }
.review-name { font-weight:600; }
.review-text { grid-column: 1 / -1; color:#d1d1d1; line-height:1.7; }

/* Чередование оттенков фона для блоков */
body > section:not(.hero):nth-of-type(odd) { background:#0a0a0a; }
body > section:not(.hero):nth-of-type(even) { background:#050505; }

/* Модальное окно */
.modal { display:none; position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,0.8); backdrop-filter:blur(4px); }
.modal.active { display:flex; align-items:center; justify-content:center; }
.modal-content { background:#0a0a0a; padding:32px; border-radius:12px; border:1px solid rgba(191,149,63,0.3); max-width:480px; width:90%; position:relative; }
.modal-close { position:absolute; top:12px; right:16px; background:none; border:none; color:#ccc; font-size:24px; cursor:pointer; }
.modal-close:hover { color:#FCF6BA; }
.form-group { margin-bottom:20px; }
.form-group label { display:block; margin-bottom:6px; color:#ccc; font-weight:500; }
.form-group input, .form-group textarea { width:100%; padding:12px; background:#0b0b0b; border:1px solid rgba(191,149,63,0.25); border-radius:6px; color:#fff; font-size:14px; }
.form-group input:focus, .form-group textarea:focus { outline:none; border-color:rgba(191,149,63,0.6); }
.form-group textarea { min-height:100px; resize:vertical; }
.form-submit { width:100%; padding:14px; background:linear-gradient(to right, #BF953F, #FCF6BA); color:#000; border:none; border-radius:6px; font-weight:600; cursor:pointer; transition:transform 0.2s; }
.form-submit:hover { transform:translateY(-2px); }

/* Социальные сети */
.social-links { display:flex; gap:12px; margin-top:20px; }
.social-link { display:flex; align-items:center; justify-content:center; transition:transform 0.3s; }
.social-link:hover { transform:translateY(-2px); }
.social-link img { width:44px; height:44px; }

/* Портфолио */
.portfolio-grid { margin-top:20px; display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.portfolio-item { position:relative; cursor:pointer; border-radius:10px; overflow:hidden; transition:transform 0.3s ease, box-shadow 0.3s ease; }
.portfolio-item:hover { transform:scale(1.05); box-shadow: 0 20px 40px rgba(191,149,63,0.2); }
.portfolio-item img { width:100%; height:100%; object-fit:cover; transition:filter 0.3s ease; }
.portfolio-item:hover img { filter:brightness(1.1) contrast(1.1); }

/* Модальное окно портфолио */
.portfolio-modal { display:none; position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,0.9); backdrop-filter:blur(4px); }
.portfolio-modal.active { display:flex; align-items:center; justify-content:center; }
.portfolio-modal-content { background:#0a0a0a; border-radius:12px; border:1px solid rgba(191,149,63,0.3); max-width:1200px; width:95%; max-height:90vh; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; }
.portfolio-modal-close { position:absolute; top:12px; right:16px; background:none; border:none; color:#ccc; font-size:24px; cursor:pointer; z-index:10; }
.portfolio-modal-close:hover { color:#FCF6BA; }
.portfolio-modal-image { position:relative; }
.portfolio-modal-image img { width:100%; height:100%; object-fit:cover; }
.portfolio-modal-text { padding:40px; display:flex; flex-direction:column; justify-content:center; }
.portfolio-modal-text h3 { margin-bottom:20px; color:#FCF6BA; font-size:1.8rem; }
.portfolio-modal-text p { color:#d1d1d1; line-height:1.8; font-size:1.1rem; }

/* Детальная модалка должна быть выше, чем модалка "Все работы" */
#portfolioModal { z-index: 2100; }

/* Секция "О нас" */
.section {
    padding: 100px 10%;
}

.about {
    padding: 100px 10%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}
.about-reverse {
    grid-template-columns: 1fr 1fr;
}
.about-reverse .about-content {
    order: 2;
    padding-right: 0;
    padding-left: 20px;
}
.about-reverse .about-image {
    order: 1;
}
.about-content {
    padding-right: 20px;
}
.about-image {
    position: relative;
}
.about-image img {
    width: 100%;
    border-radius: 10px;
    transform: translateX(50px);
    opacity: 0;
    transition: all 1s ease-out;
}
.about-reverse .about-image img {
    transform: translateX(-50px);
}
.about-image img.scrolled-in {
    transform: translateX(0);
    opacity: 1;
}

/* Адаптивность */
@media (max-width: 768px) {
    .about, .about-reverse {
        grid-template-columns: 1fr;
    }
    .about-reverse .about-content {
        order: 1;
        padding-left: 0;
    }
    .about-reverse .about-image {
        order: 2;
    }
    .hero-content h1 {
        font-size: 2.2rem;
    }
    .brand-name { font-size: 1.1rem; letter-spacing: 1.5px; }
    .nav-links a { margin-left: 16px; }
}

/* Стили для уведомлений */
.notification {
    position: fixed;
    top: 20px;
    right: 20px;
    padding: 16px 24px;
    border-radius: 8px;
    color: white;
    font-weight: 600;
    font-size: 14px;
    z-index: 10000;
    max-width: 400px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    transform: translateX(100%);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.notification.show {
    transform: translateX(0);
}

.notification.success {
    background: linear-gradient(135deg, #4CAF50, #45a049);
    border-left: 4px solid #2E7D32;
}

.notification.error {
    background: linear-gradient(135deg, #f44336, #d32f2f);
    border-left: 4px solid #c62828;
}

.notification.warning {
    background: linear-gradient(135deg, #ff9800, #f57c00);
    border-left: 4px solid #ef6c00;
}

.notification-icon {
    font-size: 20px;
    flex-shrink: 0;
}

.notification-message {
    flex: 1;
    line-height: 1.4;
}

.notification-close {
    background: none;
    border: none;
    color: white;
    font-size: 18px;
    cursor: pointer;
    padding: 0;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.2s ease;
}

.notification-close:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

/* Анимация появления */
@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

.notification.slide-in {
    animation: slideInRight 0.3s ease forwards;
}

.notification.slide-out {
    animation: slideOutRight 0.3s ease forwards;
}