@font-face {
    font-family: 'GTPlanar-Regular';
    src: url('/assets/fonts/GTPlanar-Regular.woff2') format('woff2'),
        url('/assets/fonts/GTPlanar-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GTPlanar-Italic15Regular';
    src: url('/assets/fonts/GTPlanar-Italic15Regular.woff2') format('woff2'),
        url('/assets/fonts/GTPlanar-Italic15Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GTPlanar-Medium';
    src: url('/assets/fonts/GTPlanar-Medium.woff2') format('woff2'),
        url('/assets/fonts/GTPlanar-Medium.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
:root {
  /* Base margins */
  --margin: 1.0rem;
  --margin-outer: 1.5rem;
  --max-width: 1600px;
  --max-text-width: 800px;
  
  /* Border Radius */
  --radius: 5px;
  --radius-small: 3px;
  --radius-large: 8px;

  /* Button spacing */
  --button-spacing: 0.2rem;  /* Space between buttons in nav/filters */
  
  /* Grid spacing */

  --grid-gap: 1.5rem;  /* Space between lay-out grid items */
  --grid-gap-tight: 0.5rem;  /* Space between grid items, used in cards */
  --grid-gap-layout: var(--grid-gap);  /* Space between lay-out grid items */
  --grid-gap-cards: var(--grid-gap-tight);  /* Space between cards */

  /* Card inner padding */
  --card-padding: 1.5rem;  /* Space between cards */

  /* Section spacing */
  /* --section-spacing-small: var(--margin-outer); */
  --section-spacing:  var(--margin-outer);
  --section-spacing-large: calc(var(--margin-outer) * 2);
}

  @media (min-width: 768px) {:root {
    --margin-outer: 3.0rem;
    --grid-gap: 3.0rem;
    --card-padding: 1.5rem
}
  }

/*
 * GT Planar Typography System
 * 
 * OpenType Stylistic Sets Enabled:
 * ─────────────────────────────────────────────────────────────────────────────
 * ss01: Single story 'a'          → Geometric single-bowl lowercase 'a'
 * ss02: Single story 'g'          → Simplified single-story lowercase 'g'
 * ss03: Curved Shapes             → Curved alternates for select characters
 * ss04: Flat shapes               → Flat, geometric alternates
 * ss05: Curved Numbers            → Curved variants for all numerals (0-9)
 * ss06: Flat C                    → Flat, geometric uppercase 'C'
 * ss07: Flat G                    → Flat, geometric uppercase 'G'
 * ss08: Flat S                    → Flat, geometric uppercase 'S'
 * ss09: Flat a                    → Flat, geometric lowercase 'a'
 * ss10: Flat c                    → Flat, geometric lowercase 'c'
 * ss11: Flat e                    → Flat, geometric lowercase 'e'
 * ss12: Flat single story g       → Flat geometry + single-story 'g'
 * ss13: Flat s                    → Flat, geometric lowercase 's'
 * ss14: Curved question mark      → Curved variant for '?' punctuation
 * ─────────────────────────────────────────────────────────────────────────────
 * 
 * These stylistic sets create a cohesive, geometric aesthetic that maintains
 * readability while providing a distinctive visual character. The combination
 * of flat shapes and curved elements creates visual interest and hierarchy.
 */

:root {
    --sans-serif-fallback: "Helvetica Neue", Helvetica, Arial, sans-serif;
    --sans-serif: 'GTPlanar-Regular', var(--sans-serif-fallback);
    --main-font: var(--sans-serif);
    --title-font: 'GTPlanar-Regular', var(--sans-serif-fallback);
    --small-font: 'GTPlanar-Regular', var(--sans-serif-fallback);
    --italic-font: 'GTPlanar-Italic15Regular', var(--sans-serif-fallback);

    /* Mobile sizes */
    --font-size--xs: 1.2rem;
    --line-height--xs: 1.25;
    --letter-spacing--xs: 0;

    --font-size--s: 1.4rem;
    --line-height--s: 1.25;
    --letter-spacing--s: 0.0125em;

    --font-size--m: 1.6rem;
    --line-height--m: 1.4;
    --letter-spacing--m: 0em;

    --font-size--l: 2.2rem;
    --line-height--l: 1.25;
    --letter-spacing--l: -0.02em;

    --font-size--xl: 3.2rem;
    --line-height--xl: 1.125;
    --letter-spacing--xl: -0.03em;

    --font-size--2xl: 4.5rem;
    --line-height--2xl: 1.0;
    --letter-spacing--2xl: -0.035em;

    --font-size--3xl: 5.6rem;
    --line-height--3xl: 0.95;
    --letter-spacing--3xl: -0.04em;
}

/* Desktop sizes (1024px+) */

@media (min-width: 1024px) {

:root {
        --font-size--xs: 1.3rem;
        --line-height--xs: 1.25;

        --font-size--s: 1.6rem;
        --line-height--s: 1.25;

        --font-size--m: 2.0rem;
        --line-height--m: 1.333;

        --font-size--l: 2.9rem;
        --line-height--l: 1.235;

        --font-size--xl: 4.0rem;
        --line-height--xl: 1.125;

        --font-size--2xl: 6.4rem;
        --line-height--2xl: 1.0;

        --font-size--3xl: 11.0rem;
        --line-height--3xl: 0.873
}
    }

/* Color */
:root {
    /* Brussels By Night Colors */
    --color-background: rgb(18, 18, 18);
    --color-card-background: rgb(40, 40, 40);
    --color-card-background-hover: rgb(50, 50, 50);
    --color-overlay-background: rgb(40, 40, 40);
    --color-curtain-background: rgba(18, 18, 18, 0.6);
    
    --color-brand: rgb(0, 68, 255);
    --color-brand-hover: rgb(30, 90, 255);
    
    --color-text: rgb(235, 235, 235);
    --color-text-muted: rgba(235, 235, 235, 0.4);
    
    --color-button-background: rgb(40, 40, 40);
    --color-button-background-hover: rgb(50, 50, 50);
    --color-button-background-active: var(--color-brand);
    --color-button-text: var(--color-text);
    --color-button-text-active: var(--color-text);
    
    /* Glass/Blur — reusable */
    --glass-bg: rgba(68, 68, 68, 0.3);
    --glass-bg-hover: rgba(78, 78, 78, 0.4);
    --glass-blur: 80px;

    /* Button glass (aliases) */
    --color-button-glass: var(--glass-bg);
    --color-button-glass-hover: var(--glass-bg-hover);
    --blur-button: var(--glass-blur);
    
    --color-border: rgba(252, 252, 252, 0.12);
    --color-border-hover: rgba(252, 252, 252, 0.24);
    
    --color-selection: var(--color-brand);
    
    --opacity-text: 0.4;
    --opacity-hover: 0.8;
}

/* Light mode (if needed) */
body[data-inverted="false"] {
    --color-background: rgb(245, 245, 245);
    --color-text: rgb(18, 18, 18);
    --color-card-background: rgb(255, 255, 255);
}

:root {
  --anim-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --anim-ease-out: cubic-bezier(0, 0, 0.2, 1);
  --anim-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --anim-ease-in-out: cubic-bezier(0.4, 0, 0.6, 1);
  
  --anim-speed-fast: 0.2s;
  --anim-speed: 0.4s;
  --anim-speed-slow: 0.6s;

  /* Glow pulse — reusable inner glow values */
  --glow-color: rgba(0, 68, 255, 0.33);
  --glow-color-strong: rgba(0, 68, 255, 0.66);
  --glow-blur: 12px;
  --glow-blur-strong: 24px;
  --glow-spread: 4px;
  --glow-spread-strong: 8px;
  --glow-speed: 4s;
}

/* Shared breathing glow keyframes */
@keyframes glow-pulse {
  0%, 100% {
    box-shadow: inset 0 0 12px 4px rgba(0, 68, 255, 0.33);
    box-shadow: inset 0 0 var(--glow-blur) var(--glow-spread) var(--glow-color);
  }
  50% {
    box-shadow: inset 0 0 24px 8px rgba(0, 68, 255, 0.66);
    box-shadow: inset 0 0 var(--glow-blur-strong) var(--glow-spread-strong) var(--glow-color-strong);
  }
}

/* Utility: apply glow on hover to any element */
.u-glow-hover:hover {
  animation: glow-pulse 4s ease-in-out infinite;
  animation: glow-pulse var(--glow-speed) ease-in-out infinite;
}

:root {
  --z-base: 1;
  --z-header: 100;
  --z-nav: 90;
  --z-overlay: 200;
  --z-overlay-button: 201;
  --z-modal: 300;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline;
  -webkit-text-decoration: underline dotted currentColor;
          text-decoration: underline dotted currentColor; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}


/**
 * Custom
 *  Resets margins and paddings for headers, ul, li, ol and p
 */
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
p {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style-type: none;
}
/* Base styles */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  background-color: var(--color-background);
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

body {
  background-color: var(--color-background);
  min-height: 100vh;
  overflow-x: hidden;
}

main {
  position: relative;
  z-index: var(--z-base);
}

/* Selection */
::-moz-selection {
  background-color: var(--color-selection);
  color: var(--color-text);
}
::selection {
  background-color: var(--color-selection);
  color: var(--color-text);
}

::-moz-selection {
  background-color: var(--color-selection);
  color: var(--color-text);
}

/* Focus styles */
.focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 2px;
}
:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 2px;
}

button.focus-visible,
a.focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 4px;
}

button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 4px;
}

