.container {
    width: min(calc(100% - 32px), var(--container-width));
    margin: 0 auto;
}

.section {
    padding: 104px 0;
}

.section-soft {
    background: var(--color-surface-soft);
}

.section-accent {
    background: linear-gradient(180deg, var(--color-surface-accent) 0%, var(--color-surface) 100%);
}

.section-gallery {
    overflow: hidden;
}

.section-heading {
    max-width: 760px;
    margin-bottom: 40px;
}

.section-heading h2 {
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
    letter-spacing: -0.04em;
    margin-bottom: 16px;
}

.section-heading p {
    font-size: 1.05rem;
    color: var(--color-text-muted);
}

.hero {
    padding: 96px 0 72px;
    position: relative;
}

.hero-grid,
.split-layout,
.contact-grid,
.footer-inner,
.header-inner {
    display: grid;
    gap: 32px;
    align-items: center;
}

.hero-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    min-height: calc(100vh - 120px);
}

.split-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.split-layout-image-right .split-content {
    order: 1;
}

.split-layout-image-right .split-media {
    order: 2;
}

.contact-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.footer-inner,
.header-inner {
    grid-template-columns: auto 1fr;
}

.card-grid {
    display: grid;
    gap: 24px;
}

.card-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.info-grid {
    display: grid;
    gap: 18px;
}

.info-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.contact-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.testimonials-showcase {
    display: grid;
    gap: 22px;
}

.testimonials-groups {
    display: grid;
    gap: 28px;
}

.testimonial-group {
    display: grid;
    gap: 16px;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

@media (max-width: 1100px) {
    .hero-grid,
    .split-layout,
    .contact-grid,
    .card-grid-3,
    .card-grid-4,
    .gallery-grid,
    .steps-grid,
    .contact-cards,
    .info-grid-2,
    .testimonials-grid {
        grid-template-columns: 1fr 1fr;
    }

    .hero-grid,
    .split-layout,
    .contact-grid {
        align-items: start;
    }
}

@media (max-width: 860px) {
    .section {
        padding: 84px 0;
    }

    .hero-grid,
    .split-layout,
    .contact-grid,
    .card-grid-3,
    .card-grid-4,
    .gallery-grid,
    .steps-grid,
    .contact-cards,
    .info-grid-2,
    .testimonials-grid,
    .footer-inner,
    .header-inner {
        grid-template-columns: 1fr;
    }

    .hero {
        padding-top: 76px;
    }
}
