:root {
    --welsi-deep: #003d20;
    --welsi-ink: #142c14;
    --welsi-fern: #537b2f;
    --welsi-accent: #e4eb9c;
    --welsi-paper: #f4f7f3;
    --welsi-line: #d9e3d8;
    --welsi-muted: #53665a;
    --welsi-display: "Newsreader", Georgia, serif;
    --welsi-body: "IBM Plex Sans", "Segoe UI", sans-serif;
    --brand-main-deep: var(--welsi-deep);
    --brand-dark: var(--welsi-ink);
    --brand-calpoly: #2d5128;
    --brand-fern: var(--welsi-fern);
    --brand-asparagus: #8da750;
    --brand-mindaro: var(--welsi-accent);
    --brand-mist: #94ada1;
    --text-light: #fff;
    --text-muted-light: #dbe7de;
    --bs-body-font-family: var(--welsi-body);
    --bs-body-color: var(--welsi-ink);
    --bs-body-bg: #fff;
    --bs-primary: #003d20;
    --bs-primary-rgb: 0, 61, 32;
    --bs-link-color: #003d20;
    --bs-link-hover-color: #537b2f;
    --bs-border-color: var(--welsi-line);
}

html, body {
    min-height: 100%;
    margin: 0;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Let main content fill the screen, but remove default Bootstrap gaps */
.main-content {
    flex: 1 0 auto !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Remove Bootstrap margin-top applied in layout */
.container.main-content {
    margin-top: 0 !important;
}

/* Footer sticks to bottom */
footer {
    flex-shrink: 0 !important;
    margin-top: 0 !important; /* remove top gap before footer */
}

html { scroll-padding-top: 9rem; }
.main-content { min-width: 0; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 1100; padding: .8rem 1.2rem; background: #fff; color: var(--welsi-deep); border: 2px solid var(--welsi-deep); border-radius: 4px; }
.skip-link:focus { top: .7rem; }
.welsi-eyebrow { margin-bottom: 1rem; font: 600 .73rem/1.5 var(--welsi-body); letter-spacing: .14em; text-transform: uppercase; color: var(--welsi-fern); }
.welsi-section-heading { font: 500 clamp(2rem, 4vw, 3.35rem)/1.08 var(--welsi-display); letter-spacing: -.035em; color: var(--welsi-deep); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