/* Remove default button styles */
button {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

/* Image defaults */
img,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* List defaults */
ul,
ol {
  list-style: none;
}

/* Typographical base selectors. Define base styles on single element selectors here. */

* {
  -webkit-tap-highlight-color: transparent;
}

html {
  color: var(--color-text);
  font-family: var(--main-font);
  font-size: 62.5%;
}

body {
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	
	/*
	 * OpenType Font Feature Settings
	 * Enable all available stylistic sets for GT Planar
	 */
	font-feature-settings: 
		'kern' 1,  
		'ss01' 1,  
		'ss02' 1,  
		'ss03' 1,  
		'ss04' 1,  
		'ss05' 1,  
		'ss14' 1, "liga", "clig";  /* Stylistic Set 14: Curved question mark - Uses curved variant for '?' character */
	
	font-variant-ligatures: common-ligatures;
	text-rendering: optimizeLegibility;

	font-optical-sizing: auto;
	font-family: var(--main-font);
	font-size: var(--font-size--m);
	line-height: var(--line-height--m);
	letter-spacing: var(--letter-spacing--m);
	font-weight: 400;

	color: var(--color-text);
}

/* Typography scale classes */

.t-xs,
[data-fontsize="xs"] {
  font-family: var(--small-font);
  font-size: var(--font-size--xs);
  line-height: var(--line-height--xs);
  letter-spacing: var(--letter-spacing--xs);
}

.t-s,
[data-fontsize="s"] {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  line-height: var(--line-height--s);
  letter-spacing: var(--letter-spacing--s);
}

.t-m,
.t-text,
[data-fontsize="m"],
[data-fontsize="default"] {
  font-family: var(--main-font);
  font-size: var(--font-size--m);
  line-height: var(--line-height--m);
  letter-spacing: var(--letter-spacing--m);
}

.t-l,
[data-fontsize="l"] {
  font-family: var(--title-font);
  font-size: var(--font-size--l);
  line-height: var(--line-height--l);
  letter-spacing: var(--letter-spacing--l);
}

.t-xl,
[data-fontsize="xl"] {
  font-family: var(--title-font);
  font-size: var(--font-size--xl);
  line-height: var(--line-height--xl);
  letter-spacing: var(--letter-spacing--xl);
}

.t-2xl,
[data-fontsize="2xl"] {
  font-family: var(--title-font);
  font-size: var(--font-size--2xl);
  line-height: var(--line-height--2xl);
  letter-spacing: var(--letter-spacing--2xl);
}

.t-3xl,
[data-fontsize="3xl"] {
  font-family: var(--title-font);
  font-size: var(--font-size--3xl);
  line-height: var(--line-height--3xl);
  letter-spacing: var(--letter-spacing--3xl);
}

.t-num {
	font-feature-settings: "tnum" 1, "tnum";
	font-variant-numeric: tabular-nums;
}

.t-num--spaced {
	letter-spacing: -.025em;
}

/* Link styles */

a {
	color: inherit;
	text-decoration: none;
  	transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.t-link {
	cursor: pointer;
	color: inherit;
	opacity: 1;
  	transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.t-link:hover,
	.t-link:focus {
		opacity: var(--opacity-hover);
	}

.t-faded {
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
  opacity: var(--opacity-text);
}

.t-faded a:hover,
.t-faded a:focus {
	opacity: 1;
}

a.t-faded:hover,
	a.t-faded:focus {
		opacity: 1;
	}

p a {
  	color: inherit;
	text-decoration: underline;
  	transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

p a:hover,
	p a:focus {
		opacity: var(--opacity-hover);
	}

/* Rich text content */

.t-text,
.t-rich-text {
  max-width: var(--max-text-width);
  --content-block-space: calc(var(--line-height--m) * 1em);
}

.t-text p,
.t-rich-text p {
	margin-bottom: calc(var(--line-height--m) * 1em);
}

.t-text p:last-child, .t-rich-text p:last-child {
		margin-bottom: 0;
	}

.t-text ul,
.t-text ol,
.t-rich-text ul,
.t-rich-text ol {
	margin-bottom: calc(var(--line-height--m) * 1em);
	padding-left: 1.25em;
}

.t-text ul,
.t-rich-text ul {
	list-style: disc;
}

.t-text ol,
.t-rich-text ol {
	list-style: decimal;
}

.t-text li + li,
.t-rich-text li + li {
	margin-top: 0.35em;
}

.t-text .c-block-split,
.t-text .c-block-divider,
.t-text .c-block-button,
.t-rich-text .c-block-split,
.t-rich-text .c-block-divider,
.t-rich-text .c-block-button {
  margin-bottom: var(--content-block-space);
}

.t-text > figure,
.t-rich-text > figure {
  margin-bottom: var(--content-block-space);
}

.t-text > :last-child,
.t-rich-text > :last-child {
  margin-bottom: 0;
}

.t-text h1,
.t-text h2,
.t-text h3 {
	font-size: var(--font-size--l);
	line-height: var(--line-height--l);
	letter-spacing: var(--letter-spacing--l);
	margin-top: calc(var(--line-height--l) * 1em);
	margin-bottom: calc(var(--line-height--l) * 1em);
}

.t-text h1:first-child, .t-text h2:first-child, .t-text h3:first-child {
		margin-top: 0;
	}

.t-text a:not(.c-btn) {	
	text-decoration: underline;
}

.t-text a:not(.c-btn):hover,
	.t-text a:not(.c-btn):focus {
		opacity: var(--opacity-hover);
	}

.c-block-button {
	text-align: center;
}

blockquote {
	margin: var(--margin-l) 0;
	padding-left: var(--margin-m);
	border-left: 2px solid var(--color-border);
	font-size: var(--font-size--l);
  	line-height: var(--line-height--l);
  	letter-spacing: var(--letter-spacing--l);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: normal;
	font-size: inherit;
}

b,
em,
strong {
	color: var(--color-brand);
	font-weight: normal;
	font-style: normal;
}

/* Type utilities */

.t-dont-wrap {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.t-center {
  text-align: center !important;
}

.t-right {
  text-align: right !important;
}

.t-uppercase {
	text-transform: uppercase !important;
}

.t-default {
	text-transform: none !important;
}

.t-tight {
  margin: 0 !important;
}

/* Media
Base selectors for images, video, audio... */

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

/* purgecss start ignore */
img,
video {
  max-width: 100%;
  height: auto;
}

video {
  width: 100%;
  overflow: visible;
}

figure {
  margin: 0;
  padding: 0;
  width: 100%;
  height: auto;
}

figure figcaption {
  margin-top: 0.5em;
  /* margin-bottom: var(--margin); */
  width: 100%;
  display: block;
  text-align: left;
  /* opacity: var(--opacity-text); */
  font-size: var(--font-size--xs);
  line-height: var(--line-height--xs);
}

img[data-sizes="auto"] {
  display: block;
  width: 100%;
}

img.lazyload,
img.lazyloading,
iframe.lazyload,
iframe.lazyloading,
video.lazyload,
video.lazyloading {
  opacity: 0;
}

img.lazyloaded,
video.lazyloaded,
iframe.lazyloaded {
  opacity: 1;
  transition: opacity var(--anim-speed) cubic-bezier(.215,.61,.355,1) 0.15s, transform var(--anim-speed) cubic-bezier(.215,.61,.355,1) 0.35s;
}

.lazyscale {
  transform: scale(1.05);
  transform-origin: center center;
}

.lazyscale.lazyloaded {
  transform: scale(1);
}

body:not(.is-touch) .has-hoverstate-opacity {
    transition: opacity var(--anim-speed-fade) var(--anim-ease);
  }

body:not(.is-touch) .has-hoverstate-opacity:hover {
      opacity: 0.6;
    }

body:not(.is-touch) .has-hoverstate-grayscale {
    transition: all var(--anim-speed-fade) var(--anim-ease);
  }

body:not(.is-touch) .has-hoverstate-grayscale:hover {
      filter: gray;
      -webkit-filter: grayscale(1);
    }

body:not(.is-touch) .has-hoverstate-scale img,
    body:not(.is-touch) .has-hoverstate-scale video,
    body:not(.is-touch) .has-hoverstate-scale embed,
    body:not(.is-touch) .has-hoverstate-scale iframe {
      transition: all var(--anim-speed) var(--anim-ease);
      transform: scale(1);
    }

body:not(.is-touch) .has-hoverstate-scale:hover img,
      body:not(.is-touch) .has-hoverstate-scale:hover video,
      body:not(.is-touch) .has-hoverstate-scale:hover embed,
      body:not(.is-touch) .has-hoverstate-scale:hover iframe {
        transform: scale(1.02);
      }

body:not(.is-touch) .has-hoverstate-gallery {
      cursor: pointer;
  }

.m-image-blend-background > img {
    mix-blend-mode: multiply;
}

.m-hoverstate-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity var(--anim-speed-fade) var(--anim-ease);
}

.m-hoverstate-image > img {
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
         object-fit: cover;
      font-family: "object-fit: cover";
  }

body:not(.is-touch) .has-hoverstate-image:hover .m-hoverstate-image {
      opacity: 1;
    }

.m-image-container,
.m-video-container {
  position: relative;
  overflow: hidden;
}

.m-embed-video-container {
  position: relative;
  padding-bottom: 56.25%;
}

/* Container for soundcloud embeds */
.m-embed-container {
  position: relative;
  width: 100%;
}

.m-embed-container iframe {
  position: relative;
  width: 100%;
  height: 100%;
}

.m-embed-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

}

.m-embed-video-container {
  position: relative;
  padding-bottom: 56.25%;
}

.m-embed-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


.m-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 1;
  transition: opacity var(--anim-speed) var(--anim-ease);
  -o-object-fit: cover;
     object-fit: cover;
}

/* Ensure actual image is above placeholder - only when placeholder exists */
.m-image-container[\:has\(.m-placeholder\)] .o-image,
.m-image-container[\:has\(.m-placeholder\)] .o-video {
  position: relative;
  z-index: 2;
}
.m-image-container:has(.m-placeholder) .o-image,
.m-image-container:has(.m-placeholder) .o-video {
  position: relative;
  z-index: 2;
}

/* Hide placeholder when image is loaded - using :has() for modern browsers */
.m-image-container[\:has\(.lazyloaded\)] .m-placeholder {
  opacity: 0;
  pointer-events: none;
}
.m-image-container:has(.lazyloaded) .m-placeholder {
  opacity: 0;
  pointer-events: none;
}


.m-image-container[data-fit="contain"] {
    -o-object-fit: contain;
       object-fit: contain;
    width: 100%;
    height: 100%;
    -o-object-position: center;
       object-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.m-image-container[data-fit="contain"] > img,
.m-image-container[data-fit="contain"] > video,
.m-image-container[data-fit="contain"] > iframe {
    width: 100%;
    height: 100%;
    max-width: 100%;
    padding: calc(var(--margin)*6);
}

@media(min-width: 1024px) {

.m-image-container[data-fit="contain"] > img,
.m-image-container[data-fit="contain"] > video,
.m-image-container[data-fit="contain"] > iframe {
      max-width: 75%
}
    }

[data-crop] {
  position: relative;
  overflow: hidden;
}

[data-crop] > img,
[data-crop] > video,
[data-crop] > iframe,
[data-crop] > .m-placeholder {
  width: 100%;
  height: 100%;

  -o-object-fit: cover;

     object-fit: cover;
  font-family: "object-fit: cover";
}

[data-ratio="auto"] {
  aspect-ratio: auto;
}

[data-ratio="2/3"],
[data-ratio="portrait"] {
  aspect-ratio: 2 / 3;
}

[data-ratio="3/2"],
[data-ratio="landscape"] {
  aspect-ratio: 3 / 2;
}

[data-ratio="3/4"] {
  aspect-ratio: 3 / 4;
}

[data-ratio="4/3"] {
  aspect-ratio: 4 / 3;
}

[data-ratio="1/1"],
[data-ratio="square"] {
  aspect-ratio: 1 / 1;
}

[data-ratio="16/9"] {
  aspect-ratio: 16 / 9;
}

/* Ensure images fill containers with aspect ratios */
[data-ratio]:not([data-ratio="auto"]) > img,
[data-ratio]:not([data-ratio="auto"]) > video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: "object-fit: cover";
}

/* Use CSS aspect-ratio property for custom aspect ratios */
[style*="--aspect-ratio"] {
  aspect-ratio: var(--aspect-ratio);
}

[style*="--aspect-ratio"] > img,
[style*="--aspect-ratio"] > video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: "object-fit: cover";
}


/* purgecss end ignore */
/* Container */

.g-container {
  width: 100%;
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--margin-outer);
  padding-right: var(--margin-outer);
}

