/* =========================================================
   20-layout.css
   Structural layout only
   Containers, sections, header, nav layout, grids, wrappers
   ========================================================= */

/* =========================
   GLOBAL CONTAINERS
   ========================= */
.container {
    width: min(100% - 2rem, var(--container-base));
    margin-inline: auto;
}

.container-wide {
    width: min(100% - 2rem, var(--container-wide));
    margin-inline: auto;
}

.container-narrow {
    width: min(100% - 2rem, var(--container-narrow));
    margin-inline: auto;
}

.page-content {
    width: min(100% - 2rem, var(--content-max));
    margin-inline: auto;
}

/* =========================
   GENERIC SECTION SPACING
   ========================= */
section {
    padding-block: var(--section-space-y);
}

.section-tight {
    padding-block: var(--space-8);
}

.section-loose {
    padding-block: var(--space-12);
}

/* =========================
   CONTENT SECTION
   Matches original centered page behavior
   ========================= */
.content-section {
    padding: 25px 0;
    text-align: center;
}

/* =========================
   HEADER LAYOUT
   ========================= */
.site-header,
header {
    position: relative;
    padding-block: var(--header-padding-y);
    border-bottom: var(--border-width-base) solid var(--color-brand);
    text-align: center;
}

.site-header__inner {
    width: min(100% - 2rem, var(--container-base));
    margin-inline: auto;
}

.site-branding {
    display: grid;
    gap: var(--space-2);
    justify-items: center;
}

/* =========================
   NAVIGATION LAYOUT (LEFT ALIGNED TOP BAR)
   ========================= */
.site-nav {
    background-color: var(--color-surface-soft);
    border-bottom: 1px solid var(--color-border);
    padding: 10px 0;
}

.site-nav__inner {
    width: 100%;
    max-width: none;   /* full width */
    margin: 0;
    padding-left: 20px; /* left edge spacing */
}

.site-nav__list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;  /* <-- LEFT ALIGN */
    gap: 20px;
    margin: 0;
    padding: 0;
}

/* =========================
   FLOW HELPERS
   ========================= */
.stack > * + * {
    margin-top: var(--space-4);
}

.stack-lg > * + * {
    margin-top: var(--space-6);
}

.stack-xl > * + * {
    margin-top: var(--space-8);
}

.cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-md);
}

.cluster-center {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--gap-md);
}

/* =========================
   HERO LAYOUT
   Structure only
   ========================= */
.hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-xl);
}

.hero-content {
    flex: 1 1 420px;
    min-width: 280px;
}

.hero-image {
    flex: 0 0 var(--hero-image-size);
    width: var(--hero-image-size);
    height: var(--hero-image-size);
}

/* =========================
   GRID LAYOUTS
   ========================= */
.grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--gap-lg);
    margin: 30px 0;
}

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap-lg);
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--gap-lg);
}

.auto-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--gap-lg);
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 25px;
    margin: 40px 0;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    margin: 40px 0;
}

/* =========================
   BUTTON/FORM GROUP LAYOUTS
   Layout only
   ========================= */
.btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap-md);
    margin: 30px 0 20px;
}

.currency-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin: 20px 0 10px;
}

.waitlist-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    margin: 20px 0 0;
}

.waitlist-form > * {
    flex: 1 1 220px;
}


/* =========================
   FAQ / CONTENT BLOCK LAYOUT
   ========================= */
.faq {
    margin: 40px 0;
}

.faq-item {
    margin: 20px 0;
}

.story-invite {
    margin: 40px 0;
}

.narrative-block {
    margin: 30px 0 40px;
}

.other-countries-note {
    margin: 50px 0 30px;
}

/* =========================
   FOOTER LAYOUT
   ========================= */
.site-footer,
footer {
    margin-top: 40px;
    padding-block: 30px;
    text-align: center;
}

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width: 1024px) {
    .grid,
    .grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    section {
        padding-block: var(--section-space-y-sm);
    }

    .content-section {
        padding: 20px 0;
    }

    .site-header,
    header {
        padding-block: var(--header-padding-y-tight);
    }

    .site-nav__list,
    nav ul {
        gap: var(--space-3);
    }

    .hero {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .hero-content {
        min-width: 100%;
    }

    .hero-image {
        margin-inline: auto;
    }

    .grid,
    .grid-2,
    .grid-3,
    .pricing-grid {
        grid-template-columns: 1fr;
    }

    .btn-group,
    .currency-links {
        justify-content: center;
    }

    .waitlist-form {
        justify-content: center;
    }

    .who-am-i-content {
        padding: 20px 15px;
    }

    .two-column,
    .two-column.reverse {
        flex-direction: column;
        gap: 20px;
    }

    .two-column .text,
    .two-column .image-side {
        min-width: 100%;
    }
}

@media (max-width: 640px) {
    .container,
    .container-wide,
    .container-narrow,
    .page-content,
    .site-header__inner,
    .site-nav__inner,
    .who-am-i-content {
        width: min(100% - 1.25rem, 100%);
    }

    .site-nav__list,
    nav ul {
        flex-direction: column;
        justify-content: center;
    }

    .btn-group {
        flex-direction: column;
        align-items: stretch;
    }

    .currency-links {
        flex-direction: column;
        align-items: center;
    }
}