/* ═══════════════════════════════════════════════
   Global Visa Way — Shared Responsive Layout System
   These classes are intentionally page-agnostic.
═══════════════════════════════════════════════ */

/* Existing container remains visually compatible while its side gutters
   become responsive on tablets and phones. */
.container {
    width: 100%;
    max-width: var(--container-default);
    margin-inline: auto;
    padding-inline: var(--page-gutter);
}

.container--narrow {
    max-width: var(--container-narrow);
}

.container--content {
    max-width: var(--container-content);
}

.container--wide {
    max-width: var(--container-wide);
}

/* Homepage and shared site chrome use outside gutters rather than reducing
   usable content width with internal padding. */
.container--home,
.container--shell {
    width: calc(100% - var(--layout-gutter) - var(--layout-gutter));
    max-width: none;
    padding-inline: 0;
}

.container--home {
    max-width: var(--container-home);
}

.container--shell {
    max-width: var(--container-shell);
}

.container--full {
    max-width: none;
}

/* Standard public-page shells for upcoming pages. */
.gvw-page {
    min-height: 60vh;
    background: var(--page-bg);
    color: var(--page-text);
}

.gvw-page-main {
    min-width: 0;
}

.gvw-page-hero {
    position: relative;
    padding-block: clamp(56px, 7vw, 104px);
}

.gvw-page-section {
    position: relative;
    padding-block: var(--section-space);
}

.gvw-page-section--compact {
    padding-block: var(--section-space-compact);
}

.gvw-section-head {
    max-width: 760px;
    margin-bottom: clamp(28px, 4vw, 52px);
}

.gvw-section-head--center {
    margin-inline: auto;
    text-align: center;
}

.gvw-content-grid,
.gvw-card-grid {
    display: grid;
    gap: var(--grid-gap);
    min-width: 0;
}

.gvw-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

.gvw-sidebar-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 340px);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
}

.gvw-prose {
    width: min(100%, 72ch);
    color: var(--text-body);
    line-height: 1.78;
}

.gvw-prose > * + * {
    margin-top: 1em;
}

.gvw-stack {
    display: flex;
    flex-direction: column;
    gap: var(--stack-gap, var(--space-6));
}

.gvw-cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cluster-gap, var(--space-4));
}

.gvw-card-rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(250px, 1fr);
    gap: var(--grid-gap);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
}

.gvw-card-rail::-webkit-scrollbar {
    display: none;
}

.gvw-card-rail > * {
    scroll-snap-align: start;
}

@media (max-width: 959px) {
    .gvw-sidebar-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 639px) {
    .gvw-page-hero {
        padding-block: 48px;
    }

    .gvw-page-section {
        padding-block: 56px;
    }

    .gvw-page-section--compact {
        padding-block: 40px;
    }

    .gvw-card-rail {
        grid-auto-columns: minmax(82vw, 300px);
    }
}