.g-container--narrow {
  max-width: 1200px;
}

.g-container--wide {
  max-width: 1800px;
}

/* Grid utilities */

.g-grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.g-grid--2 {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 768px) {

.g-grid--3 {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 1024px) {

.g-grid--3 {
    grid-template-columns: repeat(3, 1fr)
}
  }

@media (min-width: 768px) {

.g-grid--4 {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 1024px) {

.g-grid--4 {
    grid-template-columns: repeat(4, 1fr)
}
  }

.c-site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-header);
  padding: calc(var(--margin) * 2) 0;
  pointer-events: none;
  transition: background-color var(--anim-speed) var(--anim-ease);
}

  @media (min-width: 1024px) {.c-site-header {
    padding: calc(var(--margin) * 2) 0
}
  }


.c-site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--margin) * 2);
}

.c-site-header a,
.c-site-header nav,
.c-site-header button {
  pointer-events: auto;
}

/* Logo link wrapper */
.c-site-logo-link {
  text-decoration: none;
  color: inherit;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}
.c-site-logo-link:hover {
    color: var(--color-brand);
    opacity: 1;
  }

/* Logo text + glyphs */
.c-site-logo {
  font-size: var(--font-size--l);
  line-height: var(--line-height--l);
  letter-spacing: var(--letter-spacing--l);

  display: inline-flex;
  align-items: center;
  gap: 0.125em;
}

.c-site-logo--header {
  font-size: var(--font-size--l);
  line-height: var(--line-height--l);
  letter-spacing: var(--letter-spacing--l);
}

.c-site-logo--hero,
.c-site-logo--footer {
  font-size: var(--font-size--3xl);
  line-height: var(--line-height--3xl);
  letter-spacing: var(--letter-spacing--3xl);
}

/* Glyph group between words */
.c-site-logo__glyphs {
  display: inline-flex;
  align-items: center;
  gap: 0.15em;
  overflow: hidden;
  transition: width 350ms var(--anim-ease);
}

.c-site-logo__glyphs .c-site-logo__glyph {
  opacity: 1;
  transition: opacity 250ms ease;
}

.c-site-logo__glyphs.is-fading .c-site-logo__glyph {
  opacity: 0;
}

/* Star glyph */
.c-site-logo__glyph {
  display: inline-block;
  vertical-align: middle;
  margin-top: 0.1em;
  width: 0.7em;
  height: 0.7em;
  flex-shrink: 0;
}

/* Show full on desktop, mini on mobile */
.c-site-logo--mini {
  display: none;
}

@media (max-width: 1023px) {
  .c-site-logo--full {
    display: none;
  }

  .c-site-logo--mini {
    display: inline-flex;
  }
}

/* Navigation */
.c-site-nav {
  display: none;
  margin-left: auto;
}
@media (min-width: 1024px) {
.c-site-nav {
    display: block
}
  }

.c-site-nav__list {
  display: flex;
  align-items: center;
  gap: var(--button-spacing);
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-site-nav__list a {
  text-decoration: none;
  white-space: nowrap;
}

.c-site-nav__list a[aria-current="page"] {
    background-color: var(--color-brand);
  }

.c-site-nav__list a[aria-current="page"]:hover,
    .c-site-nav__list a[aria-current="page"]:focus {
      background-color: var(--color-brand-hover);
    }

/* Join Button */
.c-site-header__join {
  display: inline-flex;
  position: relative;
  overflow: hidden;
  margin-left: auto;
}
@media (min-width: 1024px) {
.c-site-header__join {
    margin-left: 0
}
  }

/* Default label text */
.c-btn__label {
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

/* Marquee container — overlays the button, hidden by default */
.c-btn__marquee {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
  mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

/* Scrolling track — two identical sets, shifts -50% for seamless loop */
.c-btn__marquee-track {
  display: inline-flex;
  white-space: nowrap;
  will-change: transform;
  animation: btn-marquee 18s linear infinite;
  animation-play-state: paused;
}

/* Hover: swap label for marquee */
.c-site-header__join:hover .c-btn__label {
  opacity: 0;
}

.c-site-header__join:hover .c-btn__marquee {
  opacity: 1;
}

.c-site-header__join:hover .c-btn__marquee-track {
  animation-play-state: running;
}

@keyframes btn-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Language Switcher */
.c-lang-switch {
  display: none;
  align-items: center;
  gap: calc(var(--margin) * 0.5);
}
@media (min-width: 1024px) {
.c-lang-switch {
    display: flex
}
  }

.c-lang-switch__link {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  text-decoration: none;
  opacity: var(--opacity-text);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-lang-switch__link:hover {
    opacity: 1;
  }

.c-lang-switch__link.is-active {
    opacity: 1;
  }

/* Mobile Menu Toggle */
.c-nav-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  order: 1;
}
@media (min-width: 1024px) {
.c-nav-toggle {
    display: none
}
  }

.c-nav-toggle__icon {
  position: relative;
  width: 24px;
  height: 2px;
  background-color: var(--color-text);
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-nav-toggle__icon::before,
  .c-nav-toggle__icon::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-text);
    transition: transform var(--anim-speed) var(--anim-ease);
  }

.c-nav-toggle__icon::before {
    top: -8px;
  }

.c-nav-toggle__icon::after {
    bottom: -8px;
  }

.c-nav-toggle[aria-expanded="true"] .c-nav-toggle__icon {
  background-color: transparent;
}

.c-nav-toggle[aria-expanded="true"] .c-nav-toggle__icon::before {
    transform: translateY(8px) rotate(45deg);
  }

.c-nav-toggle[aria-expanded="true"] .c-nav-toggle__icon::after {
    transform: translateY(-8px) rotate(-45deg);
  }

/* Mobile Navigation Overlay */
.c-nav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: calc(var(--z-header) - 1);
  background-color: var(--color-background);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: calc(var(--margin) * 4);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--anim-speed) var(--anim-ease);
}
.c-nav-overlay[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
  }
@media (min-width: 1024px) {
.c-nav-overlay {
    display: none
}
  }

.c-nav-overlay__nav {
  margin-bottom: calc(var(--margin) * 6);
}

.c-nav-overlay__list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 1.5);
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}

.c-nav-overlay__list a {
  font-size: var(--font-size--l);
  text-decoration: none;
  min-width: 200px;
  text-align: center;
}

.c-nav-overlay__list a[aria-current="page"] {
    background-color: var(--color-brand);
  }

.c-nav-overlay__list a[aria-current="page"]:hover,
    .c-nav-overlay__list a[aria-current="page"]:focus {
      background-color: var(--color-brand-hover);
    }

.c-nav-overlay__lang {
  display: flex;
  gap: calc(var(--margin) * 2);
}

.c-nav-overlay__lang-link {
  font-size: var(--font-size--m);
  text-transform: uppercase;
  text-decoration: none;
  opacity: var(--opacity-text);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-nav-overlay__lang-link:hover {
    opacity: 1;
  }

.c-nav-overlay__lang-link.is-active {
    opacity: 1;
    color: var(--color-brand);
  }

/* Main content area */

.c-site-main {
  min-height: 100vh;
}

body.site-page-home .c-site-main {
  padding-top: 0;
  padding-bottom: 0;
  min-height: auto;
}
.c-site-footer {
  --footer-reveal-height: 350px;
  --footer-bg-dark-opacity: 1;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  margin-top: 0;
  padding: var(--margin-outer) 0;
  height: var(--footer-reveal-height);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: var(--color-brand);
  color: var(--color-text);
  overflow-x: hidden;
}


  @media (min-width: 768px) {.c-site-footer {
    --footer-reveal-height: 400px
}
  }


  @media (min-width: 1024px) {.c-site-footer {
    --footer-reveal-height: 450px
}
  }

.c-site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgb(0, 16, 84);
  opacity: var(--footer-bg-dark-opacity);
  transition: opacity 120ms linear;
  pointer-events: none;
  z-index: 0;
}

.c-site-footer__inner,
.c-site-footer__marquee {
  position: relative;
  z-index: 1;
}


.c-site-footer__inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  align-items: start;
  padding-bottom: calc(var(--margin) * 5);
}


@media (min-width: 768px) {


.c-site-footer__inner {
    grid-template-columns: repeat(4, 1fr)
}
  }


