/* ==========================================================================
   Layout – kontejner, sekce, mřížky, hlavičky sekcí
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--page-margin);
}

.section {
    padding-block: var(--space-2xl);
}

@media (min-width: 768px) {
    .section {
        padding-block: var(--space-3xl);
    }
}

/* Mřížky – mobile-first, sloupce přibývají s šířkou */
.grid {
    display: grid;
    gap: var(--gutter);
}

@media (min-width: 640px) {
    .grid--2-sm {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .grid--3-md {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .grid--4-lg {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Dělený layout 7 : 5 (text + obrázek) */
.split {
    display: grid;
    gap: var(--space-xl);
    align-items: center;
}

@media (min-width: 1024px) {
    .split {
        grid-template-columns: 7fr 5fr;
        gap: var(--gutter);
    }
}

/* Hlavička sekce */
.section-header {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    max-width: 48rem;
    margin-bottom: var(--space-xl);
}

.section-header--center {
    align-items: center;
    margin-inline: auto;
    text-align: center;
}

.section-header--split {
    max-width: none;
}

.section-header__group {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.section-header__title {
    font-size: var(--fs-h2);
    letter-spacing: -0.025em;
}

.section-header__lead {
    font-size: var(--fs-body-lg);
    line-height: 1.55;
}

.section-header--split .section-header__lead {
    max-width: 28rem;
    font-size: var(--fs-body);
}

@media (min-width: 768px) {
    .section-header {
        margin-bottom: var(--space-2xl);
    }

    .section-header--split {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
        gap: var(--space-xl);
    }
}
