/*
 * GENERATED by content/build-kit-css.py — do not hand-edit. Edit the script
 * and re-run it. See blocks/kit.php for how classes + custom properties work.
 */

:root {
    --gl-space-none: 0;
    --gl-space-xxs: 5px;
    --gl-space-xs: 10px;
    --gl-space-sm: 20px;
    --gl-space-md: 30px;
    --gl-space-lg: 50px;
    --gl-space-xl: 80px;
    --gl-space-xxl: 120px;
    --gl-space-section: 8%;
    --gl-text-xs: .8em;
    --gl-text-sm: 1em;
    --gl-text-md: 1.2em;
    --gl-text-lg: 1.5em;
    --gl-text-xl: 2em;
    --gl-text-xxl: 2.5em;
    --gl-text-hero: 3em;
    --gl-radius-none: 0;
    --gl-radius-sm: 4px;
    --gl-radius-md: 10px;
    --gl-radius-lg: 20px;
    --gl-radius-pill: 999px;
    --gl-shadow-none: none;
    --gl-shadow-sm: 0 2px 5px #0003;
    --gl-shadow-md: 0 10px 25px #1c1d5026;
    --gl-shadow-lg: 0 20px 45px #1c1d5040;
    --gl-width-narrow: 700px;
    --gl-width-medium: 1000px;
    --gl-width-wide: 1300px;
    --gl-width-wrap: 1600px;
    --gl-width-full: none;
    --gl-minheight-none: 0;
    --gl-minheight-sm: 300px;
    --gl-minheight-md: 50vh;
    --gl-minheight-lg: 75vh;
    --gl-minheight-screen: 100vh;
    --gl-iconsize-sm: 18px;
    --gl-iconsize-md: 24px;
    --gl-iconsize-lg: 32px;
    --gl-iconsize-xl: 48px;
    --gl-iconsize-xxl: 64px;
}

/* Responsive options: desktop, then tablet (<=991px), then mobile (<=767px). */
:root .gl-pt { padding-top: var(--gl-pt); }
:root .gl-pr { padding-right: var(--gl-pr); }
:root .gl-pb { padding-bottom: var(--gl-pb); }
:root .gl-pl { padding-left: var(--gl-pl); }
:root .gl-mt { margin-top: var(--gl-mt); }
:root .gl-mr { margin-right: var(--gl-mr); }
:root .gl-mb { margin-bottom: var(--gl-mb); }
:root .gl-ml { margin-left: var(--gl-ml); }
:root .gl-gx { column-gap: var(--gl-gx); }
:root .gl-gy { row-gap: var(--gl-gy); }
:root .gl-fs { font-size: var(--gl-fs); }
:root .gl-ta { text-align: var(--gl-ta); }
:root .gl-mw { max-width: var(--gl-mw); }
:root .gl-mh { min-height: var(--gl-mh); }
:root .gl-h { height: var(--gl-h); }
:root .gl-w { width: var(--gl-w); }
:root .gl-cols { grid-template-columns: var(--gl-cols); }
:root .gl-ai { align-items: var(--gl-ai); }
:root .gl-jc { justify-content: var(--gl-jc); }
:root .gl-dir { flex-direction: var(--gl-dir); }
:root .gl-isz { --gl-icon-size: var(--gl-isz); }