@media (min-width: 1024px) {


.c-site-footer__inner {
    grid-template-columns: repeat(6, 1fr)
}
  }

.c-site-footer__col {
  display: flex;
  flex-direction: column;
}

@media (min-width: 768px) {

.c-site-footer__col {
    grid-column: span 1
}
  }

@media (min-width: 1024px) {

.c-site-footer__col {
    grid-column: span 3
}
  }

/* First two columns span 2 each, last two span 1 each */
@media (min-width: 768px) {
.c-site-footer__col:nth-child(1),
.c-site-footer__col:nth-child(2) {
    grid-column: span 1
}
  }
@media (min-width: 1024px) {
.c-site-footer__col:nth-child(1),
.c-site-footer__col:nth-child(2) {
    grid-column: span 2
}
  }

@media (min-width: 768px) {

.c-site-footer__col:nth-child(3),
.c-site-footer__col:nth-child(4) {
    grid-column: span 1
}
  }

@media (min-width: 1024px) {

.c-site-footer__col:nth-child(3),
.c-site-footer__col:nth-child(4) {
    grid-column: span 1
}
  }


.c-site-footer__links {
  display: flex;
  flex-direction: column;
  gap: var(--grid-gap);
}

.c-site-footer a {
  text-decoration: none;
  color: inherit;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-site-footer a:hover,
  .c-site-footer a:focus {
    opacity: var(--opacity-hover);
  }

/* Marquee logo banner */
.c-site-footer__marquee {
  white-space: nowrap;
  pointer-events: none;
}

.c-site-footer__marquee-track {
  display: inline-flex;
  gap: 0.5em;
  animation: footer-marquee 30s linear infinite;
  will-change: transform;
}

.c-site-footer__marquee .c-site-logo,
.c-site-footer__marquee-sep {
  flex-shrink: 0;
}

.c-site-footer__marquee-sep {
  display: inline-flex;
  align-items: center;
  gap: 0.15em;
  font-size: var(--font-size--3xl);
  margin-top: 0.1em;
}

.c-site-footer__marquee-sep svg,
.c-site-footer__marquee .c-site-logo__glyph {
  width: 0.7em;
  height: 0.7em;
  max-width: none;
  flex-shrink: 0;
  margin-top: 0.1em;
}

@keyframes footer-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Overlay Modal (for future use) */
.c-overlay-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--anim-speed) var(--anim-ease);
}
.c-overlay-modal:not([hidden]) {
    opacity: 1;
    pointer-events: auto;
  }

.c-overlay-modal__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.8);
  cursor: pointer;
}

.c-overlay-modal__content {
  position: relative;
  z-index: 1;
  max-width: 800px;
  max-height: 90vh;
  width: 90%;
  background-color: var(--color-overlay-background);
  border-radius: var(--radius);
  padding: calc(var(--margin) * 4);
  overflow-y: auto;
}

/* Page-level styles */

.c-page-content {
  min-height: 100vh;
  padding-top: calc(var(--margin) * 3);
  padding-bottom: var(--margin-outer);
}

.c-page-title {
  font-family: var(--title-font);
  font-size: var(--font-size--3xl);
  line-height: var(--line-height--3xl);
  letter-spacing: var(--letter-spacing--3xl);
  margin-bottom: calc(var(--margin) * 4);
}

@media (min-width: 1024px) {

.c-page-title {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-section-heading {
  font-family: var(--title-font);
  font-size: var(--font-size--3xl);
  line-height: var(--line-height--3xl);
  letter-spacing: var(--letter-spacing--3xl);
  margin-bottom: calc(var(--margin) * 6);
}

@media (min-width: 1024px) {

.c-section-heading {
    margin-bottom: calc(var(--margin) * 8)
}
  }

.c-section-intro {
  margin-bottom: calc(var(--margin) * 4);
  font-size: var(--font-size--l);
}

@media (min-width: 1024px) {

.c-section-intro {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-error-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Transitions */
.transition-fade {
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
  position: relative;
  z-index: var(--z-base);
  background-color: var(--color-background);
  margin-bottom: 350px;
}
@media (min-width: 768px) {
.transition-fade {
    margin-bottom: 400px
}
  }
@media (min-width: 1024px) {
.transition-fade {
    margin-bottom: 450px
}
  }

/* Overlay templates must sit above fixed site header. */
body.site-page-article #main.transition-fade,
body.site-page-resource #main.transition-fade,
body.site-page-case-study #main.transition-fade {
  z-index: var(--z-overlay);
  margin-bottom: 0;
}

.transition-fade.is-animating {
  opacity: 0;
}

/* Page Hero Section with Animated Gradient */

.c-page-hero {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: calc(var(--z-base) - 2);
  height: 300px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-background);
}

@media (min-width: 768px) {

.c-page-hero {
    height: 400px
}
  }

@media (min-width: 1024px) {

.c-page-hero {
    height: 450px
}
  }

/* Animated gradient background - Inner Glow Effect */
.c-page-hero__gradient {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: radial-gradient(
    circle at center,
    transparent 0%,
    transparent 30%,
    rgba(0, 68, 255, 0.2) 60%,
    rgba(0, 68, 255, 0.4) 100%
  );
  animation: gradientPulse 6s ease-in-out infinite;
}

.c-page-hero__gradient::before,
.c-page-hero__gradient::after {
  content: '';
  position: absolute;
  top: -20%;
  right: -20%;
  bottom: -20%;
  left: -20%;
  background: radial-gradient(
    circle at center,
    transparent 0%,
    transparent 40%,
    rgba(0, 68, 255, 0.25) 70%,
    rgba(0, 68, 255, 0.5) 100%
  );
  animation: gradientFloat 10s ease-in-out infinite;
}

.c-page-hero__gradient::before {
  animation-delay: 0s;
}

.c-page-hero__gradient::after {
  animation-delay: 6s;
  animation-duration: 15s;
}

/* Additional gradient orb for more movement */
.c-page-hero__gradient-orb {
  position: absolute;
  top: -10%;
  right: -10%;
  bottom: -10%;
  left: -10%;
  background: radial-gradient(
    ellipse at center,
    transparent 0%,
    transparent 35%,
    rgba(0, 68, 255, 0.15) 65%,
    rgba(0, 68, 255, 0.35) 100%
  );
  animation: gradientFloat 8s ease-in-out infinite reverse;
}

/* Content wrapper */
.c-page-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-bottom: calc(var(--margin) * 4);
}
@media (min-width: 1024px) {
.c-page-hero__content {
    padding-bottom: calc(var(--margin) * 6)
}
  }

/* Title styling */
.c-page-hero__title {
  font-family: var(--title-font);
  font-size: var(--font-size--3xl);
  line-height: var(--line-height--3xl);
  letter-spacing: var(--letter-spacing--3xl);
  margin: 0;
}

/* Animations */
@keyframes gradientPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.2);
  }
}

@keyframes gradientFloat {
  0%, 100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  33% {
    opacity: 0.7;
    transform: scale(1.15) rotate(5deg);
  }
  66% {
    opacity: 0.8;
    transform: scale(0.9) rotate(-5deg);
  }
}

/* Main content positioning */
.c-page-hero + .c-page-content {
  position: relative;
  z-index: calc(var(--z-base) + 2);
  background-color: var(--color-background);
  border-radius: 16px;
  margin-top: calc(var(--margin) * -2);

  /* @media (min-width: 1024px) {
    margin-top: calc(var(--margin) * -2);
    padding-top: calc(var(--margin) * 2);
  } */
}

/* Blur-up LQIP image wrapper */

.c-image {
  position: relative;
  overflow: hidden;
  display: block;
  border-radius: inherit;
}

.c-image__placeholder {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  filter: blur(20px);
  transform: scale(1.1);
  transition: opacity 0.75s ease-out;
  transition: opacity 0.75s var(--anim-ease, ease-out);
  pointer-events: none;
  z-index: 2;
}

.c-image__full {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.75s ease-out;
  transition: opacity 0.75s var(--anim-ease, ease-out);
}

/*
 * Cover mode: fill parent and use object-fit cover.
 * Apply to .c-image when its parent constrains dimensions
 * (e.g. aspect-ratio container).
 */
.c-image--cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.c-image--cover > .c-image__full {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* Reveal full image, hide placeholder */
.c-image.is-loaded .c-image__full {
  opacity: 1;
}

.c-image.is-loaded .c-image__placeholder {
  opacity: 0;
}

/* No-JS fallback: show full image immediately */
.no-js .c-image__full {
  opacity: 1;
}

.no-js .c-image__placeholder {
  display: none;
}

/* Image block wrapper (Kirby blocks/image.php) */
.c-block-image {
  width: 100%;
}

.c-block-image__link {
  display: block;
}

.c-block-image__media {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* Button component */

/* Default button - Glass style with small size */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--margin) * 1) calc(var(--margin) * 2);
  background-color: var(--color-button-glass);
  backdrop-filter: blur(var(--blur-button));
  -webkit-backdrop-filter: blur(var(--blur-button));
  color: var(--color-text);
  border-radius: var(--radius-small);
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  letter-spacing: var(--letter-spacing--s);
  line-height: 1;
  cursor: pointer;
  transition: background-color var(--anim-speed-fast) var(--anim-ease), 
              box-shadow var(--anim-speed-fast) var(--anim-ease),
              opacity var(--anim-speed-fast) var(--anim-ease);
  text-decoration: none;
  border: none;
}
.c-btn:hover,
  .c-btn:focus {
    background-color: var(--color-button-glass-hover);
    animation: glow-pulse var(--glow-speed) ease-in-out infinite;
    opacity: 1;
  }
.c-btn:active {
    background-color: var(--color-button-glass);
    opacity: 0.9;
  }

/* Important button - Blue background for primary CTAs */
.c-btn--important {
  background-color: var(--color-brand);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.c-btn--important:hover,
  .c-btn--important:focus {
    background-color: var(--color-brand-hover);
  }
.c-btn--important:active {
    background-color: var(--color-brand);
  }

/* Bracket button (for filters and special UI elements) */

.c-bracket-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--margin) * 1.5) calc(var(--margin) * 2.5);
  background-color: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all var(--anim-speed-fast) var(--anim-ease);
  text-decoration: none;
  white-space: nowrap;
}

