/* ==========================================================================
   Dubbelbluf — layout.css
   Container, grid systems, section spacing.
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--max-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--s-24);
    padding-right: var(--s-24);
}

/* Section spacing */
.section {
    padding-top: var(--s-80);
    padding-bottom: var(--s-80);
}

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

.section--special {
    background-color: var(--c-special);
}

.section--compact {
    padding-top: var(--s-48);
    padding-bottom: var(--s-48);
}

/* Two-column grid */
.grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-48);
    align-items: center;
}

.grid-2--reversed {
    direction: rtl;
}

.grid-2--reversed > * {
    direction: ltr;
}

/* Three-column grid */
.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--s-32);
}

/* Four-column grid */
.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--s-32);
}

/* Two-column 2x2 grid */
.grid-2x2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--s-32);
}

/* Two-column 2x3 grid */
.grid-2x3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--s-32);
}

/* Centered narrow content */
.narrow {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.narrow--form {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

/* Text center */
.text-center {
    text-align: center;
}

/* Kicker (section label) */
.kicker {
    font-family: var(--f-body);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--c-accent);
    margin-bottom: var(--s-12);
}

/* Section header (kicker + h2 + description) */
.section-header {
    margin-bottom: var(--s-48);
}

.section-header p {
    color: var(--c-text-dim);
    max-width: 600px;
}

.section-header.text-center p {
    margin-left: auto;
    margin-right: auto;
}

/* Feature list (icon + text inline items) */
.feature-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-24);
    margin-top: var(--s-24);
    margin-bottom: var(--s-32);
}

.feature-list__item {
    display: flex;
    align-items: center;
    gap: var(--s-12);
    color: var(--c-text);
    font-size: 0.9375rem;
}

.feature-list__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--c-accent);
}

/* Inline feature list */
.feature-list--inline {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-32);
    justify-content: center;
}

/* CTA group */
.cta-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-16);
    margin-top: var(--s-32);
}

.cta-group--center {
    justify-content: center;
}

/* Breadcrumbs */
.breadcrumbs {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.5;
    margin-bottom: var(--s-24);
}

.breadcrumbs a {
    color: var(--c-text-dim);
}

.breadcrumbs a:hover {
    color: var(--c-accent);
}

.breadcrumbs__sep {
    margin: 0 var(--s-8);
}

/* Prose layout (legal pages) */
.prose {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.prose h2 {
    margin-top: var(--s-48);
    margin-bottom: var(--s-16);
}

.prose h3 {
    margin-top: var(--s-32);
    margin-bottom: var(--s-12);
}

.prose p {
    margin-bottom: var(--s-16);
    color: var(--c-text);
}

.prose ul,
.prose ol {
    margin-bottom: var(--s-16);
    padding-left: var(--s-24);
}

.prose ul {
    list-style: disc;
}

.prose ol {
    list-style: decimal;
}

.prose li {
    margin-bottom: var(--s-8);
}

.prose a {
    text-decoration: underline;
    text-underline-offset: 2px;
}
