/* page.css — Complete. Do not modify. */

/* ============================================================
   PAGE LAYOUT
   ============================================================ */

.page-main {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: calc(var(--nav-height) + 3rem) var(--gutter) 4rem;
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

/* ---- Hero ---- */

.hero {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 40rem;
}

.hero-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    text-wrap: balance;
}

.hero-body {
    font-size: 1.125rem;
    color: var(--color-text-muted);
    text-wrap: balance;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

/* ---- Component Sections ---- */

.component-section {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.section-title {
    font-size: 1.25rem;
    color: var(--color-text-muted);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.8rem;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.75rem;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

/* ---- Card Grid ---- */

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}

/* ---- Footer ---- */

.site-footer {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 2rem var(--gutter);
    border-top: 1px solid var(--color-border);
    color: var(--color-text-muted);
    font-size: 0.875rem;
    text-align: center;
}