.c-bracket-btn::before,
  .c-bracket-btn::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 100%;
    border: 1px solid var(--color-border);
    transition: border-color var(--anim-speed-fast) var(--anim-ease);
  }

.c-bracket-btn::before {
    left: -1px;
    border-right: none;
  }

.c-bracket-btn::after {
    right: -1px;
    border-left: none;
  }

.c-bracket-btn:hover,
  .c-bracket-btn:focus {
    border-color: var(--color-border-hover);
    background-color: var(--color-card-background);
  }

.c-bracket-btn:hover::before,
    .c-bracket-btn:hover::after,
    .c-bracket-btn:focus::before,
    .c-bracket-btn:focus::after {
      border-color: var(--color-border-hover);
    }

.c-bracket-btn.is-active,
  .c-bracket-btn[aria-pressed="true"] {
    background-color: var(--color-text);
    color: var(--color-background);
    border-color: var(--color-text);
  }

.c-bracket-btn.is-active::before,
    .c-bracket-btn.is-active::after,
    .c-bracket-btn[aria-pressed="true"]::before,
    .c-bracket-btn[aria-pressed="true"]::after {
      border-color: var(--color-text);
    }

.c-bracket-btn--small {
  padding: calc(var(--margin) * 1) calc(var(--margin) * 1.5);
  font-family: var(--small-font);
  font-size: var(--font-size--xs);
  border-radius: var(--radius-small);
}

.c-bracket-btn--large {
  padding: calc(var(--margin) * 2) calc(var(--margin) * 3.5);
}

/* Filter components */

.c-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--button-spacing);
  margin-bottom: var(--margin);
}

@media (min-width: 768px) {

.c-filter-bar {
    margin-bottom: calc(var(--margin) * 2)
}
  }

/* Filter buttons use exact same styles as nav buttons */
/* Inherits all styles from .c-btn */
.c-filter-btn.is-active {
    background-color: var(--color-brand);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
.c-filter-btn.is-active:hover,
    .c-filter-btn.is-active:focus {
      background-color: var(--color-brand-hover);
    }

/* Sidebar filter list */
.c-filter-list {
  display: flex;
  flex-direction: column;
  /* gap: calc(var(--margin) * 0.5); */
}

.c-filter-link {
  display: inline-flex;
  align-items: center;
  font-family: var(--title-font);
  font-size: var(--font-size--l);
  line-height: var(--line-height--l);
  letter-spacing: var(--letter-spacing--l);
  color: var(--color-text);
  /* text-transform: uppercase; */
  cursor: pointer;
  transition: color var(--anim-speed-fast) var(--anim-ease);
  background: transparent;
  border: none;
  text-align: left;
  width: 100%;
}

.c-filter-link::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0.25em;
    opacity: 0;
    background: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M53 27C53 38.0457 61.9543 47 73 47H100V53H73C61.9543 53 53 61.9543 53 73V100H47V73C47 61.9543 38.0457 53 27 53H0V47H27C38.0457 47 47 38.0457 47 27V0H53V27Z' fill='black'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M53 27C53 38.0457 61.9543 47 73 47H100V53H73C61.9543 53 53 61.9543 53 73V100H47V73C47 61.9543 38.0457 53 27 53H0V47H27C38.0457 47 47 38.0457 47 27V0H53V27Z' fill='black'/%3E%3C/svg%3E");
    mask-size: contain;
    mask-repeat: no-repeat;
    transition: opacity var(--anim-speed-fast) var(--anim-ease);
  }

.c-filter-link:hover::before,
  .c-filter-link:focus::before {
    opacity: 1;
  }

.c-filter-link.is-active {
    color: var(--color-brand);
  }

.c-filter-link.is-active::before {
    opacity: 1;
  }

/* Shared sidebar layout — used by members, resources, etc. */

.c-sidebar-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  min-height: 80vh;
}

@media (min-width: 1024px) {

.c-sidebar-layout {
    grid-template-columns: repeat(6, 1fr)
}
  }

@media (min-width: 1024px) {

.c-sidebar-layout__sidebar {
    grid-column: 1 / 3;
    position: sticky;
    top: calc(var(--margin) * 5.5);
    align-self: start
}
  }

@media (min-width: 1024px) {

.c-sidebar-layout__content {
    grid-column: 3 / 7
}
  }

/* Filter sidebar — two-column on mobile, stacked on desktop */
.c-filter-sidebar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  align-items: start;
  margin-bottom: var(--section-spacing);
}
@media (min-width: 1024px) {
.c-filter-sidebar {
    grid-template-columns: 1fr;
    gap: 0
}
  }

/* Filter sidebar label */
.c-filter-sidebar__label {
  margin-bottom: 0;
}

.c-filter-sidebar__label-hover {
  display: none;
}

.c-filter-sidebar:hover .c-filter-sidebar__label-default {
  display: none;
}

.c-filter-sidebar:hover .c-filter-sidebar__label-hover {
  display: inline;
}

/* Page intro — reusable label + text block */

.c-page-intro {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  min-height: 250px;
  padding-bottom:var(--section-spacing);
  margin-bottom: var(--section-spacing);
  border-bottom: 1px solid var(--color-border);

}

@media (min-width: 768px) {

.c-page-intro {
    grid-template-columns: repeat(6, 1fr)

}
  }

@media (min-width: 768px) {

.c-page-intro__label {
    grid-column: 1 / 3
}
  }

@media (min-width: 768px) {

.c-page-intro__text {
    grid-column: 3 / 7
}
  }

/* CTA Card Component */

.c-cta-card {
  position: relative;
  display: block;
  background-color: var(--color-button-glass);
  backdrop-filter: blur(var(--blur-button));
  -webkit-backdrop-filter: blur(var(--blur-button));
  border-radius: var(--radius-large);
  overflow: hidden;
  isolation: isolate;
  padding: calc(var(--card-padding) * 0.75) calc(var(--card-padding) * 2.25) calc(var(--card-padding) * 2.5) calc(var(--card-padding) * 2);
  margin-bottom: var(--margin);
  text-decoration: none;
  color: var(--color-text);
  transition: background-color var(--anim-speed-fast) var(--anim-ease),
              box-shadow var(--anim-speed) var(--anim-ease);
  box-shadow: inset 0 0 20px 5px rgba(0, 68, 255, 0.15);
}

.c-cta-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: inherit;
    background: radial-gradient(
      circle at 50% 50%,
      rgba(0, 68, 255, 0.6) 0%,
      rgba(0, 68, 255, 0) 75%
    );
    background: radial-gradient(
      circle at var(--cta-glow-x, 50%) var(--cta-glow-y, 50%),
      rgba(0, 68, 255, 0.6) 0%,
      rgba(0, 68, 255, 0) 75%
    );
    opacity: 0;
    transition: opacity var(--anim-speed-fast) var(--anim-ease);
    pointer-events: none;
    z-index: 0;
  }

.c-cta-card:hover {
    background-color: var(--color-button-glass-hover);
    box-shadow: inset 0 0 24px 8px rgba(0, 68, 255, 0.28);
  }

.c-cta-card:hover::before {
    opacity: 1;
  }

.c-cta-card__content {
  display: flex;
  align-items: baseline;
  gap: calc(var(--margin) * 2);
  flex: 1;
  min-width: 0;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  position: relative;
  z-index: 1;
}

.c-cta-card__title {
  flex-shrink: 0;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  position: relative;
  line-height: 1em;
  z-index: 1;
}

.c-cta-card__subtitle {
  opacity: var(--opacity-text);
  max-width: 450px;
  margin-top: 1.8em;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  position: relative;
  z-index: 1;
}

.c-cta-card__arrow {
  flex-shrink: 0;
  font-size: var(--font-size--3xl);
  color: var(--color-brand);
  position: absolute;
  /* top: var(--card-padding); */
  right: var(--card-padding);
  z-index: 1;
}

/* Desktop: title + subtitle + arrow in one row */
@media (min-width: 768px) {
  .c-cta-card {
    display: flex;
    align-items: center;
    gap: calc(var(--margin) * 2);
  }
}

/* Home page components */

.c-home {
  position: relative;
  isolation: isolate;
  --home-blue-opacity: 0;
  --home-base-opacity: 1;
}

.c-home__bg {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  contain: paint;
}

.c-home > :not(.c-home__bg) {
  position: relative;
  z-index: 1;
}

.c-home__bg .c-page-hero__gradient,
.c-home__bg .c-hero__animations {
  opacity: var(--home-base-opacity);
  will-change: opacity;
}

.c-home__bg .c-page-hero__gradient {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.c-home__bg-blue {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgb(0, 68, 255);
  opacity: var(--home-blue-opacity);
  will-change: opacity;
}

/* Hero */
.c-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.c-hero__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: calc(var(--margin) * 4) var(--margin-outer);
}

.c-hero__title {
  margin-bottom: calc(var(--margin) * 3);
}

/* Stacked hero logo — three lines */
.c-site-logo--hero-stacked {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  font-size: var(--font-size--3xl);
  line-height: var(--line-height--3xl);
  letter-spacing: var(--letter-spacing--3xl);
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  cursor: pointer;
  outline: none;
}

.c-site-logo--hero-stacked .c-site-logo__line {
  display: flex;
  align-items: center;
  gap: 0.02em;
}

.c-site-logo__line--fill {
  flex-direction: row;
}

.c-site-logo__line--fill[data-align="right"] {
  flex-direction: row-reverse;
}

.c-site-logo__fill {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.15em;
  overflow: hidden;
}

.c-site-logo__line--fill[data-align="right"] .c-site-logo__fill {
  justify-content: flex-end;
}

.c-site-logo__fill .c-site-logo__glyph {
  flex-shrink: 0;
}

.c-hero__subheading {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  letter-spacing: var(--letter-spacing--s);
  font-size: 21px;
  max-width: 600px;
  text-align: center;
  margin: 0 auto;
}

.c-hero__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 0.3;
}