@media (max-width: 991px) {
    :root .gl-pt-t { padding-top: var(--gl-pt-t); }
    :root .gl-pr-t { padding-right: var(--gl-pr-t); }
    :root .gl-pb-t { padding-bottom: var(--gl-pb-t); }
    :root .gl-pl-t { padding-left: var(--gl-pl-t); }
    :root .gl-mt-t { margin-top: var(--gl-mt-t); }
    :root .gl-mr-t { margin-right: var(--gl-mr-t); }
    :root .gl-mb-t { margin-bottom: var(--gl-mb-t); }
    :root .gl-ml-t { margin-left: var(--gl-ml-t); }
    :root .gl-gx-t { column-gap: var(--gl-gx-t); }
    :root .gl-gy-t { row-gap: var(--gl-gy-t); }
    :root .gl-fs-t { font-size: var(--gl-fs-t); }
    :root .gl-ta-t { text-align: var(--gl-ta-t); }
    :root .gl-mw-t { max-width: var(--gl-mw-t); }
    :root .gl-mh-t { min-height: var(--gl-mh-t); }
    :root .gl-h-t { height: var(--gl-h-t); }
    :root .gl-w-t { width: var(--gl-w-t); }
    :root .gl-cols-t { grid-template-columns: var(--gl-cols-t); }
    :root .gl-ai-t { align-items: var(--gl-ai-t); }
    :root .gl-jc-t { justify-content: var(--gl-jc-t); }
    :root .gl-dir-t { flex-direction: var(--gl-dir-t); }
    :root .gl-isz-t { --gl-icon-size: var(--gl-isz-t); }
}

@media (max-width: 767px) {
    :root .gl-pt-m { padding-top: var(--gl-pt-m); }
    :root .gl-pr-m { padding-right: var(--gl-pr-m); }
    :root .gl-pb-m { padding-bottom: var(--gl-pb-m); }
    :root .gl-pl-m { padding-left: var(--gl-pl-m); }
    :root .gl-mt-m { margin-top: var(--gl-mt-m); }
    :root .gl-mr-m { margin-right: var(--gl-mr-m); }
    :root .gl-mb-m { margin-bottom: var(--gl-mb-m); }
    :root .gl-ml-m { margin-left: var(--gl-ml-m); }
    :root .gl-gx-m { column-gap: var(--gl-gx-m); }
    :root .gl-gy-m { row-gap: var(--gl-gy-m); }
    :root .gl-fs-m { font-size: var(--gl-fs-m); }
    :root .gl-ta-m { text-align: var(--gl-ta-m); }
    :root .gl-mw-m { max-width: var(--gl-mw-m); }
    :root .gl-mh-m { min-height: var(--gl-mh-m); }
    :root .gl-h-m { height: var(--gl-h-m); }
    :root .gl-w-m { width: var(--gl-w-m); }
    :root .gl-cols-m { grid-template-columns: var(--gl-cols-m); }
    :root .gl-ai-m { align-items: var(--gl-ai-m); }
    :root .gl-jc-m { justify-content: var(--gl-jc-m); }
    :root .gl-dir-m { flex-direction: var(--gl-dir-m); }
    :root .gl-isz-m { --gl-icon-size: var(--gl-isz-m); }
}

/* Colours: palette slug -> var(--gl-c-<slug>) (emitted inline from theme.json), or an admin custom value.
 *
 * --gl-text-color carries a container's text colour down to the type presets
 * (assets/type.css), which otherwise hard-code the design colours — so a dark
 * row with white text gets white headings too. An element with its OWN
 * background (a card) resets it, so a pale card on a navy row keeps dark text;
 * the .gl-c rule comes after the reset so an element with both keeps its colour. */
:root :is(.gl-bgc, .gl-bgi, [class*="gl-bgg-"]) { --gl-text-color: initial; }
:root .gl-c { color: var(--gl-c); --gl-text-color: var(--gl-c); }
:root .gl-bgc { background-color: var(--gl-bgc); }
:root .gl-bc { border-color: var(--gl-bc); }

/* Radius + shadow tokens (non-responsive modifier classes). */
:root .gl-radius-none { border-radius: var(--gl-radius-none); }
:root .gl-radius-sm { border-radius: var(--gl-radius-sm); }
:root .gl-radius-md { border-radius: var(--gl-radius-md); }
:root .gl-radius-lg { border-radius: var(--gl-radius-lg); }
:root .gl-radius-pill { border-radius: var(--gl-radius-pill); }
:root .gl-shadow-none { box-shadow: var(--gl-shadow-none); }
:root .gl-shadow-sm { box-shadow: var(--gl-shadow-sm); }
:root .gl-shadow-md { box-shadow: var(--gl-shadow-md); }
:root .gl-shadow-lg { box-shadow: var(--gl-shadow-lg); }

