
.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 40px);
}

.section {
    padding: var(--section-padding) 0;
    position: relative;
}

main .section:first-of-type,
.breadcrumbs-container ~ * .section:first-of-type,
.section:first-of-type {
    padding-top: 40px;
}

.section--dark { background: var(--dark-lighter); }
.section--gradient { background: linear-gradient(180deg, var(--dark) 0%, var(--dark-lighter) 100%); }

.page-contacts .section--contacts-form {
    padding-top: 20px;
}

@media (max-width: 768px) {
    .page-contacts .section--contacts-form {
        padding-top: 15px;
    }
}

@media (max-width: 480px) {
    .page-contacts .section--contacts-form {
        padding-top: 10px;
    }
}

.page-about .section--about-content {
    padding-top: 20px;
}

.page-about .section--about-content .section-header {
    margin-bottom: 30px;
}

@media (max-width: 768px) {
    .page-about .section--about-content {
        padding-top: 15px;
    }
    
    .page-about .section--about-content .section-header {
        margin-bottom: 20px;
    }
}

@media (max-width: 480px) {
    .page-about .section--about-content {
        padding-top: 10px;
    }
    
    .page-about .section--about-content .section-header {
        margin-bottom: 15px;
    }
}

.grid { display: grid; gap: var(--gap); }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--5 { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1200px) {
    .grid--5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 992px) {
    .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); }
    .grid--5 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .grid--2, .grid--3, .grid--4, .grid--5 { grid-template-columns: 1fr; }
    
    .section {
        padding: clamp(30px, 8vw, 60px) 0;
    }
    
    main .section:first-of-type,
    .breadcrumbs-container ~ * .section:first-of-type,
    .section:first-of-type {
        padding-top: clamp(20px, 5vw, 40px);
    }
    
    .container {
        padding: 0 clamp(15px, 4vw, 20px);
    }
}

@media (max-width: 480px) {
    .section {
        padding: clamp(20px, 6vw, 40px) 0;
    }
    
    main .section:first-of-type,
    .breadcrumbs-container ~ * .section:first-of-type,
    .section:first-of-type {
        padding-top: clamp(15px, 4vw, 30px);
    }
    
    .container {
        padding: 0 15px;
    }
}