.c-hero__bg-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-hero__animations {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  z-index: 0;
  pointer-events: none;
  display: flex;
  flex-wrap: wrap;
  --glyph-size: 25vw;
  width: calc(var(--glyph-size) * 6);
  animation: hero-grid-breathe 9s ease-in-out infinite;
}

.c-hero__animations--rotated {
  transform: translate(-50%, -50%) rotate(0deg);
}

.c-hero__glyph {
  width: var(--glyph-size);
  height: var(--glyph-size);
  flex-shrink: 0;

  /* Glyph shape as mask */
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M53 27C53 38.0457 61.9543 47 73 47H100V53H73C61.9543 53 53 61.9543 53 73V100H47V73C47 61.9543 38.0457 53 27 53H0V47H27C38.0457 47 47 38.0457 47 27V0H53V27Z' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M53 27C53 38.0457 61.9543 47 73 47H100V53H73C61.9543 53 53 61.9543 53 73V100H47V73C47 61.9543 38.0457 53 27 53H0V47H27C38.0457 47 47 38.0457 47 27V0H53V27Z' fill='black'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;

  /* Radial gradient — transparent center, blue edge */
  background: radial-gradient(circle, transparent 10%, rgba(0, 68, 255, 0.4) 100%);
  background-position: center;
  background-size: 120% 120%;
}

@keyframes hero-grid-breathe {
  0%,
  100% {
    opacity: 0.78;
    transform: translate(-50%, -50%) rotate(45deg) scale(1);
  }
  50% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(45deg) scale(1.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-home__bg .c-page-hero__gradient,
  .c-home__bg .c-page-hero__gradient::before,
  .c-home__bg .c-page-hero__gradient::after,
  .c-home__bg .c-page-hero__gradient-orb,
  .c-home__bg .c-hero__animations,
  .c-home__bg .c-hero__glyph {
    animation: none !important;
    transition: none !important;
  }

  .c-home__bg .c-hero__animations {
    opacity: 0.85;
    transform: translate(-50%, -50%) rotate(45deg);
  }
}

.c-hero__featured {
  display: flex;
  flex-direction: column;
  gap: var(--grid-gap-tight);
  position: absolute;
  bottom: var(--margin-outer);
  right: var(--margin-outer);
  z-index: 3;
  max-width: 350px;
}

@media (min-width: 1024px) {

.c-hero__featured {
    right: var(--margin-outer)
}
  }

.c-hero__featured-card {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--margin));
  background-color: var(--glass-bg);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border-radius: var(--radius);
  overflow: hidden;
  padding: var(--card-padding);
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-hero__featured-card:hover {
    background-color: var(--glass-bg-hover);
  }

.c-hero__featured-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.c-hero__featured-meta {
  position: relative;
  display: flex;
  gap: 0;
  margin-bottom: var(--margin);
  min-height: 1.2em;
}

.c-hero__featured-meta-values {
  display: flex;
  gap: calc(var(--margin));
  opacity: var(--opacity-text);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-hero__featured-title {
  display: block;
}

.c-hero__featured-action {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
  color: currentColor;
}

.c-hero__featured-card:hover .c-hero__featured-action,
.c-hero__featured-card.focus-visible .c-hero__featured-action {
  opacity: var(--opacity-text);
}

.c-hero__featured-card:hover .c-hero__featured-action,
.c-hero__featured-card:focus-visible .c-hero__featured-action {
  opacity: var(--opacity-text);
}

.c-hero__featured-card:hover .c-hero__featured-meta-values,
.c-hero__featured-card.focus-visible .c-hero__featured-meta-values {
  opacity: 0;
}

.c-hero__featured-card:hover .c-hero__featured-meta-values,
.c-hero__featured-card:focus-visible .c-hero__featured-meta-values {
  opacity: 0;
}

.c-hero__featured-image {
  position: relative;
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: var(--radius-small);
  overflow: hidden;
}

/* Home sections */
.c-home-sections {
  position: relative;
}

.c-home-section {
  padding: calc(var(--margin) * 4) 0;
}

.c-home-section:last-child {
  padding: calc(var(--margin) * 8) 0;
}

.c-home-section--alt {
  /* background removed */
}

.c-home-section__inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: calc(var(--margin) * 2);
  gap: calc(var(--margin) * 2);
}

@media (min-width: 768px) {

.c-home-section__inner {
    grid-template-columns: repeat(6, 1fr)
}
  }

.c-home-section__text {
  max-width: 800px;
}

@media (min-width: 768px) {

.c-home-section__text {
    grid-column: 1 / 4
}
  }

.c-home-section__cta {
  justify-self: start;
}

@media (min-width: 768px) {

.c-home-section__cta {
    grid-column: 1 / 4
}
  }

/* Alt sections: push content to right columns */
@media (min-width: 768px) {
.c-home-section--alt .c-home-section__text {
    grid-column: 4 / 7
}
  }

@media (min-width: 768px) {

.c-home-section--alt .c-home-section__cta {
    grid-column: 4 / 7
}
  }

/* Scrolling banner */
.c-banner {
  position: relative;
  padding: calc(var(--margin) * 4) 0;
  overflow: hidden;
  pointer-events: none;
  /* border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border); */
}

.c-banner__track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  will-change: transform;
}

.c-banner__set {
  display: flex;
  align-items: center;
  gap: 1em;
  flex-shrink: 0;
  padding-right: 1em;
}

.c-banner__word {
  font-family: var(--title-font);
  font-size: var(--font-size--3xl);
  letter-spacing: var(--letter-spacing--3xl);
  line-height: 1em;
  flex-shrink: 0;
}

.c-banner__star {
  color: var(--color-brand);
  font-size: var(--font-size--3xl);
  display: inline-flex;
  align-items: center;
  margin-top: 0.1em;
  flex-shrink: 0;
}

.c-banner__star svg {
  width: 0.7em;
  height: 0.7em;
  max-width: none;
  flex-shrink: 0;
}

/* CTAs */
.c-home-ctas {
  padding: calc(var(--margin) * 8) 0;
}

/* CTA card styles moved to c.cta-card.css */

/* Partner logos */
.c-home-partners {
  padding: calc(var(--margin) * 8) 0;
  padding-bottom: calc(var(--margin) * 16);
  overflow: hidden;
}

.c-home-partners__track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  will-change: transform;
}

.c-home-partners__set {
  display: flex;
  align-items: center;
  gap: calc((var(--margin) * 4) + 1.5rem);
  flex-shrink: 0;
  padding-right: calc((var(--margin) * 4) + 1.5rem);
}

.c-home-partners__logo {
  width: 132px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.75;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-home-partners__logo:hover {
    opacity: 1;
  }

.c-home-partners__logo img {
    max-width: 100%;
    max-height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    /* Force uploaded logos to render as white */
    filter: brightness(0) invert(1);
  }

/* Remove default footer offset when partners sit above it on home */
.site-page-home .c-site-footer {
  margin-top: 0;
}

/* News page components */

/* Stacked row layout */
.c-article-grid {
  display: grid;
  grid-gap: var(--grid-gap-tight);
  gap: var(--grid-gap-tight);
  grid-template-columns: 1fr;
}

.c-article-card {
  position: relative;
  display: block;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  overflow: hidden;
  isolation: isolate;
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-article-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: inherit;
    background: radial-gradient(
      circle at 50% 50%,
      rgba(0, 68, 255, 0.45) 0%,
      rgba(0, 68, 255, 0) 72%
    );
    background: radial-gradient(
      circle at var(--cta-glow-x, 50%) var(--cta-glow-y, 50%),
      rgba(0, 68, 255, 0.45) 0%,
      rgba(0, 68, 255, 0) 72%
    );
    opacity: 0;
    transition: opacity var(--anim-speed-fast) var(--anim-ease);
    pointer-events: none;
    z-index: 0;
  }

.c-article-card:hover {
    background-color: var(--color-card-background-hover);
    box-shadow: inset 0 0 20px 6px rgba(0, 68, 255, 0.2);
  }

.c-article-card:hover::before {
    opacity: 1;
  }

.c-article-card[data-categories] {
    /* Filtering handled by JS */
  }

.c-article-card__link {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 2);
  padding: var(--card-padding);
  height: 100%;
  min-height: 225px;
  position: relative;
  z-index: 1;
}

@media (min-width: 768px) {

.c-article-card__link {
    flex-direction: row;
    align-items: flex-start
}
  }

.c-article-card__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.c-article-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--margin) * 0.75);
  margin-bottom: calc(var(--margin) * 1.5);
}

.c-article-card__date {
  opacity: var(--opacity-text);
}

.c-article-card__title {
  margin-bottom: 0;
  padding-bottom: 0;
}

.c-article-card__image {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius);
}

@media (min-width: 768px) {

.c-article-card__image {
    width: 200px;
    max-width: 200px;
    aspect-ratio: 3 / 2;
    order: 2
}
  }

.c-newsletter-cta {
  margin-top: calc(var(--margin) * 8);
}

/* ── Previous layout (backup) ──
.c-article-list {
  display: grid;
  gap: var(--grid-gap);
  margin-bottom: calc(var(--margin) * 8);

  @media (min-width: 768px) {
    gap: calc(var(--margin) * 4);
  }
}

.c-article-card__link (previous) {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 2);
  padding: var(--card-padding);

  @media (min-width: 768px) {
    flex-direction: row;
    align-items: center;
  }
}

.c-article-card__image (previous) {
  @media (min-width: 768px) {
    width: 200px;
    aspect-ratio: 1 / 1;
  }
}
*/

/* Work page components */

.c-case-list {
  display: flex;
  flex-direction: column;
  gap: var(--section-spacing);
}

.c-case-card {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  padding-top: var(--section-spacing);
  border-top: 1px solid var(--color-border);
  color: inherit;
  text-decoration: none;
}

.c-case-card:hover .c-case-card__title {
    color: var(--color-brand);
  }

.c-case-card:hover .c-case-card__title::after {
    opacity: 1;
  }

.c-case-card:first-child {
    border-top: none;
    padding-top: 0;
  }

@media (min-width: 768px) {

.c-case-card {
    grid-template-columns: repeat(6, 1fr);
    align-items: center
}
  }