/* Backgrounds. */
:root .gl-bgg-brand { background: linear-gradient(180deg, var(--color-8), var(--color-3)); }
:root .gl-bgg-spectrum { background: linear-gradient(89deg, var(--color-5), var(--color-7) 39%, var(--color-8) 72%, var(--color-9)); }
:root .gl-bgg-navy-fade { background: linear-gradient(180deg, var(--color-3), var(--color-4)); }
:root .gl-bgg-pattern { background: url('../../images/background-pattern.jpg') 50% 0 / cover no-repeat; }
:root .gl-bgi { background-image: var(--gl-bgi); background-position: var(--gl-bgp, 50% 50%); background-size: cover; background-repeat: no-repeat; }
:root .gl-bgi-contain { background-size: contain; }
@media (min-width: 992px) { :root .gl-bgi-fixed { background-attachment: fixed; } }
:root .gl-ov { position: relative; isolation: isolate; }
:root .gl-ov::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gl-ov); opacity: var(--gl-ovo, .5); border-radius: inherit; pointer-events: none; }
:root .gl-ov-fade-left::before { background: linear-gradient(90deg, var(--gl-ov) 0%, var(--gl-ov) 30%, transparent 85%); }
:root .gl-ov-fade-bottom::before { background: linear-gradient(0deg, var(--gl-ov) 0%, var(--gl-ov) 25%, transparent 90%); }
@media (max-width: 767px) { :root .gl-ov-fade-left::before { background: var(--gl-ov); } }

/* Typography modifiers (non-responsive). */
:root .gl-fw-300 { font-weight: 300; }
:root .gl-fw-400 { font-weight: 400; }
:root .gl-fw-700 { font-weight: 700; }
:root .gl-fw-900 { font-weight: 900; }
:root .gl-tt-none { text-transform: none; }
:root .gl-tt-uppercase { text-transform: uppercase; }
:root .gl-tt-capitalize { text-transform: capitalize; }
:root .gl-ls-none { letter-spacing: 0; }
:root .gl-ls-wide { letter-spacing: 2px; }
:root .gl-ls-wider { letter-spacing: 3px; }

/* Inline icons (assets/icons.json). Size via --gl-icon-size, colour via currentColor. */
.gl-icon-svg { display: inline-block; flex: none; width: var(--gl-icon-size, 1em); height: var(--gl-icon-size, 1em); vertical-align: -0.125em; stroke-width: var(--gl-icon-stroke, 2); }

/* Entrance animations: hidden only once kit-view.js has marked the page (html.gl-js),
 * so content is never stranded invisible without JavaScript. */
@media (prefers-reduced-motion: no-preference) {
    .gl-js .gl-anim { transition: opacity .6s ease, transform .6s ease; }
    .gl-js .gl-anim-fade:not(.gl-in) { opacity: 0; transform: none; }
    .gl-js .gl-anim-fade-up:not(.gl-in) { opacity: 0; transform: translate3d(0, 30px, 0); }
    .gl-js .gl-anim-fade-down:not(.gl-in) { opacity: 0; transform: translate3d(0, -30px, 0); }
    .gl-js .gl-anim-fade-left:not(.gl-in) { opacity: 0; transform: translate3d(30px, 0, 0); }
    .gl-js .gl-anim-fade-right:not(.gl-in) { opacity: 0; transform: translate3d(-30px, 0, 0); }
    .gl-js .gl-anim-zoom:not(.gl-in) { opacity: 0; transform: scale(.92); }
    .gl-js .gl-delay-100 { transition-delay: 100ms; }
    .gl-js .gl-delay-200 { transition-delay: 200ms; }
    .gl-js .gl-delay-300 { transition-delay: 300ms; }
    .gl-js .gl-delay-400 { transition-delay: 400ms; }
    .gl-js .gl-delay-500 { transition-delay: 500ms; }
}
