/* ============================================================
   WFCSI — Layout System (Grid, Container, Sections)
   ============================================================ */

/* ── Container ───────────────────────────────────────────── */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-pad);
}

.container--narrow {
    max-width: 900px;
}

.container--wide {
    max-width: 1440px;
}

/* ── Grid System ─────────────────────────────────────────── */
.grid {
    display: grid;
    gap: var(--space-6);
}

.grid-2  { grid-template-columns: repeat(2, 1fr); }
.grid-3  { grid-template-columns: repeat(3, 1fr); }
.grid-4  { grid-template-columns: repeat(4, 1fr); }
.grid-auto-fill-sm  { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.grid-auto-fill-md  { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.grid-auto-fill-lg  { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); }

/* ── Flex Utilities ──────────────────────────────────────── */
.flex          { display: flex; }
.flex-col      { display: flex; flex-direction: column; }
.flex-center   { display: flex; align-items: center; justify-content: center; }
.flex-between  { display: flex; align-items: center; justify-content: space-between; }
.flex-wrap     { display: flex; flex-wrap: wrap; }
.flex-1        { flex: 1; }
.gap-2         { gap: var(--space-2); }
.gap-3         { gap: var(--space-3); }
.gap-4         { gap: var(--space-4); }
.gap-6         { gap: var(--space-6); }
.gap-8         { gap: var(--space-8); }

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

.topbar__separator {
    opacity: .4;
}

.navbar__drawer-cta {
    width: 100%;
    justify-content: center;
}

.newsletter__label {
    color: rgba(255, 255, 255, .9);
}

.newsletter__privacy {
    margin-top: var(--space-3);
    color: rgba(255, 255, 255, .6);
    font-size: var(--text-xs);
}

.footer__contact-title {
    color: var(--text-light);
    font-size: var(--text-sm);
}

.footer__link--compact {
    padding: 0;
}

.footer__legal {
    border-top: 1px solid rgba(255, 255, 255, .08);
}

/* ── Section Spacing ─────────────────────────────────────── */
.section {
    padding-block: var(--page-section-space);
}

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

.section--lg {
    padding-block: clamp(5rem, 8vw, 8rem);
}

.section > .container > :first-child {
    margin-top: 0;
}

.section > .container > :last-child {
    margin-bottom: 0;
}

main > .page-banner + .section,
main > .page-hero + .section {
    padding-top: var(--space-8);
}

main > .section:last-child {
    padding-bottom: var(--page-section-space-sm);
}

.site-newsletter {
    padding-block: var(--space-6) var(--page-section-space-sm);
}

.section--dark {
    background-color: var(--bg-dark);
    color: var(--text-light);
}

.section--navy {
    background-color: var(--bg-navy);
    color: var(--text-light);
}

.section--alt {
    background-color: var(--bg-section-alt);
}

.section--primary {
    background: var(--gradient-primary);
    color: var(--text-light);
}

/* ── Section Header ──────────────────────────────────────── */
.section-header {
    text-align: center;
    max-width: 720px;
    margin-inline: auto;
    margin-bottom: var(--space-8);
}

.section-header--left {
    text-align: left;
    margin-inline: 0;
}

.section-label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: var(--space-3);
}

.section-label::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: var(--gradient-primary);
    border-radius: var(--radius-full);
}

.section-title {
    font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl));
    font-weight: var(--font-extrabold);
    color: var(--text-primary);
    line-height: var(--leading-tight);
    margin-bottom: var(--space-4);
}

.section-title--light {
    color: var(--text-light);
}

.section-title .highlight {
    color: var(--color-primary);
    position: relative;
}

.section-desc {
    font-size: var(--text-lg);
    color: var(--text-secondary);
    line-height: var(--leading-relaxed);
}

.section-desc--light {
    color: rgba(255, 255, 255, 0.75);
}

/* ── Page Banner / Header / Breadcrumb (Bright Modern Light Aesthetic) ── */
.page-banner,
.page-hero {
    position: relative;
    background: linear-gradient(135deg, #f8fafc 0%, #fff7ed 55%, #f1f5f9 100%);
    padding-top: calc(var(--navbar-height) + 70px);
    padding-bottom: var(--space-12);
    border-bottom: 1px solid #e2e8f0;
    overflow: hidden;
}

.page-banner__bg,
.page-hero::before {
    position: absolute;
    inset: 0;
    opacity: 0.6;
    background: radial-gradient(circle at 85% 20%, rgba(232, 97, 10, 0.12) 0%, transparent 60%),
                radial-gradient(circle at 15% 80%, rgba(245, 166, 35, 0.08) 0%, transparent 50%);
    pointer-events: none;
}

.page-banner__content,
.page-hero__content {
    position: relative;
    z-index: 1;
    max-width: 860px;
}

.breadcrumbs,
.breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: #64748b;
    margin-bottom: var(--space-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-semibold);
}

.breadcrumbs a,
.breadcrumb a {
    color: var(--color-primary);
    transition: color var(--transition-fast);
    text-decoration: none;
}

.breadcrumbs a:hover,
.breadcrumb a:hover {
    color: var(--color-navy);
}

.breadcrumbs span,
.breadcrumb__current {
    color: #475569;
}

.page-banner__title,
.page-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(2.2rem, 4.5vw, 3.2rem);
    font-weight: var(--font-black);
    color: var(--color-navy);
    line-height: 1.15;
    margin-bottom: var(--space-3);
}

.page-banner__title .highlight,
.page-hero__title .highlight {
    color: var(--color-primary);
}

.page-banner__desc,
.page-hero__desc {
    font-size: var(--text-lg);
    color: #475569;
    line-height: var(--leading-relaxed);
    max-width: 720px;
}

/* ── Aspect Ratios ───────────────────────────────────────── */
.aspect-video  { aspect-ratio: 16 / 9; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-4-3    { aspect-ratio: 4 / 3; }
.aspect-3-2    { aspect-ratio: 3 / 2; }

/* ── Responsive Breakpoints ──────────────────────────────── */
@media (max-width: 1024px) {
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .grid-2,
    .grid-3,
    .grid-4 { grid-template-columns: 1fr; }

    .section-header { margin-bottom: var(--space-10); }
}