@media (min-width: 768px) {
      .c-case-card:nth-child(even) .c-case-card__content {
        order: 2;
      }
      .c-case-card:nth-child(even) .c-case-card__image {
        order: 1;
      }
    }

.c-case-card__content {
  position: relative;
}

@media (min-width: 768px) {

.c-case-card__content {
    grid-column: span 4
}
  }

.c-case-card__title {
  margin-bottom: calc(var(--margin) * 3);
  display: inline-block;
  max-width: 100%;
  transition: color var(--anim-speed-fast) var(--anim-ease);
}

.c-case-card__title::after {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 0.8em;
    height: 0.8em;
    margin-left: 0.2em;
    opacity: 0;
    vertical-align: -0.05em;
    background: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M53 27C53 38.0457 61.9543 47 73 47H100V53H73C61.9543 53 53 61.9543 53 73V100H47V73C47 61.9543 38.0457 53 27 53H0V47H27C38.0457 47 47 38.0457 47 27V0H53V27Z' fill='black'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M53 27C53 38.0457 61.9543 47 73 47H100V53H73C61.9543 53 53 61.9543 53 73V100H47V73C47 61.9543 38.0457 53 27 53H0V47H27C38.0457 47 47 38.0457 47 27V0H53V27Z' fill='black'/%3E%3C/svg%3E");
    mask-size: contain;
    mask-repeat: no-repeat;
    transition: transform var(--anim-speed) var(--anim-ease),
                opacity var(--anim-speed-fast) var(--anim-ease);
  }

.c-case-card__intro {
  margin-bottom: calc(var(--margin) * 3);
  max-width: 600px;
}

.c-case-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
}

@media (min-width: 768px) {

.c-case-card__image {
    grid-column: span 2
}
  }

/* About page components */

.c-about-intro {
  margin-bottom: var(--section-spacing-large);
}

.c-about-body {
  margin-bottom: var(--section-spacing-large);
  padding-bottom: var(--section-spacing-large);
}

.c-about-body__grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.c-about-body__grid {
    grid-template-columns: 1fr 1fr
}
  }

@media (min-width: 1024px) {

.c-about-body__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr))
}
  }

.c-about-body__contact {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.c-about-body__contact-label {
  opacity: var(--opacity-text);
}

.c-about-body__text {
  max-width: none;
  column-count: 2;
  column-gap: var(--grid-gap);

  -moz-column-count: 2;
  -moz-column-gap: var(--grid-gap);
  -moz-column-fill: balance;
}

@media (min-width: 1024px) {

.c-about-body__text {
    grid-column: 3 / 7
}
  }

/* .c-about-body__text > p:nth-of-type(2) {
  break-before: column;
} */

/* Services */
.c-services-section {
  margin-bottom: var(--section-spacing-large);
  padding-bottom: var(--section-spacing-large);
}
@media (min-width: 1024px) {
.c-services-section {
    min-height: 100vh
}
  }

.c-services-section__title {
  margin-bottom: calc(var(--margin) * 4);
}

@media (min-width: 1024px) {

.c-services-section__title {
    margin-bottom: 0
}
  }

.c-about-section-divider {
  --divider-line-left-inset: 1.2rem;
  margin-top: 0;
  margin-bottom: calc(var(--margin) * 4);
}

.c-about-section-divider .c-block-divider__label {
  border: 1px solid var(--color-border);
  background-color: var(--color-background);
}

.c-about-section-divider .c-block-divider__line {
  border: none;
  border-top: 1px solid var(--color-border);
}

.c-services-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 1024px) {

.c-services-layout {
    grid-template-columns: repeat(6, 1fr)
}
  }

@media (min-width: 1024px) {

.c-services-layout__sidebar {
    grid-column: 1 / 3
}
  }

@media (min-width: 1024px) {

.c-services-layout__content {
    grid-column: 3 / 7;
    align-self: start;
    position: sticky;
    top: calc(var(--margin) * 5.5);
    max-height: calc(100vh - (var(--margin) * 5.5) - var(--margin-outer));
    overflow: auto
}
  }

.c-services-list {
  display: grid;
  grid-gap: 0.9em;
  gap: 0.9em;
}

.c-services-list__item {
  max-width: none;
  display: flex;
  gap: 0.5em;
  color: var(--color-text-muted);
  transition: color var(--anim-speed) var(--anim-ease);
}

.c-services-list__item.is-active {
  color: var(--color-text);
}

.c-services-list__item::before {
  content: "↳";
  flex-shrink: 0;
}

/* Team */
.c-team-section__title {
  margin-bottom: calc(var(--margin) * 6);
}
@media (min-width: 1024px) {
.c-team-section__title {
    margin-bottom: calc(var(--margin) * 8)
}
  }

.c-team-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 1024px) {

.c-team-layout {
    grid-template-columns: repeat(6, 1fr)
}
  }

@media (min-width: 1024px) {

.c-team-layout__sidebar {
    grid-column: 1 / 3
}
  }

@media (min-width: 1024px) {

.c-team-layout__content {
    grid-column: 3 / 7
}
  }

.c-team-grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  margin-bottom: var(--section-spacing-large);
  grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 1024px) {

.c-team-grid {
    grid-template-columns: repeat(3, 1fr)
}
  }

.c-team-member {
  display: flex;
  flex-direction: column;
}

.c-team-member--linked {
  color: inherit;
  text-decoration: none;
}

.c-team-member__name,
.c-team-member__role {
  font-size: var(--font-size--m);
  line-height: var(--line-height--m);
  letter-spacing: var(--letter-spacing--m);
}

.c-team-member__role {
  opacity: var(--opacity-text);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-team-member--linked:hover .c-team-member__role,
.c-team-member--linked.focus-visible .c-team-member__role {
  opacity: 1;
}

.c-team-member--linked:hover .c-team-member__role,
.c-team-member--linked:focus-visible .c-team-member__role {
  opacity: 1;
}

.c-team-member__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  margin-bottom: var(--margin);
}

.c-team-member__photo img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }

.c-team-member__photo--empty {
  background-color: var(--color-card-background);
}
/* Resources page components */

/* Layout: uses shared c-sidebar-layout */

/* Intro: uses shared c-page-intro snippet/component */

.c-resource-grid {
  display: grid;
  /* gap: var(--grid-gap); */
  grid-gap: var(--grid-gap-tight);
  gap: var(--grid-gap-tight);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {

.c-resource-grid {
    grid-template-columns: repeat(2, 1fr)
}
  }

.c-resource-card {
  position: relative;
  background-color: var(--color-card-background);
  border-radius: var(--radius-large);
  overflow: hidden;
  isolation: isolate;
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-resource-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: inherit;
    background: radial-gradient(
      circle at 50% 50%,
      rgba(0, 68, 255, 0.45) 0%,
      rgba(0, 68, 255, 0) 72%
    );
    background: radial-gradient(
      circle at var(--cta-glow-x, 50%) var(--cta-glow-y, 50%),
      rgba(0, 68, 255, 0.45) 0%,
      rgba(0, 68, 255, 0) 72%
    );
    opacity: 0;
    transition: opacity var(--anim-speed-fast) var(--anim-ease);
    pointer-events: none;
    z-index: 0;
  }

.c-resource-card:hover {
    background-color: var(--color-card-background-hover);
    box-shadow: inset 0 0 20px 6px rgba(0, 68, 255, 0.2);
  }

.c-resource-card:hover::before {
    opacity: 1;
  }

.c-resource-card[data-categories] {
    /* Filtering handled by JS */
  }

.c-resource-card__link {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 240px;
  padding: var(--card-padding);
  height: 100%;
  position: relative;
  z-index: 1;
}

.c-resource-card__header {
  display: flex;
  flex-wrap: wrap;
  gap: var(--margin);
  justify-content: space-between;
  margin-bottom: calc(var(--margin) * 2);
}

.c-resource-card__cat {
  opacity: var(--opacity-text);
}

.c-resource-card__badge {
  padding: calc(var(--margin) * 0.5) calc(var(--margin) * 1);
  background-color: var(--color-brand);
  color: var(--color-text);
  border-radius: var(--radius-small);
}

.c-resource-card__title {
  margin-bottom: auto;
  padding-bottom: calc(var(--margin) * 2);
}

.c-resource-card__footer {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: calc(var(--margin) * 0.5);
  padding-top: calc(var(--margin) * 2);
  /* border-top: 1px solid var(--color-border); */
}

.c-resource-card__type {
  display: flex;
  align-items: center;
  gap: 5px;
  /* opacity: var(--opacity-text); */
}

.c-resource-card__type-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5em;
  /* position:  */
  line-height: 1em;
}

.c-resource-card__type-icon::before {
  content: "■";
  /* color: var(--color-brand); */
  font-size: inherit;
  /* line-height: 1em; */
  margin-top: -0.25em;
  display: block;
}

.c-resource-card__action {
  /* opacity: var(--opacity-text); */
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-resource-card__action--open {
  display: inline-flex;
  align-items: center;
  gap: 0.2em;
  opacity: 0;
}

.c-resource-card__action-arrow {
  display: inline-block;
  transform: translateX(-0.25rem);
  transition: transform var(--anim-speed-fast) var(--anim-ease);
}

.c-resource-card:hover .c-resource-card__action--open,
.c-resource-card__link.focus-visible .c-resource-card__action--open {
  opacity: 1;
}

.c-resource-card:hover .c-resource-card__action--open,
.c-resource-card__link:focus-visible .c-resource-card__action--open {
  opacity: 1;
}

.c-resource-card:hover .c-resource-card__action--open .c-resource-card__action-arrow,
.c-resource-card__link.focus-visible .c-resource-card__action--open .c-resource-card__action-arrow {
  transform: translateX(0.2rem);
}

.c-resource-card:hover .c-resource-card__action--open .c-resource-card__action-arrow,
.c-resource-card__link:focus-visible .c-resource-card__action--open .c-resource-card__action-arrow {
  transform: translateX(0.2rem);
}

/* Members-only password modal */
.c-members-gate__title {
  margin-bottom: var(--margin);
}

.c-members-gate__text {
  margin-bottom: calc(var(--margin) * 2);
}

.c-members-gate__label {
  display: block;
  margin-bottom: calc(var(--margin) * 0.5);
}

.c-members-gate__input {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: calc(var(--margin) * 0.9) var(--margin);
  background-color: transparent;
  color: var(--color-text);
}

.c-members-gate__error {
  min-height: 1.5em;
  color: var(--color-brand);
  margin-top: calc(var(--margin) * 0.75);
}

.c-members-gate__password-help {
  margin-top: calc(var(--margin) * 0.75);
  opacity: var(--opacity-text);
}

.c-members-gate__actions {
  margin-top: var(--margin);
}

/* Members page components */

/* Layout: uses shared c-sidebar-layout */

/* Members table */
.c-members-table {
  display: flex;
  flex-direction: column;
}

.c-members-table__header {
  display: none;
  padding-bottom: 0.66rem; 
  margin-bottom: 0.66rem;
  border-bottom: 1px solid var(--color-border);
  opacity: var(--opacity-text);
}

@media (min-width: 768px) {

.c-members-table__header {
    display: flex;
    justify-content: space-between
}
  }

.c-members-table__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--margin);
  padding: 0.5rem 0;
  border-radius: var(--radius-small);
  border-bottom: 1px solid var(--color-border);
  transition: color var(--anim-speed-fast) var(--anim-ease);
}

.c-members-table__row[data-categories] {
    /* Filtering handled by JS */
  }

.c-members-table__row:first-child {
  padding-top: 0;
}

.c-members-table__row--linked {
  position: relative;
  transition: color var(--anim-speed) var(--anim-ease);
}

.c-members-table__row--linked::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: var(--radius-small);
    background-image: linear-gradient(to right, var(--color-brand), transparent);
    opacity: 0;
    transition: opacity var(--anim-speed) var(--anim-ease) 0.1s;
    pointer-events: none;
    z-index: -1;
  }

.c-members-table__row--linked .c-members-table__name {
    transition: transform var(--anim-speed-fast) var(--anim-ease);
  }

.c-members-table__row--linked:hover {
    /* color: var(--color-brand); */
    transition: color var(--anim-speed-fast) var(--anim-ease);
  }

.c-members-table__row--linked:hover .c-members-table__name {
    transform: translateX(1rem);
    transition: transform var(--anim-speed-fast) var(--anim-ease);
  }

.c-members-table__row--linked:hover::before {
    opacity: 1;
    transition: opacity var(--anim-speed) var(--anim-ease);
  }

.c-members-table__type {
  opacity: var(--opacity-text);
  text-align: right;
  flex-shrink: 0;
}

/* Join CTA */
.c-join-cta {
  margin-top: calc(var(--margin) * 8);
}
@media (min-width: 1024px) {
.c-join-cta {
    margin-top: calc(var(--margin) * 12)
}
  }

/* CTA card styles moved to c.cta-card.css */

/* Overlay component for articles, case studies, and resources */

.c-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-overlay);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Curtain / backdrop with blur */
.c-overlay__curtain {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--color-curtain-background);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  opacity: 0;
  transition: opacity var(--anim-speed) var(--anim-ease);
  animation: overlay-curtain-fade-in var(--anim-speed) var(--anim-ease) forwards;
}

.c-overlay.is-closing .c-overlay__curtain {
  opacity: 0;
}

@keyframes overlay-curtain-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Modal panel */
.c-overlay__inner {
  position: relative;
  width: 100%;
  max-width: 850px;
  min-height: 100vh;
  background-color: var(--color-overlay-background);
  border-radius: var(--radius-large);
  margin: calc(var(--margin) * 4) var(--margin-outer);
  padding: calc(var(--margin) * 4) calc(var(--margin) * 2) calc(var(--margin) * 2);
}
@media (min-width: 1024px) {
.c-overlay__inner {
    margin: calc(var(--margin) * 5) auto;
    padding: calc(var(--margin-outer) * 2) calc(var(--margin-outer) * 1)
}
  }

.c-overlay__controls {
  position: absolute;
  top: calc(var(--margin) * 2);
  right: calc(var(--margin) * 2);
  z-index: var(--z-overlay-button);
}

.c-overlay__close {
  display: flex;
  align-items: center;
  gap: var(--margin);
  padding: calc(var(--margin) * 1.5);
  background-color: transparent;
  color: var(--color-text);
  border: none;
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-overlay__close svg {
    width: 24px;
    height: 24px;
  }

.c-overlay__close:hover,
  .c-overlay__close:focus {
    opacity: var(--opacity-hover);
  }

/* Article detail — unified spacing via gap */
.c-article-detail,
.c-case-detail,
.c-resource-detail {
  --overlay-gap: calc(var(--margin) * 3);
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--overlay-gap);
}
@media (min-width: 1024px) {
.c-article-detail,
.c-case-detail,
.c-resource-detail {
    --overlay-gap: calc(var(--margin) * 4)
}
  }

.c-article-detail__meta,
.c-case-detail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--margin) * 1.5);
  align-items: center;
}

.c-article-detail__categories {
  display: flex;
  flex-wrap: wrap;
  gap: var(--margin);
}

.c-article-detail__cat {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
}

.c-article-detail__date,
.c-case-detail__date {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
}

.c-article-detail__cover,
.c-case-detail__cover,
.c-resource-detail__cover {
  width: 100%;
}

.c-article-detail__intro,
.c-case-detail__intro {
  font-size: var(--font-size--l);
  letter-spacing: var(--letter-spacing--l);
  line-height: var(--line-height--l);
}

.c-case-detail__body h2,
.c-case-detail__body h3 {
  font-size: var(--font-size--l);
  letter-spacing: var(--letter-spacing--l);
  line-height: var(--line-height--l);
}

.c-article-detail__body,
.c-case-detail__body,
.c-resource-detail__body {
  --content-block-space: calc(var(--line-height--m) * 1em);
}

.c-article-detail__section,
.c-case-detail__section {
  padding-top: var(--overlay-gap);
  border-top: 1px solid var(--color-border);
}

.c-article-detail__section-label,
.c-case-detail__section-label {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
  margin-bottom: calc(var(--margin) * 2);
}

.c-article-detail__section-items,
.c-case-detail__section-items {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.c-article-detail__section-items,
.c-case-detail__section-items {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--margin) * 6)
}
  }

.c-article-detail__section-title,
.c-case-detail__section-title {
  margin-bottom: calc(var(--margin) * 2);
}

.c-resource-detail__download,
.c-resource-detail__link {
  margin-top: calc(var(--margin) * 4);
}

/* Divider block */
.c-block-divider {
  --divider-line-left-inset: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: calc(var(--content-block-space) * 2);
  margin-bottom: var(--content-block-space);
}

.c-block-divider__label {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  line-height: 1;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.3);
  width: -moz-fit-content;
  width: fit-content;
  /* text-transform: uppercase; */
  margin: -1px 0 0;
  position: relative;
  z-index: 1;
  background-color: var(--color-overlay-background);
}

.c-block-divider__line {
  border: none;
  border-top: 1px solid rgba(255,255,255,0.3);
  margin: 0 0 0 var(--divider-line-left-inset);
  width: calc(100% - var(--divider-line-left-inset));
}

/* Split text block */
.c-block-split {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: calc(var(--margin) * 1.5);
  gap: calc(var(--margin) * 1.5);
  margin-bottom: var(--content-block-space);
}
@media (min-width: 768px) {
.c-block-split {
    grid-template-columns: 1fr 1.5fr;
    gap: var(--grid-gap)
}
  }

.c-block-split:last-child {
  margin-bottom: 0;
}

.c-block-button {
  margin-bottom: var(--content-block-space);
}

.c-article-detail__body > figure,
.c-case-detail__body > figure,
.c-resource-detail__body > figure {
  margin: 0 0 var(--content-block-space);
}

.c-article-detail__body > :last-child,
.c-case-detail__body > :last-child,
.c-resource-detail__body > :last-child {
  margin-bottom: 0;
}

.c-block-split__heading {
  margin: 0;
}

.c-block-split__text {
  max-width: none;
}

/* Video blocks inside overlay content */
.c-article-detail__body figure[\:has\(video\,\%20iframe\)],
.c-case-detail__body figure[\:has\(video\,\%20iframe\)],
.c-resource-detail__body figure[\:has\(video\,\%20iframe\)] {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  overflow: hidden;
}
.c-article-detail__body figure:has(video, iframe),
.c-case-detail__body figure:has(video, iframe),
.c-resource-detail__body figure:has(video, iframe) {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  overflow: hidden;
}

.c-article-detail__body figure[\:has\(video\,\%20iframe\)] iframe,
.c-case-detail__body figure[\:has\(video\,\%20iframe\)] iframe,
.c-resource-detail__body figure[\:has\(video\,\%20iframe\)] iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: none;
}

.c-article-detail__body figure:has(video, iframe) iframe,
.c-case-detail__body figure:has(video, iframe) iframe,
.c-resource-detail__body figure:has(video, iframe) iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: none;
}

.c-article-detail__body figure[\:has\(video\,\%20iframe\)] video,
.c-case-detail__body figure[\:has\(video\,\%20iframe\)] video,
.c-resource-detail__body figure[\:has\(video\,\%20iframe\)] video {
  width: 100%;
  height: auto;
  border: none;
}

.c-article-detail__body figure:has(video, iframe) video,
.c-case-detail__body figure:has(video, iframe) video,
.c-resource-detail__body figure:has(video, iframe) video {
  width: 100%;
  height: auto;
  border: none;
}

/* Visibility utilities */

.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-visually-hidden-focusable:focus,
.u-visually-hidden-focusable:active {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

/* Generic hidden state (used by JS filters etc.) */
.is-hidden {
  display: none !important;
}

.u-hidden {
  display: none !important;
}

@media (max-width: 767px) {
  .u-hidden-mobile {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .u-hidden-tablet {
    display: none !important;
  }
}

@media (min-width: 1024px) {
  .u-hidden-desktop {
    display: none !important;
  }
}

/* Settings */

/* Base */

/* Group */

/* Components - Structure */

/* Components - UI Elements */

/* Components - Pages */

/* Utilities */

