
@layer reset, fonts, elements, theme, colour, layout, modifiers, text, containers, button, swiper, components, gallery;
@import url("https://use.typekit.net/mup1cec.css") layer(fonts);
/* 1. Declare the layer order once */
/* 2. Import each stylesheet into the right layer */
@layer reset{
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html,
  body,
  div,
  span,
  applet,
  button,
  input,
  select,
  textarea,
  object,
  iframe,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  hr,
  p,
  blockquote,
  pre,
  a,
  abbr,
  acronym,
  address,
  big,
  cite,
  code,
  del,
  dfn,
  em,
  img,
  ins,
  kbd,
  q,
  s,
  samp,
  small,
  strike,
  strong,
  sub,
  sup,
  tt,
  var,
  b,
  u,
  i,
  center,
  dl,
  dt,
  dd,
  ol,
  ul,
  li,
  fieldset,
  form,
  label,
  legend,
  table,
  caption,
  tbody,
  tfoot,
  thead,
  tr,
  th,
  td,
  article,
  aside,
  canvas,
  details,
  embed,
  figure,
  figcaption,
  footer,
  header,
  hgroup,
  main,
  menu,
  nav,
  output,
  ruby,
  section,
  summary,
  time,
  mark,
  audio,
  video {
    background: transparent;
    border: 0;
    font: inherit;
    font-size: 100%;
    margin: 0;
    min-width: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline;
  }

  article,
  aside,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  main,
  menu,
  nav,
  section {
    display: block;
  }

  body {
    line-height: 1;
  }

  ol,
  ul,
  menu {
    list-style: none;
  }

  blockquote,
  q {
    quotes: none;
  }

  blockquote:before,
  blockquote:after,
  q:before,
  q:after {
    content: none;
  }

  img,
  svg {
    display: block;
  }

  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
}
}
@layer fonts{
@layer fonts {
  @font-face {
    font-family: "TT Norms Pro";
    src: url("../fonts/TT_Norms_Pro_Normal.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: "TT Norms Pro";
    src: url("../fonts/TT_Norms_Pro_Medium.woff2") format("woff2");
    font-weight: bold;
    font-style: normal;
    font-display: swap;
  }
}
}
@layer elements{

html {
  background: var(--color-surface-page, var(--color-canvas));
  min-height: -webkit-fill-available;
  scroll-padding-top: calc(var(--font-size) * 3.875);
}

html:has(dialog[open]) {
  overflow: hidden;
}

body {
  background: var(--color-surface-page, var(--color-canvas));
  color: var(--color-text-page, var(--color-ink));
  display: flex;
  flex-direction: column;
  gap: 0;
  font-family: var(--font-family-ttnorms);
  font-size: var(--font-size);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-weight: 400;
  letter-spacing: var(--letter-spacing);
  line-height: var(--line-height);
  min-height: 100vh;
  position: relative;
  -webkit-tap-highlight-color: transparent;
  text-rendering: optimizeLegibility;
}

::selection {
  background: var(--color-steel-500);
}

a {
  color: var(--color-steel-500);
  /* font-weight: 700;
  text-decoration: underline; */
  text-decoration-thickness: from-font;
  transition: color var(--transition);
}

b,
strong {
  font-weight: 700;
}

i,
em {
  font-style: italic;
}

img,
source,
video {
  height: auto;
  max-width: 100%;
  width: 100%;
}

@media (hover: hover) {
  a {
    transition: color var(--transition);
  }

  a:hover,
  a:focus-visible {
    color: var(--color-blue-hover);
  }
}

/* Keyboard / AT: visible ring (WCAG 2.4.7). Mouse focus: no outline (see :focus-visible). */
:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 3px solid var(--color-focus, var(--color-teal-400, #00b3a6));
  outline-offset: 3px;
}

@supports (-webkit-touch-callout: none) {
  body {
    min-height: -webkit-fill-available;
  }
}
}
@layer theme{
@layer theme {
  :root {
    color-scheme: light;
    /* COLOUR DEFINITIONS */
    /* Copper */
    --lch-copper-50: 96% 0.02 38.9;
    --color-copper-50: oklch(var(--lch-copper-50));
    --lch-copper-100: 92% 0.04 38.9;
    --color-copper-100: oklch(var(--lch-copper-100));
    --lch-copper-200: 84% 0.08 38.9;
    --color-copper-200: oklch(var(--lch-copper-200));
    --lch-copper-300: 76% 0.12 38.9;
    --color-copper-300: oklch(var(--lch-copper-300));
    --lch-copper-400: 70% 0.15 38.9;
    --color-copper-400: oklch(var(--lch-copper-400));
    --lch-copper-500: 64% 0.18 38.9; /* base */
    --color-copper-500: oklch(var(--lch-copper-500));
    --lch-copper-600: 56% 0.16 38.9;
    --color-copper-600: oklch(var(--lch-copper-600));
    --lch-copper-700: 46% 0.14 38.9;
    --color-copper-700: oklch(var(--lch-copper-700));
    --lch-copper-800: 36% 0.11 38.9;
    --color-copper-800: oklch(var(--lch-copper-800));
    --lch-copper-900: 26% 0.08 38.9;
    --color-copper-900: oklch(var(--lch-copper-900));
    --lch-copper-950: 16% 0.04 38.9;
    --color-copper-950: oklch(var(--lch-copper-950));

    /* Rose */
    --lch-rose-50: 96% 0.02 24;
    --color-rose-50: oklch(var(--lch-rose-50));
    --lch-rose-100: 92% 0.05 24;
    --color-rose-100: oklch(var(--lch-rose-100));
    --lch-rose-200: 84% 0.1 24;
    --color-rose-200: oklch(var(--lch-rose-200));
    --lch-rose-300: 76% 0.15 24;
    --color-rose-300: oklch(var(--lch-rose-300));
    --lch-rose-400: 68% 0.18 24;
    --color-rose-400: oklch(var(--lch-rose-400));
    --lch-rose-500: 61% 0.22 24; /* base */
    --color-rose-500: oklch(var(--lch-rose-500));
    --lch-rose-600: 53% 0.2 24;
    --color-rose-600: oklch(var(--lch-rose-600));
    --lch-rose-700: 43% 0.16 24;
    --color-rose-700: oklch(var(--lch-rose-700));
    --lch-rose-800: 33% 0.12 24;
    --color-rose-800: oklch(var(--lch-rose-800));
    --lch-rose-900: 23% 0.08 24;
    --color-rose-900: oklch(var(--lch-rose-900));
    --lch-rose-950: 15% 0.04 24;
    --color-rose-950: oklch(var(--lch-rose-950));

    /* Magenta */
    --lch-magenta-50: 96% 0.02 355.87;
    --color-magenta-50: oklch(var(--lch-magenta-50));
    --lch-magenta-100: 92% 0.05 355.87;
    --color-magenta-100: oklch(var(--lch-magenta-100));
    --lch-magenta-200: 84% 0.1 355.87;
    --color-magenta-200: oklch(var(--lch-magenta-200));
    --lch-magenta-300: 76% 0.15 355.87;
    --color-magenta-300: oklch(var(--lch-magenta-300));
    --lch-magenta-400: 69% 0.19 355.87;
    --color-magenta-400: oklch(var(--lch-magenta-400));
    --lch-magenta-500: 62% 0.23 355.87; /* base */
    --color-magenta-500: oklch(var(--lch-magenta-500));
    --lch-magenta-600: 54% 0.21 355.87;
    --color-magenta-600: oklch(var(--lch-magenta-600));
    --lch-magenta-700: 44% 0.17 355.87;
    --color-magenta-700: oklch(var(--lch-magenta-700));
    --lch-magenta-800: 34% 0.13 355.87;
    --color-magenta-800: oklch(var(--lch-magenta-800));
    --lch-magenta-900: 24% 0.09 355.87;
    --color-magenta-900: oklch(var(--lch-magenta-900));
    --lch-magenta-950: 15% 0.05 355.87;
    --color-magenta-950: oklch(var(--lch-magenta-950));

    /* Violet */
    --lch-violet-50: 95% 0.02 321.58;
    --color-violet-50: oklch(var(--lch-violet-50));
    --lch-violet-100: 90% 0.04 321.58;
    --color-violet-100: oklch(var(--lch-violet-100));
    --lch-violet-200: 80% 0.08 321.58;
    --color-violet-200: oklch(var(--lch-violet-200));
    --lch-violet-300: 70% 0.11 321.58;
    --color-violet-300: oklch(var(--lch-violet-300));
    --lch-violet-400: 59% 0.13 321.58;
    --color-violet-400: oklch(var(--lch-violet-400));
    --lch-violet-500: 48% 0.16 321.58; /* base */
    --color-violet-500: oklch(var(--lch-violet-500));
    --lch-violet-600: 42% 0.14 321.58;
    --color-violet-600: oklch(var(--lch-violet-600));
    --lch-violet-700: 34% 0.12 321.58;
    --color-violet-700: oklch(var(--lch-violet-700));
    --lch-violet-800: 26% 0.09 321.58;
    --color-violet-800: oklch(var(--lch-violet-800));
    --lch-violet-900: 18% 0.06 321.58;
    --color-violet-900: oklch(var(--lch-violet-900));
    --lch-violet-950: 12% 0.03 321.58;
    --color-violet-950: oklch(var(--lch-violet-950));

    /* Indigo */
    --lch-indigo-50: 94% 0.02 306.21;
    --color-indigo-50: oklch(var(--lch-indigo-50));
    --lch-indigo-100: 88% 0.03 306.21;
    --color-indigo-100: oklch(var(--lch-indigo-100));
    --lch-indigo-200: 76% 0.07 306.21;
    --color-indigo-200: oklch(var(--lch-indigo-200));
    --lch-indigo-300: 64% 0.1 306.21;
    --color-indigo-300: oklch(var(--lch-indigo-300));
    --lch-indigo-400: 52% 0.12 306.21;
    --color-indigo-400: oklch(var(--lch-indigo-400));
    --lch-indigo-500: 40% 0.14 306.21; /* base */
    --color-indigo-500: oklch(var(--lch-indigo-500));
    --lch-indigo-600: 35% 0.12 306.21;
    --color-indigo-600: oklch(var(--lch-indigo-600));
    --lch-indigo-700: 28% 0.1 306.21;
    --color-indigo-700: oklch(var(--lch-indigo-700));
    --lch-indigo-800: 21% 0.07 306.21;
    --color-indigo-800: oklch(var(--lch-indigo-800));
    --lch-indigo-900: 15% 0.05 306.21;
    --color-indigo-900: oklch(var(--lch-indigo-900));
    --lch-indigo-950: 10% 0.03 306.21;
    --color-indigo-950: oklch(var(--lch-indigo-950));

    /* Navy */
    --lch-navy-50: 94% 0.01 270.62;
    --color-navy-50: oklch(var(--lch-navy-50));
    --lch-navy-100: 88% 0.03 270.62;
    --color-navy-100: oklch(var(--lch-navy-100));
    --lch-navy-200: 76% 0.06 270.62;
    --color-navy-200: oklch(var(--lch-navy-200));
    --lch-navy-300: 64% 0.08 270.62;
    --color-navy-300: oklch(var(--lch-navy-300));
    --lch-navy-400: 52% 0.1 270.62;
    --color-navy-400: oklch(var(--lch-navy-400));
    --lch-navy-500: 40% 0.12 270.62; /* base */
    --color-navy-500: oklch(var(--lch-navy-500));
    --lch-navy-600: 35% 0.1 270.62;
    --color-navy-600: oklch(var(--lch-navy-600));
    --lch-navy-700: 28% 0.08 270.62;
    --color-navy-700: oklch(var(--lch-navy-700));
    --lch-navy-800: 21% 0.06 270.62;
    --color-navy-800: oklch(var(--lch-navy-800));
    --lch-navy-900: 15% 0.04 270.62;
    --color-navy-900: oklch(var(--lch-navy-900));
    --lch-navy-950: 10% 0.02 270.62;
    --color-navy-950: oklch(var(--lch-navy-950));

    /* Steel */
    --lch-steel-50: 95% 0.01 250;
    --color-steel-50: oklch(var(--lch-steel-50));
    --lch-steel-100: 90% 0.02 250;
    --color-steel-100: oklch(var(--lch-steel-100));
    --lch-steel-200: 80% 0.05 250;
    --color-steel-200: oklch(var(--lch-steel-200));
    --lch-steel-300: 70% 0.07 250;
    --color-steel-300: oklch(var(--lch-steel-300));
    --lch-steel-400: 60% 0.08 250;
    --color-steel-400: oklch(var(--lch-steel-400));
    --lch-steel-500: 50% 0.1 250; /* base */
    --color-steel-500: oklch(var(--lch-steel-500));
    --lch-steel-600: 44% 0.09 250;
    --color-steel-600: oklch(var(--lch-steel-600));
    --lch-steel-700: 36% 0.07 250;
    --color-steel-700: oklch(var(--lch-steel-700));
    --lch-steel-800: 28% 0.05 250;
    --color-steel-800: oklch(var(--lch-steel-800));
    --lch-steel-900: 20% 0.04 250;
    --color-steel-900: oklch(var(--lch-steel-900));
    --lch-steel-950: 13% 0.02 250;
    --color-steel-950: oklch(var(--lch-steel-950));

    /* Baby */
    --lch-baby-50: 97% 0.01 237.51;
    --color-baby-50: oklch(var(--lch-baby-50));
    --lch-baby-100: 94% 0.03 237.51;
    --color-baby-100: oklch(var(--lch-baby-100));
    --lch-baby-200: 88% 0.05 237.51;
    --color-baby-200: oklch(var(--lch-baby-200));
    --lch-baby-300: 82% 0.08 237.51;
    --color-baby-300: oklch(var(--lch-baby-300));
    --lch-baby-400: 77% 0.09 237.51;
    --color-baby-400: oklch(var(--lch-baby-400));
    --lch-baby-500: 73% 0.11 237.51; /* base */
    --color-baby-500: oklch(var(--lch-baby-500));
    --lch-baby-600: 64% 0.1 237.51;
    --color-baby-600: oklch(var(--lch-baby-600));
    --lch-baby-700: 52% 0.08 237.51;
    --color-baby-700: oklch(var(--lch-baby-700));
    --lch-baby-800: 40% 0.06 237.51;
    --color-baby-800: oklch(var(--lch-baby-800));
    --lch-baby-900: 28% 0.04 237.51;
    --color-baby-900: oklch(var(--lch-baby-900));
    --lch-baby-950: 18% 0.02 237.51;
    --color-baby-950: oklch(var(--lch-baby-950));

    /* Powder */
    --lch-powder-50: 98% 0.01 196.36;
    --color-powder-50: oklch(var(--lch-powder-50));
    --lch-powder-100: 95% 0.02 196.36;
    --color-powder-100: oklch(var(--lch-powder-100));
    --lch-powder-200: 90% 0.04 196.36;
    --color-powder-200: oklch(var(--lch-powder-200));
    --lch-powder-300: 85% 0.06 196.36;
    --color-powder-300: oklch(var(--lch-powder-300));
    --lch-powder-400: 81% 0.07 196.36;
    --color-powder-400: oklch(var(--lch-powder-400));
    --lch-powder-500: 78% 0.09 196.36; /* base */
    --color-powder-500: oklch(var(--lch-powder-500));
    --lch-powder-600: 68% 0.08 196.36;
    --color-powder-600: oklch(var(--lch-powder-600));
    --lch-powder-700: 56% 0.06 196.36;
    --color-powder-700: oklch(var(--lch-powder-700));
    --lch-powder-800: 44% 0.05 196.36;
    --color-powder-800: oklch(var(--lch-powder-800));
    --lch-powder-900: 32% 0.03 196.36;
    --color-powder-900: oklch(var(--lch-powder-900));
    --lch-powder-950: 22% 0.02 196.36;
    --color-powder-950: oklch(var(--lch-powder-950));

    /* Teal */
    --lch-teal-50: 96% 0.01 184.4;
    --color-teal-50: oklch(var(--lch-teal-50));
    --lch-teal-100: 92% 0.03 184.4;
    --color-teal-100: oklch(var(--lch-teal-100));
    --lch-teal-200: 84% 0.05 184.4;
    --color-teal-200: oklch(var(--lch-teal-200));
    --lch-teal-300: 76% 0.08 184.4;
    --color-teal-300: oklch(var(--lch-teal-300));
    --lch-teal-400: 70% 0.09 184.4;
    --color-teal-400: oklch(var(--lch-teal-400));
    --lch-teal-500: 65% 0.11 184.4; /* base */
    --color-teal-500: oklch(var(--lch-teal-500));
    --lch-teal-600: 57% 0.1 184.4;
    --color-teal-600: oklch(var(--lch-teal-600));
    --lch-teal-700: 47% 0.08 184.4;
    --color-teal-700: oklch(var(--lch-teal-700));
    --lch-teal-800: 37% 0.06 184.4;
    --color-teal-800: oklch(var(--lch-teal-800));
    --lch-teal-900: 27% 0.04 184.4;
    --color-teal-900: oklch(var(--lch-teal-900));
    --lch-teal-950: 17% 0.02 184.4;
    --color-teal-950: oklch(var(--lch-teal-950));

    /* Emerald */
    --lch-emerald-50: 96% 0.02 142.52;
    --color-emerald-50: oklch(var(--lch-emerald-50));
    --lch-emerald-100: 92% 0.04 142.52;
    --color-emerald-100: oklch(var(--lch-emerald-100));
    --lch-emerald-200: 84% 0.07 142.52;
    --color-emerald-200: oklch(var(--lch-emerald-200));
    --lch-emerald-300: 76% 0.1 142.52;
    --color-emerald-300: oklch(var(--lch-emerald-300));
    --lch-emerald-400: 69% 0.12 142.52;
    --color-emerald-400: oklch(var(--lch-emerald-400));
    --lch-emerald-500: 62% 0.15 142.52; /* base */
    --color-emerald-500: oklch(var(--lch-emerald-500));
    --lch-emerald-600: 54% 0.13 142.52;
    --color-emerald-600: oklch(var(--lch-emerald-600));
    --lch-emerald-700: 44% 0.11 142.52;
    --color-emerald-700: oklch(var(--lch-emerald-700));
    --lch-emerald-800: 34% 0.08 142.52;
    --color-emerald-800: oklch(var(--lch-emerald-800));
    --lch-emerald-900: 24% 0.06 142.52;
    --color-emerald-900: oklch(var(--lch-emerald-900));
    --lch-emerald-950: 15% 0.03 142.52;
    --color-emerald-950: oklch(var(--lch-emerald-950));

    /* Green */
    --lch-green-50: 97% 0.02 133.91;
    --color-green-50: oklch(var(--lch-green-50));
    --lch-green-100: 94% 0.04 133.91;
    --color-green-100: oklch(var(--lch-green-100));
    --lch-green-200: 88% 0.08 133.91;
    --color-green-200: oklch(var(--lch-green-200));
    --lch-green-300: 82% 0.12 133.91;
    --color-green-300: oklch(var(--lch-green-300));
    --lch-green-400: 77% 0.14 133.91;
    --color-green-400: oklch(var(--lch-green-400));
    --lch-green-500: 72% 0.17 133.91; /* base */
    --color-green-500: oklch(var(--lch-green-500));
    --lch-green-600: 63% 0.15 133.91;
    --color-green-600: oklch(var(--lch-green-600));
    --lch-green-700: 51% 0.12 133.91;
    --color-green-700: oklch(var(--lch-green-700));
    --lch-green-800: 39% 0.09 133.91;
    --color-green-800: oklch(var(--lch-green-800));
    --lch-green-900: 27% 0.06 133.91;
    --color-green-900: oklch(var(--lch-green-900));
    --lch-green-950: 17% 0.03 133.91;
    --color-green-950: oklch(var(--lch-green-950));

    /* Lime */
    --lch-lime-50: 98% 0.02 116.18;
    --color-lime-50: oklch(var(--lch-lime-50));
    --lch-lime-100: 95% 0.04 116.18;
    --color-lime-100: oklch(var(--lch-lime-100));
    --lch-lime-200: 91% 0.08 116.18;
    --color-lime-200: oklch(var(--lch-lime-200));
    --lch-lime-300: 87% 0.12 116.18;
    --color-lime-300: oklch(var(--lch-lime-300));
    --lch-lime-400: 84% 0.14 116.18;
    --color-lime-400: oklch(var(--lch-lime-400));
    --lch-lime-500: 81% 0.17 116.18; /* base */
    --color-lime-500: oklch(var(--lch-lime-500));
    --lch-lime-600: 71% 0.15 116.18;
    --color-lime-600: oklch(var(--lch-lime-600));
    --lch-lime-700: 58% 0.12 116.18;
    --color-lime-700: oklch(var(--lch-lime-700));
    --lch-lime-800: 45% 0.09 116.18;
    --color-lime-800: oklch(var(--lch-lime-800));
    --lch-lime-900: 32% 0.06 116.18;
    --color-lime-900: oklch(var(--lch-lime-900));
    --lch-lime-950: 22% 0.03 116.18;
    --color-lime-950: oklch(var(--lch-lime-950));

    /* Yellow */
    --lch-yellow-50: 98% 0.02 92.15;
    --color-yellow-50: oklch(var(--lch-yellow-50));
    --lch-yellow-100: 96% 0.04 92.15;
    --color-yellow-100: oklch(var(--lch-yellow-100));
    --lch-yellow-200: 93% 0.08 92.15;
    --color-yellow-200: oklch(var(--lch-yellow-200));
    --lch-yellow-300: 90% 0.12 92.15;
    --color-yellow-300: oklch(var(--lch-yellow-300));
    --lch-yellow-400: 88% 0.15 92.15;
    --color-yellow-400: oklch(var(--lch-yellow-400));
    --lch-yellow-500: 87% 0.18 92.15; /* base */
    --color-yellow-500: oklch(var(--lch-yellow-500));
    --lch-yellow-600: 76% 0.16 92.15;
    --color-yellow-600: oklch(var(--lch-yellow-600));
    --lch-yellow-700: 62% 0.13 92.15;
    --color-yellow-700: oklch(var(--lch-yellow-700));
    --lch-yellow-800: 48% 0.1 92.15;
    --color-yellow-800: oklch(var(--lch-yellow-800));
    --lch-yellow-900: 34% 0.07 92.15;
    --color-yellow-900: oklch(var(--lch-yellow-900));
    --lch-yellow-950: 24% 0.04 92.15;
    --color-yellow-950: oklch(var(--lch-yellow-950));

    /* Amber */
    --lch-amber-50: 98% 0.02 79.55;
    --color-amber-50: oklch(var(--lch-amber-50));
    --lch-amber-100: 95% 0.04 79.55;
    --color-amber-100: oklch(var(--lch-amber-100));
    --lch-amber-200: 90% 0.07 79.55;
    --color-amber-200: oklch(var(--lch-amber-200));
    --lch-amber-300: 86% 0.11 79.55;
    --color-amber-300: oklch(var(--lch-amber-300));
    --lch-amber-400: 83% 0.13 79.55;
    --color-amber-400: oklch(var(--lch-amber-400));
    --lch-amber-500: 80% 0.15 79.55; /* base */
    --color-amber-500: oklch(var(--lch-amber-500));
    --lch-amber-600: 70% 0.13 79.55;
    --color-amber-600: oklch(var(--lch-amber-600));
    --lch-amber-700: 57% 0.11 79.55;
    --color-amber-700: oklch(var(--lch-amber-700));
    --lch-amber-800: 44% 0.08 79.55;
    --color-amber-800: oklch(var(--lch-amber-800));
    --lch-amber-900: 31% 0.06 79.55;
    --color-amber-900: oklch(var(--lch-amber-900));
    --lch-amber-950: 21% 0.03 79.55;
    --color-amber-950: oklch(var(--lch-amber-950));

    /* Orange */
    --lch-orange-50: 97% 0.02 59.94;
    --color-orange-50: oklch(var(--lch-orange-50));
    --lch-orange-100: 94% 0.04 59.94;
    --color-orange-100: oklch(var(--lch-orange-100));
    --lch-orange-200: 88% 0.07 59.94;
    --color-orange-200: oklch(var(--lch-orange-200));
    --lch-orange-300: 82% 0.11 59.94;
    --color-orange-300: oklch(var(--lch-orange-300));
    --lch-orange-400: 77% 0.13 59.94;
    --color-orange-400: oklch(var(--lch-orange-400));
    --lch-orange-500: 72% 0.16 59.94; /* base */
    --color-orange-500: oklch(var(--lch-orange-500));
    --lch-orange-600: 63% 0.14 59.94;
    --color-orange-600: oklch(var(--lch-orange-600));
    --lch-orange-700: 51% 0.12 59.94;
    --color-orange-700: oklch(var(--lch-orange-700));
    --lch-orange-800: 39% 0.09 59.94;
    --color-orange-800: oklch(var(--lch-orange-800));
    --lch-orange-900: 27% 0.06 59.94;
    --color-orange-900: oklch(var(--lch-orange-900));
    --lch-orange-950: 17% 0.03 59.94;
    --color-orange-950: oklch(var(--lch-orange-950));

    --lch-black: 0% 0 0;
    --lch-white: 100% 0 0;

    /* Semantic UI tokens (light mode defaults) */
    --color-canvas: lch(96.46% 3.65 74.71);
    --color-canvas-light: oklch(var(--lch-steel-50));
    --color-ink: lch(12.246% 1.433 1.245);
    --color-grey: lch(58.72% 2.42 85.34);
    --color-palegrey: lch(92.35% 0 0);
    --color-surface-page: var(--color-canvas);
    --color-text-page: var(--color-ink);
    --color-text-muted: oklch(var(--lch-navy-300));
    --color-text-accent: oklch(var(--lch-navy-500));
    --color-blue-hover: oklch(var(--lch-teal-600));
    --color-focus: oklch(var(--lch-teal-500));
    --color-border-overlay: rgba(0, 0, 0, 0.1);
    --color-nav-overlay: var(--color-navy-500);
    --color-office-map-fill: var(--color-grey);
    --color-office-map-fill-light: var(--color-steel-50);
    --color-office-map-fill-dark: var(--color-steel-500);

    --font-family-abril: "abril-text", serif;
    --font-family-ttnorms: "TT Norms Pro", Sans-Serif;

    /* @link https://utopia.fyi/type/calculator?c=360,18,1.25,2000,24,1.333,6,2,1240&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
    /* Slightly smaller than Utopia defaults for meta / small text (steps above --fs-0 in this file) */
    --fs--2: clamp(0.68rem, 0.651rem + 0.1138cqi, 0.794rem);
    --fs--1: clamp(0.85rem, 0.799rem + 0.2066cqi, 1.058rem);
    --fs-0: clamp(1.125rem, 1.0427rem + 0.3659cqi, 1.5rem);
    --fs-1: clamp(1.4063rem, 1.276rem + 0.5788cqi, 1.9995rem);
    --fs-2: clamp(1.7578rem, 1.5586rem + 0.8854cqi, 2.6653rem);
    --fs-3: clamp(2.1973rem, 1.8997rem + 1.3226cqi, 3.5529rem);
    --fs-4: clamp(2.7466rem, 2.3099rem + 1.9409cqi, 4.736rem);
    --fs-5: clamp(3.4332rem, 2.8011rem + 2.8096cqi, 6.3131rem);
    --fs-6: clamp(4.2915rem, 3.3863rem + 4.0232cqi, 8.4153rem);

    --letter-spacing: -0.01em;
    --letter-spacing-tight: -0.015em;
    --letter-spacing-tighter: -0.0175em;
    --letter-spacing-loose: 0.005em;
    --letter-spacing-looser: 0.0075em;

    --line-height: 1.4;
    --line-height-tight: 1.3;
    --line-height-tighter: 1.2;
    --line-height-tightest: 1.1;

    --space-3xs: clamp(0.25rem, 0.2378rem + 0.0543vw, 0.3125rem);
    --space-2xs: clamp(0.5rem, 0.4755rem + 0.1087vw, 0.625rem);
    --space-xs: clamp(0.75rem, 0.7255rem + 0.1087vw, 0.875rem);
    --space-s: clamp(1rem, 0.9633rem + 0.163vw, 1.1875rem);
    --space-m: clamp(1.5rem, 1.4389rem + 0.2717vw, 1.8125rem);
    --space-l: clamp(2rem, 1.9266rem + 0.3261vw, 2.375rem);
    --space-xl: clamp(3rem, 2.8899rem + 0.4891vw, 3.5625rem);
    --space-2xl: clamp(4rem, 3.8533rem + 0.6522vw, 4.75rem);
    --space-3xl: clamp(6rem, 5.7799rem + 0.9783vw, 7.125rem);
    --space-4xl: clamp(8rem, 7.7065rem + 1.3043vw, 9.5rem);

    /* Max line length / alignment reference; slightly narrower than 1920 for readability */
    --content-width: 1720px;
    --content-width-padding: max(4vw, 50vw - var(--content-width) / 2.5);

    --content-width-margin: 10vw;
    --content-width-margin-mobile: 4vw;

    --transition: 0.25s cubic-bezier(0.37, 1, 0.74, 1);

    --layout-fluid-min: 35ch;
    --layout-default-repeat: 3;
    --layout-default-gap: 2vmax;

    --desktop-nav-height: 8rem;

    --box-shadow:
      0 0 0 1px oklch(var(--lch-black) / 0.075),
      0 0.2em 0.1em -0.2em oklch(var(--lch-black) / 0.075),
      0 0.4em 0.8em -0.4em oklch(var(--lch-black) / 0.075),
      0 0.8em 1.6em -1.2em oklch(var(--lch-black) / 0.075);
    --box-shadow-pill:
      0 0 0 1px oklch(var(--lch-black) / 0.0875),
      0 0.1em 0.2em -0.1em oklch(var(--lch-black) / 0.05),
      0 0.2em 0.4em -0.2em oklch(var(--lch-black) / 0.05),
      0 0.3em 0.6em -0.3em oklch(var(--lch-black) / 0.05);
    --box-shadow-pill-hover:
      0 0 0 1px oklch(var(--lch-black) / 0.125),
      0 0.1em 0.2em -0.1em oklch(var(--lch-black) / 0.0875),
      0 0.2em 0.4em -0.2em oklch(var(--lch-black) / 0.0875),
      0 0.3em 0.6em -0.3em oklch(var(--lch-black) / 0.0875);
  }

  @media (prefers-color-scheme: dark) {
    :root[data-color-mode="system"] {
      color-scheme: dark;
      --color-canvas-light: oklch(var(--lch-navy-800));
      --color-surface-page: oklch(var(--lch-navy-900));
      --color-text-page: oklch(var(--lch-steel-50));
      --color-text-muted: oklch(var(--lch-steel-200));
      --color-text-accent: oklch(var(--lch-baby-300));
      --color-blue-hover: oklch(var(--lch-baby-300));
      --color-focus: oklch(var(--lch-teal-300));
      --color-border-overlay: rgba(255, 255, 255, 0.14);
      --color-nav-overlay: oklch(var(--lch-navy-800));
      --color-office-map-fill: oklch(var(--lch-navy-700));
      --color-office-map-fill-light: oklch(var(--lch-steel-300));
      --color-office-map-fill-dark: oklch(var(--lch-navy-700));
      --box-shadow:
        0 0 0 1px oklch(var(--lch-white) / 0.1),
        0 0.2em 0.1em -0.2em oklch(var(--lch-black) / 0.45),
        0 0.4em 0.8em -0.4em oklch(var(--lch-black) / 0.45),
        0 0.8em 1.6em -1.2em oklch(var(--lch-black) / 0.45);
      --box-shadow-pill:
        0 0 0 1px oklch(var(--lch-white) / 0.15),
        0 0.1em 0.2em -0.1em oklch(var(--lch-black) / 0.35),
        0 0.2em 0.4em -0.2em oklch(var(--lch-black) / 0.35),
        0 0.3em 0.6em -0.3em oklch(var(--lch-black) / 0.35);
      --box-shadow-pill-hover:
        0 0 0 1px oklch(var(--lch-white) / 0.24),
        0 0.1em 0.2em -0.1em oklch(var(--lch-black) / 0.45),
        0 0.2em 0.4em -0.2em oklch(var(--lch-black) / 0.45),
        0 0.3em 0.6em -0.3em oklch(var(--lch-black) / 0.45);
    }
  }

  :root[data-color-mode="light"] {
    color-scheme: light;
    --color-canvas: lch(96.46% 3.65 74.71);
    --color-canvas-light: oklch(var(--lch-steel-50));
    --color-ink: lch(12.246% 1.433 1.245);
    --color-surface-page: var(--color-canvas);
    --color-text-page: var(--color-ink);
    --color-text-muted: oklch(var(--lch-navy-300));
    --color-text-accent: oklch(var(--lch-navy-500));
    --color-blue-hover: oklch(var(--lch-teal-600));
    --color-focus: oklch(var(--lch-teal-500));
    --color-border-overlay: rgba(0, 0, 0, 0.1);
    --color-nav-overlay: var(--color-navy-500);
    --color-office-map-fill: #d3d3d3;
    --color-office-map-fill-light: var(--color-steel-50);
    --color-office-map-fill-dark: var(--color-steel-500);
  }

  :root[data-color-mode="dark"] {
    color-scheme: dark;
    --color-canvas-light: oklch(var(--lch-navy-800));
    --color-surface-page: oklch(var(--lch-navy-900));
    --color-text-page: oklch(var(--lch-steel-50));
    --color-text-muted: oklch(var(--lch-steel-200));
    --color-text-accent: oklch(var(--lch-baby-300));
    --color-blue-hover: oklch(var(--lch-baby-300));
    --color-focus: oklch(var(--lch-teal-300));
    --color-border-overlay: rgba(255, 255, 255, 0.14);
    --color-nav-overlay: oklch(var(--lch-navy-800));
    --color-office-map-fill: oklch(var(--lch-navy-700));
    --color-office-map-fill-light: oklch(var(--lch-steel-300));
    --color-office-map-fill-dark: oklch(var(--lch-navy-700));
  }
}
}
@layer colour{
@layer colour {
  /* Text color utilities */
  .text-copper,
  a.text-copper {
    color: var(--color-copper-500);
  }
  .text-rose,
  a.text-rose {
    color: var(--color-rose-500);
  }
  .text-magenta,
  a.text-magenta {
    color: var(--color-magenta-500);
  }
  .text-violet,
  a.text-violet {
    color: var(--color-violet-500);
  }
  .text-indigo,
  a.text-indigo {
    color: var(--color-indigo-500);
  }
  .text-navy,
  a.text-navy {
    color: var(--color-navy-500);
  }
  .text-steel,
  a.text-steel {
    color: var(--color-steel-500);
  }
  .text-baby,
  a.text-baby {
    color: var(--color-baby-500);
  }
  .text-powder,
  a.text-powder {
    color: var(--color-powder-500);
  }
  .text-teal,
  a.text-teal {
    color: var(--color-teal-500);
  }
  .text-emerald,
  a.text-emerald {
    color: var(--color-emerald-500);
  }
  .text-green,
  a.text-green {
    color: var(--color-green-500);
  }
  .text-lime,
  a.text-lime {
    color: var(--color-lime-500);
  }
  .text-yellow,
  a.text-yellow {
    color: var(--color-yellow-500);
  }
  .text-amber,
  a.text-amber {
    color: var(--color-amber-500);
  }
  .text-orange,
  a.text-orange {
    color: var(--color-orange-500);
  }
  .text-canvas,
  a.text-canvas {
    color: var(--color-canvas);
  }
  .text-ink,
  a.text-ink {
    color: var(--color-ink);
  }
  .text-white,
  a.text-white {
    color: #fff;
  }

  /* Background color utilities */
  .bg-copper {
    background-color: var(--color-copper-500);
  }
  .bg-rose {
    background-color: var(--color-rose-500);
  }
  .bg-magenta {
    background-color: var(--color-magenta-500);
  }
  .bg-violet {
    background-color: var(--color-violet-500);
  }
  .bg-indigo {
    background-color: var(--color-indigo-500);
  }
  .bg-navy {
    background-color: var(--color-navy-500);
  }
  .bg-steel {
    background-color: var(--color-steel-500);
  }
  .bg-steel-50 {
    background-color: var(--color-steel-50);
  }
  .bg-steel-100 {
    background-color: var(--color-steel-100);
  }
  .bg-palegrey {
    background-color: var(--color-palegrey);
  }
  .bg-baby {
    background-color: var(--color-baby-500);
  }
  .bg-powder {
    background-color: var(--color-powder-500);
  }
  .bg-teal {
    background-color: var(--color-teal-500);
  }
  .bg-emerald {
    background-color: var(--color-emerald-500);
  }
  .bg-green {
    background-color: var(--color-green-500);
  }
  .bg-lime {
    background-color: var(--color-lime-500);
  }
  .bg-yellow {
    background-color: var(--color-yellow-500);
  }
  .bg-amber {
    background-color: var(--color-amber-500);
  }
  .bg-orange {
    background-color: var(--color-orange-500);
  }
  .bg-canvas {
    background-color: var(--color-canvas);
  }
  .bg-white {
    background-color: #fff;
  }
  .bg-ink {
    background-color: var(--color-ink);
  }

  /*
   * Links on navy / emerald / steel sections with canvas body copy:
   * lighter tints stay distinct from text-canvas while staying readable on -500 surfaces.
   */
  .bg-navy.text-canvas a:not(.text-white),
  .bg-navy .text-canvas a:not(.text-white) {
    color: var(--color-navy-200);
  }

  .bg-emerald.text-canvas a:not(.text-white),
  .bg-emerald .text-canvas a:not(.text-white) {
    color: var(--color-emerald-200);
  }

  .bg-green.text-canvas a:not(.text-white),
  .bg-green .text-canvas a:not(.text-white) {
    color: var(--color-green-200);
  }

  .bg-steel.text-canvas a:not(.text-white),
  .bg-steel .text-canvas a:not(.text-white) {
    color: var(--color-steel-200);
  }
}
}
@layer layout{
/* https://www.smashingmagazine.com/2024/05/modern-css-layouts-no-framework-needed/ */
@layer layout {
  .repeating-grid {
    --_grid-repeat: var(--grid-repeat, var(--layout-default-repeat));
    --_repeating-grid-gap: var(--grid-gap, var(--layout-default-gap));

    display: grid;
    grid-template-columns: repeat(var(--_grid-repeat), 1fr);
    gap: var(--_repeating-grid-gap);
  }

  .repeating-flex {
    --_flex-repeat: var(--flex-repeat, var(--layout-default-repeat));
    --_repeating-flex-gap: var(--flex-gap, var(--layout-default-gap));

    --_gap-count: calc(var(--_flex-repeat) - 1);
    --_gap-repeater-calc: calc(
      var(--_repeating-flex-gap) / var(--_flex-repeat) * var(--_gap-count)
    );

    display: flex;
    flex-wrap: wrap;
    gap: var(--_repeating-flex-gap);

    > * {
      flex: 1 1 calc((100% / var(--_flex-repeat)) - var(--_gap-repeater-calc));
    }
  }

  .fluid-grid {
    --_fluid-grid-min: var(--fluid-grid-min, var(--layout-fluid-min));
    --_fluid-grid-gap: var(--grid-gap, var(--layout-default-gap));

    display: grid;
    grid-template-columns: repeat(
      auto-fit,
      minmax(min(var(--_fluid-grid-min), 100%), 1fr)
    );
    gap: var(--_fluid-grid-gap);
  }

  .fluid-flex {
    --_fluid-flex-min: var(--fluid-flex-min, var(--layout-fluid-min));
    --_fluid-flex-gap: var(--flex-gap, var(--layout-default-gap));

    display: flex;
    flex-wrap: wrap;
    gap: var(--_fluid-flex-gap);

    > * {
      flex: 1 1 var(--_fluid-flex-min);
    }
  }

  .subgrid-rows {
    --subgrid-gap: 1em;
    &:has(> :nth-child(1):last-child) {
      --subgrid-rows: 1;
    }
    &:has(> :nth-child(2):last-child) {
      --subgrid-rows: 2;
    }
    &:has(> :nth-child(3):last-child) {
      --subgrid-rows: 3;
    }
    &:has(> :nth-child(4):last-child) {
      --subgrid-rows: 4;
    }
    &:has(> :nth-child(5):last-child) {
      --subgrid-rows: 5;
    }
    &:has(> :nth-child(6):last-child) {
      --subgrid-rows: 6;
    }

    > * {
      display: grid;
      gap: var(--subgrid-gap, 0);
      grid-row: auto / span var(--subgrid-rows, 5);
      grid-template-rows: subgrid;
    }
  }
  :is(
    .fluid-grid:not(.subgrid-rows),
    .repeating-grid:not(.subgrid-rows),
    .repeating-flex,
    .fluid-flex
  ) {
    > * {
      container: var(--grid-item-container, grid-item) / inline-size;
    }
  }
  /* Spacing utilities - Padding */
  /* All sides */
  .p-3xs {
    padding: var(--space-3xs);
  }
  .p-2xs {
    padding: var(--space-2xs);
  }
  .p-xs {
    padding: var(--space-xs);
  }
  .p-s {
    padding: var(--space-s);
  }
  .p-m {
    padding: var(--space-m);
  }
  .p-l {
    padding: var(--space-l);
  }
  .p-xl {
    padding: var(--space-xl);
  }
  .p-2xl {
    padding: var(--space-2xl);
  }
  .p-3xl {
    padding: var(--space-3xl);
  }
  .p-4xl {
    padding: var(--space-4xl);
  }

  /* Horizontal (left + right) */
  .px-3xs {
    padding-left: var(--space-3xs);
    padding-right: var(--space-3xs);
  }
  .px-2xs {
    padding-left: var(--space-2xs);
    padding-right: var(--space-2xs);
  }
  .px-xs {
    padding-left: var(--space-xs);
    padding-right: var(--space-xs);
  }
  .px-s {
    padding-left: var(--space-s);
    padding-right: var(--space-s);
  }
  .px-m {
    padding-left: var(--space-m);
    padding-right: var(--space-m);
  }
  .px-l {
    padding-left: var(--space-l);
    padding-right: var(--space-l);
  }
  .px-xl {
    padding-left: var(--space-xl);
    padding-right: var(--space-xl);
  }
  .px-2xl {
    padding-left: var(--space-2xl);
    padding-right: var(--space-2xl);
  }
  .px-3xl {
    padding-left: var(--space-3xl);
    padding-right: var(--space-3xl);
  }
  .px-4xl {
    padding-left: var(--space-4xl);
    padding-right: var(--space-4xl);
  }

  /* Vertical (top + bottom) */
  .py-3xs {
    padding-top: var(--space-3xs);
    padding-bottom: var(--space-3xs);
  }
  .py-2xs {
    padding-top: var(--space-2xs);
    padding-bottom: var(--space-2xs);
  }
  .py-xs {
    padding-top: var(--space-xs);
    padding-bottom: var(--space-xs);
  }
  .py-s {
    padding-top: var(--space-s);
    padding-bottom: var(--space-s);
  }
  .py-m {
    padding-top: var(--space-m);
    padding-bottom: var(--space-m);
  }
  .py-l {
    padding-top: var(--space-l);
    padding-bottom: var(--space-l);
  }
  .py-xl {
    padding-top: var(--space-xl);
    padding-bottom: var(--space-xl);
  }
  .py-2xl {
    padding-top: var(--space-2xl);
    padding-bottom: var(--space-2xl);
  }
  .py-3xl {
    padding-top: var(--space-3xl);
    padding-bottom: var(--space-3xl);
  }
  .py-4xl {
    padding-top: var(--space-4xl);
    padding-bottom: var(--space-4xl);
  }

  /* Individual sides */
  .pt-3xs {
    padding-top: var(--space-3xs);
  }
  .pt-2xs {
    padding-top: var(--space-2xs);
  }
  .pt-xs {
    padding-top: var(--space-xs);
  }
  .pt-s {
    padding-top: var(--space-s);
  }
  .pt-m {
    padding-top: var(--space-m);
  }
  .pt-l {
    padding-top: var(--space-l);
  }
  .pt-xl {
    padding-top: var(--space-xl);
  }
  .pt-2xl {
    padding-top: var(--space-2xl);
  }
  .pt-3xl {
    padding-top: var(--space-3xl);
  }
  .pt-4xl {
    padding-top: var(--space-4xl);
  }

  .pr-3xs {
    padding-right: var(--space-3xs);
  }
  .pr-2xs {
    padding-right: var(--space-2xs);
  }
  .pr-xs {
    padding-right: var(--space-xs);
  }
  .pr-s {
    padding-right: var(--space-s);
  }
  .pr-m {
    padding-right: var(--space-m);
  }
  .pr-l {
    padding-right: var(--space-l);
  }
  .pr-xl {
    padding-right: var(--space-xl);
  }
  .pr-2xl {
    padding-right: var(--space-2xl);
  }
  .pr-3xl {
    padding-right: var(--space-3xl);
  }
  .pr-4xl {
    padding-right: var(--space-4xl);
  }

  .pb-3xs {
    padding-bottom: var(--space-3xs);
  }
  .pb-2xs {
    padding-bottom: var(--space-2xs);
  }
  .pb-xs {
    padding-bottom: var(--space-xs);
  }
  .pb-s {
    padding-bottom: var(--space-s);
  }
  .pb-m {
    padding-bottom: var(--space-m);
  }
  .pb-l {
    padding-bottom: var(--space-l);
  }
  .pb-xl {
    padding-bottom: var(--space-xl);
  }
  .pb-2xl {
    padding-bottom: var(--space-2xl);
  }
  .pb-3xl {
    padding-bottom: var(--space-3xl);
  }
  .pb-4xl {
    padding-bottom: var(--space-4xl);
  }

  .pl-3xs {
    padding-left: var(--space-3xs);
  }
  .pl-2xs {
    padding-left: var(--space-2xs);
  }
  .pl-xs {
    padding-left: var(--space-xs);
  }
  .pl-s {
    padding-left: var(--space-s);
  }
  .pl-m {
    padding-left: var(--space-m);
  }
  .pl-l {
    padding-left: var(--space-l);
  }
  .pl-xl {
    padding-left: var(--space-xl);
  }
  .pl-2xl {
    padding-left: var(--space-2xl);
  }
  .pl-3xl {
    padding-left: var(--space-3xl);
  }
  .pl-4xl {
    padding-left: var(--space-4xl);
  }

  /* Mobile-only padding utilities - only apply on small viewports */
  /* All sides */
  @media (max-width: 767px) {
    .p-mobile-0 {
      padding: 0;
    }
    .p-mobile-3xs {
      padding: var(--space-3xs);
    }
    .p-mobile-2xs {
      padding: var(--space-2xs);
    }
    .p-mobile-xs {
      padding: var(--space-xs);
    }
    .p-mobile-s {
      padding: var(--space-s);
    }
    .p-mobile-m {
      padding: var(--space-m);
    }
    .p-mobile-l {
      padding: var(--space-l);
    }
    .p-mobile-xl {
      padding: var(--space-xl);
    }
    .p-mobile-2xl {
      padding: var(--space-2xl);
    }
    .p-mobile-3xl {
      padding: var(--space-3xl);
    }
    .p-mobile-4xl {
      padding: var(--space-4xl);
    }

    /* Horizontal (left + right) */
    .px-mobile-0 {
      padding-left: 0;
      padding-right: 0;
    }
    .px-mobile-3xs {
      padding-left: var(--space-3xs);
      padding-right: var(--space-3xs);
    }
    .px-mobile-2xs {
      padding-left: var(--space-2xs);
      padding-right: var(--space-2xs);
    }
    .px-mobile-xs {
      padding-left: var(--space-xs);
      padding-right: var(--space-xs);
    }
    .px-mobile-s {
      padding-left: var(--space-s);
      padding-right: var(--space-s);
    }
    .px-mobile-m {
      padding-left: var(--space-m);
      padding-right: var(--space-m);
    }
    .px-mobile-l {
      padding-left: var(--space-l);
      padding-right: var(--space-l);
    }
    .px-mobile-xl {
      padding-left: var(--space-xl);
      padding-right: var(--space-xl);
    }
    .px-mobile-2xl {
      padding-left: var(--space-2xl);
      padding-right: var(--space-2xl);
    }
    .px-mobile-3xl {
      padding-left: var(--space-3xl);
      padding-right: var(--space-3xl);
    }
    .px-mobile-4xl {
      padding-left: var(--space-4xl);
      padding-right: var(--space-4xl);
    }

    /* Vertical (top + bottom) */
    .py-mobile-0 {
      padding-top: 0;
      padding-bottom: 0;
    }
    .py-mobile-3xs {
      padding-top: var(--space-3xs);
      padding-bottom: var(--space-3xs);
    }
    .py-mobile-2xs {
      padding-top: var(--space-2xs);
      padding-bottom: var(--space-2xs);
    }
    .py-mobile-xs {
      padding-top: var(--space-xs);
      padding-bottom: var(--space-xs);
    }
    .py-mobile-s {
      padding-top: var(--space-s);
      padding-bottom: var(--space-s);
    }
    .py-mobile-m {
      padding-top: var(--space-m);
      padding-bottom: var(--space-m);
    }
    .py-mobile-l {
      padding-top: var(--space-l);
      padding-bottom: var(--space-l);
    }
    .py-mobile-xl {
      padding-top: var(--space-xl);
      padding-bottom: var(--space-xl);
    }
    .py-mobile-2xl {
      padding-top: var(--space-2xl);
      padding-bottom: var(--space-2xl);
    }
    .py-mobile-3xl {
      padding-top: var(--space-3xl);
      padding-bottom: var(--space-3xl);
    }
    .py-mobile-4xl {
      padding-top: var(--space-4xl);
      padding-bottom: var(--space-4xl);
    }

    /* Individual sides */
    .pt-mobile-0 {
      padding-top: 0;
    }
    .pt-mobile-3xs {
      padding-top: var(--space-3xs);
    }
    .pt-mobile-2xs {
      padding-top: var(--space-2xs);
    }
    .pt-mobile-xs {
      padding-top: var(--space-xs);
    }
    .pt-mobile-s {
      padding-top: var(--space-s);
    }
    .pt-mobile-m {
      padding-top: var(--space-m);
    }
    .pt-mobile-l {
      padding-top: var(--space-l);
    }
    .pt-mobile-xl {
      padding-top: var(--space-xl);
    }
    .pt-mobile-2xl {
      padding-top: var(--space-2xl);
    }
    .pt-mobile-3xl {
      padding-top: var(--space-3xl);
    }
    .pt-mobile-4xl {
      padding-top: var(--space-4xl);
    }

    .pr-mobile-0 {
      padding-right: 0;
    }
    .pr-mobile-3xs {
      padding-right: var(--space-3xs);
    }
    .pr-mobile-2xs {
      padding-right: var(--space-2xs);
    }
    .pr-mobile-xs {
      padding-right: var(--space-xs);
    }
    .pr-mobile-s {
      padding-right: var(--space-s);
    }
    .pr-mobile-m {
      padding-right: var(--space-m);
    }
    .pr-mobile-l {
      padding-right: var(--space-l);
    }
    .pr-mobile-xl {
      padding-right: var(--space-xl);
    }
    .pr-mobile-2xl {
      padding-right: var(--space-2xl);
    }
    .pr-mobile-3xl {
      padding-right: var(--space-3xl);
    }
    .pr-mobile-4xl {
      padding-right: var(--space-4xl);
    }

    .pb-mobile-0 {
      padding-bottom: 0;
    }
    .pb-mobile-3xs {
      padding-bottom: var(--space-3xs);
    }
    .pb-mobile-2xs {
      padding-bottom: var(--space-2xs);
    }
    .pb-mobile-xs {
      padding-bottom: var(--space-xs);
    }
    .pb-mobile-s {
      padding-bottom: var(--space-s);
    }
    .pb-mobile-m {
      padding-bottom: var(--space-m);
    }
    .pb-mobile-l {
      padding-bottom: var(--space-l);
    }
    .pb-mobile-xl {
      padding-bottom: var(--space-xl);
    }
    .pb-mobile-2xl {
      padding-bottom: var(--space-2xl);
    }
    .pb-mobile-3xl {
      padding-bottom: var(--space-3xl);
    }
    .pb-mobile-4xl {
      padding-bottom: var(--space-4xl);
    }

    .pl-mobile-0 {
      padding-left: 0;
    }
    .pl-mobile-3xs {
      padding-left: var(--space-3xs);
    }
    .pl-mobile-2xs {
      padding-left: var(--space-2xs);
    }
    .pl-mobile-xs {
      padding-left: var(--space-xs);
    }
    .pl-mobile-s {
      padding-left: var(--space-s);
    }
    .pl-mobile-m {
      padding-left: var(--space-m);
    }
    .pl-mobile-l {
      padding-left: var(--space-l);
    }
    .pl-mobile-xl {
      padding-left: var(--space-xl);
    }
    .pl-mobile-2xl {
      padding-left: var(--space-2xl);
    }
    .pl-mobile-3xl {
      padding-left: var(--space-3xl);
    }
    .pl-mobile-4xl {
      padding-left: var(--space-4xl);
    }
  }
  /* Spacing utilities - Margin */
  /* All sides */
  .m-3xs {
    margin: var(--space-3xs);
  }
  .m-2xs {
    margin: var(--space-2xs);
  }
  .m-xs {
    margin: var(--space-xs);
  }
  .m-s {
    margin: var(--space-s);
  }
  .m-m {
    margin: var(--space-m);
  }
  .m-l {
    margin: var(--space-l);
  }
  .m-xl {
    margin: var(--space-xl);
  }
  .m-2xl {
    margin: var(--space-2xl);
  }
  .m-3xl {
    margin: var(--space-3xl);
  }
  .m-4xl {
    margin: var(--space-4xl);
  }

  /* Horizontal (left + right) */
  .mx-3xs {
    margin-left: var(--space-3xs);
    margin-right: var(--space-3xs);
  }
  .mx-2xs {
    margin-left: var(--space-2xs);
    margin-right: var(--space-2xs);
  }
  .mx-xs {
    margin-left: var(--space-xs);
    margin-right: var(--space-xs);
  }
  .mx-s {
    margin-left: var(--space-s);
    margin-right: var(--space-s);
  }
  .mx-m {
    margin-left: var(--space-m);
    margin-right: var(--space-m);
  }
  .mx-l {
    margin-left: var(--space-l);
    margin-right: var(--space-l);
  }
  .mx-xl {
    margin-left: var(--space-xl);
    margin-right: var(--space-xl);
  }
  .mx-2xl {
    margin-left: var(--space-2xl);
    margin-right: var(--space-2xl);
  }
  .mx-3xl {
    margin-left: var(--space-3xl);
    margin-right: var(--space-3xl);
  }
  .mx-4xl {
    margin-left: var(--space-4xl);
    margin-right: var(--space-4xl);
  }

  /* Vertical (top + bottom) */
  .my-3xs {
    margin-top: var(--space-3xs);
    margin-bottom: var(--space-3xs);
  }
  .my-2xs {
    margin-top: var(--space-2xs);
    margin-bottom: var(--space-2xs);
  }
  .my-xs {
    margin-top: var(--space-xs);
    margin-bottom: var(--space-xs);
  }
  .my-s {
    margin-top: var(--space-s);
    margin-bottom: var(--space-s);
  }
  .my-m {
    margin-top: var(--space-m);
    margin-bottom: var(--space-m);
  }
  .my-l {
    margin-top: var(--space-l);
    margin-bottom: var(--space-l);
  }
  .my-xl {
    margin-top: var(--space-xl);
    margin-bottom: var(--space-xl);
  }
  .my-2xl {
    margin-top: var(--space-2xl);
    margin-bottom: var(--space-2xl);
  }
  .my-3xl {
    margin-top: var(--space-3xl);
    margin-bottom: var(--space-3xl);
  }
  .my-4xl {
    margin-top: var(--space-4xl);
    margin-bottom: var(--space-4xl);
  }

  /* Individual sides */
  .mt-3xs {
    margin-top: var(--space-3xs);
  }
  .mt-2xs {
    margin-top: var(--space-2xs);
  }
  .mt-xs {
    margin-top: var(--space-xs);
  }
  .mt-s {
    margin-top: var(--space-s);
  }
  .mt-m {
    margin-top: var(--space-m);
  }
  .mt-l {
    margin-top: var(--space-l);
  }
  .mt-xl {
    margin-top: var(--space-xl);
  }
  .mt-2xl {
    margin-top: var(--space-2xl);
  }
  .mt-3xl {
    margin-top: var(--space-3xl);
  }
  .mt-4xl {
    margin-top: var(--space-4xl);
  }

  .mr-3xs {
    margin-right: var(--space-3xs);
  }
  .mr-2xs {
    margin-right: var(--space-2xs);
  }
  .mr-xs {
    margin-right: var(--space-xs);
  }
  .mr-s {
    margin-right: var(--space-s);
  }
  .mr-m {
    margin-right: var(--space-m);
  }
  .mr-l {
    margin-right: var(--space-l);
  }
  .mr-xl {
    margin-right: var(--space-xl);
  }
  .mr-2xl {
    margin-right: var(--space-2xl);
  }
  .mr-3xl {
    margin-right: var(--space-3xl);
  }
  .mr-4xl {
    margin-right: var(--space-4xl);
  }

  .mb-3xs {
    margin-bottom: var(--space-3xs);
  }
  .mb-2xs {
    margin-bottom: var(--space-2xs);
  }
  .mb-xs {
    margin-bottom: var(--space-xs);
  }
  .mb-s {
    margin-bottom: var(--space-s);
  }
  .mb-m {
    margin-bottom: var(--space-m);
  }
  .mb-l {
    margin-bottom: var(--space-l);
  }
  .mb-xl {
    margin-bottom: var(--space-xl);
  }
  .mb-2xl {
    margin-bottom: var(--space-2xl);
  }
  .mb-3xl {
    margin-bottom: var(--space-3xl);
  }
  .mb-4xl {
    margin-bottom: var(--space-4xl);
  }

  .ml-3xs {
    margin-left: var(--space-3xs);
  }
  .ml-2xs {
    margin-left: var(--space-2xs);
  }
  .ml-xs {
    margin-left: var(--space-xs);
  }
  .ml-s {
    margin-left: var(--space-s);
  }
  .ml-m {
    margin-left: var(--space-m);
  }
  .ml-l {
    margin-left: var(--space-l);
  }
  .ml-xl {
    margin-left: var(--space-xl);
  }
  .ml-2xl {
    margin-left: var(--space-2xl);
  }
  .ml-3xl {
    margin-left: var(--space-3xl);
  }
  .ml-4xl {
    margin-left: var(--space-4xl);
  }

  /* Spacing utilities - Gap */
  .gap-0 {
    /* Drive both grid + flex gap via custom properties */
    --grid-gap: 0;
    --flex-gap: 0;
    gap: 0;
  }
  .gap-1 {
    --grid-gap: 1px;
    --flex-gap: 1px;
    gap: 1px;
  }
  .gap-3xs {
    --grid-gap: var(--space-3xs);
    --flex-gap: var(--space-3xs);
    gap: var(--space-3xs);
  }
  .gap-2xs {
    --grid-gap: var(--space-2xs);
    --flex-gap: var(--space-2xs);
    gap: var(--space-2xs);
  }
  .gap-xs {
    --grid-gap: var(--space-xs);
    --flex-gap: var(--space-xs);
    gap: var(--space-xs);
  }
  .gap-s {
    --grid-gap: var(--space-s);
    --flex-gap: var(--space-s);
    gap: var(--space-s);
  }
  .gap-m {
    --grid-gap: var(--space-m);
    --flex-gap: var(--space-m);
    gap: var(--space-m);
  }
  .gap-l {
    --grid-gap: var(--space-l);
    --flex-gap: var(--space-l);
    gap: var(--space-l);
  }
  .gap-xl {
    --grid-gap: var(--space-xl);
    --flex-gap: var(--space-xl);
    gap: var(--space-xl);
  }
  .gap-2xl {
    --grid-gap: var(--space-2xl);
    --flex-gap: var(--space-2xl);
    gap: var(--space-2xl);
  }
  .gap-3xl {
    --grid-gap: var(--space-3xl);
    --flex-gap: var(--space-3xl);
    gap: var(--space-3xl);
  }
  .gap-4xl {
    --grid-gap: var(--space-4xl);
    --flex-gap: var(--space-4xl);
    gap: var(--space-4xl);
  }

  /* Responsive gap utilities - mobile overrides */
  @media (max-width: 767px) {
    .gap-mobile-0 {
      --grid-gap: 0;
      --flex-gap: 0;
      gap: 0;
    }
    .gap-mobile-3xs {
      --grid-gap: var(--space-3xs);
      --flex-gap: var(--space-3xs);
      gap: var(--space-3xs);
    }
    .gap-mobile-2xs {
      --grid-gap: var(--space-2xs);
      --flex-gap: var(--space-2xs);
      gap: var(--space-2xs);
    }
    .gap-mobile-xs {
      --grid-gap: var(--space-xs);
      --flex-gap: var(--space-xs);
      gap: var(--space-xs);
    }
    .gap-mobile-s {
      --grid-gap: var(--space-s);
      --flex-gap: var(--space-s);
      gap: var(--space-s);
    }
    .gap-mobile-m {
      --grid-gap: var(--space-m);
      --flex-gap: var(--space-m);
      gap: var(--space-m);
    }
    .gap-mobile-l {
      --grid-gap: var(--space-l);
      --flex-gap: var(--space-l);
      gap: var(--space-l);
    }
  }

  /* Column gap (horizontal) */
  .gap-x-3xs {
    column-gap: var(--space-3xs);
  }
  .gap-x-2xs {
    column-gap: var(--space-2xs);
  }
  .gap-x-xs {
    column-gap: var(--space-xs);
  }
  .gap-x-s {
    column-gap: var(--space-s);
  }
  .gap-x-m {
    column-gap: var(--space-m);
  }
  .gap-x-l {
    column-gap: var(--space-l);
  }
  .gap-x-xl {
    column-gap: var(--space-xl);
  }
  .gap-x-2xl {
    column-gap: var(--space-2xl);
  }
  .gap-x-3xl {
    column-gap: var(--space-3xl);
  }
  .gap-x-4xl {
    column-gap: var(--space-4xl);
  }

  /* Row gap (vertical) */
  .gap-y-3xs {
    row-gap: var(--space-3xs);
  }
  .gap-y-2xs {
    row-gap: var(--space-2xs);
  }
  .gap-y-xs {
    row-gap: var(--space-xs);
  }
  .gap-y-s {
    row-gap: var(--space-s);
  }
  .gap-y-m {
    row-gap: var(--space-m);
  }
  .gap-y-l {
    row-gap: var(--space-l);
  }
  .gap-y-xl {
    row-gap: var(--space-xl);
  }
  .gap-y-2xl {
    row-gap: var(--space-2xl);
  }
  .gap-y-3xl {
    row-gap: var(--space-3xl);
  }
  .gap-y-4xl {
    row-gap: var(--space-4xl);
  }

  /* Auto margins for centering */
  .mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  .ml-auto {
    margin-left: auto;
  }
  .mr-auto {
    margin-right: auto;
  }
  .h100 {
    height: 100%;
  }
  .ar169 {
    aspect-ratio: 16 / 9;
  }
  .ar32 {
    aspect-ratio: 3 / 2;
  }
  .ar31 {
    aspect-ratio: 3 / 1;
  }
  .ar21 {
    aspect-ratio: 2 / 1;
  }
  .ar11 {
    aspect-ratio: 1 / 1;
  }
  .flex {
    display: flex;
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-row {
    flex-direction: column;
  }
  .space-between {
    justify-content: space-between;
  }
  .space-around {
    justify-content: space-around;
  }
  .flex-start {
    justify-content: flex-start;
  }
  .flex-end {
    justify-content: flex-end;
  }
  .flex-center {
    justify-content: center;
  }
  .relative {
    position: relative;
  }
  .sticky {
    position: sticky;
    top: var(--space-m);
  }
  .content-width {
    padding-left: var(--content-width-padding);
    padding-right: var(--content-width-padding);
  }
  .content-width-left {
    padding-left: var(--content-width-padding);
  }
  @media (min-width: 1024px) {
    .content-width {
      padding-left: var(--content-width-padding) !important;
      padding-right: var(--content-width-padding) !important;
    }
  }

  @media (min-width: 1024px) {
    .content-width-left {
      padding-left: var(--content-width-padding) !important;
    }
  }
  /* Break out of content-width container on mobile */
  @media (max-width: 767px) {
    .full-width-mobile {
      /* width: calc(100% + 8vw); */
      margin-left: calc(-2vw);
      margin-right: calc(-2vw);
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
  }

  /* When split-swiper lives in a content-width container, let the inner
     component handle the full-bleed breakout so the image can reach the
     viewport edge without an extra left margin. */
  @media (min-width: 768px) {
    .content-width,
    .content-width-left,
    .content-width-right {
      &:has(> .swiper-split) {
        padding-left: 0;
        padding-right: 0;
        width: 100%;
      }
    }
  }
  .grid-responsive-2 {
    --grid-columns: 1;
  }
  .grid-mobile-2 {
    --grid-columns: 2; /* mobile: 2 columns */
  }
  @media (min-width: 768px) {
    .grid-responsive-2 {
      --grid-columns: 2;
    }
    .grid-mobile-2 {
      --grid-columns: 1; /* desktop: 1 column */
    }
  }

  /* For use with GSAP ScrollTrigger when ScrollSmoother is active */
  .pin-spacer {
    /* Placeholder for GSAP pinned elements */
  }
  /* Column span grid system */
  .grid {
    --_grid-columns: var(--grid-columns, 12);
    --_grid-gap: var(--grid-gap, var(--layout-default-gap));

    display: grid;
    grid-template-columns: repeat(var(--_grid-columns), 1fr);
    gap: var(--_grid-gap);
  }

  /* Column spans */
  .col-span-1 {
    grid-column: span 1;
  }
  .col-span-2 {
    grid-column: span 2;
  }
  .col-span-3 {
    grid-column: span 3;
  }
  .col-span-4 {
    grid-column: span 4;
  }
  .col-span-5 {
    grid-column: span 5;
  }
  .col-span-6 {
    grid-column: span 6;
  }
  .col-span-7 {
    grid-column: span 7;
  }
  .col-span-8 {
    grid-column: span 8;
  }
  .col-span-9 {
    grid-column: span 9;
  }
  .col-span-10 {
    grid-column: span 10;
  }
  .col-span-11 {
    grid-column: span 11;
  }
  .col-span-12 {
    grid-column: 1 / -1;
  }
  .col-span-1\/2 {
    grid-column: span 6;
  }
  .col-span-full {
    grid-column: 1 / -1;
  }

  /* Row spans */
  .row-span-1 {
    grid-row: span 1;
  }
  .row-span-2 {
    grid-row: span 2;
  }
  .row-span-3 {
    grid-row: span 3;
  }
  .row-span-4 {
    grid-row: span 4;
  }
  .row-span-5 {
    grid-row: span 5;
  }
  .row-span-6 {
    grid-row: span 6;
  }

  /* Container query responsive spans */
  @container grid-item (min-width: 400px) {
    .col-span-sm-1 {
      grid-column: span 1;
    }
    .col-span-sm-2 {
      grid-column: span 2;
    }
    .col-span-sm-3 {
      grid-column: span 3;
    }
    .col-span-sm-4 {
      grid-column: span 4;
    }
    .col-span-sm-6 {
      grid-column: span 6;
    }
    .col-span-sm-full {
      grid-column: 1 / -1;
    }
  }

  @container grid-item (min-width: 768px) {
    .col-span-md-1 {
      grid-column: span 1;
    }
    .col-span-md-2 {
      grid-column: span 2;
    }
    .col-span-md-3 {
      grid-column: span 3;
    }
    .col-span-md-4 {
      grid-column: span 4;
    }
    .col-span-md-5 {
      grid-column: span 5;
    }
    .col-span-md-6 {
      grid-column: span 6;
    }
    .col-span-md-7 {
      grid-column: span 7;
    }
    .col-span-md-8 {
      grid-column: span 8;
    }
    .col-span-md-full {
      grid-column: 1 / -1;
    }
  }

  @container grid-item (min-width: 1024px) {
    .col-span-lg-1 {
      grid-column: span 1;
    }
    .col-span-lg-2 {
      grid-column: span 2;
    }
    .col-span-lg-3 {
      grid-column: span 3;
    }
    .col-span-lg-4 {
      grid-column: span 4;
    }
    .col-span-lg-6 {
      grid-column: span 6;
    }
    .col-span-lg-8 {
      grid-column: span 8;
    }
    .col-span-lg-9 {
      grid-column: span 9;
    }
    .col-span-lg-full {
      grid-column: 1 / -1;
    }
  }

  /* Common layout patterns */
  .grid-sidebar-left {
    --_sidebar-width: var(--sidebar-width, 250px);
    --_grid-gap: var(--grid-gap, var(--layout-default-gap));

    display: grid;
    grid-template-columns: 1fr;
    gap: var(--_grid-gap);
  }

  @media (min-width: 768px) {
    .grid-sidebar-left {
      grid-template-columns: var(--_sidebar-width) 1fr;
    }
  }

  .grid-sidebar-right {
    --_sidebar-width: var(--sidebar-width, 250px);
    --_grid-gap: var(--grid-gap, var(--layout-default-gap));

    display: grid;
    grid-template-columns: 1fr;
    gap: var(--_grid-gap);
  }

  @media (min-width: 768px) {
    .grid-sidebar-right {
      grid-template-columns: 1fr var(--_sidebar-width);
    }
  }

  .grid-holy-grail {
    --_grid-gap: var(--grid-gap, var(--layout-default-gap));
    --_sidebar-min: var(--sidebar-min, 200px);
    --_content-min: var(--content-min, 50%);

    display: grid;
    grid-template-columns: 1fr;
    gap: var(--_grid-gap);
  }

  @media (min-width: 1024px) {
    .grid-holy-grail {
      grid-template-columns:
        minmax(var(--_sidebar-min), 1fr)
        minmax(var(--_content-min), 3fr)
        minmax(var(--_sidebar-min), 1fr);
    }
  }

  /* Auto-fill responsive grid (alternative to fluid-grid) */
  .grid-auto {
    --_grid-min: var(--grid-min, 250px);
    --_grid-gap: var(--grid-gap, var(--layout-default-gap));

    display: grid;
    grid-template-columns: repeat(
      auto-fill,
      minmax(min(var(--_grid-min), 100%), 1fr)
    );
    gap: var(--_grid-gap);
  }

  /* Grid alignment utilities */
  .place-center {
    place-items: center;
  }
  .place-start {
    place-items: start;
  }
  .place-end {
    place-items: end;
  }
  .justify-center {
    justify-content: center;
    justify-items: center;
  }
  .justify-start {
    justify-items: start;
  }
  .justify-end {
    justify-items: end;
  }
  .align-center {
    align-items: center;
  }
  .align-start {
    align-items: start;
  }
  .align-end {
    align-items: end;
  }

  /* Media query responsive spans for viewport-based layouts */
  @media (min-width: 768px) {
    .col-span-md-1 {
      grid-column: span 1;
    }
    .col-span-md-2 {
      grid-column: span 2;
    }
    .col-span-md-3 {
      grid-column: span 3;
    }
    .col-span-md-4 {
      grid-column: span 4;
    }
    .col-span-md-5 {
      grid-column: span 5;
    }
    .col-span-md-6 {
      grid-column: span 6;
    }
    .col-span-md-7 {
      grid-column: span 7;
    }
    .col-span-md-8 {
      grid-column: span 8;
    }
    .col-span-md-full {
      grid-column: 1 / -1;
    }
  }

  @media (min-width: 1024px) {
    .col-span-lg-1 {
      grid-column: span 1;
    }
    .col-span-lg-2 {
      grid-column: span 2;
    }
    .col-span-lg-3 {
      grid-column: span 3;
    }
    .col-span-lg-4 {
      grid-column: span 4;
    }
    .col-span-lg-6 {
      grid-column: span 6;
    }
    .col-span-lg-8 {
      grid-column: span 8;
    }
    .col-span-lg-9 {
      grid-column: span 9;
    }
    .col-span-lg-full {
      grid-column: 1 / -1;
    }
  }

  /* In-page filter anchors sit below the fixed nav (+ desktop breadcrumbs when scrolled) */
  #podcast-filters,
  #project-filters {
    scroll-margin-top: calc(
      var(--desktop-nav-height, 8rem) + var(--space-m, 1rem)
    );
  }

  @media (min-width: 768px) {
    #podcast-filters,
    #project-filters {
      scroll-margin-top: calc(
        var(--desktop-nav-height, 8rem) + 2.75rem + var(--space-m, 1rem)
      );
    }
  }
}
}
@layer modifiers{
.round-s {
  border-radius: var(--fs--2);
}
.round-m {
  border-radius: var(--fs-0);
}
.round-l {
  border-radius: var(--fs-l);
}
.shadow {
  box-shadow: var(--box-shadow);
}
.shadow-pill {
  box-shadow: var(--box-shadow-pill);
}
.shadow-pill:hover {
  box-shadow: var(--box-shadow-pill-hover);
}

.border-overlay {
  outline: 1px solid var(--color-border-overlay, rgba(0, 0, 0, 0.1));
  outline-offset: -1px;
}

.aside-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-l);
  padding: var(--space-l) var(--space-m);
}
@media (max-width: 1024px) {
  .aside-column {
    padding: var(--space-l) 0;
  }
}
@media (min-width: 768px) {
  .aside-column--sticky {
    align-self: start;
    padding-top: 0;
  }

  /* Match main copy column pt-xl until the aside pins */
  .aside-column--sticky .aside-column__sticky {
    padding-top: var(--space-xl);
  }

  .aside-column--sticky .aside-column__sticky.is-pinned {
    padding-top: 0;
  }

  @media (prefers-reduced-motion: reduce) {
    .aside-column__sticky {
      position: sticky;
      top: calc(var(--desktop-nav-height, 8rem) + var(--space-m));
    }

    .aside-column__sticky.is-pinned {
      padding-top: 0;
    }
  }
}
/* Grid border utilities - only show on desktop */
.grid-border-right,
.border-right {
  border-right: 1px solid var(--color-text-page, var(--color-ink, #000));
}

.grid-border-bottom,
.border-bottom {
  border-bottom: 1px solid var(--color-text-page, var(--color-ink, #000));
}

.grid-border-left,
.border-left {
  border-left: 1px solid var(--color-text-page, var(--color-ink, #000));
}

.grid-border-top,
.border-top {
  border-top: 1px solid var(--color-text-page, var(--color-ink, #000));
}

/* Hide on mobile */
@media (max-width: 1024px) {
  .grid-border-right,
  .grid-border-bottom,
  .grid-border-left,
  .grid-border-top {
    border: none;
  }
  .grid-mobile-border-right {
    border-right: 1px solid var(--color-text-page, var(--color-ink, #000));
  }

  .grid-mobile-border-bottom {
    border-bottom: 1px solid var(--color-text-page, var(--color-ink, #000));
  }

  .grid-mobile-border-left {
    border-left: 1px solid var(--color-text-page, var(--color-ink, #000));
  }

  .grid-mobile-border-top {
    border-top: 1px solid var(--color-text-page, var(--color-ink, #000));
  }
}

/* Skip to main content - off-screen until focused (keyboard / EEA accessibility) */
.skip-link {
  position: absolute;
  top: 0;
  left: -9999px;
  z-index: 9999;
  padding: var(--space-s, 0.5rem) var(--space-m, 1rem);
  background: var(--color-canvas, #fff);
  color: var(--color-ink, #000);
  font-weight: 500;
  text-decoration: none;
  border: 2px solid currentColor;
}
.skip-link:focus-visible {
  left: var(--space-m, 1rem);
  top: var(--space-m, 1rem);
  outline-offset: 2px;
}

/* Screen reader only - visually hide but keep accessible to assistive tech */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Keep short phrases (e.g. "Season 2") on one line */
.nowrap {
  white-space: nowrap;
}

/* Reduce single-word widows/orphans in headings and labels */
.text-pretty {
  text-wrap: pretty;
}

/* change the cursor to indicate clickability */
.pointer {
  cursor: pointer;
}

/* Responsive visibility utilities */

/* Hide on mobile (≤767px) */
.hide-mobile {
  @media (max-width: 767px) {
    display: none !important;
  }
}

/* Show only on mobile (≤767px) */
.show-mobile {
  display: none !important;
  @media (max-width: 767px) {
    display: block !important;
  }
}

/* Show only on mobile as flex */
.show-mobile-flex {
  display: none !important;
  @media (max-width: 767px) {
    display: flex !important;
  }
}

/* Show only on mobile as inline */
.show-mobile-inline {
  display: none !important;
  @media (max-width: 767px) {
    display: inline !important;
  }
}

/* Show only on mobile as inline-block */
.show-mobile-inline-block {
  display: none !important;
  @media (max-width: 767px) {
    display: inline-block !important;
  }
}

/* Hide on desktop (≥768px) */
.hide-desktop {
  @media (min-width: 768px) {
    display: none !important;
  }
}

/* Show only on desktop (≥768px) */
.show-desktop {
  display: none !important;
  @media (min-width: 768px) {
    display: block !important;
  }
}

/* Show only on desktop as flex */
.show-desktop-flex {
  display: none !important;
  @media (min-width: 768px) {
    display: flex !important;
  }
}

/* Show only on desktop as inline */
.show-desktop-inline {
  display: none !important;
  @media (min-width: 768px) {
    display: inline !important;
  }
}

/* Show only on desktop as inline-block */
.show-desktop-inline-block {
  display: none !important;
  @media (min-width: 768px) {
    display: inline-block !important;
  }
}
}
@layer text{

/**
 * Shared prose rules for frontend `.text` and CKEditor `.ck-content`.
 * Unlayered so CP editor styles beat CKEditor’s default unlayered rules.
 * Imported by main.css (layer text) and config/ckeditor/rich-text-content.css (unlayered).
 */

/* Prose roots — typography only; colour utilities (e.g. .text-canvas) live in colour.css */
:is(.text, .ck-content) {
  font-family: var(--font-family-ttnorms);
  letter-spacing: var(--letter-spacing);
  line-height: var(--line-height);
}

/* Default CP editor colours; frontend inherits from section/theme utilities */
.ck-content {
  color: var(--color-ink);
}

.ck-content a {
  color: var(--color-steel-500);
  text-decoration-thickness: from-font;
}

:is(.text, .ck-content) > * + * {
  margin-top: var(--space-m);
}

:is(.text, .ck-content) > h1,
:is(.text, .ck-content) > h2,
:is(.text, .ck-content) > h3,
:is(.text, .ck-content) > h4,
:is(.text, .ck-content) > h5,
:is(.text, .ck-content) > h6 {
  margin-top: var(--space-xl);
}

:is(.text, .ck-content) > p:empty {
  display: none;
  margin: 0;
  padding: 0;
  height: 0;
  line-height: 0;
}

:is(.text, .ck-content) > p:not(:empty) {
  margin-top: var(--space-m);
}

:is(.text, .ck-content) > ul,
:is(.text, .ck-content) > ol {
  margin: var(--space-s) 0;
  padding: 0;
}

:is(.text, .ck-content) > dl {
  padding-left: 0;
}

:is(.text, .ck-content) ul li,
:is(.text, .ck-content) ol li,
:is(.text, .ck-content) > dl dt {
  margin-top: var(--space-xs);
}

:is(.text, .ck-content) > dl dt {
  font-weight: 700;
}

:is(.text, .ck-content) ul li:first-child,
:is(.text, .ck-content) ol li:first-child,
:is(.text, .ck-content) > dl dt:first-child {
  margin-top: 0;
}

:is(.text, .ck-content) ul ul,
:is(.text, .ck-content) ul ol,
:is(.text, .ck-content) ol ul,
:is(.text, .ck-content) ol ol {
  margin: var(--space-xs) 0;
}

:is(.text, .ck-content) > blockquote:not(.text-pull-quote) {
  margin: var(--space-l) var(--space-m);
  padding-left: var(--space-m);
  border-left: 3px solid currentColor;
  font-style: italic;
}

:is(.text, .ck-content) > blockquote:not(.text-pull-quote) p {
  margin: 0;
  font-family: var(--font-family-ttnorms);
  font-size: var(--fs-0);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
  font-style: italic;
}

:is(.text, .ck-content) > blockquote:not(.text-pull-quote) p + p {
  margin-top: var(--space-m);
}

:is(.text, .ck-content) > blockquote.text-pull-quote {
  position: relative;
  margin: var(--space-l) 0 var(--space-l) var(--space-m);
  padding-left: 0;
  border-left: none;
  font-style: normal;
  overflow-wrap: break-word;
}

:is(.text, .ck-content) > blockquote.text-pull-quote p {
  margin: 0;
  font-family: var(--font-family-abril);
  font-size: var(--fs-2);
  line-height: var(--line-height-tightest);
  font-style: normal;
}

:is(.text, .ck-content) > blockquote.text-pull-quote p + p {
  margin-top: var(--space-m);
}

:is(.text, .ck-content) > pre {
  margin-top: var(--space-m);
  padding: var(--space-m);
  overflow-x: auto;
}

:is(.text, .ck-content) code {
  padding: 0.125em 0.25em;
  font-size: 0.875em;
}

:is(.text, .ck-content) > img,
:is(.text, .ck-content) > figure {
  margin-top: var(--space-l);
  margin-bottom: var(--space-l);
}

:is(.text, .ck-content) > figure > img {
  margin: 0;
}

:is(.text, .ck-content) figcaption {
  margin-top: var(--space-2xs);
  font-size: var(--fs--1);
  font-style: normal;
  color: var(--color-text-muted, var(--color-navy-300));
}

.text iframe[src*="youtube.com"],
.text iframe[src*="youtu.be"],
.text iframe[src*="vimeo.com"],
.text iframe[src*="genial"],
.text iframe[src*="issuu.com"] {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  margin-block: var(--space-l);
  border: 0;
}

.text > figure.media > iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 24rem;
  margin: 0;
  border: 0;
}

:is(.text, .ck-content) > hr {
  margin-top: var(--space-xl);
  margin-bottom: var(--space-xl);
  border: none;
  border-top: 1px solid currentColor;
  opacity: 0.2;
}

:is(.text, .ck-content) > table {
  margin-top: var(--space-l);
  margin-bottom: var(--space-l);
  width: 100%;
  border-collapse: collapse;
}

:is(.text, .ck-content) table th,
:is(.text, .ck-content) table td {
  padding: var(--space-xs) var(--space-s);
  text-align: left;
  border-bottom: 1px solid currentColor;
}

:is(.text, .ck-content) table th {
  font-weight: 600;
}

:is(.text, .ck-content) > .download-inline {
  margin: var(--space-xl) 0 var(--space-m) 0;
}

:is(.text, .ck-content) > h6 {
  font-size: var(--fs--1);
  line-height: var(--line-height);
}

:is(.text, .ck-content) > h5,
:is(.text, .ck-content) > p,
:is(.text, .ck-content) > ul {
  font-size: var(--fs-0);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
}

:is(.text, .ck-content) ul,
:is(.text, .ck-content) ul ul,
:is(.text, .ck-content) ul ul ul {
  list-style-type: square;
  list-style-position: outside;
  padding: 0;
  padding-left: var(--space-m);
  margin-left: 0;
}

:is(.text, .ck-content) ul > li::marker {
  color: var(--color-text-accent, var(--color-navy-500));
}

:is(.text, .ck-content) ul ul li::marker {
  color: var(--color-teal-500);
  font-size: 0.875em;
}

:is(.text, .ck-content).text-canvas ul li::marker {
  color: var(--color-canvas);
}

:is(.text, .ck-content) ol {
  list-style: decimal;
  list-style-position: outside;
  padding-left: var(--space-m);
}

:is(.text, .ck-content) ol li::marker {
  font-weight: bold;
}

:is(.text, .ck-content) ol ol li::marker,
:is(.text, .ck-content) ul ol li::marker {
  color: var(--color-teal-500);
  font-size: 0.875em;
}

:is(.text, .ck-content).text-canvas ol li::marker {
  color: var(--color-canvas);
}

:is(.text, .ck-content) > h5 {
  font-size: var(--fs--1);
  line-height: var(--line-height);
}

:is(.text, .ck-content).fs-sm > :is(p, ul, ol, h4, h5) {
  font-size: var(--fs--1);
  line-height: var(--line-height);
}

:is(.text, .ck-content) > h4 {
  font-size: var(--fs-0);
  line-height: var(--line-height);
}

:is(.text, .ck-content) > h3 {
  font-size: var(--fs-1);
  line-height: var(--line-height-tight);
}

:is(.text, .ck-content) > h2 {
  font-size: var(--fs-2);
  line-height: var(--line-height-tighter);
  letter-spacing: var(--letter-spacing-tighter);
}

:is(.text, .ck-content) > h1 {
  font-size: var(--fs-3);
  line-height: var(--line-height-tighter);
  letter-spacing: var(--letter-spacing-tighter);
}

:is(.text, .ck-content) > h4,
:is(.text, .ck-content) > h5 {
  font-weight: 700;
}

:is(.text, .ck-content) > :first-child:not(script):not(style) {
  margin-top: 0;
}

@media (min-width: 1024px) {
  :is(.text, .ck-content) > blockquote.text-pull-quote {
    float: right;
    clear: right;
    width: min(22rem, 50%);
    max-width: min(22rem, 50%);
    margin: var(--space-m) 0 var(--space-m) var(--space-m);
  }

  :is(.text, .ck-content) > figure.image--float {
    max-width: 50%;
    float: right;
    margin-left: var(--space-m);
  }

  :is(.text, .ck-content) > figure.image--floatLeft {
    max-width: 50%;
    float: left;
    margin-right: var(--space-m);
  }

  :is(.text, .ck-content) > figure.image--float:first-child + h3,
  :is(.text, .ck-content) > figure.image--floatLeft:first-child + h3 {
    margin-top: 0 !important;
  }
}
}
@layer text{
/* NB > any 'rich' text is defined in text-prose.css */
@layer text {
  body {
    font-family: var(--font-family-ttnorms);
    line-height: var(--line-height);
    -webkit-font-smoothing: antialiased;
  }
  sup,
  sub {
    font-size: calc(0.5em + 4px);
    vertical-align: baseline;
    position: relative;
    top: calc(-0.5 * 0.83 * 2 * (1em - 4px));
    /* Simplified top: calc(-0.83em + 3.32px) */
  }

  sub {
    top: calc(0.25 * 0.83 * 2 * (1em - 4px));
    /* Simplified top: calc(0.42em - 1.66px) */
  }
  .balanced {
    /* max-inline-size: 50ch; */
    text-wrap: balance;
  }
  .text-center {
    text-align: center;
  }

  .text-bold,
  .bold {
    font-weight: 700;
  }

  /* Font size utilities */
  .fs-xs {
    font-size: var(--fs--2);
    line-height: var(--line-height);
  }
  .fs-sm {
    font-size: var(--fs--1);
    line-height: var(--line-height);
  }
  body,
  .fs-base {
    font-size: var(--fs-0);
    line-height: var(--line-height);
    letter-spacing: var(--letter-spacing);
  }
  .fs-xs {
    font-size: var(--fs--2);
    line-height: var(--line-height);
  }
  .fs-sm {
    font-size: var(--fs--1);
    line-height: var(--line-height);
  }
  .fs-base {
    font-size: var(--fs-0);
    line-height: var(--line-height);
  }

  .fs-md {
    font-size: var(--fs-1);
    line-height: var(--line-height-tight);
  }
  .fs-lg {
    font-size: var(--fs-2);
    line-height: var(--line-height-tighter);
    letter-spacing: var(--letter-spacing-tighter);
  }
  .fs-xl {
    font-size: var(--fs-3);
    line-height: var(--line-height-tighter);
    letter-spacing: var(--letter-spacing-tighter);
  }

  .fs-2xl {
    font-size: var(--fs-4);
    line-height: var(--line-height-tightest);
    letter-spacing: var(--letter-spacing-tighter);
  }
  .fs-3xl {
    font-size: var(--fs-5);
    line-height: var(--line-height-tightest);
    letter-spacing: var(--letter-spacing-tighter);
  }
  .fs-4xl {
    font-size: var(--fs-6);
    line-height: var(--line-height-tightest);
    letter-spacing: var(--letter-spacing-tighter);
  }

  @media screen and (max-width: 767px) {
    .fs-mobile-sm {
      font-size: var(--fs--1);
    }
  }

  .font-abril {
    font-family: var(--font-family-abril);
    font-weight: bold;
    font-variant-numeric: proportional-nums lining-nums;
  }

  .c-quote {
    position: relative;
    margin: 0 0 var(--space-l) 0;
    container-type: inline-size;
  }

  figure.c-quote .c-quote__text p {
    margin: 0;
    font-family: var(--font-family-abril);
    font-size: var(--fs-3);
    line-height: var(--line-height-tightest);
    font-style: normal;
  }
  .c-quote__meta {
    margin-top: var(--space-l);
  }
  .c-quote__author {
    font-weight: 700;
  }
  .c-quote__role {
    font-weight: 400;
    margin-left: 0.5rem;
  }
  .c-quote__person {
    display: inline-flex;
    align-items: center;
    gap: var(--space-s);
  }
  .c-quote__avatar {
    flex: 0 0 auto;
    width: clamp(var(--fs-3), 15cqi, var(--fs-6));
    height: clamp(var(--fs-3), 15cqi, var(--fs-6));
    overflow: hidden;
  }
  .c-quote__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .c-quote__person-text {
    display: flex;
    flex-direction: column;
    font-size: var(--fs-0);
  }
  .c-quote__person-text .c-quote__role {
    margin-left: 0;
  }
  .c-quote__icon {
    width: clamp(var(--fs-3), 15cqi, var(--fs-5));
    height: clamp(var(--fs-3), 15cqi, var(--fs-5));
    margin-bottom: var(--space-m);
  }
  .statement-section p {
    font-size: clamp(var(--fs-1), 4vw, var(--fs-3));
  }
}
}
@layer containers{
@layer containers {
  .container {
    padding-left: var(--space-m);
    padding-right: var(--space-m);
  }
  .card {
    padding: var(--space-l);
    background: var(--color-white);
  }
  .section {
    position: relative;
    /* background-color: var(--color-steel-100); */
  }
  .card {
    background-color: var(--color-orange-100);
  }
  .full-width-video {
    overflow: hidden;
    padding-inline: 0;
  }
  /* 16:9 stage so Vimeo background iframe has height outside the hero layout */
  .full-width-video--vimeo {
    position: relative;
    aspect-ratio: 16 / 9;
    background: oklch(var(--lch-navy-500));
  }
  .full-width-video__vimeo-inner {
    position: absolute;
    inset: 0;
    overflow: hidden;
  }
  .full-width-video__vimeo-inner iframe {
    box-sizing: border-box;
    width: 177.77777778vh;
    height: 56.25vw;
    min-width: 100%;
    min-height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }
  .full-width-video__loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    background: oklch(var(--lch-navy-500));
    color: var(--color-canvas);
    font-weight: 500;
    letter-spacing: 0.02em;
    transition:
      opacity 0.45s ease-out,
      visibility 0.45s ease-out;
  }
  .full-width-video__loading-spinner {
    box-sizing: border-box;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    border: 2px solid rgb(255 255 255 / 0.22);
    border-top-color: var(--color-canvas);
    animation: full-width-video-spinner-rotate 0.7s linear infinite;
  }
  @keyframes full-width-video-spinner-rotate {
    to {
      transform: rotate(360deg);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .full-width-video__loading-spinner {
      animation: none;
      opacity: 0.9;
    }
  }
  .full-width-video__vimeo-inner.loaded .full-width-video__loading,
  .full-width-video--file.loaded .full-width-video__loading {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .full-width-video__consent-message {
    display: none;
    margin: 0;
    max-width: 28ch;
    padding-inline: var(--space-m);
    text-align: center;
    line-height: 1.45;
  }
  .full-width-video__consent-link {
    background: none;
    border: 0;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-weight: 600;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }
  .full-width-video__consent-link:hover,
  .full-width-video__consent-link:focus-visible {
    opacity: 0.85;
  }
  .full-width-video__loading--consent .full-width-video__loading-spinner,
  .full-width-video__loading--consent .full-width-video__loading-text {
    display: none;
  }
  .full-width-video__loading--consent .full-width-video__consent-message {
    display: block;
  }
  [data-decorative-video][data-vimeo-consent-blocked]
    .decorative-video__control {
    display: none;
  }
  .full-width-video--file {
    position: relative;
  }
  .full-width-video--file .full-width-video__media {
    position: relative;
    z-index: 1;
  }
  /* Content player: same full-bleed stage; iframe fits 16:9 instead of cover-crop. */
  .full-width-video--content .full-width-video__vimeo-inner iframe {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    position: absolute;
    inset: 0;
    transform: none;
    border: 0;
  }
  .full-width-video__media {
    display: block;
    width: 100%;
    height: auto;
  }
  /* Same overlay treatment as image-slider captions */
  .full-width-video__caption {
    position: absolute;
    left: var(--space-m, 1.5rem);
    top: var(--space-m, 1.5rem);
    z-index: 3;
    max-width: calc(100% - (var(--space-m, 1.5rem) * 2));
    margin: 0;
    padding: 0.35em 0.55em;
    text-align: left;
    text-wrap: balance;
    background: rgba(0, 0, 0, 0.55);
    pointer-events: none;
  }
  @media (max-width: 767px) {
    .full-width-video__caption {
      left: var(--space-s, 1rem);
      top: var(--space-s, 1rem);
      max-width: calc(100% - (var(--space-s, 1rem) * 2));
    }
  }
  /* WCAG 2.2.2: pause/play for decorative autoplay video */
  .decorative-video__control {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 12;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.75rem;
    height: 3.75rem;
    padding: 0;
    border: 2px solid rgb(255 255 255 / 0.9);
    border-radius: 100%;
    background: oklch(var(--lch-navy-800) / 0.8);
    color: var(--color-canvas);
    cursor: pointer;
    pointer-events: auto;
    transform: translate(-50%, -50%);
    opacity: 0;
    /* Stay focusable when hidden — visibility:hidden removes the control from tab order */
    pointer-events: none;
    transition:
      opacity 0.25s ease,
      background-color 0.2s ease,
      border-color 0.2s ease;
  }
  [data-decorative-video]:hover .decorative-video__control,
  [data-decorative-video]:focus-within .decorative-video__control,
  [data-decorative-video].decorative-video--paused .decorative-video__control,
  .decorative-video__control:focus {
    opacity: 1;
    pointer-events: auto;
  }
  .decorative-video__control:hover,
  .decorative-video__control:focus-visible {
    background: oklch(var(--lch-navy-800) / 0.95);
    border-color: var(--color-canvas);
  }
  .decorative-video__control:focus-visible {
    outline: 2px solid var(--color-canvas);
    outline-offset: 2px;
  }
  .decorative-video__control-icon {
    width: 1.75rem;
    height: 1.75rem;
    display: block;
  }
  .decorative-video__control-icon--play {
    display: none;
  }
  .decorative-video__control[aria-pressed="true"]
    .decorative-video__control-icon--pause {
    display: none;
  }
  .decorative-video__control[aria-pressed="true"]
    .decorative-video__control-icon--play {
    display: block;
  }
  [data-decorative-video].decorative-video--paused
    .hero__video-wrapper.loaded
    ~ .hero__image--fallback,
  .hero.decorative-video--paused
    .hero__video-wrapper.loaded
    ~ .hero__image--fallback {
    opacity: 1;
  }
  [data-decorative-video].decorative-video--paused
    .hero-split__video-wrapper.loaded
    ~ .hero-split__image--background,
  .hero-split__media.decorative-video--paused
    .hero-split__video-wrapper.loaded
    ~ .hero-split__image--background {
    opacity: 1;
  }
  @media (prefers-reduced-motion: reduce) {
    .decorative-video__control {
      transition:
        opacity 0.01s ease,
        background-color 0.2s ease,
        border-color 0.2s ease;
    }
  }
  .hero {
    position: relative;
    overflow: hidden;
  }
  .hero__background {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: oklch(var(--lch-navy-500));
  }
  .hero__video-wrapper {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 1;
  }
  .hero__video-wrapper iframe {
    box-sizing: border-box;
    width: 177.77777778vh;
    height: 56.25vw;
    min-width: 100%;
    min-height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .hero__image--fallback {
    opacity: 1;
    z-index: 0;
    transition: opacity 0.6s ease-out;
  }
  .hero__video-wrapper.loaded ~ .hero__image--fallback {
    opacity: 0;
  }
  .hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(
      180deg,
      oklch(var(--lch-navy-500) / 0.4),
      oklch(var(--lch-navy-800) / 0.6)
    );
    mix-blend-mode: multiply;
  }
  /* Full-bleed hero: theme background (alternative to image/video; aligns with hero-split) */
  .hero--theme-navy .hero__background {
    background: var(--color-navy-500);
  }
  .hero--theme-steel .hero__background {
    background: var(--color-steel-500);
  }
  .hero--theme-emerald .hero__background {
    background: var(--color-emerald-500);
  }
  .hero--theme-green .hero__background {
    background: var(--color-green-500);
  }
  .hero--theme-teal .hero__background {
    background: var(--color-teal-500);
  }
  .hero--theme-steel .hero__overlay {
    background: linear-gradient(
      180deg,
      oklch(var(--lch-steel-500) / 0.4),
      oklch(var(--lch-steel-800) / 0.6)
    );
  }
  .hero--theme-emerald .hero__overlay {
    background: linear-gradient(
      180deg,
      oklch(var(--lch-emerald-500) / 0.4),
      oklch(var(--lch-emerald-800) / 0.6)
    );
  }
  .hero--theme-green .hero__overlay {
    background: linear-gradient(
      180deg,
      oklch(var(--lch-green-500) / 0.4),
      oklch(var(--lch-green-800) / 0.6)
    );
  }
  .hero--theme-teal .hero__overlay {
    background: linear-gradient(
      180deg,
      oklch(var(--lch-teal-500) / 0.4),
      oklch(var(--lch-teal-800) / 0.6)
    );
  }
  .hero--solid-theme .hero__overlay {
    display: none;
  }

  /*
   * Full-bleed hero (hero.twig): copy sits in .hero__inner over .hero__background.
   * With no Theme field, background stays the default navy tint — use navy link accents.
   * With hero--theme-steel | emerald | green | teal | navy, match hero-split / utility themed sections.
   */
  .hero:not(.hero-split) .hero__inner a {
    color: var(--color-navy-200);
  }

  .hero:not(.hero-split) .hero__inner a svg {
    fill: var(--color-navy-200);
  }

  .hero:not(.hero-split).hero--theme-steel .hero__inner a {
    color: var(--color-steel-200);
  }

  .hero:not(.hero-split).hero--theme-steel .hero__inner a svg {
    fill: var(--color-steel-200);
  }

  .hero:not(.hero-split).hero--theme-emerald .hero__inner a {
    color: var(--color-emerald-200);
  }

  .hero:not(.hero-split).hero--theme-emerald .hero__inner a svg {
    fill: var(--color-emerald-200);
  }

  .hero:not(.hero-split).hero--theme-green .hero__inner a {
    color: var(--color-green-200);
  }

  .hero:not(.hero-split).hero--theme-green .hero__inner a svg {
    fill: var(--color-green-200);
  }

  .hero:not(.hero-split).hero--theme-teal .hero__inner a {
    color: var(--color-teal-200);
  }

  .hero:not(.hero-split).hero--theme-teal .hero__inner a svg {
    fill: var(--color-teal-200);
  }

  .hero__inner {
    position: relative;
    z-index: 1;
  }
  .hero-section {
    min-height: 80vh;
  }
  .hero-section--compact {
    min-height: 60vh;
  }
  .hero-section.hero-section--compact {
    /* justify-content: flex-start; */
    padding-top: calc(var(--desktop-nav-height) + var(--space-xl));
    padding-bottom: var(--space-2xl);
  }
  .hero--simple .hero__overlay {
    display: none;
  }
  .hero__bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    padding: var(--space-l) 0;
  }
  .hero__bar-inner {
    position: relative;
  }
  .hero__bar-inner .grid {
    --grid-columns: 4;
  }
  .hero__bar-caret {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  .hero__bar-caret-icon {
    color: var(--color-canvas);
    width: var(--fs-3);
    /* height: var(--fs-3); */
  }
  .hero__bar-text {
    color: var(--color-canvas);
    font-size: var(--font-size);
    line-height: var(--line-height);
  }
  .hero__media-credit {
    position: absolute;
    right: var(--content-width-padding);
    bottom: var(--space-m);
    z-index: 11;
    max-width: 42ch;
    text-align: right;
    text-wrap: balance;
  }

  /*
   * Zoom / long titles: credit drops into document flow under the headline with
   * the same horizontal inset as .content-width (browser zoom does not fire MQs).
   */
  .hero-section.hero--credit-stacked {
    justify-content: flex-start;
  }

  .hero-section.hero--credit-stacked .hero__media-credit {
    position: static;
    z-index: 1;
    max-width: 42ch;
    text-align: left;
    margin: var(--space-m) 0 0;
    padding-left: var(--content-width-padding);
    padding-right: var(--content-width-padding);
    align-self: stretch;
    box-sizing: border-box;
  }

  @media screen and (max-width: 768px) {
    .hero__bar {
      padding: var(--space-m) 0;
    }
    .hero__bar-inner .grid {
      --grid-columns: 1;
    }
    .hero__bar-text {
      font-size: calc(var(--font-size) * 0.875);
    }
    .hero__bar-caret--hidden-mobile {
      display: none;
    }
    .hero__bar-text--mobile {
      margin-bottom: var(--space-xs);
    }
    .hero__bar-text--mobile:last-child {
      margin-bottom: 0;
    }
    .hero__media-credit {
      right: 4vw;
      bottom: var(--space-s);
      max-width: calc(100vw - 8vw);
    }

    .hero-section.hero--credit-stacked .hero__media-credit {
      padding-left: 4vw;
      padding-right: 4vw;
      max-width: none;
      margin-bottom: var(--space-s);
    }
  }

  /* Hero Split Layout */
  .hero-split {
    background: var(--color-canvas);
  }
  .hero-split__container {
    display: flex;
    align-items: stretch;
    min-height: 70vh;
    height: 100%;
    position: relative;
  }
  .hero-split__content {
    flex: 0 0 50%;
    display: flex;
    align-items: flex-end;
    padding-left: var(--content-width-padding);
    padding-right: 5vw;
    padding-top: calc(var(--space-4xl) + var(--space-2xl));
    padding-bottom: var(--space-2xl);
    position: relative;
    z-index: 1;
  }
  /* Media container with layered images */
  .hero-split__media {
    flex: 0 0 50%;
    position: relative;
    overflow: hidden;
  }
  .hero-split__video-wrapper {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 1;
  }
  .hero-split__video-wrapper iframe {
    box-sizing: border-box;
    width: 177.77777778vh;
    height: 56.25vw;
    min-width: 100%;
    min-height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .hero-split__picture {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
  }
  .hero-split__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  @media (min-width: 1025px) {
    .hero-split--has-image-overlay .hero-split__image {
      object-position: left !important;
    }
  }
  .hero-split__image--background {
    z-index: 1;
    opacity: 1;
    transition: opacity 0.6s ease-out;
  }
  .hero-split__video-wrapper.loaded ~ .hero-split__image--background {
    opacity: 0;
  }
  .hero-split__image--overlay {
    z-index: 2;
    pointer-events: none;
  }
  /* Gradient overlay for better nav visibility */
  .hero-split__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background: linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.5) 0%,
      rgba(0, 0, 0, 0.3) 20%,
      rgba(0, 0, 0, 0.1) 50%,
      rgba(0, 0, 0, 0) 100%
    );
    pointer-events: none;
  }
  .hero-split--no-tinted-overlay .hero-split__media::after {
    content: none;
  }
  .hero-split__brand-device {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 4;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    pointer-events: none;
  }
  .hero-split__media-credit {
    position: absolute;
    right: var(--space-m);
    bottom: var(--space-m);
    z-index: 11;
    max-width: calc(100% - (var(--space-m) * 2));
    text-align: right;
    text-wrap: balance;
  }
  .hero-split__meta {
    display: inline-flex;
    gap: 0.35em;
    align-items: baseline;
  }
  .hero-split__meta a {
    display: flex;
  }
  .hero-split__meta a svg {
    display: inline-flex;
    width: var(--fs-1);
    height: var(--fs-1);
  }

  .hero-split__meta-channel-link svg {
    transition: transform 0.2s ease;
  }

  .hero-split__meta-channel-link:hover svg,
  .hero-split__meta-channel-link:focus-visible svg {
    transform: translateX(var(--space-s));
  }

  @media (prefers-reduced-motion: reduce) {
    .hero-split__meta-channel-link svg {
      transition: none;
    }
  }
  /* Themed left panel backgrounds */
  .hero-split--theme-steel .hero-split__content {
    background-color: var(--color-steel-500);
    color: var(--color-canvas);
  }
  .hero-split--theme-navy .hero-split__content {
    background-color: var(--color-navy-500);
    color: var(--color-canvas);
  }
  .hero-split--theme-emerald .hero-split__content {
    background-color: var(--color-emerald-500);
    color: var(--color-canvas);
  }
  .hero-split--theme-green .hero-split__content {
    background-color: var(--color-green-500);
    color: var(--color-canvas);
  }
  .hero-split--theme-teal .hero-split__content {
    background-color: var(--color-teal-500);
    color: var(--color-canvas);
  }
  .hero-split--theme-canvas .hero-split__content {
    background-color: var(--color-canvas);
    color: var(--color-ink);
  }

  /* Hero split: links read off canvas copy using lighter brand tints */
  .hero-split--theme-steel .hero-split__content a {
    color: var(--color-steel-200);
  }

  .hero-split--theme-steel .hero-split__content a svg {
    fill: var(--color-steel-200);
  }

  .hero-split--theme-navy .hero-split__content a {
    color: var(--color-navy-200);
  }

  .hero-split--theme-navy .hero-split__content a svg {
    fill: var(--color-navy-200);
  }

  .hero-split--theme-emerald .hero-split__content a {
    color: var(--color-emerald-200);
  }

  .hero-split--theme-emerald .hero-split__content a svg {
    fill: var(--color-emerald-200);
  }

  .hero-split--theme-green .hero-split__content a {
    color: var(--color-green-200);
  }

  .hero-split--theme-green .hero-split__content a svg {
    fill: var(--color-green-200);
  }

  .hero-split--theme-teal .hero-split__content a {
    color: var(--color-teal-200);
  }

  .hero-split--theme-teal .hero-split__content a svg {
    fill: var(--color-teal-200);
  }

  /* .hero-split--theme-canvas .hero-split__content a {
    color: var(--color-teal-500);
  }

  .hero-split--theme-canvas .hero-split__content a svg {
    fill: var(--color-teal-500);
  } */

  .hero-split__channel a {
    text-decoration: none;
  }

  .hero-split__channel a:hover {
    text-decoration: underline;
  }

  /* Responsive layout - tablet/mobile stacking */
  @media screen and (max-width: 1024px) {
    .hero-split__container {
      flex-direction: column;
    }
    .hero-split__content {
      flex: 1 1 auto;
      min-height: auto;
      padding: var(--space-2xl) 10vw var(--space-2xl)
        var(--content-width-margin-mobile);
      order: 2; /* Content comes after image */
    }
    .hero-split__content-inner {
      max-width: 100%;
    }
    .hero-split__media {
      flex: 1 1 auto;
      min-height: 60vh;
      order: 1; /* Image comes first, behind header */
      min-height: 50vh;
    }
    .hero-split__image--overlay {
      display: none;
    }
    .hero-split__brand-device {
      left: auto;
      right: 0;
      bottom: 50%;
      transform: translateY(50%);
      align-items: center;
      justify-content: flex-end;
    }
    .hero-split__brand-device .brand-device {
      --device-size: 4rem !important;
      --device-rotation: 180deg !important;
    }
    .hero-split__media-credit {
      right: 4vw;
      bottom: var(--space-s);
      max-width: calc(100vw - 8vw);
    }
  }

  /* Mobile - match nav 4vw padding */
  @media screen and (max-width: 767px) {
    .hero-split__content {
      padding: var(--space-xl) 4vw;
    }
  }

  /* Title-Copy block: flex column aside; brand device in flow at bottom (not absolute) */
  .title-copy__aside {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .title-copy__brand-device {
    display: none;
    flex-shrink: 0;
    margin-top: auto;
    padding-top: var(--space-m);
  }

  .title-copy--reverse .title-copy__brand-device {
    align-self: flex-end;
  }

  @media screen and (max-width: 767px) {
    .title-copy__aside {
      height: auto;
    }
  }

  @media screen and (min-width: 768px) {
    .title-copy__aside--device-fits .title-copy__brand-device {
      display: block;
    }
  }

  /* Title-Copy: reverse — copy column first (left in LTR grid), title aside second */
  .title-copy--reverse .title-copy__main {
    order: 1;
  }

  .title-copy--reverse .title-copy__aside {
    order: 2;
  }
}
}
@layer button{
@layer button {
  .button-group {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-xs);
  }

  .button-group .button {
    margin: 0;
  }

  .button {
    align-items: center;
    background: var(--color-steel-500);
    color: var(--color-canvas);
    cursor: pointer;
    display: inline-flex;
    font-family: var(--font-family-ttnorms);
    font-feature-settings: normal;
    font-size: var(--fs--1);
    font-weight: 600;
    justify-content: center;
    letter-spacing: 0.025em;
    line-height: 1.05em;
    pointer-events: auto;
    position: relative;
    text-decoration: none;
    text-transform: none;
    user-select: none;
    -webkit-user-select: none;
  }

  .button span {
    margin-bottom: -0.1625em;
    margin-top: -0.1875em;
    padding: 0.7375em 1.0875em;
  }
  .button--ghost,
  .button--ghost span {
    padding: 0;
    margin: 0;
  }

  /*
   * Icon buttons — text block + attached icon square (single control).
   * Override padding via the custom properties below.
   */
  .button.button--icon {
    --button-icon-text-bg: var(--color-navy-500);
    --button-icon-text-bg-hover: var(--color-navy-700);
    --button-icon-icon-bg: var(--color-steel-500);
    --button-icon-icon-bg-hover: var(--color-steel-700);
    --button-icon-text-padding-block: 0.7375em;
    --button-icon-text-padding-inline: 1.0875em;
    --button-icon-square-padding: 0.5875em;
    --button-icon-glyph-size: 1.15em;
    --button-icon-square-size: calc(
      var(--button-icon-text-padding-block) * 2 + 1.05em
    );

    align-items: stretch;
    background: transparent;
    gap: 0;
    padding: 0;
  }

  .button.button--icon[data-theme="navy"] {
    --button-icon-text-bg: var(--color-navy-500);
    --button-icon-text-bg-hover: var(--color-navy-700);
    --button-icon-icon-bg: var(--color-navy-700);
    --button-icon-icon-bg-hover: var(--color-navy-800);
  }

  .button.button--icon[data-theme="steel"] {
    --button-icon-text-bg: var(--color-steel-500);
    --button-icon-text-bg-hover: var(--color-steel-700);
    --button-icon-icon-bg: var(--color-steel-700);
    --button-icon-icon-bg-hover: var(--color-steel-800);
  }

  .button.button--icon[data-theme="emerald"] {
    --button-icon-text-bg: var(--color-emerald-500);
    --button-icon-text-bg-hover: var(--color-emerald-700);
    --button-icon-icon-bg: var(--color-emerald-700);
    --button-icon-icon-bg-hover: var(--color-emerald-800);
  }

  .button.button--icon span {
    align-items: center;
    background-color: var(--button-icon-text-bg);
    display: flex;
    flex: 0 0 auto;
    margin: 0;
    padding: var(--button-icon-text-padding-block)
      var(--button-icon-text-padding-inline);
  }

  .button.button--icon svg {
    background-color: var(--button-icon-icon-bg);
    box-sizing: border-box;
    display: block;
    flex: 0 0 var(--button-icon-square-size);
    height: var(--button-icon-square-size);
    margin: 0;
    max-height: none;
    padding: var(--button-icon-square-padding);
    width: var(--button-icon-square-size);
  }

  .button.button--icon svg use {
    fill: currentColor;
  }

  .button.button--large {
    font-size: var(--font-size-x-small);
  }

  .button.button--large span {
    margin-bottom: -0.1125em;
    margin-top: -0.2em;
    padding: 0.8375em 1.1875em;
  }

  .button.button--large.button--icon {
    --button-icon-text-padding-block: 0.8375em;
    --button-icon-text-padding-inline: 1.1875em;
    --button-icon-square-padding: 0.675em;
  }

  .button.button--icon.icon--expanded svg {
    transform: rotate(180deg);
  }

  .button.button--outline {
    background: var(--color-canvas-light, var(--color-canvas));
    outline: 1px solid var(--color-ink);
    outline-offset: -1px;
    color: var(--color-text-page, var(--color-ink));
  }

  .button.button--icon.button--outline {
    --button-icon-text-bg: var(--color-canvas-light, var(--color-canvas));
    --button-icon-text-bg-hover: var(--color-canvas);
    --button-icon-icon-bg: var(--color-canvas-light, var(--color-canvas));
    --button-icon-icon-bg-hover: var(--color-canvas);
    background: transparent;
    color: var(--color-text-page, var(--color-ink));
    outline: 1px solid var(--color-ink);
    outline-offset: -1px;
  }

  .button--ghost,
  .button--ghost span {
    background: transparent;
    color: var(--color-text-page, var(--color-ink));
    text-decoration: none;
    text-transform: none;
  }

  .button.button--icon.button--ghost {
    gap: 0.35em;
  }

  .button.button--icon.button--ghost span,
  .button.button--icon.button--ghost svg {
    background-color: transparent;
  }

  .button.button--icon.button--ghost span {
    padding: 0;
  }

  .button.button--icon.button--ghost svg {
    align-self: center;
    aspect-ratio: auto;
    height: var(--button-icon-glyph-size);
    padding: 0;
    width: var(--button-icon-glyph-size);
  }

  @media (hover: hover) {
    .button {
      transition:
        background var(--transition),
        box-shadow var(--transition),
        color var(--transition),
        transform var(--transition);
      will-change: transform;
    }

    .button:hover,
    .button:focus-visible {
      background: var(--color-navy-800);
      color: var(--color-canvas);
    }

    .button:active {
      transform: scale(0.98) translateY(0.0125em);
    }

    .button.button--outline:hover,
    .button.button--outline:focus-visible {
      background: var(--color-canvas);
      box-shadow: var(--box-shadow-pill-hover);
      color: var(--color-text-page, var(--color-ink));
    }

    .button.button--ghost:hover,
    .button.button--ghost:focus-visible {
      color: var(--color-text-page, var(--color-ink));
      background-color: transparent !important;
    }

    .button.button--icon {
      transition:
        color var(--transition),
        transform var(--transition);
    }

    .button.button--icon span,
    .button.button--icon svg {
      transition:
        background-color var(--transition),
        transform 0.2s ease;
    }

    .button.button--icon:hover,
    .button.button--icon:focus-visible {
      background: transparent;
      color: var(--color-canvas);
    }

    .button.button--icon:hover span,
    .button.button--icon:focus-visible span {
      background-color: var(--button-icon-text-bg-hover);
    }

    .button.button--icon:hover svg,
    .button.button--icon:focus-visible svg {
      background-color: var(--button-icon-icon-bg-hover);
    }

    .button.button--icon.button--ghost:hover,
    .button.button--icon.button--ghost:focus-visible {
      color: var(--color-text-page, var(--color-ink));
    }

    .button.button--icon.button--ghost:hover span,
    .button.button--icon.button--ghost:focus-visible span,
    .button.button--icon.button--ghost:hover svg,
    .button.button--icon.button--ghost:focus-visible svg {
      background-color: transparent;
    }

    .button.button--icon.button--outline:hover,
    .button.button--icon.button--outline:focus-visible {
      background: transparent;
      box-shadow: var(--box-shadow-pill-hover);
      color: var(--color-text-page, var(--color-ink));
    }

    .button.button--icon.button--outline:hover span,
    .button.button--icon.button--outline:focus-visible span,
    .button.button--icon.button--outline:hover svg,
    .button.button--icon.button--outline:focus-visible svg {
      background-color: var(--color-canvas);
    }
  }

  /* @media (prefers-color-scheme: dark) {
    .button {
      color: var(--color-navy-200);
    }

    @media (hover: hover) {
      .button:focus,
      .button:hover {
        color: var(--color-ink);
      }
    }
  } */
}
}
@layer swiper{

/**
 * Swiper 12.0.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: October 21, 2025
 */

:root {
  --swiper-theme-color: var(--color-canvas);
}
:host {
  display: block;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 1;
}
.swiper {
  display: block;
  list-style: none;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  padding: 0;
  position: relative;
  z-index: 1;
}
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}
.swiper-wrapper {
  box-sizing: initial;
  display: flex;
  height: 100%;
  position: relative;
  transition-property: transform;
  transition-timing-function: var(
    --swiper-wrapper-transition-timing-function,
    initial
  );
  width: 100%;
  z-index: 1;
}
.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translateZ(0);
}
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-vertical {
  touch-action: pan-x;
}
.swiper-slide {
  display: block;
  flex-shrink: 0;
  height: 100%;
  position: relative;
  transition-property: transform;
  width: 100%;
}
.swiper-slide-invisible-blank {
  visibility: hidden;
}
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
.swiper-backface-hidden .swiper-slide {
  backface-visibility: hidden;
  transform: translateZ(0);
}
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-3d {
  perspective: 1200px;
  .swiper-cube-shadow,
  .swiper-slide {
    transform-style: preserve-3d;
  }
}
.swiper-css-mode {
  > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    &::-webkit-scrollbar {
      display: none;
    }
  }
  > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
  }
  &.swiper-horizontal {
    > .swiper-wrapper {
      scroll-snap-type: x mandatory;
    }
  }
  &.swiper-vertical {
    > .swiper-wrapper {
      scroll-snap-type: y mandatory;
    }
  }
  &.swiper-free-mode {
    > .swiper-wrapper {
      scroll-snap-type: none;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: none;
    }
  }
  &.swiper-centered {
    > .swiper-wrapper:before {
      content: "";
      flex-shrink: 0;
      order: 9999;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: center center;
      scroll-snap-stop: always;
    }
  }
  &.swiper-centered.swiper-horizontal {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper:before {
      height: 100%;
      min-height: 1px;
      width: var(--swiper-centered-offset-after);
    }
  }
  &.swiper-centered.swiper-vertical {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper:before {
      height: var(--swiper-centered-offset-after);
      min-width: 1px;
      width: 100%;
    }
  }
}
.swiper-3d {
  .swiper-slide-shadow,
  .swiper-slide-shadow-bottom,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top {
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10;
  }
  .swiper-slide-shadow {
    background: #00000026;
  }
  .swiper-slide-shadow-left {
    background-image: linear-gradient(270deg, #00000080, #0000);
  }
  .swiper-slide-shadow-right {
    background-image: linear-gradient(90deg, #00000080, #0000);
  }
  .swiper-slide-shadow-top {
    background-image: linear-gradient(0deg, #00000080, #0000);
  }
  .swiper-slide-shadow-bottom {
    background-image: linear-gradient(180deg, #00000080, #0000);
  }
}
.swiper-lazy-preloader {
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top: 4px solid #0000;
  box-sizing: border-box;
  height: 42px;
  left: 50%;
  margin-left: -21px;
  margin-top: -21px;
  position: absolute;
  top: 50%;
  transform-origin: 50%;
  width: 42px;
  z-index: 10;
}
.swiper-watch-progress .swiper-slide-visible,
.swiper:not(.swiper-watch-progress) {
  .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s linear infinite;
  }
}
.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}
.swiper-virtual .swiper-slide {
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}
.swiper-virtual.swiper-css-mode {
  .swiper-wrapper:after {
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
  }
}
.swiper-virtual.swiper-css-mode.swiper-horizontal {
  .swiper-wrapper:after {
    height: 1px;
    width: var(--swiper-virtual-size);
  }
}
.swiper-virtual.swiper-css-mode.swiper-vertical {
  .swiper-wrapper:after {
    height: var(--swiper-virtual-size);
    width: 1px;
  }
}
:root {
  --swiper-navigation-size: var(--fs-s);
}
.swiper-button-next,
.swiper-button-prev {
  align-items: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
  cursor: pointer;
  display: flex;
  height: var(--swiper-navigation-size);
  justify-content: center;
  position: absolute;
  width: var(--swiper-navigation-size);
  z-index: 10;
  &.swiper-button-disabled {
    cursor: auto;
    color: color-mix(
      in srgb,
      var(--swiper-navigation-color, var(--swiper-theme-color)) 35%,
      transparent
    );
    opacity: 1;
    pointer-events: none;
  }
  &.swiper-button-hidden {
    cursor: auto;
    opacity: 0;
    pointer-events: none;
  }
  .swiper-navigation-disabled & {
    display: none !important;
  }
  svg {
    height: 100%;
    object-fit: contain;
    transform-origin: center;
    width: 100%;
    fill: currentColor;
    pointer-events: none;
  }
}
.swiper-button-lock {
  display: none;
}
.swiper-button-next,
.swiper-button-prev {
  margin-top: calc(0px - var(--swiper-navigation-size) / 2);
  top: var(--swiper-navigation-top-offset, 50%);
}
.swiper-button-prev {
  left: var(--swiper-navigation-sides-offset, 4px);
  right: auto;
  .swiper-navigation-icon {
    transform: rotate(180deg);
  }
}
.swiper-button-next {
  left: auto;
  right: var(--swiper-navigation-sides-offset, 4px);
}
.swiper-horizontal {
  .swiper-button-next,
  .swiper-button-prev,
  ~ .swiper-button-next,
  ~ .swiper-button-prev {
    margin-left: 0;
    margin-top: calc(0px - var(--swiper-navigation-size) / 2);
    top: var(--swiper-navigation-top-offset, 50%);
  }
  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next,
  & ~ .swiper-button-prev,
  .swiper-button-prev {
    left: var(--swiper-navigation-sides-offset, 4px);
    right: auto;
  }
  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev,
  & ~ .swiper-button-next,
  .swiper-button-next {
    left: auto;
    right: var(--swiper-navigation-sides-offset, 4px);
  }
  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next,
  & ~ .swiper-button-prev,
  .swiper-button-prev {
    .swiper-navigation-icon {
      transform: rotate(180deg);
    }
  }
  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev {
    .swiper-navigation-icon {
      transform: rotate(0deg);
    }
  }
}
.swiper-vertical {
  .swiper-button-next,
  .swiper-button-prev,
  ~ .swiper-button-next,
  ~ .swiper-button-prev {
    left: var(--swiper-navigation-top-offset, 50%);
    margin-left: calc(0px - var(--swiper-navigation-size) / 2);
    margin-top: 0;
    right: auto;
  }
  .swiper-button-prev,
  ~ .swiper-button-prev {
    bottom: auto;
    top: var(--swiper-navigation-sides-offset, 4px);
    .swiper-navigation-icon {
      transform: rotate(-90deg);
    }
  }
  .swiper-button-next,
  ~ .swiper-button-next {
    bottom: var(--swiper-navigation-sides-offset, 4px);
    top: auto;
    .swiper-navigation-icon {
      transform: rotate(90deg);
    }
  }
}
.swiper-pagination {
  position: absolute;
  text-align: center;
  transform: translateZ(0);
  transition: opacity 0.3s;
  z-index: 10;
  &.swiper-pagination-hidden {
    opacity: 0;
  }
  &.swiper-pagination-disabled,
  .swiper-pagination-disabled > & {
    display: none !important;
  }
}
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: var(--swiper-pagination-bottom, 8px);
  left: 0;
  top: var(--swiper-pagination-top, auto);
  width: 100%;
}
.swiper-pagination-bullets-dynamic {
  font-size: 0;
  overflow: hidden;
  .swiper-pagination-bullet {
    position: relative;
    transform: scale(0.33);
  }
  .swiper-pagination-bullet-active,
  .swiper-pagination-bullet-active-main {
    transform: scale(1);
  }
  .swiper-pagination-bullet-active-prev {
    transform: scale(0.66);
  }
  .swiper-pagination-bullet-active-prev-prev {
    transform: scale(0.33);
  }
  .swiper-pagination-bullet-active-next {
    transform: scale(0.66);
  }
  .swiper-pagination-bullet-active-next-next {
    transform: scale(0.33);
  }
}
.swiper-pagination-bullet {
  background: var(
    --swiper-pagination-bullet-inactive-color,
    color-mix(
      in srgb,
      var(--swiper-pagination-color, var(--swiper-theme-color)) 25%,
      transparent
    )
  );
  border-radius: var(--swiper-pagination-bullet-border-radius, 50%);
  display: inline-block;
  height: var(
    --swiper-pagination-bullet-height,
    var(--swiper-pagination-bullet-size, 8px)
  );
  opacity: var(--swiper-pagination-bullet-inactive-opacity, 1);
  width: var(
    --swiper-pagination-bullet-width,
    var(--swiper-pagination-bullet-size, 8px)
  );
  button& {
    appearance: none;
    border: none;
    box-shadow: none;
    margin: 0;
    padding: 0;
  }
  .swiper-pagination-clickable & {
    cursor: pointer;
  }
  &:only-child {
    display: none !important;
  }
}
.swiper-pagination-bullet-active {
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
  opacity: var(--swiper-pagination-bullet-opacity, 1);
}
.swiper-pagination-vertical.swiper-pagination-bullets,
.swiper-vertical > .swiper-pagination-bullets {
  left: var(--swiper-pagination-left, auto);
  right: var(--swiper-pagination-right, 8px);
  top: 50%;
  transform: translate3d(0, -50%, 0);
  .swiper-pagination-bullet {
    display: block;
    margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
  }
  &.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    .swiper-pagination-bullet {
      display: inline-block;
      transition:
        transform 0.2s,
        top 0.2s;
    }
  }
}
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-horizontal.swiper-pagination-bullets {
  .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
  }
  &.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    .swiper-pagination-bullet {
      transition:
        transform 0.2s,
        left 0.2s;
    }
  }
}
.swiper-horizontal.swiper-rtl
  > .swiper-pagination-bullets-dynamic
  .swiper-pagination-bullet {
  transition:
    transform 0.2s,
    right 0.2s;
}
.swiper-pagination-fraction {
  color: var(--swiper-pagination-fraction-color, inherit);
}
.swiper-pagination-progressbar {
  background: var(--swiper-pagination-progressbar-bg-color, #00000040);
  position: absolute;
  .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color, var(--swiper-theme-color));
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    transform: scale(0);
    transform-origin: left top;
    width: 100%;
  }
  .swiper-rtl & .swiper-pagination-progressbar-fill {
    transform-origin: right top;
  }
  &.swiper-pagination-horizontal,
  &.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,
  .swiper-horizontal > &,
  .swiper-vertical > &.swiper-pagination-progressbar-opposite {
    height: var(--swiper-pagination-progressbar-size, 4px);
    left: 0;
    top: 0;
    width: 100%;
  }
  &.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,
  &.swiper-pagination-vertical,
  .swiper-horizontal > &.swiper-pagination-progressbar-opposite,
  .swiper-vertical > & {
    height: 100%;
    left: 0;
    top: 0;
    width: var(--swiper-pagination-progressbar-size, 4px);
  }
}
.swiper-pagination-lock {
  display: none;
}
.swiper-scrollbar {
  background: var(--swiper-scrollbar-bg-color, #0000001a);
  border-radius: var(--swiper-scrollbar-border-radius, 10px);
  position: relative;
  touch-action: none;
  &.swiper-scrollbar-disabled,
  .swiper-scrollbar-disabled > & {
    display: none !important;
  }
  &.swiper-scrollbar-horizontal,
  .swiper-horizontal > & {
    bottom: var(--swiper-scrollbar-bottom, 4px);
    height: var(--swiper-scrollbar-size, 4px);
    left: var(--swiper-scrollbar-sides-offset, 1%);
    position: absolute;
    top: var(--swiper-scrollbar-top, auto);
    width: calc(100% - var(--swiper-scrollbar-sides-offset, 1%) * 2);
    z-index: 50;
  }
  &.swiper-scrollbar-vertical,
  .swiper-vertical > & {
    height: calc(100% - var(--swiper-scrollbar-sides-offset, 1%) * 2);
    left: var(--swiper-scrollbar-left, auto);
    position: absolute;
    right: var(--swiper-scrollbar-right, 4px);
    top: var(--swiper-scrollbar-sides-offset, 1%);
    width: var(--swiper-scrollbar-size, 4px);
    z-index: 50;
  }
}
.swiper-scrollbar-drag {
  background: var(--swiper-scrollbar-drag-bg-color, #00000080);
  border-radius: var(--swiper-scrollbar-border-radius, 10px);
  height: 100%;
  left: 0;
  position: relative;
  top: 0;
  width: 100%;
}
.swiper-scrollbar-cursor-drag {
  cursor: move;
}
.swiper-scrollbar-lock {
  display: none;
}
.swiper-zoom-container {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  text-align: center;
  width: 100%;
  > canvas,
  > img,
  > svg {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
  }
}
.swiper-slide-zoomed {
  cursor: move;
  touch-action: none;
}
.swiper .swiper-notification {
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  z-index: -1000;
}
.swiper-free-mode > .swiper-wrapper {
  margin: 0 auto;
  transition-timing-function: ease-out;
}
.swiper-grid > .swiper-wrapper {
  flex-wrap: wrap;
}
.swiper-grid-column > .swiper-wrapper {
  flex-direction: column;
  flex-wrap: wrap;
}
.swiper-fade {
  &.swiper-free-mode {
    .swiper-slide {
      transition-timing-function: ease-out;
    }
  }
  .swiper-slide {
    pointer-events: none;
    transition-property: opacity;
    .swiper-slide {
      pointer-events: none;
    }
  }
  .swiper-slide-active {
    pointer-events: auto;
    & .swiper-slide-active {
      pointer-events: auto;
    }
  }
}
.swiper.swiper-cube {
  overflow: visible;
}
.swiper-cube {
  .swiper-slide {
    backface-visibility: hidden;
    height: 100%;
    pointer-events: none;
    transform-origin: 0 0;
    visibility: hidden;
    width: 100%;
    z-index: 1;
    .swiper-slide {
      pointer-events: none;
    }
  }
  &.swiper-rtl .swiper-slide {
    transform-origin: 100% 0;
  }
  .swiper-slide-active {
    &,
    & .swiper-slide-active {
      pointer-events: auto;
    }
  }
  .swiper-slide-active,
  .swiper-slide-next,
  .swiper-slide-prev {
    pointer-events: auto;
    visibility: visible;
  }
  .swiper-cube-shadow {
    bottom: 0;
    height: 100%;
    left: 0;
    opacity: 0.6;
    position: absolute;
    width: 100%;
    z-index: 0;
    &:before {
      background: #000;
      bottom: 0;
      content: "";
      filter: blur(50px);
      left: 0;
      position: absolute;
      right: 0;
      top: 0;
    }
  }
}
.swiper-cube {
  .swiper-slide-next + .swiper-slide {
    pointer-events: auto;
    visibility: visible;
  }
}
.swiper-cube {
  .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,
  .swiper-slide-shadow-cube.swiper-slide-shadow-left,
  .swiper-slide-shadow-cube.swiper-slide-shadow-right,
  .swiper-slide-shadow-cube.swiper-slide-shadow-top {
    backface-visibility: hidden;
    z-index: 0;
  }
}
.swiper.swiper-flip {
  overflow: visible;
}
.swiper-flip {
  .swiper-slide {
    backface-visibility: hidden;
    pointer-events: none;
    z-index: 1;
    .swiper-slide {
      pointer-events: none;
    }
  }
  .swiper-slide-active {
    &,
    & .swiper-slide-active {
      pointer-events: auto;
    }
  }
}
.swiper-flip {
  .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,
  .swiper-slide-shadow-flip.swiper-slide-shadow-left,
  .swiper-slide-shadow-flip.swiper-slide-shadow-right,
  .swiper-slide-shadow-flip.swiper-slide-shadow-top {
    backface-visibility: hidden;
    z-index: 0;
  }
}
.swiper-creative {
  .swiper-slide {
    backface-visibility: hidden;
    overflow: hidden;
    transition-property: transform, opacity, height;
  }
}
.swiper.swiper-cards {
  overflow: visible;
}
.swiper-cards {
  .swiper-slide {
    backface-visibility: hidden;
    overflow: hidden;
    transform-origin: center bottom;
  }
}

/* Custom: Swiper container constraints */
[data-swiper] {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

[data-swiper] > .swiper {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

[data-swiper] > .swiper .swiper-wrapper {
  width: 100%;
  max-width: 100%;
}

/* Ensure slides and content fit within container */
[data-swiper] .swiper-slide {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

[data-swiper] .swiper-slide img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Image slider: ensure images fill the aspect-ratio frame */
.image-slider .swiper-slide .image-slider__image {
  height: 100%;
  object-fit: cover;
}

/* Image slider: overlay controls on bottom of slider */
.image-slider .swiper-controls {
  position: absolute;
  inset-inline: var(--space-m, 1.5rem);
  bottom: var(--space-xs, 1rem);
  z-index: 2;
}

/* In the image slider, match arrow colour to pagination dots */
.image-slider .swiper-controls .swiper-button-prev,
.image-slider .swiper-controls .swiper-button-next {
  color: var(--color-canvas, #fff);
}

@media (max-width: 767px) {
  .image-slider .swiper-controls {
    inset-inline: var(--space-s, 1rem);
    bottom: var(--space-s, 1rem);
  }
}

/* Navigation controls wrapper */
[data-swiper] .swiper-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-m, 1.5rem);
  padding: var(--space-s);
}

/* Navigation buttons */
[data-swiper] .swiper-controls .swiper-button-prev,
[data-swiper] .swiper-controls .swiper-button-next {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  margin: 0;
  flex-shrink: 0;
  width: var(--swiper-navigation-size);
  height: var(--swiper-navigation-size);
  color: var(--swiper-navigation-color);
}

[data-swiper] .swiper-controls .swiper-button-prev {
  order: 1;
}

[data-swiper] .swiper-controls .swiper-button-next {
  order: 3;
}

/* Pagination centered */
[data-swiper] .swiper-controls .swiper-pagination {
  position: relative;
  bottom: auto;
  left: auto;
  top: auto;
  width: auto;
  margin: 0;
  order: 2;
  flex: 1;
  display: flex;
  justify-content: center;
}

/* Custom: Bullet colors — inactive uses muted colour, not opacity (keeps focus rings visible) */
[data-swiper] .swiper-pagination-bullet {
  --swiper-pagination-bullet-inactive-color: color-mix(
    in srgb,
    var(--color-canvas, #fff) 35%,
    transparent
  );
  --swiper-pagination-bullet-inactive-opacity: 1;
}

[data-swiper] .swiper-pagination-bullet-active {
  --swiper-pagination-color: var(--color-canvas, #fff);
}

/* Split swiper: 1/3 image (fade) left, 2/3 content (slide) right, controls inside right block */
.swiper-split {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-l, 2rem);
  align-items: stretch;
  min-height: 20rem;
  width: 100%;
  overflow: hidden;
}

/* Modifier: 50/50 split — match split-50 column geometry (no gap, true viewport midpoint) */
.swiper-split--50-50 {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
}

.swiper-split__media {
  position: relative;
  overflow: hidden;
  min-height: 14rem;
}

.swiper-split__media-item {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--swiper-split-fade-duration, 0.5s) ease-in-out;
  pointer-events: none;
}

.swiper-split__media-item.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 1;
}

.swiper-split__media-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.swiper-split__content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

/* Constrain viewport width so Swiper reads correct size (avoids slide width going to 17M+ px) */
.swiper-split__content > .swiper {
  flex: 1;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.swiper-split__content .swiper-wrapper {
  box-sizing: border-box;
}

.swiper-split__content .swiper-slide {
  display: flex;
  flex-direction: column;
  width: 100%;
  box-sizing: border-box;
  justify-content: center;
}

.swiper-split__slide-inner {
  width: 100%;
  padding: var(--space-2xl) var(--space-xl);
}

.swiper-split__content .swiper-controls {
  flex-shrink: 0;
  margin-top: auto;
}

/* Desktop: make image column full-bleed like split-50, keep swiper content constrained */
@media (min-width: 768px) {
  .swiper-split {
    /* Break out of the content container so the media can bleed to viewport edge */
    width: 100vw;
    margin-inline: calc(50% - 50vw);
  }

  .swiper-split__media {
    /* Match the more immersive height used by split-50 */
    min-height: clamp(320px, 60vh, 640px);
  }

  .swiper-split__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .swiper-split__content > .swiper {
    /* Let the swiper fill the content column; inner slide content is constrained instead */
    width: 100%;
    max-width: 100%;
  }

  .swiper-split__slide-inner {
    max-width: var(--content-width);
    margin-inline: auto;
    padding-block: var(--space-3xl);
    /* padding-inline: var(--content-width-padding); */
  }

  /* On desktop, keep using Swiper's built-in overlay navigation, but
     shift both prev/next buttons in from the viewport edge so they
     visually align with the content-width padding. */
  [data-swiper-split] .swiper {
    --swiper-navigation-sides-offset: var(--content-width-padding);
  }
}
@media (min-width: 1200px) {
  .swiper-split--50-50 .swiper-split__media {
    aspect-ratio: 1 / 1;
  }
}
/* When text colour is set on split swiper, nav and pagination use it */
[data-swiper-split][class*="text-"] {
  --swiper-theme-color: currentColor;
  --swiper-navigation-color: currentColor;
  --swiper-pagination-color: currentColor;
  --swiper-pagination-bullet-inactive-color: color-mix(
    in srgb,
    currentColor 35%,
    transparent
  );
  --swiper-pagination-bullet-inactive-opacity: 1;
}

@media (max-width: 767px) {
  .swiper-split {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    min-height: auto;
  }

  .swiper-split__media {
    min-height: 12rem;
    order: 1;
  }

  .swiper-split__content {
    order: 2;
  }
  .swiper-split__content .swiper-slide {
    padding: 0;
    justify-content: start;
  }
  .swiper-split__slide-inner {
    padding-block: var(--space-m);
    padding-inline: var(--space-xl);
    padding-bottom: var(--space-l);
  }
  .swiper-split__content .swiper-button-prev {
    left: var(--space-m);
    right: auto;
  }
  .swiper-split__content .swiper-button-next {
    right: var(--space-m);
    left: auto;
  }
}
.image-slider {
  width: 100%;
  max-width: 100%;
  position: relative;
  /* Match navigation colour with pagination dots for this slider */
  --swiper-navigation-color: var(--color-canvas, #fff);
}

/* Hidden 8/4 grid row: marker supplies desktop column-B edge for peek alignment (JS). */
.image-slider__column-align-bridge {
  height: 0;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  margin: 0;
  padding-block: 0;
}

.image-slider__column-align-bridge-grid {
  min-height: 0;
  margin: 0;
}

.image-slider__column-align-bridge-spacer,
.image-slider__column-align-bridge-marker {
  min-height: 0;
  box-sizing: border-box;
}

.image-slider__column-align-bridge-spacer {
  padding: 0;
}

/* Full column-B inset read by JS; COLUMN_B_PADDING_FRACTION of it is subtracted from the 8|9 line. */
.image-slider__column-align-bridge-marker {
  padding: 0;
  padding-inline-start: var(--space-l);
}

/* Image slider: subtle bottom gradient to improve control legibility */
.image-slider::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: 0;
  bottom: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.15) 65%,
    rgba(0, 0, 0, 0.6) 100%
  );
  pointer-events: none;
}

.image-slider__slide {
  position: relative;
  overflow: hidden;
}

.image-slider__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.image-slider__caption {
  position: absolute;
  left: var(--space-m, 1.5rem);
  top: var(--space-m, 1.5rem);
  z-index: 2;
  max-width: calc(100% - (var(--space-m, 1.5rem) * 2));
  margin: 0;
  padding: 0.35em 0.55em;
  text-align: left;
  text-wrap: balance;
  background: rgba(0, 0, 0, 0.55);
  pointer-events: none;
}

@media (max-width: 767px) {
  .image-slider__caption {
    left: var(--space-s, 1rem);
    top: var(--space-s, 1rem);
    max-width: calc(100% - (var(--space-s, 1rem) * 2));
  }
}

/* On larger screens, break the slider out to full viewport width so
   the leading slide is full-width and the next slide peeks in. */
@media (min-width: 768px) {
  .image-slider.image-slider--peek[data-swiper] {
    width: 100vw;
    /* margin-inline: calc(50% - 50vw); */
    box-sizing: border-box;
  }
}

/* Square image row — whole slides only; white pagination overlay at bottom centre */
.square-slider {
  width: 100%;
  position: relative;
}

.square-slider .swiper-slide {
  height: auto;
}

.square-slider__slide-inner {
  position: relative;
  width: 100%;
}

.square-slider__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  user-select: none;
}

.square-slider__caption {
  position: absolute;
  left: var(--space-s, 0.5rem);
  bottom: var(--space-s, 0.5rem);
  z-index: 2;
  max-width: calc(100% - (var(--space-s, 0.5rem) * 2));
  margin: 0;
  padding: 0.35em 0.55em;
  text-align: left;
  text-wrap: balance;
  background: rgba(0, 0, 0, 0.55);
  pointer-events: none;
}

.square-slider__pagination {
  position: absolute;
  bottom: var(--space-s, 1rem);
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  z-index: 2;
  pointer-events: auto;
}

.square-slider .swiper-pagination-bullet {
  --swiper-pagination-bullet-inactive-color: color-mix(in srgb, #fff 45%, transparent);
  --swiper-pagination-bullet-inactive-opacity: 1;
  --swiper-pagination-color: #fff;
}

/* Focus/hover: full opacity so keyboard rings stay obvious */
.swiper-button-prev:focus-visible,
.swiper-button-next:focus-visible,
.swiper-pagination-bullet:focus-visible {
  opacity: 1;
}
}
@layer components{
@layer components {
  /* Navigation Container */
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1010;
    --nav-focus-ring: var(--color-canvas);
    transition:
      background var(--transition, 0.3s ease),
      transform 0.3s ease,
      box-shadow var(--transition, 0.3s ease);
    transform: translateY(0);
  }

  .nav--hidden {
    transform: translateY(-100%);
  }

  /* Scrolled state - white background with dark text (always overrides light/dark variants) */
  .nav--scrolled {
    background: var(--color-canvas) !important;
    --nav-focus-ring: var(--color-ink);
  }

  .nav--scrolled .nav__logo,
  .nav--scrolled .nav__link,
  .nav--scrolled .nav__submenu-toggle {
    color: var(--color-ink) !important;
  }

  /* Open button lives outside <nav>; use :has() so theme matches .nav */
  /* Exclude overlay: scrolled + ink must not beat the light close icon on navy */
  body:has(.nav.nav--scrolled:not(.nav--hidden)):not(
      :has(.nav__overlay.is-active)
    )
    .nav__open {
    color: var(--color-ink) !important;
  }

  .nav--scrolled .nav__toggle span {
    background: var(--color-ink) !important;
  }

  .nav--scrolled .nav__link::after {
    background: var(--color-ink) !important;
  }

  /* Keep nav visible when overlay is open so toggle button is accessible */
  body:has(.nav__overlay.is-active) .nav {
    transform: translateY(0) !important;
  }

  /* Ensure toggle button is always visible on mobile when overlay is open */
  @media (max-width: 767px) {
    body:has(.nav__overlay.is-active) .nav__toggle {
      display: flex !important;
    }
  }

  /* Navigation Content */
  .nav__content {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 var(--content-width-padding);
  }
  /* @media (min-width: 1023px) {
    .nav__content {
      padding: 0 var(--content-width-padding) !important;
    }
  } */

  .nav__content-inner {
    display: flex;
    container-type: inline-size;
    align-items: center;
    justify-content: space-between;
    height: var(--desktop-nav-height);
    position: relative;
  }

  /* Desktop breadcrumb row — only when canvas header is scrolled into view */
  .nav__crumbs {
    display: none;
  }

  @media (min-width: 768px) {
    .nav__crumbs {
      display: block;
      position: fixed;
      top: var(--desktop-nav-height);
      left: 0;
      right: 0;
      z-index: 1009;
      width: 100%;
      background: var(--color-canvas);
      border-top: 1px solid
        color-mix(in srgb, var(--color-ink) 12%, transparent);
      box-shadow: var(--box-shadow);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition:
        opacity 0.25s ease,
        visibility 0.25s ease;
      transition-delay: 0s;
    }

    header:has(.nav.nav--scrolled:not(.nav--hidden)) .nav__crumbs {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transition-delay: 0.2s;
    }

    @media (prefers-reduced-motion: reduce) {
      .nav__crumbs,
      header:has(.nav.nav--scrolled:not(.nav--hidden)) .nav__crumbs {
        transition: none;
        transition-delay: 0s;
      }
    }

    .nav__crumbs-inner {
      padding: var(--space-2xs) var(--content-width-padding);
    }

    .nav__crumbs-list {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--space-3xs);
      list-style: none;
      margin: 0;
      padding: 0;
      font-size: var(--fs--1);
      line-height: var(--line-height-tight);
    }

    .nav__crumbs-item {
      display: inline-flex;
      align-items: center;
      gap: var(--space-3xs);
      min-width: 0;
    }

    .nav__crumbs-link,
    .nav__crumbs-current {
      color: var(--color-ink);
      text-decoration: none;
    }

    .nav__crumbs-link:hover,
    .nav__crumbs-link:focus-visible {
      opacity: 0.75;
    }

    .nav__crumbs-link:focus-visible {
      outline: 2px solid var(--color-ink);
      outline-offset: 2px;
    }

    .nav__crumbs-current {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .nav__crumbs-separator {
      width: 0.65rem;
      height: 0.65rem;
      fill: currentColor;
      color: var(--color-ink);
      opacity: 0.55;
      flex-shrink: 0;
    }

    body:has(.nav__overlay.is-active)
      header:has(.nav.nav--scrolled:not(.nav--hidden))
      .nav__crumbs {
      display: none;
    }
  }

  /* Logo */
  .nav__logo {
    display: flex;
    align-items: center;
    text-decoration: none;
    transition:
      opacity var(--transition, 0.3s ease),
      color var(--transition, 0.3s ease);
    color: var(--color-ink);
  }

  .nav__logo svg,
  .nav__logo-icon {
    height: calc(1.5rem + 2vw);
    width: auto;
    display: block;
    fill: currentColor;
  }

  .nav__logo:hover {
    opacity: 0.8;
  }

  /* Desktop Open Button (Plus Icon) — sits outside <nav> in _layout.twig */
  .nav__open {
    display: none;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1011;
    position: fixed;
    top: calc((var(--desktop-nav-height) - 2.5rem) / 2);
    right: var(--content-width-padding);
    isolation: isolate;
    color: var(--color-ink);
    transition:
      opacity var(--transition, 0.3s ease),
      color var(--transition, 0.3s ease);
    pointer-events: auto;
  }

  /* Inverse pill: only when the bar is hidden and only the floating icon shows */
  .nav__open::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    z-index: -1;
    opacity: 0;
    transition:
      opacity var(--transition, 0.3s ease),
      background-color var(--transition, 0.3s ease);
    pointer-events: none;
  }

  .nav__open:hover {
    opacity: 0.8;
  }

  body:has(.nav:not(.nav--scrolled):not(.nav--hidden)) .nav__open:focus-visible,
  body:has(.nav__overlay.is-active) .nav__open:focus-visible {
    outline: 2px solid var(--color-canvas);
    outline-offset: 2px;
  }

  body:has(.nav.nav--scrolled:not(.nav--hidden)):not(
      :has(.nav__overlay.is-active)
    )
    .nav__open:focus-visible {
    outline: 2px solid var(--color-ink);
    outline-offset: 2px;
  }

  body:has(.nav.nav--hidden:not(.nav--dark)) .nav__open:focus-visible {
    outline: 2px solid var(--color-ink);
    outline-offset: 2px;
  }

  body:has(.nav.nav--hidden.nav--dark) .nav__open:focus-visible {
    outline: 2px solid var(--color-canvas);
    outline-offset: 2px;
  }

  .nav__open-icon {
    width: 1.5rem;
    height: 1.5rem;
    stroke: currentColor;
    stroke-width: 2;
    transition: transform 0.3s ease;
  }

  /* Transform plus icon to X when menu is open */
  .nav__open[aria-expanded="true"] .nav__open-icon {
    transform: rotate(45deg);
  }

  /* Menu Toggle Button (Mobile) */
  .nav__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 2.5rem;
    height: 2.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1005;
    position: relative;
  }

  .nav__toggle span {
    display: block;
    width: 1.5rem;
    height: 2px;
    background: var(--color-ink);
    transition: all var(--transition, 0.3s ease);
    position: relative;
  }

  .nav__toggle span:not(:last-child) {
    margin-bottom: 0.375rem;
  }

  .nav__toggle[aria-expanded="true"] span {
    position: absolute;
    margin: 0;
  }

  .nav__toggle[aria-expanded="true"] span:nth-child(1) {
    transform: rotate(45deg);
  }

  .nav__toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .nav__toggle[aria-expanded="true"] span:nth-child(3) {
    transform: rotate(-45deg);
  }

  /* Navigation Menu */
  .nav__menu {
    display: flex;
    align-items: center;
    gap: calc(var(--space-s) + 1vw);
    list-style: none;
    margin: 0;
    padding: 0;
    padding-right: calc(2.25rem + var(--space-s));
    opacity: 1;
    transition: opacity 0.3s ease;
  }

  .nav__item {
    position: relative;
  }

  .nav__item-controls {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
  }

  .nav__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--color-canvas);
    text-decoration: none;
    font-size: 1.5cqi;
    font-weight: 500;
    transition: color var(--transition, 0.3s ease);
    position: relative;
    padding: 0.5rem 0;
  }

  .nav__submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0.5rem 0.15rem;
    margin: 0;
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    line-height: 1;
    transition: opacity var(--transition, 0.3s ease);
  }

  .nav__submenu-toggle:hover,
  .nav__submenu-toggle:focus-visible {
    opacity: 0.8;
  }

  .nav :is(.nav__logo, .nav__link, .nav__submenu-toggle):focus-visible,
  .nav .nav__toggle:focus-visible {
    outline: 2px solid var(--nav-focus-ring);
    outline-offset: 2px;
  }

  .nav__menu:not(.nav__menu--overlay) .nav__sublink:focus-visible {
    outline: 2px solid var(--color-canvas);
    outline-offset: 2px;
  }

  .nav__link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--color-canvas, currentColor);
    transition:
      width var(--transition, 0.3s ease),
      background var(--transition, 0.3s ease);
  }

  .nav__link:hover::after,
  .nav__link[aria-current="page"]::after,
  .nav__item--has-children:hover .nav__link::after,
  .nav__item--has-children.is-open .nav__link::after {
    width: 100%;
  }

  @media (hover: hover) {
    .nav__link:hover {
      color: var(--color-canvas);
    }
  }

  .nav__link[aria-current="page"] {
    color: var(--color-canvas);
  }

  .nav__caret {
    width: 0.9rem;
    height: 0.9rem;
    fill: currentColor;
    transition: transform var(--transition, 0.3s ease);
  }

  .nav__submenu {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
  }

  .nav__submenu-item {
    margin: 0;
  }

  .nav__item--has-children > .nav__submenu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 13rem;
    background: var(--color-navy-500);
    color: var(--color-canvas);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.35rem);
    transition:
      opacity 0.2s ease,
      transform 0.2s ease,
      visibility 0.2s ease;
    z-index: 1020;
  }

  .nav__item--has-children.is-open > .nav__submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  @media (hover: hover) {
    .nav__item--has-children:hover > .nav__submenu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateY(0);
    }
  }

  .nav__item--has-children.is-open .nav__caret,
  .nav__item--has-children .nav__submenu-toggle[aria-expanded="true"] .nav__caret {
    transform: rotate(180deg);
  }

  @media (hover: hover) {
    .nav__item--has-children:hover .nav__caret {
      transform: rotate(180deg);
    }
  }

  .nav__sublink {
    display: block;
    position: relative;
    padding: 0.55rem 1rem 0.55rem 1.85rem;
    color: var(--color-canvas);
    text-decoration: none;
    white-space: nowrap;
    font-size: 1.5cqi;
    font-weight: 500;
  }

  .nav__sublink::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.9rem;
    width: 0.4rem;
    height: 0.4rem;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
    opacity: 0.9;
  }

  .nav__sublink:hover,
  .nav__sublink:focus-visible {
    color: var(--color-canvas);
    opacity: 0.8;
  }

  /* Light variant - for dark backgrounds */
  .nav--light .nav__logo,
  .nav--light .nav__link,
  .nav--light .nav__submenu-toggle {
    color: var(--color-canvas);
  }

  .nav--light .nav__toggle span {
    background: var(--color-canvas);
  }

  /* Dark variant - for light backgrounds */
  .nav--dark .nav__logo,
  .nav--dark .nav__link,
  .nav--dark .nav__submenu-toggle {
    color: var(--color-ink);
  }

  .nav--dark .nav__toggle span {
    background: var(--color-ink);
  }

  /* Open button theme when the full header is visible (matches .nav state) */
  body:has(.nav:not(.nav--hidden).nav--light) .nav__open {
    color: var(--color-canvas);
  }

  body:has(.nav:not(.nav--hidden).nav--dark) .nav__open {
    color: var(--color-ink);
  }

  body:has(.nav:not(.nav--hidden).nav--split) .nav__open {
    color: var(--color-canvas);
  }

  /*
   * Split hero (nav--split from navigation.ts): logo over left panel, links over image.
   * Dark themes: light logo + light links. Canvas theme: dark logo + light links.
   * Scoped to .nav--split so scrolled nav can fall back to brightness detection.
   */
  body:has(.hero-split) .nav.nav--split .nav__link,
  body:has(.hero-split) .nav.nav--split .nav__submenu-toggle {
    color: var(--color-canvas);
  }

  body:has(.hero-split) .nav.nav--split .nav__toggle span {
    background: var(--color-canvas);
  }

  body:has(.hero-split:not(.hero-split--theme-canvas))
    .nav.nav--split
    .nav__logo {
    color: var(--color-canvas);
  }

  body:has(.hero-split--theme-canvas) .nav.nav--split .nav__logo {
    color: var(--color-ink);
  }

  /* Mobile: image stacks behind header — light logo and links for all split themes */
  @media screen and (max-width: 1024px) {
    body:has(.hero-split) .nav.nav--split .nav__logo,
    body:has(.hero-split) .nav.nav--split .nav__link,
    body:has(.hero-split) .nav.nav--split .nav__submenu-toggle {
      color: var(--color-canvas);
    }

    body:has(.hero-split) .nav.nav--split .nav__toggle span {
      background: var(--color-canvas);
    }

    .nav__link {
      font-size: 2.5cqi;
    }
  }

  /*
   * Floating open button only (.nav--hidden): solid circle behind icon so it reads on any content.
   * Default (nav--light / nav--split): canvas pill + ink icon; nav--dark: ink pill + canvas icon.
   */
  body:has(.nav.nav--hidden) .nav__open::before {
    background-color: var(--color-canvas);
  }

  body:has(.nav.nav--hidden) .nav__open {
    color: var(--color-ink);
  }

  body:has(.nav.nav--hidden.nav--dark) .nav__open::before {
    background-color: var(--color-ink);
  }

  body:has(.nav.nav--hidden.nav--dark) .nav__open {
    color: var(--color-canvas);
  }

  /* Full-Screen Navigation Overlay */
  .nav__overlay {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    background: var(--color-nav-overlay, var(--color-navy-500));
    z-index: 1000;
    scrollbar-gutter: stable;
    transform-origin: top center;
    /* Initial state - hidden above viewport */
    transform: translateY(-100%);
    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
  }

  .nav__overlay.is-active {
    pointer-events: auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    /* GSAP handles transform and visibility */
  }

  .nav__overlay-content {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: 0;
  }

  /* Update toggle/open button and logo colors when menu is open (overlay background is navy) */
  .nav__toggle[aria-expanded="true"] span {
    background: var(--color-canvas);
  }

  .nav__open[aria-expanded="true"] {
    color: var(--color-canvas);
  }

  /* Override scrolled state when overlay is active - remove background and make everything white */
  body:has(.nav__overlay.is-active) .nav {
    background: transparent !important;
    box-shadow: none !important;
  }

  body:has(.nav__overlay.is-active) .nav__logo,
  body:has(.nav__overlay.is-active) .nav__link,
  body:has(.nav__overlay.is-active) .nav__submenu-toggle {
    color: var(--color-canvas) !important;
  }

  body:has(.nav__overlay.is-active) .nav {
    --nav-focus-ring: var(--color-canvas);
  }

  body:has(.nav__overlay.is-active) .nav__toggle span {
    background: var(--color-canvas) !important;
  }

  body:has(.nav__overlay.is-active) .nav__open {
    color: var(--color-canvas) !important;
  }

  body:has(.nav__overlay.is-active) .nav__open .nav__open-icon {
    stroke: var(--color-canvas) !important;
  }

  body:has(.nav__overlay.is-active) .nav__open::before {
    opacity: 0 !important;
  }

  /* Fade out desktop nav menu when overlay is open */
  body:has(.nav__overlay.is-active) .nav__menu:not(.nav__menu--overlay) {
    opacity: 0;
    pointer-events: none;
  }

  /* Navigation Menu in Overlay */
  .nav__overlay-nav {
    flex: 1;
    display: flex;
    align-items: stretch;
    justify-content: center;
    position: relative;
  }

  .nav__overlay-inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-l);
    padding-top: calc(var(--desktop-nav-height) + var(--space-4xl));
    padding-bottom: var(--space-4xl);
    position: relative;
  }

  @media (max-width: 767px) {
    .nav__overlay-inner {
      padding-top: calc(5rem + var(--space-2xl));
      padding-bottom: var(--space-2xl);
    }
  }

  .nav__menu--overlay {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    align-items: start;
  }

  .nav__menu--overlay-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-m) var(--space-l);
    align-items: start;
  }

  @media (min-width: 768px) {
    .nav__menu--overlay-columns {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }

  .nav__item--overlay-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
  }

  .nav__item--overlay {
    position: relative;
    /* GSAP controls opacity and transform */
  }

  .nav__link--overlay {
    display: block;
    width: 100%;
    padding: 0 0 var(--space-xs) 0;
    font-size: var(--fs-2);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    color: var(--color-canvas);
    text-decoration: none;
    position: relative;
  }

  @media (max-width: 767px) {
    .nav__link--overlay {
      font-size: var(--fs-1);
      padding: var(--space-s) 0;
      transition: opacity 0.2s ease-in-out;
    }
  }

  .nav__link--overlay:hover,
  .nav__sublink--overlay:hover {
    opacity: 0.75;
  }

  .nav__link--overlay::after {
    display: none;
  }

  .nav__submenu--overlay {
    position: static;
    min-width: 0;
    background: transparent;
    color: var(--color-canvas);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    padding: 0 0 var(--space-s) 0;
    margin-top: var(--space-2xs);
    width: 100%;
  }

  .nav__overlay-meta {
    width: 100%;
    color: var(--color-canvas);
  }

  .nav__overlay-meta a {
    color: var(--color-canvas);
    text-decoration: none;
  }

  .nav__overlay-meta a:hover,
  .nav__overlay-meta a:focus-visible {
    color: var(--color-canvas);
    opacity: 1;
  }

  .nav__overlay-search-mobile {
    width: 100%;
  }

  .nav__overlay-meta .footer__logo-icon,
  .nav__overlay-meta .footer__b-corp-icon,
  .nav__overlay-meta .footer__employee-owned-icon,
  .nav__overlay-meta .footer__linkedin-icon {
    color: var(--color-canvas);
    fill: currentColor;
  }

  .nav__sublink--overlay {
    display: block;
    position: relative;
    color: var(--color-canvas);
    text-decoration: none;
    font-size: var(--fs-1);
    padding: 0.25rem 0 0.25rem 1rem;
    opacity: 0.9;
  }

  .nav__sublink--overlay::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.1rem;
    width: 0.35rem;
    height: 0.35rem;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
    opacity: 0.9;
  }

  .nav__sublink--overlay:hover,
  .nav__sublink--overlay:focus-visible {
    opacity: 1;
  }

  /* Responsive Breakpoints */
  @media (max-width: 767px) {
    .nav__content {
      padding: 0 4vw;
    }
    .nav__toggle {
      display: flex;
      position: fixed;
      top: calc((5rem - 2.5rem) / 2);
      right: 4vw;
      z-index: 1011;
    }

    .nav__open {
      display: none;
      position: relative;
      top: auto;
      right: auto;
    }

    .nav__menu:not(.nav__menu--overlay) {
      display: none;
    }

    .nav__content-inner {
      height: 5rem;
    }

    .nav__logo svg {
      height: calc(2rem + 1vw);
    }
  }

  @media (min-width: 768px) {
    .nav__open {
      display: flex;
    }

    body:has(.nav.nav--hidden) .nav__open::before {
      opacity: 1;
    }

    .nav__toggle {
      display: none;
    }
  }

  /* Prevent background scroll when menu is open; overlay scrolls independently */
  body:has(.nav__overlay.is-active),
  html:has(.nav__overlay.is-active) {
    overflow: hidden;
  }
}
}
@layer components{
.footer__logo svg,
.footer__logo-icon,
.footer__b-corp-icon,
.footer__employee-owned-icon,
.footer__linkedin-icon {
  fill: currentColor;
}
.footer__logo svg,
.footer__logo-icon {
  height: calc(1.5rem + 2vw);
  max-height: 100px;
}
.footer__b-corp-icon,
.footer__employee-owned-icon,
.footer__carbonneutral-icon {
  height: calc(1.5rem + 3vw);
  width: auto;
  fill: white;
  max-height: 120px;
}
.footer__employee-owned-icon {
  padding: var(--space-2xs) 0;
}
.footer__linkedin-icon {
  height: calc(1rem + 1vw);
  max-height: 48px;
}
footer ul,
footer ul li {
  list-style: none;
  padding: 0;
  margin: 0;
}
footer a {
  text-decoration: none;
  color: var(--color-canvas);
}

footer a:hover,
footer a:focus-visible {
  color: var(--color-canvas);
}

footer ul.footer__nav-primary {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-m);
  align-items: start;
}

@media (min-width: 768px) {
  footer ul.footer__nav-primary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.footer__nav-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  min-width: 0;
}

.footer__nav-parent {
  font-weight: 600;
}

.footer__submenu {
  margin-top: var(--space-2xs);
  padding-left: 0;
}

.footer__submenu a {
  position: relative;
  display: inline-block;
  padding-left: 0.9rem;
  opacity: 0.85;
}

.footer__submenu a::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.1rem;
  width: 0.32rem;
  height: 0.32rem;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  opacity: 0.9;
}

.footer__submenu a:hover,
.footer__submenu a:focus-visible {
  opacity: 1;
}

.footer__cell {
  min-width: 0;
}

.footer__cell--logo .footer__logo-icon {
  max-width: 100%;
}
.footer__contact-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto;
  gap: var(--space-s);
  align-items: start;
}

.footer__cell--badges {
  display: flex;
  align-items: flex-start;
  gap: var(--space-xl);
}

.footer__social-inner {
  display: flex;
  gap: var(--space-m);
  align-items: flex-end;
  width: 100%;
}

.footer__utility-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-m);
  justify-content: flex-end;
  font-size: var(--fs--1);
}

.footer__utility-links a {
  opacity: 0.9;
}

.footer__utility-links a:hover,
.footer__utility-links a:focus-visible {
  opacity: 1;
}

.footer__linkedin-link {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  color: inherit;
}

.footer__linkedin-link:focus-visible {
  outline-offset: 4px;
}
.footer__cell--social {
  display: inline-flex;
}
@media (min-width: 768px) {
  .footer__social-inner {
    justify-content: flex-end;
  }

  .footer__utility-links {
    justify-content: flex-end;
    font-size: var(--fs--1);
  }
}

.footer_search {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 100%;
}

.footer_search input {
  border: none;
  width: 100%;
  border-bottom: 1px solid var(--color-canvas);
  background: transparent;
  padding-right: 2rem;
  color: currentColor;
}

.footer_search input::placeholder {
  color: var(--color-canvas);
}

.footer_search button {
  position: absolute;
  right: 0;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-canvas);
  width: 1.5rem;
  height: 1.5rem;
}

.footer_search button svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

@media (max-width: 767px) {
  .footer__b-corp-icon,
  .footer__employee-owned-icon,
  .footer__carbonneutral-icon {
    height: calc(1.5rem + 10vw);
  }
  .footer__cell--search {
    margin: var(--space-s) 0;
  }
}
}
@layer components{
/* Stat grid layouts & internal borders (collapsed border technique) */
@layer stat-grid {
  .stat-grid-section {
    /* Locally scoped variables for the borders */
    --stat-border-width: 1px;

    --stat-border-color: var(--color-text-page, var(--color-ink, #000));
    /* Negative bottom margin to pull section's bottom border up to overlap with items */
    margin-block-end: calc(var(--stat-border-width) * -1);
  }

  .stat-grid-section > :first-child {
    /* Negative top margin to pull content up so first items overlap with section's top border */
    margin-block-start: calc(var(--stat-border-width, 1px) * -1);
  }
  .stat-grid {
    /* Base column behaviour for stat grids */
    --grid-columns: 1; /* mobile default */
    /* Remove gap - we'll use negative margins to overlap borders instead */
    gap: 0;
  }
  .stat-grid-wrapper {
    margin-top: -1px;
    margin-right: 1px;
  }
  /* Layout container for 5/7 item layouts */
  .stat-grid-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Simplified stat box for copy-aside column */
  .stat-aside {
    border-top: var(--stat-border-width, 1px) solid
      var(--stat-border-color, var(--color-text-page, var(--color-ink, #000)));
    padding-top: var(--space-m);
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
  }

  .stat-aside__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s);
  }

  .stat-aside__label {
    flex: 1;
    min-width: 0;
    font-size: var(--fs-0);
    line-height: var(--line-height-tightest);
  }

  .stat-aside__icon {
    flex-shrink: 0;
    width: var(--space-xl);
    height: var(--space-xl);
    display: block;
    color: inherit;
    fill: currentColor;
  }

  .stat-aside__value {
    font-size: var(--fs-5);
    line-height: var(--line-height-tightest);
    font-weight: 600;
    letter-spacing: -0.05em;
  }

  /* Image block for copy-aside column */
  .aside-image {
    position: relative;
    margin: 0;
    overflow: hidden;
  }

  .aside-image img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Same overlay treatment as gallery / square-slider captions */
  .aside-image__caption {
    position: absolute;
    left: var(--space-m);
    bottom: var(--space-m);
    z-index: 1;
    max-width: calc(100% - (var(--space-m) * 2));
    margin: 0;
    padding: 0.35em 0.55em;
    text-align: left;
    text-wrap: balance;
    background: rgba(0, 0, 0, 0.55);
    pointer-events: none;
  }

  /* For 5/7-item layout: the large first square needs all borders */
  .stat-grid-main-square {
    border: var(--stat-border-width, 1px) solid
      var(--stat-border-color, var(--color-text-page, var(--color-ink, #000)));
  }

  /* Right grid for 5-item layout: 2x2 */
  .stat-grid--right-5 {
    --grid-columns: 2;
  }

  /* Right grid for 7-item layout: 2 cols on mobile (2x3), 3 cols on desktop (3x2) */
  .stat-grid--right-7 {
    --grid-columns: 2;
  }

  /* Aspect ratio container for 7-item right section on mobile */
  .stat-grid-right-7 {
    /* Mobile: 2x3 grid = 2:3 aspect ratio */
    aspect-ratio: 2 / 3;
  }

  /* Optional label in top-left of map container */
  .stat-grid-map-container {
    position: relative;
  }

  .stat-grid-map-container > .stat-grid__label {
    position: absolute;
    top: var(--space-m, 1rem);
    left: var(--space-m, 1rem);
    z-index: 1;
    max-width: 20ch;
  }

  /* On mobile, pull stat-grid up to overlap with main square's bottom border */
  .stat-grid-main-square + .stat-grid {
    margin-block-start: calc(var(--stat-border-width, 1px) * -1);
  }

  /* On larger viewports, overlap with adjacent stat grid instead */
  @media (min-width: 768px) {
    .stat-grid-wrapper {
      margin-top: 0;
      margin-right: 0;
    }
    /* 5-item layout: equal columns (1:1 square + 1:1 2x2 grid) */
    .stat-grid-layout--5 {
      grid-template-columns: 1fr 1fr;
    }

    /* 7-item layout: proportional columns so heights match
       Big square is 1:1, grid is 3:2 (width:height)
       For equal height: square width : grid width = 2 : 3 */
    .stat-grid-layout--7 {
      grid-template-columns: 2fr 3fr;
    }

    .stat-grid-main-square {
      border-inline-end: none;
      margin-block-end: 0;
      /* Negative right margin to close the gap with adjacent stat-grid */
      margin-inline-end: calc(var(--stat-border-width, 1px) * -1);
    }

    .stat-grid-main-square + .stat-grid,
    .stat-grid-main-square + .stat-grid-wrapper {
      margin-block-start: 0;
    }

    .stat-grid.stat-grid--3,
    .stat-grid.stat-grid--4,
    .stat-grid.stat-grid--6,
    .stat-grid.stat-grid--auto {
      --grid-columns: 2;
    }

    /* 7-item layout: 3 columns on tablet+ */
    .stat-grid--right-7 {
      --grid-columns: 3;
    }
  }
  /* On desktop, remove aspect ratio - let the grid fill naturally */
  .stat-grid-right-7 {
    aspect-ratio: unset;
  }

  @media (min-width: 1024px) {
    .stat-grid {
      margin-top: 0;
    }
    .stat-grid.stat-grid--3 {
      --grid-columns: 3;
    }
    .stat-grid.stat-grid--4 {
      --grid-columns: 4;
    }
    .stat-grid.stat-grid--6 {
      --grid-columns: 3;
    }
    .stat-grid.stat-grid--auto {
      --grid-columns: 3;
    }
  }

  /* Collapsed border technique for stat grid items */
  .stat-grid__item {
    position: relative;
    /* Each item gets all 4 borders */
    border: var(--stat-border-width) solid var(--stat-border-color);
    /* Use negative margins to overlap adjacent borders */
    margin-inline-end: calc(var(--stat-border-width) * -1);
    margin-block-end: calc(var(--stat-border-width) * -1);
    /* Container query context for fluid cqi-based font sizes */
    container-type: inline-size;
  }

  /* Header row containing label and optional icon */
  .stat-grid__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: min(4cqi, 0.75rem);
  }

  /* Fluid text sizing for stat grid - scales proportionally with container width */
  .stat-grid__label {
    /* Scales with container, capped at 1.25rem for larger containers */
    font-size: min(12cqi, 1.333rem);
    line-height: var(--line-height-tightest);
    flex: 1;
    min-width: 0;
  }

  /* Icon in top-right corner, scales fluidly with container */
  .stat-grid__icon {
    flex-shrink: 0;
    /* Size scales with container - larger than label to be visible */
    width: min(20cqi, 2.5rem);
    height: min(20cqi, 2.5rem);
    display: block;
    color: inherit;
    fill: currentColor;
  }

  .stat-count {
    /* Scales with container, capped at 3.5rem for larger containers */
    font-size: min(38cqi, 12rem);
    line-height: var(--line-height-tightest);
    font-weight: 600;
    letter-spacing: -0.3rem;
  }

  /* Suffix styling - smaller but baseline-aligned */
  .stat-count__suffix {
    font-size: 0.75em;
    letter-spacing: 0;
  }

  /* Image items - image covers the entire square */
  .stat-grid__item--image {
    padding: 0;
    overflow: hidden;
  }

  .stat-grid__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Link wrapper for images - ensures full coverage */
  .stat-grid__image-link {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  /* Subtle hover animation for linked images */
  .stat-grid__image-link .stat-grid__image {
    transition: transform 0.4s ease-out;
  }

  @media (hover: hover) and (pointer: fine) {
    .stat-grid__image-link:hover .stat-grid__image {
      transform: scale(1.05);
    }
  }

  /* -----------------------------------------
   * Stat Slider (reuses stat-grid squares)
   * -------------------------------------- */

  .stat-slider {
    width: 100%;
    /* Reuse stat-grid border tokens */
    --stat-border-width: 1px;
    --stat-border-color: var(--color-text-page, var(--color-ink, #000));
  }

  /* Treat each Swiper slide like a stat-grid item so borders collapse
     between neighbouring slides (1px, not 1px + 1px). */
  .stat-slider .swiper-slide {
    position: relative;
    border: var(--stat-border-width) solid var(--stat-border-color);
    margin-inline-end: calc(var(--stat-border-width) * -1);
    /* Keep bottom margin at 0 so the bottom border is visible */
    margin-block-end: 0;
    container-type: inline-size;
  }

  .stat-slider .swiper-slide:last-child {
    /* Don’t pull the final border past the container edge */
    margin-inline-end: 0;
  }

  .stat-slider__item {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }

  .stat-slider__item--image {
    padding: 0;
  }

  .stat-slider__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition:
      transform 0.4s ease-out,
      filter 0.4s ease-out;
  }

  .stat-slider__link {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
  }

  .stat-slider__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    pointer-events: none;
    opacity: 0;
    transform: translateY(6%);
    transition:
      opacity var(--transition, 0.25s ease-out),
      transform var(--transition, 0.25s ease-out);
    background: linear-gradient(
      to top,
      oklch(var(--lch-black) / 0.72),
      oklch(var(--lch-black) / 0.1)
    );
  }

  .stat-slider__content {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .stat-slider__title {
    font-family: var(--font-family-ttnorms);
    font-size: var(--fs-2);
  }

  .stat-slider__text {
    font-size: var(--fs-0);
    line-height: var(--line-height);
    max-width: 30ch;
  }

  /* Reveal overlay on hover / focus for image slides */
  @media (hover: hover) and (pointer: fine) {
    .stat-slider__item--image:hover .stat-slider__image,
    .stat-slider__item--image:focus-within .stat-slider__image {
      transform: scale(1.05);
      filter: saturate(1.1);
    }

    .stat-slider__item--image:hover .stat-slider__overlay,
    .stat-slider__item--image:focus-within .stat-slider__overlay {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }
  }

  /* Always show overlay on reduced motion preferences */
  @media (prefers-reduced-motion: reduce) {
    .stat-slider__overlay {
      opacity: 1;
      transform: none;
    }
  }
}
}
@layer components{
@layer components {
  .icon-text-slider {
    width: 100%;
  }

  .icon-text-slider__main {
    display: flex;
    align-items: center;
    gap: var(--space-s);
  }

  .icon-text-slider__main .swiper {
    flex: 1;
    min-width: 0;
  }

  .icon-text-slider .swiper-slide {
    height: auto;
  }

  .icon-text-slider__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    height: 100%;
    padding: var(--space-m);
    box-sizing: border-box;
  }

  .icon-text-slider__icon-svg {
    display: block;
    flex-shrink: 0;
    width: var(--fs-4);
    height: var(--fs-4);
    color: inherit;
    fill: currentColor;
  }

  .icon-text-slider__icon-svg :is(svg) {
    width: 100%;
    height: 100%;
  }

  .icon-text-slider__line {
    width: 100%;
    border-top: 1px solid currentColor;
    margin-block: var(--space-s);
  }

  .icon-text-slider__heading {
    font-family: var(--font-family-ttnorms);
    font-size: var(--fs-2);
    line-height: var(--line-height-tight, 1.1);
    margin: 0;
    min-height: var(--space-2xl);
  }

  .icon-text-slider__copy {
    font-size: var(--fs-0);
    line-height: var(--line-height);
    margin: var(--space-xs) 0 0;
    max-width: 35ch;
  }

  .icon-text-slider__copy > * + * {
    margin-top: var(--space-xs);
  }

  /* Side arrows: reset Swiper absolute positioning; sit in the flex row */
  .icon-text-slider .swiper-button-prev,
  .icon-text-slider .swiper-button-next {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    margin: 0;
    flex-shrink: 0;
    width: var(--swiper-navigation-size);
    height: var(--swiper-navigation-size);
    color: var(--swiper-navigation-color);
  }

  .icon-text-slider__pagination {
    margin-top: var(--space-m);
    display: flex;
    justify-content: center;
  }

  .icon-text-slider__pagination .swiper-pagination {
    position: relative;
    bottom: auto;
    left: auto;
    top: auto;
    width: auto;
  }

  /* Swiper defaults target canvas (light controls); follow page text colour instead */
  .icon-text-slider[data-swiper] {
    --swiper-theme-color: var(--color-text-page, var(--color-ink));
    --swiper-navigation-color: var(--color-text-page, var(--color-ink));
    --swiper-pagination-color: var(--color-text-page, var(--color-ink));
  }

  .icon-text-slider[data-swiper] .swiper-pagination-bullet {
    --swiper-pagination-bullet-inactive-color: color-mix(
      in srgb,
      var(--color-text-page, var(--color-ink)) 38%,
      transparent
    );
    --swiper-pagination-bullet-inactive-opacity: 1;
  }

  .icon-text-slider[data-swiper] .swiper-pagination-bullet-active {
    --swiper-pagination-color: var(--color-text-page, var(--color-ink));
  }
}
}
@layer components{

.c-card {
  position: relative;
  overflow: hidden;
  background: #000;
}

.c-card__link {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
  position: relative;
}

.c-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 0.4s ease-out;
}

.c-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9), transparent 85%);
  color: #fff;
}

.c-card__text {
  max-width: 100%;
  transform: translateY(0);
  transition: transform 0.3s ease-out;
}

.c-card__title {
  margin: 0;
  font-size: var(--fs-lg, 1.125rem);
  font-weight: bold;
  line-height: 1.2;
}

.c-card__meta {
  margin: 0 0 0.35rem;
  font-size: var(--fs-xs, 0.8rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.85;
}

.c-card__summary {
  margin: 0.5rem 0 0;
  font-size: var(--fs-sm, 0.9rem);
  line-height: 1.4;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition:
    max-height 0.3s ease-out,
    opacity 0.3s ease-out;
}

/* Hover: zoom image, slide text up, reveal summary */
.c-card:hover .c-card__image,
.c-card:focus-within .c-card__image {
  transform: scale(1.06);
}

.c-card:hover .c-card__overlay,
.c-card:focus-within .c-card__overlay {
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.9),
    rgba(0, 0, 0, 0.6) 55%
  );
}

.c-card:hover .c-card__text,
.c-card:focus-within .c-card__text {
  transform: translateY(-0.25rem);
}

.c-card:hover .c-card__summary,
.c-card:focus-within .c-card__summary {
  max-height: 8rem; /* enough to show a few lines */
  opacity: 1;
}

.content-card {
  height: 100%;
}

.content-card a {
  color: inherit;
  text-decoration: none;
}

.content-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

/* Navy related-items sections: bordered tiles with light text on dark background. */
.related-items .content-card {
  border-left: 1px solid var(--color-steel-300);
}

.related-items .content-card__link figcaption {
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.3s ease;
}

/* Related items swiper: title above image + space-between (vertical tabs Key Projects only). */
.related-items-slider--title-first .swiper-slide {
  display: flex;
  height: auto;
  align-self: stretch;
}

.related-items-slider--title-first figure.content-card.content-card__link {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  min-height: min(42vw, 18rem);
  margin: 0;
}

.related-items-slider--title-first .related-items-slider__link-fill {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-m);
  flex: 1 1 auto;
  min-height: 0;
  text-decoration: none;
  color: inherit;
}

/* No URL: title + img are direct figure children */
.related-items-slider--title-first
  figure.content-card:not(:has(.related-items-slider__link-fill)) {
  justify-content: space-between;
  gap: var(--space-m);
}

.related-items-slider--title-first .related-items-slider__cap--title-first {
  flex-shrink: 0;
  margin: 0;
  padding-block-end: 0;
}

.related-items-slider--title-first
  .related-items-slider__cap--title-first
  .my-s {
  margin-block: var(--space-s) 0;
}

.related-items-slider--title-first .related-items-slider__summary {
  margin: var(--space-xs) 0 0;
}

.related-items-slider--title-first .related-items-slider__media {
  flex-shrink: 0;
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

@media (min-width: 768px) {
  .related-items-slider--title-first figure.content-card.content-card__link {
    min-height: clamp(14rem, 26vw, 20rem);
  }
}

.related-items .content-card__link:hover figcaption,
.related-items .content-card__link:focus-visible figcaption {
  color: white;
}

.content-card__media {
  width: 100%;
  overflow: hidden;
  background: #000;
  /* Make every tile square */
}

.content-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease-out;
  aspect-ratio: 1 / 1;
}
.content-card--wide .content-card__image {
  aspect-ratio: 2.115 / 1;
}

.content-card__body {
  padding-top: var(--space-s, 0.75rem);
}

.content-card__meta {
  font-size: var(--fs--2);
  margin: 0 0 var(--space-2xs, 0.35rem);
  letter-spacing: 0.04em;
  opacity: 0.75;
}

.content-card__title {
  text-decoration: none;
  font-size: var(--fs-0);
  line-height: var(--line-height-tightest);
}

.content-card__intro {
  font-size: var(--fs--1);
  margin-top: var(--space-xs, 0.5rem);
}

.job-card {
  display: flex;
  justify-content: space-between;
  gap: var(--space-m);
  padding: var(--space-m) 0;
  border-bottom: 1px solid;
}
.job-card:first-of-type {
  padding-top: 0;
}

.job-card__header {
  display: flex;
  flex-direction: column;
  gap: var(--fs-m);
}

.jobs-apply-modal {
  border: 0;
  border-radius: 0;
  box-shadow: var(--box-shadow);
  max-width: min(38rem, calc(100vw - 2rem));
  padding: 0;
  width: 100%;
}

.jobs-apply-modal::backdrop {
  background: rgba(0, 0, 0, 0.55);
}

.jobs-apply-modal__content {
  padding: var(--space-l);
}
@media (hover: hover) and (pointer: fine) {
  .content-card__link:hover .content-card__image,
  .content-card__link:focus-visible .content-card__image {
    transform: scale(1.03);
  }

  .related-items .content-card__link:hover,
  .related-items .content-card__link:focus-visible,
  .related-items .content-card__link:hover p,
  .related-items .content-card__link:focus-visible p,
  .related-items .content-card__link:hover h3,
  .related-items .content-card__link:focus-visible h3 {
    color: var(--color-canvas);
  }

  .content-card__link:hover .content-card__title,
  .content-card__link:focus-visible .content-card__title {
    text-decoration: underline;
  }
}
}
@layer components{
/* Brand Device Component - 2x2 Grid */
@layer components {
  .brand-device {
    --device-rotation: 0deg;
    --device-size: 8vw;

    width: var(--device-size);
    height: var(--device-size);
    transform: rotate(var(--device-rotation));
    position: relative;
  }

  .brand-device__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 0;
    width: 100%;
    height: 100%;
  }

  .brand-device__square {
    aspect-ratio: 1 / 1;
  }

  /* Pattern: X 0 / X X */
  /* Square 2: Top-right (transparent) */
  .brand-device__square--2 {
    background-color: transparent;
  }

  /* Theme: Steel */
  .brand-device[data-theme="steel"] .brand-device__square--1 {
    background-color: var(--color-teal-600);
  }
  .brand-device[data-theme="steel"] .brand-device__square--3 {
    background-color: var(--color-steel-300);
  }
  .brand-device[data-theme="steel"] .brand-device__square--4 {
    background-color: var(--color-steel-800);
  }

  /* Theme: Navy */
  .brand-device[data-theme="navy"] .brand-device__square--1 {
    background-color: var(--color-navy-600);
  }
  .brand-device[data-theme="navy"] .brand-device__square--3 {
    background-color: var(--color-navy-300);
  }
  .brand-device[data-theme="navy"] .brand-device__square--4 {
    background-color: var(--color-navy-800);
  }

  /* Theme: Copper */
  .brand-device[data-theme="copper"] .brand-device__square--1 {
    background-color: var(--color-copper-500);
  }
  .brand-device[data-theme="copper"] .brand-device__square--3 {
    background-color: var(--color-copper-300);
  }
  .brand-device[data-theme="copper"] .brand-device__square--4 {
    background-color: var(--color-copper-700);
  }

  /* Theme: Teal */
  .brand-device[data-theme="teal"] .brand-device__square--1 {
    background-color: var(--color-powder-500);
  }
  .brand-device[data-theme="teal"] .brand-device__square--3 {
    background-color: var(--color-canvas);
  }
  .brand-device[data-theme="teal"] .brand-device__square--4 {
    background-color: var(--color-navy-500);
  }

  /* Theme: Podcast (powder, canvas, navy) */
  .brand-device[data-theme="podcast"] .brand-device__square--1 {
    background-color: var(--color-powder-500);
  }
  .brand-device[data-theme="podcast"] .brand-device__square--3 {
    background-color: var(--color-canvas);
  }
  .brand-device[data-theme="podcast"] .brand-device__square--4 {
    background-color: var(--color-navy-800);
  }

  /* Theme: Emerald */
  .brand-device[data-theme="emerald"] .brand-device__square--1 {
    background-color: var(--color-emerald-600);
  }
  .brand-device[data-theme="emerald"] .brand-device__square--3 {
    background-color: var(--color-emerald-300);
  }
  .brand-device[data-theme="emerald"] .brand-device__square--4 {
    background-color: var(--color-emerald-800);
  }

  /* Theme: Green */
  .brand-device[data-theme="green"] .brand-device__square--1 {
    background-color: var(--color-green-600);
  }
  .brand-device[data-theme="green"] .brand-device__square--3 {
    background-color: var(--color-green-300);
  }
  .brand-device[data-theme="green"] .brand-device__square--4 {
    background-color: var(--color-green-800);
  }

  /* Theme: Rose */
  .brand-device[data-theme="rose"] .brand-device__square--1 {
    background-color: var(--color-rose-500);
  }
  .brand-device[data-theme="rose"] .brand-device__square--3 {
    background-color: var(--color-rose-300);
  }
  .brand-device[data-theme="rose"] .brand-device__square--4 {
    background-color: var(--color-rose-700);
  }

  /* Theme: Monochrome (all same color, different shades) */
  .brand-device[data-theme="monochrome"] .brand-device__square--1 {
    background-color: var(--color-ink);
  }
  .brand-device[data-theme="monochrome"] .brand-device__square--3 {
    background-color: oklch(var(--lch-ink) / 0.6);
  }
  .brand-device[data-theme="monochrome"] .brand-device__square--4 {
    background-color: oklch(var(--lch-ink) / 0.3);
  }

  /* Theme: Default (teal / baby / navy) — used when no theme or theme is none */
  .brand-device[data-theme="default"] .brand-device__square--1,
  .brand-device[data-theme="none"] .brand-device__square--1,
  .brand-device:not([data-theme]) .brand-device__square--1,
  .brand-device[data-theme=""] .brand-device__square--1 {
    background-color: var(--color-teal-500);
  }
  .brand-device[data-theme="default"] .brand-device__square--3,
  .brand-device[data-theme="none"] .brand-device__square--3,
  .brand-device:not([data-theme]) .brand-device__square--3,
  .brand-device[data-theme=""] .brand-device__square--3 {
    background-color: var(--color-baby-500);
  }
  .brand-device[data-theme="default"] .brand-device__square--4,
  .brand-device[data-theme="none"] .brand-device__square--4,
  .brand-device:not([data-theme]) .brand-device__square--4,
  .brand-device[data-theme=""] .brand-device__square--4 {
    background-color: var(--color-navy-500);
  }

  /* Position variants */
  .brand-device[data-position="corner-top-left"] {
    position: absolute;
    top: 0;
    left: 0;
  }

  .brand-device[data-position="corner-top-right"] {
    position: absolute;
    top: 0;
    right: 0;
  }

  .brand-device[data-position="corner-bottom-left"] {
    position: absolute;
    bottom: 0;
    left: 0;
  }

  .brand-device[data-position="corner-bottom-right"] {
    position: absolute;
    bottom: 0;
    right: 0;
  }

  /* Title-Copy aside: keep corner alignment data but place device in flex flow */
  .title-copy__brand-device .brand-device[data-position^="corner-"] {
    position: static;
    inset: auto;
  }

  /* Straddle positions - for overlapping sections */
  .brand-device[data-position="straddle-top"],
  .brand-device[data-position="straddle-top-right"] {
    position: absolute;
    top: calc(var(--device-size) / -2);
    right: 0;
    z-index: 10;
  }

  .brand-device[data-position="straddle-top-left"] {
    position: absolute;
    top: calc(var(--device-size) / -2);
    left: 0;
    z-index: 10;
  }

  .brand-device[data-position="straddle-bottom"],
  .brand-device[data-position="straddle-bottom-right"] {
    position: absolute;
    bottom: calc(var(--device-size) / -2);
    right: 0;
    z-index: 10;
  }

  .brand-device[data-position="straddle-bottom-left"] {
    position: absolute;
    bottom: calc(var(--device-size) / -2);
    left: 0;
    z-index: 10;
  }

  /* Wrapper for brand-device when used between sections */
  .brand-device-wrapper {
    position: relative;
    width: 100%;
  }

  /* Straddle wrapper - positioned to span between sections using negative margins */
  .brand-device-wrapper--straddle {
    position: relative;
    width: 100%;
    z-index: 10;
    /* Use negative margins to overlap adjacent sections */
    margin-top: calc(var(--device-size, 8rem) / -2);
    margin-bottom: calc(var(--device-size, 8rem) / -2);
    /* Ensure it doesn't collapse */
    min-height: var(--device-size, 8rem);
  }

  /* When inside a wrapper, adjust positioning context */
  .brand-device-wrapper .brand-device[data-position="corner-top-left"],
  .brand-device-wrapper .brand-device[data-position="corner-top-right"],
  .brand-device-wrapper .brand-device[data-position="corner-bottom-left"],
  .brand-device-wrapper .brand-device[data-position="corner-bottom-right"] {
    /* Keep absolute positioning relative to wrapper */
  }

  /* Straddle positions in wrapper - positioned at top or bottom of wrapper */
  .brand-device-wrapper--straddle .brand-device[data-position="straddle-top"],
  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-top-right"],
  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-top-left"] {
    position: absolute;
    top: 0;
    z-index: 10;
  }

  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-bottom"],
  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-bottom-right"],
  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-bottom-left"] {
    position: absolute;
    bottom: 0;
    z-index: 10;
  }

  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-top-right"],
  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-bottom-right"] {
    right: 0;
  }

  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-top-left"],
  .brand-device-wrapper--straddle
    .brand-device[data-position="straddle-bottom-left"] {
    left: 0;
  }

  /* Responsive sizing */
  /* Mobile visibility control */
  @media (max-width: 767px) {
    .brand-device[data-mobile="hide"] {
      display: none;
    }

    .brand-device[data-mobile="reposition"] {
      position: relative !important;
      top: auto !important;
      right: auto !important;
      bottom: auto !important;
      left: auto !important;
      margin: 2rem auto;
      --device-size: 4rem;
    }

    .brand-device[data-mobile="show"] {
      --device-size: 4rem;
    }
  }
}
}
@layer components{
/* Person Card Component */
.person-card {
  position: relative;
  width: 100%;
}

/* Full-card control to the profile; contact/social sit above in stacking (z-index). */
.person-card__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  transition: opacity var(--transition);
}

@media (hover: hover) {
  .person-card__link:hover {
    opacity: 0.92;
  }
}

.person-card__body {
  display: flex;
  align-items: stretch;
  gap: 0;
  position: relative;
  z-index: 2;
  width: 100%;
}

/* Square profile photo - maintains aspect ratio */
.person-card__photo {
  --photo-size: max(9vw, 140px);
  flex-shrink: 0;
  width: var(--photo-size);
  height: var(--photo-size);
  overflow: hidden;
  position: relative;
}

.person-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Details section - adjacent to photo with no gap */
.person-card__details {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--space-2xs);
  padding-top: var(--space-xs);
  border-top: 1px solid;
  /* min-height: var(--photo-size, 160px); */
}

/* Info section at the top */
.person-card__info {
  display: flex;
  flex-direction: column;
}

/* Person name - bold */
.person-card__name {
  font-size: var(--fs--1);
  font-weight: 700;
  line-height: var(--line-height-tightest);
  margin: 0;
  color: inherit;
}

/* Job title - directly below name */
.person-card__title {
  font-size: var(--fs--1);
  line-height: var(--line-height-tightest);
  margin: 0;
}

/* Contact details section with small gap above */
.person-card__contact {
  margin-top: var(--space-2xs);
  display: flex;
  flex-direction: column;
  gap: 0.25em;
}

.person-card__contact-item {
  font-size: var(--fs--1);
  line-height: var(--line-height-tightest);
  margin: 0;
}

.person-card__contact-item a {
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

@media (hover: hover) {
  .person-card__contact-item a:hover {
    text-decoration: underline;
  }
}

/* Social icons at bottom - aligned with bottom of photo */
.person-card__social {
  display: flex;
  gap: var(--space-s);
  align-items: center;
  margin-top: var(--space-2xs);
}

.person-card__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  transition: color var(--transition);
}

@media (hover: hover) {
  .person-card__social-link:hover {
    color: var(--color-navy-500);
  }
}

.person-card__social-link svg {
  display: block;
}

/* Navy theme – map tooltips and dark surfaces */
.person-card--navy {
  background: var(--color-navy-500);
  color: var(--color-canvas, white);
}

.person-card--navy .person-card__details {
  border-color: oklch(from var(--color-canvas) l c h / 0.2);
}

.person-card--navy .person-card__contact-item a,
.person-card--navy .person-card__social-link {
  color: inherit;
}

@media (hover: hover) {
  .person-card--navy .person-card__contact-item a:hover,
  .person-card--navy .person-card__social-link:hover {
    color: var(--color-emerald-300, var(--color-emerald-500));
  }
}

/* Compact cards inside map tooltips */
.office-map-tooltip__panel--person-cards .person-card {
  padding: var(--space-xs);
}
.office-map-tooltip__panel--person-cards .person-card__photo {
  --photo-size: var(--space-3xl);
}

.office-map-tooltip__panel--person-cards .person-card__details {
  padding: var(--space-2xs);
}

.office-map-tooltip__panel--person-cards .person-card__name,
.office-map-tooltip__panel--person-cards .person-card__title,
.office-map-tooltip__panel--person-cards .person-card__contact-item {
  font-size: var(--fs--2);
}
}
@layer components{
@layer components {
  /*
   * People grid: 2 / 4 / 6 columns by viewport.
   * Pair with CMS totals that are multiples of lcm(2,4,6)=12 so every row is full at all sizes.
   */
  .people-grid {
    display: grid;
    gap: 0;
    width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  /* @media (min-width: 768px) {
    .people-grid {
      grid-template-columns: repeat(6, minmax(0, 1fr));
    }
  }
 */
  @media (min-width: 1024px) {
    .people-grid {
      grid-template-columns: repeat(8, minmax(0, 1fr));
    }
  }

  .people-grid__cell {
    position: relative;
    overflow: hidden;
    min-width: 0;
  }

  /*
   * Hover / keyboard focus: dim + desaturate other faces (link mode only).
   * Uses :has() — no JS. Scoped to real hover pointers so touch layouts stay unchanged.
   */
  .people-grid--interactive .people-grid__cell {
    transition:
      opacity var(--people-grid-dim-duration, 0.2s) ease,
      filter var(--people-grid-dim-duration, 0.2s) ease;
  }

  @media (prefers-reduced-motion: reduce) {
    .people-grid--interactive .people-grid__cell {
      transition: none;
    }
  }

  @media (hover: hover) and (pointer: fine) {
    .people-grid--interactive:has(.people-grid__link:is(:hover, :focus-visible))
      .people-grid__cell:not(
        :has(.people-grid__link:is(:hover, :focus-visible))
      ) {
      opacity: 0.5;
      filter: saturate(0.2);
    }
  }

  .people-grid__link,
  .people-grid__media {
    display: block;
    width: 100%;
    height: 100%;
  }

  .people-grid__link {
    position: relative;
  }

  /* Raised above neighbours so tooltip isn’t covered when dimming is active */
  .people-grid--interactive
    .people-grid__cell:has(.people-grid__link:is(:hover, :focus-visible)) {
    z-index: 2;
  }

  .people-grid__tooltip {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.1rem 0.4rem 0.35rem;
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.45) 55%,
      transparent 100%
    );
    color: #fff;
    opacity: 0;
    transition: opacity var(--people-grid-tip-duration, 0.2s) ease;
    pointer-events: none;
    text-align: center;
    text-wrap: balance;
  }

  @media (prefers-reduced-motion: reduce) {
    .people-grid__tooltip {
      transition: none;
    }
  }

  @media (hover: hover) and (pointer: fine) {
    .people-grid__link:hover .people-grid__tooltip {
      opacity: 1;
    }
  }

  .people-grid__link:focus-visible .people-grid__tooltip {
    opacity: 1;
  }

  .people-grid__tooltip-inner {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    align-items: center;
    max-width: 100%;
  }

  .people-grid__tooltip-name {
    font-weight: 600;
    font-size: clamp(0.62rem, 1.65vw, 0.8rem);
    line-height: 1.2;
  }

  .people-grid__tooltip-role,
  .people-grid__tooltip-office {
    font-size: clamp(0.52rem, 1.35vw, 0.68rem);
    line-height: 1.25;
    opacity: 0.95;
  }

  .people-grid__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}
}
@layer components{
@layer components {
  /* Office Map Wrapper */
  .office-map-wrapper {
    position: relative;
    margin: 0 auto;
  }

  /* Map within stat grid - fills the square container */
  .stat-grid-map-container {
    position: relative;
    overflow: hidden;
  }

  .stat-grid-map-container .office-map-wrapper {
    position: absolute;
    inset: 0;
    max-width: none;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .stat-grid-map-container .office-map-svg {
    max-height: 100%;
    width: auto;
    height: 100%;
    object-fit: contain;
  }

  .office-map-svg {
    width: 100%;
    height: auto;
    display: block;
  }

  .office-map-bg {
    pointer-events: none;
  }

  /* Office Markers */
  .office-marker {
    cursor: pointer;
    transition: all 0.2s ease;
  }

  .office-marker:focus-visible {
    outline: none;
  }

  .office-marker:focus-visible .office-marker__hitarea {
    stroke: var(--color-focus, var(--color-teal-400, #00b3a6));
    stroke-width: 2;
  }

  .office-marker[aria-expanded="true"] rect:not(.office-marker__hitarea) {
    fill: var(--color-emerald-700, #4b9b45);
    transform: scale(1.25);
  }

  .office-marker__hitarea {
    fill: transparent;
    pointer-events: all;
  }

  .office-marker rect:not(.office-marker__hitarea) {
    fill: var(--color-emerald-500, green);
    transition: all 0.2s ease;
    transform-origin: center;
    transform-box: fill-box;
  }

  .office-marker:hover rect:not(.office-marker__hitarea) {
    fill: var(--color-emerald-700, #4b9b45);
    transform: scale(1.25);
  }

  /* Office Labels */
  .office-label {
    font-size: 1.2rem;
    fill: var(--color-text-page, var(--color-ink));
    font-weight: bold;
  }

  .office-label--left {
    text-anchor: end;
  }

  .office-label--right {
    text-anchor: start;
  }

  .office-label--center {
    text-anchor: middle;
  }

  .office-marker:hover .office-label {
    font-weight: 600;
    opacity: 1;
  }

  /* Tooltip shell — close sits above the panel */
  .office-map-tooltip-shell {
    position: fixed;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-3xs, 0.25rem);
    pointer-events: none;
    opacity: 0;
    transition-property: opacity;
    transition-duration: 0.2s;
    z-index: 1000;
    max-width: min(22rem, calc(100vw - 2rem));
  }

  .office-map-tooltip-shell.show {
    opacity: 1;
    pointer-events: auto;
  }

  .office-map-tooltip__close {
    flex-shrink: 0;
    display: flex;
    align-content: center;
    justify-content: center;
    border: none;
    background: var(--color-navy-800);
    color: var(--color-canvas, white);
    cursor: pointer;
    width: var(--space-m);
    height: var(--space-m);
    line-height: 1;
    box-shadow: 0 2px 8px oklch(0 0 0 / 0.2);
  }

  .office-map-tooltip__close:hover {
    background: oklch(from var(--color-navy-500) l c h / 0.88);
  }

  .office-map-tooltip__close:focus-visible {
    outline: 2px solid var(--color-focus, var(--color-teal-400, #00b3a6));
    outline-offset: 2px;
  }

  .office-map-tooltip__close-icon {
    display: block;
    font-size: 1.5rem;
  }

  .office-map-tooltip__panel {
    width: 100%;
    background: var(--color-navy-500);
    color: var(--color-canvas, white);
    padding: var(--space-2xs) var(--space-xs);
    font-size: var(--fs-0);
    white-space: normal;
  }

  .office-map-tooltip__panel--person-cards {
    padding: 0;
    overflow: hidden;
  }

  .office-map-tooltip__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
  }

  .office-map-tooltip__panel--person-cards .office-map-tooltip__body {
    gap: 0;
  }

  .office-map-tooltip__summary {
    display: flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
  }

  .office-map-tooltip__link {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }

  .office-map-tooltip__link:hover {
    text-decoration-thickness: 2px;
  }

  .office-map-tooltip__link:focus-visible {
    outline: 2px solid var(--color-focus, var(--color-teal-400, #00b3a6));
    outline-offset: 2px;
  }

  .office-map-tooltip__thumb {
    width: 48px;
    height: 48px;
    object-fit: cover;
    flex-shrink: 0;
  }

  .office-map-tooltip__name {
    font-weight: 500;
  }

  .office-map-tooltip__cards {
    display: flex;
    flex-direction: column;
    gap: 1px;
  }

  .office-map-tooltip__cards .person-card + .person-card {
    border-top: 1px solid oklch(from var(--color-canvas) l c h / 0.15);
  }

  /* Ether Simple Map / Google embed on office entry (aside) */
  .office-map-embed {
    width: 100%;
    max-width: 100%;
  }

  .office-map-embed [id^="officeMap"] {
    width: 100% !important;
    aspect-ratio: 1 / 1;
  }

  /* Responsive */
  @media screen and (max-width: 768px) {
    .office-map-wrapper {
      max-width: 100%;
    }
  }
}
}
@layer components{
@layer components {
  .split-50 {
    position: relative;
    color: inherit;
  }

  .split-50__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;

    /* Break out to viewport so the image can be full-bleed */
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    min-height: clamp(320px, 60vh, 640px);
  }

  /* Modifier to flip which side the image sits on */
  .split-50__inner--image-left {
    direction: rtl;
  }

  .split-50__inner--image-left > * {
    direction: ltr;
  }

  .split-50__text {
    display: flex;
    align-items: center;
  }

  .split-50__text-inner {
    padding: var(--space-3xl);
    max-width: var(--content-width);
  }

  .split-50__icon {
    margin-bottom: var(--space-m);
  }

  .split-50__icon-svg {
    width: var(--fs-4);
    height: var(--fs-4);
    display: block;
    color: inherit;
    fill: currentColor;
  }

  .split-50__cta {
    margin-top: var(--space-m);
  }

  .split-50__media {
    position: relative;
    overflow: hidden;
  }

  .split-50__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .split-50__caption {
    position: absolute;
    right: var(--space-m);
    bottom: var(--space-m);
    z-index: 1;
    max-width: calc(100% - (var(--space-m) * 2));
    margin: 0;
    padding: 0.35em 0.55em;
    text-align: right;
    /* text-wrap: balance; */
    background: rgba(0, 0, 0, 0.55);
  }

  @media (min-width: 768px) and (max-width: 1280px) {
    .split-50__text-inner {
      padding: var(--space-xl);
    }
  }

  @media (max-width: 767px) {
    .split-50__inner {
      grid-template-columns: 1fr;
      width: 100%;
      margin-inline: 0;
      min-height: auto;
    }

    .split-50__media {
      order: -1; /* Image first on mobile */
    }

    .split-50__inner--image-left .split-50__media {
      order: -1;
    }

    .split-50__text-inner {
      padding-inline: var(--content-width-margin-mobile);
      padding-block: var(--space-xl);
    }
  }
}
}
@layer components{
/* Label / lozenge — small inline metadata chip */
@layer components {
  .label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3xs);
    padding: var(--space-3xs) var(--space-2xs);
    background-color: var(--color-canvas-light, #f5f5f5);
    color: color-mix(in srgb, var(--color-text-page, var(--color-ink, #000)) 75%, transparent);
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: var(--fs--2);
    line-height: 1;
    width: fit-content;
  }

  .label__icon {
    width: var(--fs--2);
    height: var(--fs--2);
    flex-shrink: 0;
    display: block;
  }

  .label__icon svg {
    width: 100%;
    height: 100%;
    display: block;
  }

  .label__text {
    font-weight: 500;
    text-transform: capitalize;
    font-size: var(--fs--2);
  }

  /* Outlined label for coloured / dark surfaces (inherits parent text colour) */
  .label--inverse {
    background-color: transparent;
    color: inherit;
    border-color: currentColor;
  }
}
}
@layer components{
/* Search Results Component */
@layer components {
  .search-results {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .search-result {
    display: flex;
    gap: var(--space-s);
    align-items: center;
    padding: var(--space-s) 0;
    border-top: 1px solid var(--color-ink, #000);
  }

  .search-result:first-child {
    border-top: none;
    padding-top: 0;
  }

  .search-results--text-only .search-result__title {
    margin-left: 0;
  }

  /* Square thumbnail on the left */
  .search-result__thumbnail {
    flex-shrink: 0;
    width: var(--space-3xl);
    height: var(--space-3xl);
    overflow: hidden;
    position: relative;
    background-color: var(--color-canvas-light, #f5f5f5);
  }

  .search-result__thumbnail-link {
    display: block;
    width: 100%;
    height: 100%;
  }

  .search-result__thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .search-result__thumbnail--podcast {
    background-color: transparent;
  }

  .search-result__thumbnail--podcast .podcast-card {
    display: block;
  }

  /* Content area on the right */
  .search-result__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-3xs);
    min-width: 0; /* Allows text truncation */
  }

  /* Title link */
  .search-result__title {
    font-size: var(--fs-1);
    font-weight: 700;
    line-height: var(--line-height-tightest);
    margin: 0;
    /* margin-left: var(--space-2xs); */
  }

  .search-result__title-link {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition, 0.2s ease);
  }

  .search-result__meta {
    margin: 0;
    font-size: var(--fs--2);
  }

  .search-result__meta a {
    color: inherit;
  }

  @media (hover: hover) {
    .search-result__title-link:hover {
      color: var(--color-blue-hover, #0066cc);
    }
  }

  /* Mobile adjustments */
  @media (max-width: 768px) {
    .search-result {
      gap: var(--space-s);
    }

    .search-result__thumbnail {
      width: 80px;
      height: 80px;
    }

    .search-result__title {
      font-size: var(--fs-md);
    }
  }

  /* 404 page search */
  .not-found__search {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-m);
    max-width: 28rem;
  }

  .not-found__search-input {
    border: 1px solid var(--color-ink, #000);
    background: var(--color-canvas-light, var(--color-canvas));
    width: 100%;
    padding: 0.7375em 1.0875em;
    color: var(--color-text-page, var(--color-ink));
    font: inherit;
  }

  .not-found__search-input::placeholder {
    color: var(--color-ink-light, #666);
    opacity: 1;
  }

  .not-found__search-input:focus {
    outline: 3px solid var(--color-focus, var(--color-teal-400, #00b3a6));
    outline-offset: 2px;
    border-color: var(--color-ink, #000);
  }

  .not-found__search-submit,
  .not-found__search-home {
    flex-shrink: 0;
  }

  @media (min-width: 768px) {
    .not-found__search {
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: stretch;
      max-width: none;
    }

    .not-found__search-input {
      flex: 1 1 auto;
      min-width: 12rem;
      width: auto;
    }
  }
}

/* Search page field — footer search layout, theme-aware colours */
.search-page__search {
  --search-page-accent: var(--color-ink);
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 100%;
}

:root[data-color-mode="dark"] .search-page__search {
  --search-page-accent: var(--color-canvas);
}

@media (prefers-color-scheme: dark) {
  :root[data-color-mode="system"] .search-page__search {
    --search-page-accent: var(--color-canvas);
  }
}

:root[data-color-mode="light"] .search-page__search {
  --search-page-accent: var(--color-ink);
}

.search-page__search input {
  border: none;
  width: 100%;
  border-bottom: 1px solid var(--search-page-accent);
  background: transparent;
  padding-right: 2rem;
  color: var(--color-text-page, var(--color-ink));
}

.search-page__search input::placeholder {
  color: var(--color-text-muted, var(--color-grey));
}

.search-page__search button {
  position: absolute;
  right: 0;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--search-page-accent);
  width: 1.5rem;
  height: 1.5rem;
}

.search-page__search button svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

.search-page__search input:focus {
  outline: 3px solid var(--color-focus, var(--color-teal-400, #00b3a6));
  outline-offset: 2px;
}
}
@layer components{
@layer components {
  .slide-panel {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    justify-content: flex-end;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.25s ease-out;
  }

  .slide-panel--active {
    pointer-events: auto;
    opacity: 1;
  }

  .slide-panel__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(1, 10, 31, 0); /* start transparent */
    backdrop-filter: blur(0);
    transition:
      background 0.25s ease-out,
      backdrop-filter 0.25s ease-out;
  }

  .slide-panel--active .slide-panel__backdrop {
    background: rgba(1, 10, 31, 0.6);
    backdrop-filter: blur(4px);
  }

  .slide-panel__container {
    position: relative;
    background: var(--color-canvas, #ffffff);
    color: var(--color-ink, #020617);
    max-width: min(55rem, 100%);
    width: 100%;
    height: 100%;
    box-shadow: -12px 0 40px rgba(15, 23, 42, 0.35);
    transform: translateX(100%);
    transition: transform 0.3s ease-out;
    display: flex;
    flex-direction: column;
    padding: var(--space-l, 1.5rem);
    overflow-y: auto;
  }

  .slide-panel--active .slide-panel__container {
    transform: translateX(0%);
  }

  @media (max-width: 767px) {
    .slide-panel__container {
      max-width: 100%;
      padding: var(--space-m, 1.25rem);
    }
  }

  .slide-panel__close {
    position: absolute;
    top: var(--space-m, 1rem);
    right: var(--space-m, 1rem);
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 999px;
    line-height: 1;
  }

  .slide-panel__close:hover {
    background: rgba(15, 23, 42, 0.06);
  }

  /* Tighter ring offset on small control (global :focus-visible ring in elements.css). */
  .slide-panel__close:focus-visible {
    outline-offset: 2px;
  }

  .slide-panel__close-icon {
    display: block;
    font-size: 1.5rem;
  }

  .slide-panel__content {
    margin-top: calc(var(--space-xl, 2rem) + 0.5rem);
    padding-right: var(--space-xs, 0.75rem);
  }

  .slide-panel__content > *:first-child {
    margin-top: 0;
  }
}
}
@layer gallery{
/* Gallery component - large square left + smaller grid right (like stat-grid) */
@layer gallery {
  .gallery {
    /* Locally scoped variables */
    --gallery-gap: var(--space-s, 0.5rem);
  }

  /* Main layout container - large square + right grid */
  .gallery__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gallery-gap);
  }

  /* Large square on the left */
  .gallery__main-square {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }

  .gallery__main-square .gallery__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* 2x2 right grid: square aspect ratio */
  .gallery__right--2x2 {
    aspect-ratio: 1 / 1;
  }

  /* 3x2 right grid: 3:2 aspect ratio (3 cols, 2 rows) */
  .gallery__right--3x2 {
    aspect-ratio: 3 / 2;
  }

  /* 2x3 right grid: 2:3 aspect ratio (2 cols, 3 rows) */
  .gallery__right--2x3 {
    aspect-ratio: 2 / 3;
  }

  /* 3x3 right grid: square aspect ratio */
  .gallery__right--3x3 {
    aspect-ratio: 1 / 1;
  }

  /* Grid container for right section */
  .gallery__grid {
    display: grid;
    height: 100%;
    gap: var(--gallery-gap);
  }

  .gallery__grid--2-col {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery__grid--3-col {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Right grid cells — default 1×1 square; optional wide / tall spans */
  .gallery__item {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }

  .gallery__item--2x1 {
    grid-column: span 2;
    aspect-ratio: 2 / 1;
  }

  .gallery__item--1x2 {
    grid-row: span 2;
    aspect-ratio: 1 / 2;
  }

  /* Image styling */
  .gallery__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Image captions — same overlay treatment as hero media credits / split-50 */
  .gallery__caption {
    position: absolute;
    left: var(--space-s, 0.5rem);
    bottom: var(--space-s, 0.5rem);
    z-index: 2;
    max-width: calc(100% - (var(--space-s, 0.5rem) * 2));
    margin: 0;
    padding: 0.35em 0.55em;
    text-align: left;
    text-wrap: balance;
    background: rgba(0, 0, 0, 0.55);
    pointer-events: none;
  }

  .gallery__main-square .gallery__caption {
    left: var(--space-m);
    bottom: var(--space-m);
    max-width: calc(100% - (var(--space-m) * 2));
  }

  /* Branded cell - always 1x1, positioned bottom-right */
  .gallery__item--branded {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--space-s, 1rem);
    background-color: var(--color-paper, #fff);
    /* border: 1px solid var(--color-ink, #000); */
    /* Force to last column */
    grid-column-end: -1;
    /* Ensure it's 1x1 */
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 1 / 1;
  }

  /* Label in top-left of branded cell */
  .gallery__label {
    font-size: min(var(--fs--1, --fs-0));
    line-height: var(--line-height-tight, 1.25);
    max-width: 20ch;
    text-wrap: balance;
  }

  /* Brand device container - positions device in bottom-right */
  .gallery__brand-device {
    position: absolute;
    bottom: 0;
    right: 0;
  }

  /* Ensure brand device is properly positioned within the cell */
  .gallery__item--branded .brand-device {
    position: relative;
  }

  /* Desktop: side-by-side layout
     The right grid height is determined by its content (square cells + gaps)
     The left square stretches to match via align-items: stretch */
  @media (min-width: 768px) {
    /* 2x2 layout: 2 cols × 2 rows on right
       Right grid width:height ratio = 2:(2+gap) ≈ 1:1 for small gaps
       Use equal columns, left square stretches to match */
    .gallery__layout--2x2 {
      grid-template-columns: 1fr 1fr;
    }

    /* 3x2 layout: 3 cols × 2 rows on right */
    .gallery__layout--3x2 {
      grid-template-columns: 2fr 3fr;
    }

    /* 2x3 layout: 2 cols × 3 rows on right */
    .gallery__layout--2x3 {
      grid-template-columns: 3fr 2fr;
    }

    /* 3x3 layout: 3 cols × 3 rows on right */
    .gallery__layout--3x3 {
      grid-template-columns: 1fr 1fr;
    }

    /* On desktop, let the left square stretch to match the right grid height */
    .gallery__main-square {
      aspect-ratio: unset;
      height: 100%;
    }

    /* On desktop, remove aspect ratio from right section - let content define height */
    .gallery__right--2x2,
    .gallery__right--3x2,
    .gallery__right--2x3,
    .gallery__right--3x3 {
      aspect-ratio: unset;
    }
  }

  /* Optional: Hover effect on images */
  .gallery__item:not(.gallery__item--branded) .gallery__image,
  .gallery__main-square .gallery__image {
    transition: transform 0.25s ease;
  }

  .gallery__item:not(.gallery__item--branded):hover .gallery__image,
  .gallery__main-square:hover .gallery__image {
    transform: scale(1.02);
  }
}
}
@layer components{
:root{--ss-primary-color: #5897fb;--ss-bg-color: #ffffff;--ss-font-color: #4d4d4d;--ss-placeholder-color: #8d8d8d;--ss-disabled-color: #dcdee2;--ss-border-color: #dcdee2;--ss-highlight-color: #fffb8c;--ss-focus-color: var(--ss-primary-color);--ss-success-color: #00b755;--ss-error-color: #dc3545;--ss-main-height: 40px;--ss-content-height: 300px;--ss-search-height: 40px;--ss-option-height: auto;--ss-spacing-l: 9px;--ss-spacing-m: 7px;--ss-spacing-s: 5px;--ss-animation-timing: 0.2s;--ss-border-radius: 4px}@keyframes ss-valueIn{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes ss-valueOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0);opacity:0}}.ss-hide{display:none !important}.ss-main{display:flex;flex-direction:row;position:relative;user-select:none;color:var(--ss-font-color);min-height:var(--ss-main-height);width:100%;padding:var(--ss-spacing-s);cursor:pointer;border:1px solid var(--ss-border-color);border-radius:var(--ss-border-radius);background-color:var(--ss-bg-color);outline:0;box-sizing:border-box;transition:background-color var(--ss-animation-timing);overflow:hidden}.ss-main:focus{box-shadow:0 0 5px var(--ss-focus-color)}.ss-main.ss-disabled{background-color:var(--ss-disabled-color);cursor:not-allowed}.ss-main.ss-disabled .ss-values .ss-disabled{color:var(--ss-font-color)}.ss-main.ss-disabled .ss-values .ss-value .ss-value-delete{cursor:not-allowed}.ss-main.ss-dir-above{border-top-left-radius:0px;border-top-right-radius:0px}.ss-main.ss-dir-below{border-bottom-left-radius:0px;border-bottom-right-radius:0px}.ss-main .ss-values{display:inline-flex;flex-wrap:wrap;gap:var(--ss-spacing-m);flex:1 1 100%;min-width:0;max-width:100%;overflow:hidden}.ss-main .ss-values:has(.ss-multi-string){flex-wrap:nowrap;gap:0;align-items:center}.ss-main .ss-values .ss-placeholder{display:block;width:100%;min-width:0;padding:var(--ss-spacing-s) var(--ss-spacing-m) var(--ss-spacing-s) var(--ss-spacing-m);margin:auto 0px auto 0px;line-height:1em;color:var(--ss-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-main .ss-values .ss-max{display:flex;user-select:none;align-items:center;width:fit-content;font-size:12px;color:var(--ss-bg-color);line-height:1;padding:var(--ss-spacing-s) var(--ss-spacing-m);background-color:var(--ss-primary-color);border-radius:var(--ss-border-radius)}.ss-main .ss-values .ss-single{display:block;margin:auto 0px auto var(--ss-spacing-s);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;max-width:calc(100% - 20px)}.ss-main .ss-values .ss-multi-string{display:block;width:100%;min-width:0;padding:var(--ss-spacing-s) var(--ss-spacing-m) var(--ss-spacing-s) var(--ss-spacing-m);margin:auto 0px auto 0px;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;max-width:calc(100% - 20px)}.ss-main .ss-values .ss-value{display:flex;user-select:none;align-items:center;width:fit-content;max-width:100%;background-color:var(--ss-primary-color);border-radius:var(--ss-border-radius);animation-name:ss-valueIn;animation-duration:var(--ss-animation-timing);animation-timing-function:ease-out;animation-fill-mode:both}.ss-main .ss-values .ss-value.ss-value-out{animation-name:ss-valueOut;animation-duration:var(--ss-animation-timing);animation-timing-function:ease-out}.ss-main .ss-values .ss-value .ss-value-text{flex:1;min-width:0;font-size:12px;line-height:1;color:var(--ss-bg-color);padding:var(--ss-spacing-s) var(--ss-spacing-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-main .ss-values .ss-value .ss-value-delete{display:flex;align-items:center;height:var(--ss-spacing-l);width:var(--ss-spacing-l);padding:var(--ss-spacing-s) var(--ss-spacing-m);cursor:pointer;border-left:solid 1px var(--ss-bg-color);box-sizing:content-box}.ss-main .ss-values .ss-value .ss-value-delete svg{height:var(--ss-spacing-l);width:var(--ss-spacing-l)}.ss-main .ss-values .ss-value .ss-value-delete svg path{fill:none;stroke:var(--ss-bg-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round}.ss-main .ss-deselect{flex:0 1 auto;display:flex;align-items:center;justify-content:center;width:fit-content;height:auto;padding:0 var(--ss-spacing-m) 0 var(--ss-spacing-m)}.ss-main .ss-deselect svg{width:8px;height:8px}.ss-main .ss-deselect svg path{fill:none;stroke:var(--ss-font-color);stroke-width:20;stroke-linecap:round;stroke-linejoin:round}.ss-main .ss-arrow{flex:0 1 auto;display:flex;align-items:center;justify-content:flex-end;width:12px;height:12px;margin:auto var(--ss-spacing-m) auto var(--ss-spacing-m)}.ss-main .ss-arrow path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;transition-timing-function:ease-out;transition:var(--ss-animation-timing)}.ss-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.ss-content{position:absolute;display:flex;height:auto;flex-direction:column;width:auto;max-height:var(--ss-content-height);box-sizing:border-box;border:solid 1px var(--ss-border-color);background-color:var(--ss-bg-color);transition:transform var(--ss-animation-timing),opacity var(--ss-animation-timing);opacity:0;transform:scaleY(0);overflow:hidden;z-index:10000}.ss-content.ss-relative{position:relative;height:100%}.ss-content.ss-fixed{position:fixed}.ss-content.ss-dir-above{transform-origin:center bottom;flex-direction:column-reverse;border-top-left-radius:var(--ss-border-radius);border-top-right-radius:var(--ss-border-radius)}.ss-content.ss-dir-below{transform-origin:center top;border-bottom-left-radius:var(--ss-border-radius);border-bottom-right-radius:var(--ss-border-radius)}.ss-content.ss-open{opacity:1;transform:scaleY(1)}.ss-content .ss-search{flex:0 1 auto;display:flex;flex-direction:row;border-bottom:1px solid var(--ss-border-color)}.ss-content .ss-search input{display:inline-flex;font-size:inherit;line-height:inherit;flex:1 1 auto;width:100%;min-width:0px;height:var(--ss-search-height);padding:var(--ss-spacing-m) var(--ss-spacing-l);margin:0;border:none;background-color:var(--ss-bg-color);outline:0;text-align:left;box-sizing:border-box}.ss-content .ss-search input::placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input:focus{box-shadow:none}.ss-content .ss-search .ss-addable{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;flex:0 0 auto;height:auto;margin:0 0 0 var(--ss-spacing-m);border:1px solid var(--ss-border-color);border-radius:var(--ss-border-radius)}.ss-content .ss-search .ss-addable svg{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;width:12px;height:12px;margin:auto var(--ss-spacing-m) auto var(--ss-spacing-m)}.ss-content .ss-search .ss-addable svg path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round}.ss-content.ss-dir-above .ss-search{border-bottom:none;border-top:1px solid var(--ss-border-color)}.ss-content .ss-list{flex:1 1 auto;height:auto;overflow-x:hidden;overflow-y:auto}.ss-content .ss-list .ss-error{color:var(--ss-error-color);padding:var(--ss-spacing-l)}.ss-content .ss-list .ss-searching{color:var(--ss-font-color);padding:var(--ss-spacing-l)}.ss-content .ss-list .ss-optgroup .ss-option{transition:max-height var(--ss-animation-timing) ease,opacity var(--ss-animation-timing) ease,padding-top var(--ss-animation-timing) ease,padding-bottom var(--ss-animation-timing) ease,margin-top var(--ss-animation-timing) ease,margin-bottom var(--ss-animation-timing) ease}.ss-content .ss-list .ss-optgroup.ss-open .ss-option{max-height:100px;opacity:1;overflow:visible}.ss-content .ss-list .ss-optgroup.ss-close .ss-option{padding-top:0 !important;padding-bottom:0 !important;margin-top:0 !important;margin-bottom:0 !important;max-height:0;opacity:0;overflow:hidden}.ss-content .ss-list .ss-optgroup .ss-optgroup-label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-label-text{flex:1 1 auto;font-weight:bold;color:var(--ss-font-color)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label:has(.ss-arrow){cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions{flex:0 1 auto;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ss-spacing-m)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall{flex:0 0 auto;display:flex;flex-direction:row;cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall:hover{opacity:.5}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall.ss-selected svg path{stroke:var(--ss-error-color)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall span{flex:0 1 auto;display:flex;align-items:center;justify-content:center;font-size:60%;text-align:center;padding:0 var(--ss-spacing-s) 0 0}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg{flex:0 1 auto;width:13px;height:13px}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg path{fill:none;stroke:var(--ss-success-color);stroke-linecap:round;stroke-linejoin:round}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:first-child{stroke-width:5}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:last-child{stroke-width:11}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable{flex:0 1 auto;display:flex;flex-direction:row;cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow{flex:1 1 auto;width:10px;height:10px}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;transition-timing-function:ease-out;transition:var(--ss-animation-timing)}.ss-content .ss-list .ss-optgroup .ss-option{padding:var(--ss-spacing-s) var(--ss-spacing-s) var(--ss-spacing-s) calc(var(--ss-spacing-l)*3)}.ss-content .ss-list .ss-option{display:flex;align-items:center;min-height:var(--ss-option-height);padding:var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l);white-space:normal;color:var(--ss-font-color);cursor:pointer;user-select:none}.ss-content .ss-list .ss-option:hover:not(.ss-disabled){color:var(--ss-bg-color);background-color:var(--ss-primary-color);border-left:5px solid var(--ss-primary-color);transition:border-left var(--ss-animation-timing) ease}.ss-content .ss-list .ss-option.ss-highlighted,.ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected{color:var(--ss-bg-color);background-color:var(--ss-primary-color)}.ss-content .ss-list .ss-option.ss-disabled{cursor:not-allowed;background-color:var(--ss-disabled-color)}.ss-content .ss-list .ss-option.ss-disabled:hover{color:var(--ss-font-color)}.ss-content .ss-list .ss-option .ss-search-highlight{display:inline-block;background-color:var(--ss-highlight-color)}.ss-content .ss-list .ss-search{display:flex;flex-direction:row;align-items:center;padding:var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m) var(--ss-spacing-l)}/*# sourceMappingURL=slimselect.css.map */
}
@layer components{
@layer components {
  .projects-index {
    --projects-grid-gap: var(--space-m, 1rem);
  }

  .projects-index__header {
    border-bottom: 1px solid var(--color-ink, #000);
  }

  .projects-index__filters {
    border-color: var(--color-ink, #000);
  }

  .projects-index__filters-grid {
    align-items: flex-end;
  }

  .projects-index__filter-select {
    width: 100%;
    font-family: inherit;
    font-size: var(--fs--1);
    line-height: inherit;
    color: var(--color-ink);
    background-color: transparent;
    padding-left: 0;
    padding-inline-start: 0;
    cursor: pointer;
  }

  /* Where the UA allows styling the open list (e.g. Firefox); WebKit/Chrome often ignore parts of this. */
  .projects-index__filter-select option {
    font-family: inherit;
    font-size: var(--fs--1);
    background-color: transparent;
    padding-left: 0;
    padding-inline-start: 0;
    color: var(--color-ink);
  }

  .projects-index__sector {
    border-color: var(--color-ink, #000);
  }

  .projects-grid {
    --grid-columns: 1;
  }

  .projects-grid__item {
    display: block;
  }

  .projects-grid__item--hidden {
    display: none;
  }

  .projects-grid__toggle-row {
    margin-block-end: var(--space-xl, 2rem);
  }

  .projects-grid__toggle {
    border: none;
    background: none;
    padding: 0;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
    display: inline-flex;
    justify-content: flex-start;
    width: auto;
  }

  @media (min-width: 768px) {
    .projects-grid {
      --grid-columns: 2;
    }
  }

  @media (min-width: 1024px) {
    .projects-grid {
      --grid-columns: 4;
    }

    .projects-grid__item--wide {
      grid-column: span 2;
    }
  }
}
}
@layer components{
@layer components {
  .contact-index__search-block {
    padding-bottom: var(--space-m, 1rem);
    border-bottom: 1px solid var(--color-ink, #000);
  }

  .contact-index__search-hint {
    color: color-mix(in oklch, var(--color-ink) 65%, transparent);
  }

  .contact-index__search {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: var(--space-s, 0.75rem);
  }

  .contact-index__search-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
  }

  .contact-index__search-input {
    width: 100%;
    font: inherit;
    font-size: var(--fs-0, 1rem);
    line-height: inherit;
    color: var(--color-ink);
    background-color: var(--color-canvas-light, var(--color-canvas));
    border: 1px solid var(--color-ink, #000);
    padding: var(--space-2xs) calc(var(--space-s) + 1.75rem) var(--space-2xs)
      var(--space-s);
  }

  .contact-index__search-clear {
    position: absolute;
    top: 50%;
    right: var(--space-xs);
    font-size: var(--fs-1);
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid;
    border-radius: 100%;
    padding: 0;
    background: transparent;
    color: var(--color-ink);
    line-height: 1;
    cursor: pointer;
  }

  .contact-index__search-clear:hover,
  .contact-index__search-clear:focus-visible {
    color: var(--color-focus, var(--color-teal-400, #00b3a6));
  }

  .contact-index__search-clear:focus-visible {
    outline: 2px solid var(--color-focus, var(--color-teal-400, #00b3a6));
    outline-offset: 1px;
  }

  .contact-index__search-clear[hidden] {
    display: none;
  }

  .contact-index__search-input:focus {
    outline: 3px solid var(--color-focus, var(--color-teal-400, #00b3a6));
    outline-offset: 2px;
    border-color: var(--color-ink, #000);
  }

  .contact-index__search-input::placeholder {
    color: var(--color-ink-light, #666);
    opacity: 1;
  }

  .contact-index__search-submit {
    flex-shrink: 0;
    align-self: flex-start;
  }
  .contact-index__search-submit span {
    padding: var(--space-s) var(--space-s);
  }

  @media (min-width: 768px) {
    .contact-index__search-input {
      min-width: 0;
    }
  }

  .contact-index__group {
    border-color: var(--color-ink, #000);
  }
}
}
@layer components{
@layer components {
  .podcast-card {
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: clamp(12rem, 28vw, 16rem);
    aspect-ratio: 1 / 1;
  }

  .podcast-card__media {
    position: absolute;
    inset: 0;
    z-index: 0;
  }

  .podcast-card__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(100%);
  }

  .podcast-card__tint {
    position: absolute;
    inset: 0;
    mix-blend-mode: multiply;
    pointer-events: none;
  }

  .themed-photo {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .themed-photo__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(100%);
  }

  .themed-photo__tint {
    position: absolute;
    inset: 0;
    mix-blend-mode: multiply;
    pointer-events: none;
  }

  .podcast-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: inherit;
    padding: var(--space-s, 0.75rem);
    color: inherit;
    text-decoration: none;
    position: relative;
    z-index: 1;
  }

  .podcast-card .brand-device[data-position="corner-top-right"] {
    z-index: 1;
  }

  .podcast-card__theme,
  .podcast-card__body,
  .podcast-card__footer {
    position: relative;
    z-index: 2;
  }

  .podcast-card__theme {
    align-self: flex-start;
    max-width: calc(100% - 4.5rem);
    margin-bottom: var(--space-2xs);
  }

  .podcast-card__theme .label__text {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: bold;
  }

  .podcast-card__body {
    padding-right: var(--space-s, 0.75rem);
  }

  .podcast-card__meta {
    font-size: var(--fs--2);
    letter-spacing: 0.04em;
    opacity: 0.85;
    margin: 0 0 var(--space-2xs, 0.35rem);
  }

  .podcast-card__episode {
    font-size: var(--fs-1);
    line-height: var(--line-height-tightest);
    margin: 0 0 var(--space-2xs, 0.35rem);
  }

  .podcast-card__title {
    font-size: var(--fs-0);
    line-height: var(--line-height-tightest);
    margin: 0;
  }

  .podcast-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s, 0.75rem);
    margin-top: auto;
    font-size: var(--fs--1);
    line-height: var(--line-height);
  }

  .podcast-card__listen {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2xs, 0.35rem);
    min-width: 0;
  }

  .podcast-card__listen-icon {
    width: var(--fs-0);
    height: var(--fs-0);
    flex: 0 0 var(--fs-0);
    fill: currentColor;
  }

  .podcast-card__caret {
    width: var(--fs-1);
    height: var(--fs-1);
    flex: 0 0 var(--fs-1);
    fill: currentColor;
  }

  .podcast-card__listen-icon use,
  .podcast-card__caret use {
    fill: currentColor;
  }

  .podcast-card__link:hover .podcast-card__title,
  .podcast-card__link:focus-visible .podcast-card__title {
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }

  .podcast-card--compact {
    min-height: 0;
    aspect-ratio: auto;
  }

  .podcast-card--compact .podcast-card__link {
    min-height: clamp(9rem, 22vw, 12rem);
    padding: var(--space-s, 0.75rem);
  }

  .podcast-card--compact .podcast-card__theme {
    max-width: calc(100% - 3.5rem);
  }

  .podcast-card--compact .podcast-card__episode {
    font-size: var(--fs-0);
  }

  .podcast-card--compact .podcast-card__title {
    font-size: var(--fs--1);
  }

  .podcast-card--compact .podcast-card__footer {
    font-size: var(--fs--2);
  }

  .podcast-episodes-slider .swiper-slide {
    display: flex;
    height: auto;
    align-self: stretch;
  }

  .podcast-episodes-slider .swiper-slide .podcast-card {
    width: 100%;
  }

  /* Square list thumbnail — latest hub sidebar, etc. */
  .podcast-card--thumb {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }

  .podcast-card--thumb .podcast-card__link {
    min-height: 0;
    height: 100%;
    padding: var(--space-2xs, 0.33rem);
  }

  .podcast-card--thumb .brand-device[data-position="corner-top-right"] {
    --device-size: 1.75rem;
  }

  .podcast-card--thumb .podcast-card__theme {
    align-self: flex-start;
    max-width: calc(100% - 2rem);
    margin: 0;
    padding: 0.1em 0.25em;
  }

  .podcast-card--thumb .podcast-card__theme .label__text {
    font-size: clamp(0.4rem, 1cqi, 0.5rem);
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: bold;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  .podcast-card--thumb .podcast-card__mic {
    position: absolute;
    left: var(--space-2xs, 0.33rem);
    bottom: var(--space-2xs, 0.33rem);
    z-index: 2;
    line-height: 0;
  }

  .podcast-card--thumb .podcast-card__listen-icon {
    width: clamp(0.75rem, 2.5cqi, 0.875rem);
    height: clamp(0.75rem, 2.5cqi, 0.875rem);
    flex: 0 0 auto;
  }
}
}
@layer components{
@layer components {
  .podcast-provider-links {
    align-items: center;
    flex-wrap: wrap;
  }

  .podcast-provider-links__link {
    color: var(--color-ink);
    display: inline-flex;
    flex-shrink: 0;
    line-height: 0;
    transition: opacity var(--transition);
  }

  @media (prefers-color-scheme: dark) {
    :root[data-color-mode="system"] .podcast-provider-links__link {
      color: var(--color-canvas);
    }
  }

  :root[data-color-mode="dark"] .podcast-provider-links__link {
    color: var(--color-canvas);
  }

  @media (hover: hover) {
    .podcast-provider-links__link:hover,
    .podcast-provider-links__link:focus-visible {
      opacity: 0.75;
    }
  }

  .podcast-provider-links__link:focus-visible {
    outline-offset: 4px;
  }

  .podcast-provider-links__button {
    height: var(--fs-3);
    width: auto;
  }
}
}
@layer components{
@layer components {
  .podcast-index__filters {
    border-bottom: 1px solid var(--color-border-overlay, var(--color-steel-300));
  }

  .podcast-index__filters-grid {
    align-items: flex-end;
  }

  .podcast-index__filter-select {
    width: 100%;
    font-family: inherit;
    font-size: var(--fs--1);
    line-height: inherit;
    color: var(--color-text-page, var(--color-ink));
    background-color: transparent;
    padding-left: 0;
    padding-inline-start: 0;
    cursor: pointer;
    color-scheme: light dark;
  }

  /* Native <select> fallback (no JS): option colours follow page colour mode */
  .podcast-index__filter-select option {
    font-family: inherit;
    font-size: var(--fs--1);
    color: var(--color-text-page, var(--color-ink));
    background-color: var(--color-surface-page, var(--color-canvas));
  }

  .podcast-index__theme-intro {
    max-width: 42rem;
  }

  /* Apply is for no-JS fallback; JS adds .podcast-index--enhanced and auto-submits on change */
  .podcast-index--enhanced [data-podcast-filters-apply] {
    display: none;
  }
}
}
@layer components{
@layer components {
  .latest-async-panel {
    transition: opacity 0.2s ease;
  }

  .latest-async-panel.is-loading {
    opacity: 0.55;
    pointer-events: none;
  }
}
}
@layer components{
@layer components {
  .latest-hub__frame {
    /* border: 1px solid var(--color-ink, #000); */
  }

  .latest-hub__news {
    padding: var(--space-m);
  }

  .latest-hub__aside {
    display: flex;
    flex-direction: column;
  }

  .latest-hub__section {
    padding: var(--space-m);
    flex: 1;
  }

  .latest-hub__section + .latest-hub__section {
    border-top: 1px solid var(--color-ink, #000);
  }

  .latest-hub__more--indented .button {
    margin-left: var(--space-s);
  }

  .latest-hub__more .button svg {
    transition: transform 0.2s ease;
  }

  .latest-hub__more .button:hover svg,
  .latest-hub__more .button:focus-visible svg {
    transform: translateX(var(--space-s));
  }

  @media (prefers-reduced-motion: reduce) {
    .latest-hub__more .button svg {
      transition: none;
    }
  }

  @media (min-width: 1025px) {
    .latest-hub__news {
      border-right: 1px solid var(--color-ink, #000);
    }
  }

  @media (max-width: 1024px) {
    .latest-hub__news {
      padding: var(--space-xl) 0;
      border-bottom: 1px solid var(--color-ink, #000);
    }

    .latest-hub__frame {
      border-left: none;
      border-right: none;
    }
  }
}
}
@layer components{
@layer components {
  .pinned-content {
    --pinned-content-inactive: var(--color-grey);
    --pinned-content-active: var(--color-ink);
    /* Optional: extra min space below CMS copy in each desktop panel (e.g. 1.5rem) */
    --pinned-panel-tail: 0px;
  }

  /* ——— Mobile: stacked pairs (no JS) ——— */
  .pinned-content__mobile {
    display: block;
    padding-top: var(--space-3xl);
    padding-bottom: var(--space-3xl);
  }

  @media (min-width: 768px) {
    .pinned-content__mobile {
      display: none;
    }
  }

  .pinned-content__mobile-block + .pinned-content__mobile-block {
    margin-top: var(--space-2xl, 3rem);
    padding-top: var(--space-xl, 2rem);
    border-top: 1px solid var(--color-navy-100);
  }

  .pinned-content__mobile-heading {
    margin: 0 0 var(--space-m, 1rem);
    font-size: var(--fs-xl, 1.5rem);
    font-weight: 600;
    color: var(--color-ink);
  }

  .pinned-content__mobile-body {
    color: var(--color-ink);
    opacity: 0.9;
  }

  .pinned-content__mobile-body p {
    /* margin: 0 0 0.75em; */
  }

  .pinned-content__mobile-body p:last-child {
    margin-bottom: 0;
  }

  /* ——— Desktop: pin + two columns ——— */
  .pinned-content__desktop {
    display: none;
  }

  @media (min-width: 768px) {
    .pinned-content__desktop {
      display: block;
    }
  }

  .pinned-content__pin {
  }

  .pinned-content__inner {
    width: 100%;
    /* max-width: var(--content-max-width, 72rem); */
    margin-inline: auto;
    display: flex;
    align-items: stretch;
    padding-top: var(--space-2xl, 2rem);
    padding-bottom: var(--space-2xl, 2rem);
    position: relative;
    gap: var(--space-xl, 2rem);
  }

  /* Left column: optional heading (full width, no bar) + nav (bar + list) */
  .pinned-content__column {
    flex: 0 0 29%;
    /* max-width: 28rem; */
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .pinned-content__nav {
    position: relative;
    flex: 1;
    min-height: 0;
  }

  .pinned-content__section-heading {
    margin: 0 0 var(--space-l, 1.5rem);
    padding-left: 0;
    font-size: var(--fs-3);
    font-weight: 600;
    color: var(--color-ink);
    line-height: var(--line-height-tighter);
  }

  .pinned-content__mobile-section-heading {
    margin: 0 0 var(--space-xl, 2rem);
    font-size: var(--fs-2);
    font-weight: 600;
    color: var(--color-ink);
    line-height: 1.2;
  }

  .pinned-content__list {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--fs-2);
    font-weight: 600;
    line-height: var(--line-height-tightest);
  }

  .pinned-content__list li {
    padding: 0;
    color: var(--pinned-content-inactive);
    transition: color 0.15s ease;
  }

  .pinned-content__nav-btn {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.35em 0;
    text-align: left;
    background: none;
    border: none;
    font: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    cursor: pointer;
    color: inherit;
  }

  .pinned-content__nav-btn:focus-visible {
    outline: 2px solid var(--color-copper-500);
    outline-offset: 2px;
  }

  /* Panels share one grid cell so row height = tallest panel (absolute inset:0 did not). */
  .pinned-content__stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    flex: 1;
    position: relative;
    min-width: 0;
    min-height: 12rem;
    align-self: stretch;
  }

  .pinned-content__panel {
    grid-area: 1 / 1;
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    opacity: 0;
    visibility: hidden;
  }

  .pinned-content__panel p {
    margin: 0 0 0.75em;
    /* font-size: var(--fs-base, 1rem); */
    line-height: 1.55;
  }

  .pinned-content__panel p:last-child {
    margin-bottom: 0;
  }

  .pinned-content__panel-tail {
    flex-shrink: 0;
    min-height: var(--pinned-panel-tail);
  }

  @media (prefers-reduced-motion: reduce) {
    .pinned-content__desktop {
      display: none;
    }

    .pinned-content__mobile {
      display: block;
    }
  }
}
}
@layer components{
@layer components {
  .accordion {
    --accordion-border: color-mix(
      in srgb,
      var(--color-ink, #020617) 12%,
      transparent
    );
    --accordion-hover-color: var(--color-accent, #0f766e);
    --accordion-icon-size: var(--fs--1);
    border-block-end: 1px solid var(--accordion-border);
  }

  .accordion__item {
    border-block-start: 1px solid var(--accordion-border);
  }

  .accordion__heading {
    margin: 0;
    font: inherit;
  }

  .accordion__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-m, 1rem);
    width: 100%;
    padding: var(--space-m, 1rem) 0;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    text-align: start;
    cursor: pointer;
    position: relative;
    z-index: 1;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s ease;
  }

  .accordion__trigger:hover,
  .accordion__trigger:focus-visible {
    color: var(--accordion-hover-color);
  }

  .accordion__trigger:focus-visible {
    outline: 2px solid var(--accordion-hover-color);
    outline-offset: 2px;
  }

  .accordion__title {
    flex: 1;
    min-width: 0;
    font-size: var(--fs-1);
  }

  /* Plus icon (SVG): reliable inside <button>; vertical line hides when open → minus */
  .accordion__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: currentColor;
  }

  .accordion__icon-svg {
    display: block;
    width: calc(var(--accordion-icon-size) * 1.5);
    height: calc(var(--accordion-icon-size) * 1.5);
  }

  .accordion__icon-line--v {
    transform-origin: center;
    transition:
      opacity 0.3s ease,
      transform 0.3s ease;
  }

  .accordion__trigger[aria-expanded="true"] .accordion__icon-line--v {
    opacity: 0;
    transform: scaleY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .accordion__icon-line--v {
      transition: none;
    }
  }

  .accordion__panel {
    overflow: hidden;
  }

  .accordion__panel-inner {
    padding-block-end: var(--space-m, 1rem);
    color: color-mix(
      in srgb,
      var(--color-text-page, var(--color-ink, #020617)) 85%,
      transparent
    );
  }

  .accordion__panel-inner > :first-child {
    margin-block-start: 0;
  }

  .accordion__panel-inner > :last-child {
    margin-block-end: 0;
  }

  @media (max-width: 767px) {
    @media (prefers-color-scheme: dark) {
      :root[data-color-mode="system"] .accordion {
        --accordion-hover-color: var(--color-baby-500);
      }
    }

    :root[data-color-mode="dark"] .accordion {
      --accordion-hover-color: var(--color-baby-500);
    }
  }
}
}
@layer components{
@layer components {
  .multi-block-quotes__grid {
    align-items: start;
  }

  .multi-block-quotes__item .c-quote {
    margin-bottom: 0;
  }
}
}
@layer components{
@layer components {
  .download-group__description {
    max-width: 65ch;
  }

  .download-group__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .download-group__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s) var(--space-m);
    padding: var(--space-m);
    padding-left: 0;
    margin: 0;
    border-bottom: 1px solid var(--color-steel-200, #e0e4e8);
    transition: all 0.3s ease;
  }

  .download-group__row--with-cover {
    align-items: center;
  }

  .download-group__cover {
    flex: 0 0 auto;
    width: 4.5rem;
    height: 4.5rem;
    overflow: hidden;
    border-radius: 2px;
    background-color: var(--color-steel-100, #f4f5f6);
  }

  .download-group__cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .download-inline {
    width: 100%;
    overflow: visible;
    container: download-inline / inline-size;
  }

  .download-inline__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-m);
    padding: var(--space-m);
    background-color: var(--color-steel-100, #f4f5f6);
    overflow: visible;
    position: relative;
  }

  .download-inline__inner--with-cover {
    grid-template-columns: 1fr;
    align-items: end;
  }

  .download-inline__content {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: var(--space-xs);
    align-self: end;
    min-width: 0;
  }

  .download-inline__title {
    font-size: var(--fs-1);
    line-height: var(--line-height-tightest);
    letter-spacing: var(--letter-spacing);
    font-weight: 600;
    color: var(--color-ink);
  }

  .download-inline__action {
    font-size: var(--fs-0);
    line-height: var(--line-height);
  }

  .download-inline__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    color: var(--color-text-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }

  .download-inline__icon {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
  }

  .download-inline__link:hover {
    text-decoration-thickness: 2px;
  }

  .download-inline__size {
    color: var(--color-ink);
    font-weight: 400;
  }

  /* Cover sits in a zero-height grid cell; image extends upward above the card top */
  .download-inline__cover {
    height: 0;
    align-self: end;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: visible;
  }

  .download-inline__cover img {
    display: block;
    width: 100%;
    height: auto;
    margin-top: calc(var(--space-m) * -1);
    border-radius: 2px;
    border: 2px solid var(--color-palegrey);
    box-shadow: var(--box-shadow);
  }

  @container download-inline (min-width: 20rem) {
    .download-inline__inner--with-cover {
      grid-template-columns: 3fr 1fr;
    }
    .download-inline__inner--with-cover.download-inline__inner--cover-landscape {
      grid-template-columns: 5fr 3fr;
    }
  }

  @container download-inline (min-width: 32rem) {
    .download-inline__inner--with-cover {
      grid-template-columns: 4fr 1fr;
    }
    .download-inline__inner--with-cover.download-inline__inner--cover-landscape {
      grid-template-columns: 5fr 4fr;
    }
    .download-inline__title {
      margin: var(--space-m) 0 0 0;
      font-size: var(--fs-2);
    }
  }

  @container download-inline (min-width: 48rem) {
    .download-inline__inner {
      margin-top: var(--space-m);
    }
    .download-inline__inner--with-cover {
      grid-template-columns: 4fr 1fr;
    }
    .download-inline__inner--with-cover.download-inline__inner--cover-landscape {
      grid-template-columns: 7fr 4fr;
    }
    .download-inline__title {
      /* margin: var(--space-2xl) 0 0 0; */
      font-size: var(--fs-2);
    }
  }
  @container download-inline (min-width: 60rem) {
    .download-inline__inner {
      margin: var(--space-2xl) 0 var(--space-m) 0;
    }
    .download-inline__inner--with-cover {
      grid-template-columns: 5fr 1fr;
    }
    .download-inline__inner--with-cover.download-inline__inner--cover-landscape {
      grid-template-columns: 5fr 3fr;
    }
    .download-inline__title {
      font-size: var(--fs-3);
    }
  }
  @container download-inline (min-width: 70rem) {
    .download-inline__inner--with-cover.download-inline__inner--cover-landscape {
      grid-template-columns: 5fr 2fr;
    }
  }

  /* Aside column: landscape cover stacks as card (full-width image, copy below) */
  .download-inline__inner--with-cover.download-inline__inner--cover-stacked {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .download-inline__inner--cover-stacked .download-inline__cover {
    height: auto;
    align-self: stretch;
  }

  .download-inline__inner--cover-stacked .download-inline__content {
    align-self: stretch;
    justify-content: flex-start;
  }

  .download-inline__inner--cover-stacked .download-inline__title {
    margin-top: 0;
  }

  /* In rich text: float the whole block so following copy wraps; cover still protrudes up inside */
  /* @media (min-width: 1024px) {
    .text > .download-inline--with-cover {
      float: right;
      clear: right;
      max-width: min(28rem, 55%);
      margin-left: var(--space-m);
    }
  } */

  .download-group__row:hover {
    background-color: var(--color-steel-100);
    padding-left: var(--space-m);
  }

  .download-group__row:last-child {
    border-bottom: none;
  }

  .download-group__file-title {
    flex: 1 1 12rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
  }

  .download-group__btn {
    flex-shrink: 0;
  }
}
}
@layer components{
@layer components {
  .tabbed-content {
    --tabbed-bd: 1px solid var(--color-canvas);
    --tabbed-strip-bd: 1px solid var(--color-ink);
    /* padding-block: var(--space-l); */
    color: var(--color-ink);
  }

  /* Mobile: edge-to-edge accordion (cancel parent content-width gutters) */
  @media (max-width: 767px) {
    .tabbed-content.content-width {
      margin-left: calc(-1 * var(--content-width-padding));
      margin-right: calc(-1 * var(--content-width-padding));
      padding-left: 0;
      padding-right: 0;
      max-width: none;
    }
  }

  /* Navy surface: desktop swiper + mobile accordion panels only */
  .tabbed-content__swiper,
  .tabbed-content__panel-inner {
    background: var(--color-navy-500);
    color: var(--color-canvas);
  }

  .tabbed-content__swiper a:not([class]),
  .tabbed-content__panel-inner a:not([class]) {
    color: var(--color-canvas);
    text-decoration-color: color-mix(
      in srgb,
      var(--color-canvas) 55%,
      transparent
    );
  }

  .tabbed-content__swiper .text,
  .tabbed-content__panel-inner .text {
    color: inherit;
  }

  /* Caret ↔ horizontal line (desktop tabs + mobile accordion) */
  .tabbed-content__tab-glyph,
  .tabbed-content__accordion-glyph {
    position: relative;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--fs-1);
    height: var(--fs-1);
    color: currentColor;
  }

  .tabbed-content__tab-caret,
  .tabbed-content__tab-line {
    position: absolute;
    inset: 0;
    margin: auto;
    display: block;
  }

  .tabbed-content__tab-line {
    opacity: 0;
    transform: scaleX(0.85);
    transition: opacity 0.2s ease;
  }

  .tabbed-content__tab-caret {
    opacity: 1;
    transition: opacity 0.2s ease;
  }

  .tabbed-content__tab.is-active .tabbed-content__tab-caret,
  .tabbed-content__accordion
    .accordion__trigger[aria-expanded="true"]
    .tabbed-content__tab-caret {
    opacity: 0;
  }

  .tabbed-content__tab.is-active .tabbed-content__tab-line,
  .tabbed-content__accordion
    .accordion__trigger[aria-expanded="true"]
    .tabbed-content__tab-line {
    opacity: 1;
  }

  /* Desktop tab rows (balanced column count via --tabbed-cols) */
  .tabbed-content__tab-row {
    display: grid;
    grid-template-columns: repeat(var(--tabbed-cols, 1), minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    border-block-end: var(--tabbed-strip-bd);
  }

  .tabbed-content__tab {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s);
    padding: var(--space-2xl) var(--space-s);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    border: none;
    border-inline-start: var(--tabbed-strip-bd);
    background: var(--color-canvas);
    color: var(--color-navy-500);
    text-align: start;
    transition:
      background 0.2s ease,
      color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .tabbed-content__tab:first-of-type {
    border-inline-start: none;
  }

  .tabbed-content__tab-label {
    flex: 1;
    min-width: 0;
    text-align: start;
  }

  /* .tabbed-content__tab:last-child {
    border-inline-start: none;
  } */

  .tabbed-content__tab:hover,
  .tabbed-content__tab:focus-visible {
    background: color-mix(
      in srgb,
      var(--color-canvas) 88%,
      var(--color-navy-500)
    );
    color: var(--color-navy-500);
  }

  .tabbed-content__tab:focus-visible {
    outline: 2px solid var(--color-navy-500);
    outline-offset: 2px;
  }

  .tabbed-content__tab.is-active {
    background: var(--color-navy-500);
    color: var(--color-canvas);
    position: relative;
    z-index: 1;
    /* positioning tweak to align layout borders around tabs */
    margin-left: 1px;
    border-inline-start: none;
    box-shadow:
      1px 0 0 0 var(--color-navy-500),
      -1px 0 0 0 var(--color-navy-500);
  }
  .tabbed-content__swiper {
    overflow: hidden;
    /* border: var(--tabbed-bd); */
    border-block-start: none;
    --swiper-theme-color: var(--color-canvas);
    --swiper-navigation-color: var(--color-canvas);
    --swiper-navigation-sides-offset: var(--space-m);
    --swiper-navigation-size: var(--fs-1);
  }

  .tabbed-content__swiper-nav.swiper-button-disabled {
    opacity: 1;
    color: color-mix(in srgb, var(--color-canvas) 35%, transparent);
  }

  .tabbed-content__swiper-nav-group {
    display: none;
  }

  /* Large viewports: grouped nav anchored bottom-left (class set in tabbed-content.twig) */
  @media (min-width: 1024px) {
    .tabbed-content__swiper--split-nav .tabbed-content__swiper-nav-group {
      position: absolute;
      z-index: 3;
      bottom: var(--space-xl);
      width: 50%;
      display: flex;
      align-items: flex-end;
      gap: var(--space-s);
      padding: 0 0 0 var(--space-2xl);
      box-sizing: border-box;
      margin: 0 0 0 calc(var(--space-xs) * -0.75);
      pointer-events: none;
    }

    .tabbed-content__swiper--split-nav .tabbed-content__swiper-nav {
      position: relative;
      inset: auto;
      top: auto;
      left: auto;
      right: auto;
      bottom: auto;
      margin: 0;
      flex-shrink: 0;
      pointer-events: auto;
    }
  }

  .tabbed-content__slide-inner {
    padding: var(--space-xl) var(--content-width-margin-mobile, 1rem);
  }

  /* Split + image: full-bleed image in column; no outer slide padding */
  .tabbed-content__slide-inner:has(.tabbed-content__split) {
    padding: 0;
  }

  .tabbed-content__slide-inner:has(.tabbed-content__split)
    .tabbed-content__sub-aside {
    padding-inline: var(--content-width-margin-mobile, 1rem);
    padding-block: var(--space-xl);
    margin-top: 0;
    border-top: var(--tabbed-bd);
  }

  @media (min-width: 768px) {
    /*
      Tab strip is full width inside the swiper; slide-inner horizontal padding
      would shrink the 12-col grid so 8+4 no longer lines up with ⅔ / ⅓ tab breaks.
      Copy-aside: flush inner + padding on columns only (same full width as tabs).
    */
    .tabbed-content__slide-inner:not(:has(.tabbed-content__split)):not(
        :has(.tabbed-content__copy-aside)
      ) {
      padding: 0 var(--space-2xl);
    }

    .tabbed-content__slide-inner:has(.tabbed-content__copy-aside) {
      padding-block: 0;
      padding-inline: 0;
    }

    .tabbed-content__copy-aside > :first-child {
      padding-left: var(--space-2xl);
    }

    /* .tabbed-content__copy-aside > aside {
      padding-right: var(--space-2xl);
    } */

    .tabbed-content__slide-inner:has(.tabbed-content__split)
      .tabbed-content__sub-aside {
      padding-inline: var(--space-2xl);
      padding-block: var(--space-2xl);
    }
  }

  /* Contained 50/50 (no viewport bleed). Image fills full column height (text column drives row). */
  .tabbed-content__split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 0;
    min-height: clamp(240px, 50vh, 520px);
  }

  .tabbed-content__split-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-xl) var(--space-l) var(--space-3xl) var(--space-2xl);
    min-width: 0;
  }

  .tabbed-content__split-media {
    position: relative;
    overflow: hidden;
    align-self: stretch;
    min-width: 0;
    margin: 0;
    padding: 0;
  }

  .tabbed-content__split-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    display: block;
  }

  @media (min-width: 768px) {
    .tabbed-content__split-text {
      /* padding: var(--space-2xl); */
    }

    .tabbed-content__split-media {
      min-height: 0;
    }
  }

  @media (max-width: 767px) {
    .tabbed-content__split {
      grid-template-columns: 1fr;
      min-height: 0;
    }

    .tabbed-content__split-media {
      order: -1;
      min-height: 200px;
    }

    .tabbed-content__split-text {
      padding: var(--space-l) var(--content-width-margin-mobile, 1rem);
    }
  }

  .tabbed-content__sub-aside {
    margin-top: var(--space-xl);
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .tabbed-content__slide-inner:has(.tabbed-content__split)
    .tabbed-content__sub-aside {
    margin-top: 0;
  }

  .tabbed-content__border-block + .tabbed-content__border-block {
    border-top: var(--tabbed-bd);
  }

  /* Copy-aside ratio (matches copy-aside.twig columns) */
  .tabbed-content__copy-aside {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  @media (min-width: 768px) {
    .tabbed-content__border-right-md {
      border-right: var(--tabbed-bd);
    }
  }

  .tabbed-content__aside-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-l);
    /* padding: var(--space-l) 0; */
  }

  /* @media (min-width: 768px) and (max-width: 1023px) {
    .tabbed-content__aside-stack {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--space-l);
      align-items: start;
    }
  } */

  @media (min-width: 1024px) {
    .tabbed-content__aside-stack {
      /* padding: var(--space-xl) var(--space-m); */
    }
  }

  .tabbed-content__border-bottom-aside {
    padding: 0;
    margin-bottom: 0;
  }

  @media (min-width: 1024px) {
    .tabbed-content__border-bottom-aside {
      padding: var(--space-xl) 0;
      border-bottom: var(--tabbed-bd);
    }
  }

  .tabbed-content__icon-list {
    list-style: none;
    margin: 0;
    padding: var(--space-m);
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
  }

  .tabbed-content__icon-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-m);
  }

  .tabbed-content__icon-item-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
  }

  .tabbed-content__icon-item-icon :is(svg, .stat-grid__icon) {
    width: 1.5rem;
    height: 1.5rem;
    display: block;
    fill: currentColor;
  }

  .tabbed-content__icon-item-text {
    flex: 1;
    min-width: 0;
    font-size: var(--fs-0);
    line-height: 1.45;
  }

  .tabbed-content__contacts--stacked {
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
    padding: 0 var(--space-m) var(--space-xl) var(--space-m);
  }

  /* Contacts-only aside: match copy column pt-xl so heading aligns with tab title */
  @media (min-width: 768px) {
    .tabbed-content__aside-stack:not(:has(.tabbed-content__icon-block))
      .tabbed-content__contacts--stacked {
      padding-top: var(--space-xl);
    }
  }

  /* Accordion (mobile) — horizontal rules only; full width via section outdent */
  .tabbed-content__accordion.accordion {
    --accordion-border: transparent;
    border: none;
    border-block-end: none;
  }

  .tabbed-content__accordion .accordion__item {
    border-block-start: var(--tabbed-strip-bd);
  }

  .tabbed-content__accordion .accordion__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-m);
    padding: var(--space-m);
    border: none;
    border-radius: 0;
    background: var(--color-canvas);
    color: var(--color-navy-500);
  }

  .tabbed-content__accordion .accordion__title {
    flex: 1;
    min-width: 0;
    text-align: start;
  }

  .tabbed-content__accordion
    .accordion__item:last-child
    .accordion__trigger[aria-expanded="false"] {
    border-block-end: var(--tabbed-strip-bd);
  }

  .tabbed-content__accordion .accordion__trigger[aria-expanded="true"],
  .tabbed-content__accordion .accordion__trigger[aria-expanded="true"]:hover {
    background: var(--color-navy-500);
    color: var(--color-canvas);
  }

  .tabbed-content__accordion .accordion__trigger:hover,
  .tabbed-content__accordion .accordion__trigger:focus-visible {
    color: inherit;
  }

  .tabbed-content__accordion .accordion__trigger:focus-visible {
    outline: 2px solid var(--color-navy-500);
    outline-offset: 2px;
  }

  .tabbed-content__panel {
    border: none;
    background: transparent;
  }

  .tabbed-content__accordion .accordion__item:last-child .accordion__panel {
    border-block-end: var(--tabbed-strip-bd);
  }

  .tabbed-content__panel-inner {
    padding: var(--space-l) var(--space-m) var(--space-xl);
  }

  @media (max-width: 767px) {
    .tabbed-content__accordion {
      --tabbed-mobile-inline: var(--content-width-margin-mobile, 1rem);
    }

    .tabbed-content__accordion .accordion__trigger {
      padding: var(--space-m);
    }

    .tabbed-content__panel-inner {
      padding: 0;
    }
  }

  .tabbed-content__simple {
    max-width: 65ch;
  }
}
}
@layer components{
@layer components {
  .vertical-tabs {
    --vertical-tabs-inactive: var(--color-grey);
    --vertical-tabs-active: var(--color-ink);
    /* Readable on bg-canvas / light sections — override inherited utilities (e.g. .text-canvas) */
    color: var(--color-text-page, var(--color-ink));
  }

  @media (prefers-color-scheme: dark) {
    :root[data-color-mode="system"] .vertical-tabs {
      --vertical-tabs-active: var(--color-baby-500);
    }
  }

  :root[data-color-mode="dark"] .vertical-tabs {
    --vertical-tabs-active: var(--color-baby-500);
  }

  /* Swiper: :root pins theme to canvas (for navy blocks); slides on light pages need ink */
  .vertical-tabs [data-swiper] {
    --swiper-theme-color: var(--color-text-page, var(--color-ink));
    --swiper-navigation-color: var(--color-text-page, var(--color-ink));
    --swiper-pagination-color: var(--color-text-page, var(--color-ink));
  }

  .vertical-tabs [data-swiper] .swiper-pagination-bullet {
    --swiper-pagination-bullet-inactive-color: color-mix(
      in srgb,
      var(--color-text-page, var(--color-ink)) 38%,
      transparent
    );
    --swiper-pagination-bullet-inactive-opacity: 1;
  }

  .vertical-tabs [data-swiper] .swiper-pagination-bullet-active {
    --swiper-pagination-color: var(--color-text-page, var(--color-ink));
  }

  /* Related slider embedded on canvas: ink text + divider (navy styling lives under .related-items) */
  .vertical-tabs figure.content-card {
    border-left: 1px solid var(--color-steel-300);
    color: var(--color-text-page, var(--color-ink));
  }

  /* cards.css: light figcaption on navy tiles — restore page text colour here */
  .vertical-tabs .content-card__link figcaption,
  .vertical-tabs .content-card__link figcaption h3,
  .vertical-tabs .content-card__link figcaption p {
    color: var(--color-text-page, var(--color-ink));
  }

  @media (hover: hover) and (pointer: fine) {
    .vertical-tabs .content-card__link:hover figcaption,
    .vertical-tabs .content-card__link:focus-visible figcaption,
    .vertical-tabs .content-card__link:hover figcaption h3,
    .vertical-tabs .content-card__link:focus-visible figcaption h3,
    .vertical-tabs .content-card__link:hover figcaption p,
    .vertical-tabs .content-card__link:focus-visible figcaption p {
      color: var(--color-ink);
    }
  }

  /*
    Number stays in its own column; title wraps beside it (never under the index).
    Matches desktop `.vertical-tabs__tab` + `.vertical-tabs__tab-text`.
  */
  .vertical-tabs__accordion .accordion__title {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.35em;
    flex: 1;
    min-width: 0;
    text-align: start;
  }

  /* Mobile: match desktop tab strip (grey / ink, optional index) — not tabbed-content navy blocks. */
  .vertical-tabs__accordion .vertical-tabs__accordion-heading {
    margin: 0;
    font: inherit;
  }

  .vertical-tabs
    .vertical-tabs__accordion.tabbed-content__accordion
    .accordion__trigger {
    background: var(--color-canvas, var(--color-surface-page, transparent));
    color: var(--vertical-tabs-inactive);
    font-size: var(--fs-2);
    font-weight: 600;
    line-height: var(--line-height-tightest);
    transition: color 0.15s ease;
  }

  .vertical-tabs
    .vertical-tabs__accordion.tabbed-content__accordion
    .accordion__trigger[aria-expanded="true"] {
    background: var(--color-canvas, var(--color-surface-page, transparent));
    color: var(--vertical-tabs-active);
  }

  .vertical-tabs
    .vertical-tabs__accordion.tabbed-content__accordion
    .accordion__trigger:hover,
  .vertical-tabs
    .vertical-tabs__accordion.tabbed-content__accordion
    .accordion__trigger:focus-visible {
    color: var(--vertical-tabs-active);
    background: var(--color-canvas, var(--color-surface-page, transparent));
  }

  .vertical-tabs
    .vertical-tabs__accordion.tabbed-content__accordion
    .accordion__trigger:focus-visible {
    outline: 2px solid var(--color-copper-500);
    outline-offset: 2px;
  }

  /* Panel body: desktop is ink on canvas; undo tabbed navy panel skin on mobile only (inside .vertical-tabs). */
  .vertical-tabs .accordion__panel .tabbed-content__panel-inner,
  .vertical-tabs .tabbed-content__panel-inner {
    background: transparent;
    color: inherit;
  }

  .vertical-tabs .tabbed-content__panel-inner a:not([class]) {
    color: inherit;
    text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
  }

  .vertical-tabs__prefix {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    /* Inherit tab / accordion trigger color so prefix matches title on hover and when active */
    color: inherit;
  }

  .vertical-tabs__tab-icon {
    display: flex;
    align-items: flex-start;
    line-height: 0;
  }

  .vertical-tabs__tab-icon :is(svg, .stat-grid__icon) {
    width: 1.15em;
    height: 1.15em;
    display: block;
    color: inherit;
    fill: currentColor;
  }

  /* Title + intro: same 29% / remainder track as tabs + panel below */
  .vertical-tabs__header {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-m);
    padding-bottom: var(--space-l);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  .vertical-tabs__title {
    margin: 0;
  }

  .vertical-tabs__header-intro {
    min-width: 0;
  }

  @media (min-width: 768px) {
    .vertical-tabs__header {
      flex-direction: row;
      align-items: flex-start;
      gap: var(--space-xl, 2rem);
    }

    .vertical-tabs__header-intro {
      flex: 1;
    }
  }

  .vertical-tabs__header-intro p {
    margin: 0 0 0.75em;
    line-height: 1.55;
  }

  .vertical-tabs__header-intro p:last-child {
    margin-bottom: 0;
  }

  .vertical-tabs__desktop {
    display: none;
  }

  @media (min-width: 768px) {
    .vertical-tabs__desktop {
      display: block;
    }
  }

  .vertical-tabs__inner {
    width: 100%;
    margin-inline: auto;
    display: flex;
    align-items: stretch;
    gap: var(--space-xl, 2rem);
  }

  /* Shared track with `.vertical-tabs__related--split` so the contacts/projects row matches tab/content above. */
  .vertical-tabs__column {
    flex: 0 0 29%;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  /*
    Mirrors `.vertical-tabs__inner` (flex 29% + gap-xl + flex-1): not `.grid` 4|8 (~33%/67%).
    Stacks on small screens — same breakpoints as `.vertical-tabs__desktop`.
  */
  .vertical-tabs__related--split {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-xl, 2rem);
    width: 100%;
  }

  @media (min-width: 768px) {
    .vertical-tabs__related--split {
      flex-direction: row;
      align-items: stretch;
    }

    .vertical-tabs__related--split > .vertical-tabs__related-aside {
      flex: 0 0 29%;
      min-width: 0;
    }

    .vertical-tabs__related-aside--map {
      display: flex;
      flex-direction: column;
      min-height: 0;
    }

    .vertical-tabs__related-aside--map .vertical-tabs__map-container {
      flex: 1;
      min-height: 0;
    }

    .vertical-tabs__related--split > .vertical-tabs__related-slider {
      flex: 1;
      min-width: 0;
    }
  }

  .vertical-tabs__tablist {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .vertical-tabs__tab {
    display: flex;
    align-items: flex-start;
    gap: 0.35em;
    width: 100%;
    margin: 0;
    padding: 0.35em 0;
    text-align: left;
    background: none;
    border: none;
    font: inherit;
    font-size: var(--fs-1);
    font-weight: 600;
    line-height: var(--line-height-tightest);
    cursor: pointer;
    color: var(--vertical-tabs-inactive);
    transition: color 0.15s ease;
  }

  .vertical-tabs__tab.is-active {
    color: var(--vertical-tabs-active);
  }

  .vertical-tabs__tab:hover,
  .vertical-tabs__tab:focus-visible {
    color: var(--vertical-tabs-active);
  }

  .vertical-tabs__tab:focus-visible {
    outline: 2px solid var(--color-copper-500);
    outline-offset: 2px;
  }

  .vertical-tabs__tab-text {
    flex: 1 1 0;
    min-width: 0;
  }

  .vertical-tabs__tab:has(.vertical-tabs__tab-icon) .vertical-tabs__tab-text {
    padding-top: 0.5rem; /* line-up text with icon */
  }

  .vertical-tabs__stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    flex: 1;
    position: relative;
    min-width: 0;
    min-height: 12rem;
    align-self: stretch;
  }

  .vertical-tabs__panel {
    grid-area: 1 / 1;
    width: 100%;
    min-width: 0;
  }

  .vertical-tabs__panel[hidden] {
    display: none !important;
  }

  .vertical-tabs__below-pane[hidden],
  .vertical-tabs__below-pane--empty {
    display: none !important;
  }

  .vertical-tabs__person-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
  }

  .vertical-tabs__map-container {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 12rem;
  }

  /* Wrapper stays in flow (not absolute) so the container keeps height without aspect-ratio. */
  .vertical-tabs__map-container .office-map-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .vertical-tabs__map-container .office-map-svg {
    width: 100%;
    height: auto;
    max-height: 100%;
    display: block;
  }

  .vertical-tabs__map-label {
    position: absolute;
    z-index: 1;
    inset-block-start: var(--space-xs);
    inset-inline: var(--space-xs);
    font-size: var(--fs-1);
    line-height: var(--line-height-tightest);
  }

  /* Mobile accordion: stacked order title → copy → related blocks */
  .vertical-tabs__accordion .vertical-tabs__related,
  .vertical-tabs__accordion .vertical-tabs__related--contacts-only,
  .vertical-tabs__accordion .vertical-tabs__related--map-only,
  .vertical-tabs__accordion .vertical-tabs__related--projects-only {
    margin-top: var(--space-xl);
  }

  .vertical-tabs__panel-inner p {
    margin: 0 0 0.75em;
    line-height: 1.55;
  }

  .vertical-tabs__panel-inner p:last-child {
    margin-bottom: 0;
  }

  @media (prefers-reduced-motion: reduce) {
    .vertical-tabs__tab {
      transition: none;
    }
  }
}
}
@layer components{
@layer components {
  .link-squares-block__grid {
    display: grid;
    gap: var(--space-m, 1rem);
    grid-template-columns: 1fr;
    width: 100%;
  }

  .link-squares-block__item {
    display: flex;
    flex-direction: column;
    gap: var(--space-s, 0.75rem);
    color: inherit;
    text-decoration: none;
  }

  .link-squares-block__media {
    overflow: hidden;
  }

  .link-squares-block__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter 0.2s ease;
  }

  .link-squares-block__title {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2xs, 0.35rem);
    font-size: var(--fs-0);
    line-height: var(--line-height-tightest);
    font-weight: 700;
  }

  .link-squares-block__caret {
    width: var(--fs-0);
    height: var(--fs-0);
    flex: 0 0 var(--fs-0);
    fill: currentColor;
    transition: transform 0.2s ease;
  }

  .link-squares-block__item:hover .link-squares-block__caret,
  .link-squares-block__item:focus-visible .link-squares-block__caret {
    transform: translateX(var(--space-s));
  }

  @media (min-width: 768px) {
    .link-squares-block__grid--count-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .link-squares-block__grid--count-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (hover: hover) and (pointer: fine) {
    .link-squares-block__item:hover .link-squares-block__image,
    .link-squares-block__item:focus-visible .link-squares-block__image {
      filter: brightness(0.92);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .link-squares-block__image,
    .link-squares-block__caret {
      transition: none;
    }
  }
}
}
@layer components{
@layer components {
  /*
   * Logo grid: 2 columns on small screens; 3–12 columns on tablet+ based on logo count.
   * Logos share a fixed 3:2 aspect ratio (see ar32 on cells).
   */
  .logo-grid {
    display: grid;
    gap: var(--space-l, 1.5rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  @media (min-width: 768px) {
    .logo-grid {
      grid-template-columns: repeat(var(--logo-grid-columns, 3), minmax(0, 1fr));
    }
  }

  .logo-grid__cell {
    width: 100%;
    min-width: 0;
  }

  .logo-grid__img {
    display: block;
    width: 100%;
    height: auto;
  }
}
}
@layer components{
@layer components {
  .featured-block {
    --featured-block-rule-color: var(--color-baby-500);
  }

  .featured-block[data-swiper],
  .featured-block [data-swiper] {
    --swiper-theme-color: var(--color-canvas);
    --swiper-navigation-color: var(--color-canvas);
    --swiper-pagination-color: var(--color-canvas);
  }

  .featured-block__intro + .featured-block__panels {
    margin-top: var(--space-2xl);
  }

  .featured-block__panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s);
  }

  .featured-block__panel-rule {
    border-top: 1px solid var(--featured-block-rule-color);
    margin-block: var(--space-s) var(--space-m);
  }

  .featured-block__panel-nav {
    display: flex;
    align-items: center;
    gap: var(--space-2xs);
    flex-shrink: 0;
  }

  .featured-block__panel-nav .swiper-button-prev,
  .featured-block__panel-nav .swiper-button-next {
    position: relative;
    inset: auto;
    top: auto;
    left: auto;
    right: auto;
    margin: 0;
    width: var(--fs-1);
    height: var(--fs-1);
    color: var(--color-canvas);
  }

  .featured-block__panel-nav .swiper-button-disabled {
    opacity: 1;
    color: color-mix(in srgb, var(--color-canvas) 35%, transparent);
  }

  .featured-block__news-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2xs);
  }

  .featured-block .label {
    background-color: var(--color-baby-500);
    color: var(--color-navy);
    border-color: transparent;
    font-weight: bold;
  }

  .featured-block__news-title {
    color: var(--color-canvas);
  }

  .featured-block__read-more-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3xs);
    color: var(--color-canvas);
    text-decoration: none;
    font-size: var(--fs-0);
    transition: color 0.2s ease;
  }

  /* .featured-block__read-more-link:hover,
  .featured-block__read-more-link:focus-visible {
    color: var(--color-teal-300, var(--color-teal));
  } */

  .featured-block__read-more-link:hover .featured-block__read-more-caret,
  .featured-block__read-more-link:focus-visible
    .featured-block__read-more-caret {
    transform: translateX(var(--space-s));
  }

  .featured-block__read-more-caret {
    width: var(--fs-1);
    height: var(--fs-1);
    flex-shrink: 0;
    fill: var(--color-canvas);
    transition: transform 0.2s ease;
  }

  @media (prefers-reduced-motion: reduce) {
    .featured-block__read-more-caret {
      transition: none;
    }
  }

  .featured-block__projects-slider {
    --swiper-space-between: var(--space-l);
  }

  .featured-block__projects-slider > .swiper {
    overflow: hidden;
  }

  .featured-block__pagination {
    position: relative;
    inset: auto;
    width: 100%;
    margin-top: var(--space-m);
    display: flex;
    justify-content: center;
    gap: var(--space-2xs);
  }

  .featured-block__pagination.swiper-pagination-bullets {
    bottom: auto;
    left: auto;
  }

  .featured-block [data-swiper] .swiper-pagination-bullet {
    --swiper-pagination-bullet-inactive-color: color-mix(
      in srgb,
      var(--color-canvas) 35%,
      transparent
    );
    --swiper-pagination-bullet-inactive-opacity: 1;
  }

  .featured-block [data-swiper] .swiper-pagination-bullet-active {
    --swiper-pagination-color: var(--color-canvas);
  }

  .featured-block__column--projects .related-items .content-card,
  .featured-block__column--projects .content-card {
    border-left: 1px solid var(--featured-block-rule-color);
  }
}
}
@layer components{

/* What we do — expandable channel rows (layout uses shared grid utilities) */

.what-we-do-hub__title-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--space-s, 0.75rem);
  margin-bottom: var(--space-m, 1rem);
}

/* Fills space beside the toggle; wrapping stays in this column, not under the button */
.what-we-do-hub__title-text {
  flex: 1 1 0;
  min-width: 0;
}

.what-we-do-hub__title-text h2 {
  margin: 0;
}

.what-we-do-hub__title-row:hover .what-we-do-hub__title-text h2 {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.what-we-do-hub__aside {
  position: relative;
}

/* Anchor for the side blurb when it’s visually removed from flow while expanded */
.what-we-do-hub__main {
  position: relative;
}

/* Expanded: grid aligns to top of column (same vertical slot as the blurb).
   Higher z-index so the summary fades out above an opening/closing grid. */
.what-we-do-hub__row--expanded .what-we-do-hub__blurb--side {
  position: absolute;
  inset: 0 0 auto 0;
  width: 100%;
  margin-bottom: 0;
  pointer-events: none;
  z-index: 2;
}

.what-we-do-hub__panel {
  position: relative;
  z-index: 0;
}

.what-we-do-hub__toggle {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  color: var(--color-ink);
  background: none;
  border: 1px solid var(--color-ink);
  border-radius: 2px;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.what-we-do-hub__toggle:hover {
  background-color: color-mix(in lch, var(--color-ink) 8%, transparent);
}

.what-we-do-hub__toggle:focus {
  outline: none;
}

.what-we-do-hub__toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.what-we-do-hub__toggle[aria-expanded="true"] .what-we-do-hub__toggle-line--v {
  opacity: 0;
}

.what-we-do-hub__toggle-line--v {
  transition: opacity 0.2s ease;
}

.what-we-do-hub__blurb--inline {
  margin: 0;
}

.what-we-do-hub__view-more {
  text-align: right;
}

.what-we-do-hub__view-more-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35em;
  color: var(--color-ink);
  text-decoration: none;
}

.what-we-do-hub__view-more-link:hover,
.what-we-do-hub__view-more-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.what-we-do-hub__view-more-caret {
  flex-shrink: 0;
}
}
@layer components{
#cc-main{background:transparent;color:var(--cc-primary-color);font-family:var(--cc-font-family);font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.15;position:relative;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;position:fixed;z-index:var(--cc-z-index)}#cc-main :after,#cc-main :before,#cc-main a,#cc-main button,#cc-main div,#cc-main h2,#cc-main input,#cc-main p,#cc-main span{all:unset;box-sizing:border-box}#cc-main .pm__badge,#cc-main button{all:initial;box-sizing:border-box;color:unset;visibility:unset}#cc-main .pm__badge,#cc-main a,#cc-main button,#cc-main input{-webkit-appearance:none;appearance:none;cursor:pointer;font-family:inherit;font-size:100%;line-height:normal;margin:0;outline:revert;outline-offset:2px;overflow:hidden}#cc-main table,#cc-main tbody,#cc-main td,#cc-main th,#cc-main thead,#cc-main tr{all:revert;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit}:root{--cc-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--cc-modal-border-radius:.5rem;--cc-btn-border-radius:.4rem;--cc-modal-transition-duration:.25s;--cc-link-color:var(--cc-btn-primary-bg);--cc-modal-margin:1rem;--cc-z-index:2147483647;--cc-bg:#fff;--cc-primary-color:#2c2f31;--cc-secondary-color:#5e6266;--cc-btn-primary-bg:#30363c;--cc-btn-primary-color:#fff;--cc-btn-primary-border-color:var(--cc-btn-primary-bg);--cc-btn-primary-hover-bg:#000;--cc-btn-primary-hover-color:#fff;--cc-btn-primary-hover-border-color:var(--cc-btn-primary-hover-bg);--cc-btn-secondary-bg:#eaeff2;--cc-btn-secondary-color:var(--cc-primary-color);--cc-btn-secondary-border-color:var(--cc-btn-secondary-bg);--cc-btn-secondary-hover-bg:#d4dae0;--cc-btn-secondary-hover-color:#000;--cc-btn-secondary-hover-border-color:#d4dae0;--cc-separator-border-color:#f0f4f7;--cc-toggle-on-bg:var(--cc-btn-primary-bg);--cc-toggle-off-bg:#667481;--cc-toggle-on-knob-bg:#fff;--cc-toggle-off-knob-bg:var(--cc-toggle-on-knob-bg);--cc-toggle-enabled-icon-color:var(--cc-bg);--cc-toggle-disabled-icon-color:var(--cc-bg);--cc-toggle-readonly-bg:#d5dee2;--cc-toggle-readonly-knob-bg:#fff;--cc-toggle-readonly-knob-icon-color:var(--cc-toggle-readonly-bg);--cc-section-category-border:var(--cc-cookie-category-block-bg);--cc-cookie-category-block-bg:#f0f4f7;--cc-cookie-category-block-border:#f0f4f7;--cc-cookie-category-block-hover-bg:#e9eff4;--cc-cookie-category-block-hover-border:#e9eff4;--cc-cookie-category-expanded-block-bg:transparent;--cc-cookie-category-expanded-block-hover-bg:#dee4e9;--cc-overlay-bg:rgba(0,0,0,.65);--cc-webkit-scrollbar-bg:var(--cc-section-category-border);--cc-webkit-scrollbar-hover-bg:var(--cc-btn-primary-hover-bg);--cc-footer-bg:var(--cc-btn-secondary-bg);--cc-footer-color:var(--cc-secondary-color);--cc-footer-border-color:#e4eaed;--cc-pm-toggle-border-radius:4em}#cc-main.cc--rtl{direction:rtl}#cc-main .cm__title,#cc-main a,#cc-main b,#cc-main em,#cc-main strong{font-weight:600}#cc-main button>span{pointer-events:none}#cc-main .cc__link,#cc-main a{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;font-weight:600;position:relative;transition:background-size .25s,color .25s ease}#cc-main .cc__link:hover,#cc-main a:hover{background-size:100% 1px;color:var(--cc-primary-color)}#cc-main .cc__link{color:var(--cc-link-color)}#cc-main .cm__desc,#cc-main .pm__body{overscroll-behavior:auto contain;scrollbar-width:thin}@media screen and (min-width:640px){#cc-main ::-webkit-scrollbar,#cc-main ::-webkit-scrollbar-thumb,#cc-main ::-webkit-scrollbar-track{all:revert}#cc-main ::-webkit-scrollbar-thumb{-webkit-background-clip:padding-box;background-clip:padding-box;background:var(--cc-toggle-readonly-bg);border:.25rem solid var(--cc-bg);border-radius:1rem}#cc-main ::-webkit-scrollbar-thumb:hover{background:var(--cc-toggle-off-bg)}#cc-main ::-webkit-scrollbar{background:transparent;width:12px}}html.disable--interaction.show--consent,html.disable--interaction.show--consent body{height:auto!important;overflow:hidden!important}@media (prefers-reduced-motion){#cc-main{--cc-modal-transition-duration:0s}}.cc--darkmode{--cc-bg:#161a1c;--cc-primary-color:#ebf3f6;--cc-secondary-color:#aebbc5;--cc-btn-primary-bg:#c2d0e0;--cc-btn-primary-color:var(--cc-bg);--cc-btn-primary-border-color:var(--cc-btn-primary-bg);--cc-btn-primary-hover-bg:#98a7b6;--cc-btn-primary-hover-color:#000;--cc-btn-primary-hover-border-color:var(--cc-btn-primary-hover-bg);--cc-btn-secondary-bg:#242c31;--cc-btn-secondary-color:var(--cc-primary-color);--cc-btn-secondary-border-color:var(--cc-btn-secondary-bg);--cc-btn-secondary-hover-bg:#353d43;--cc-btn-secondary-hover-color:#fff;--cc-btn-secondary-hover-border-color:var(--cc-btn-secondary-hover-bg);--cc-separator-border-color:#222a30;--cc-toggle-on-bg:var(--cc-btn-primary-bg);--cc-toggle-off-bg:#525f6b;--cc-toggle-on-knob-bg:var(--cc-btn-primary-color);--cc-toggle-off-knob-bg:var(--cc-btn-primary-color);--cc-toggle-enabled-icon-color:var(--cc-btn-primary-color);--cc-toggle-disabled-icon-color:var(--cc-btn-primary-color);--cc-toggle-readonly-bg:#343e45;--cc-toggle-readonly-knob-bg:#5f6b72;--cc-toggle-readonly-knob-icon-color:var(--cc-toggle-readonly-bg);--cc-section-category-border:#1e2428;--cc-cookie-category-block-bg:#1e2428;--cc-cookie-category-block-border:var(--cc-section-category-border);--cc-cookie-category-block-hover-bg:#242c31;--cc-cookie-category-block-hover-border:#232a2f;--cc-cookie-category-expanded-block-bg:transparent;--cc-cookie-category-expanded-block-hover-bg:var(--cc-toggle-readonly-bg);--cc-overlay-bg:rgba(0,0,0,.65);--cc-webkit-scrollbar-bg:var(--cc-section-category-border);--cc-webkit-scrollbar-hover-bg:var(--cc-btn-primary-hover-bg);--cc-footer-bg:#0c0e0f;--cc-footer-color:var(--cc-secondary-color);--cc-footer-border-color:#060809}.cc--darkmode #cc-main{color-scheme:dark}#cc-main .cm{background:var(--cc-bg);border-radius:var(--cc-modal-border-radius);box-shadow:0 .625em 1.875em rgba(0,0,2,.3);display:flex;flex-direction:column;max-width:24rem;opacity:0;overflow:hidden;position:fixed;transform:translateY(1.6em);visibility:hidden;z-index:1}#cc-main .cm--top{top:var(--cc-modal-margin)}#cc-main .cm--middle{top:50%;transform:translateY(calc(-50% + 1.6em))}#cc-main .cm--bottom{bottom:var(--cc-modal-margin)}#cc-main .cm--center{left:var(--cc-modal-margin);margin:0 auto;right:var(--cc-modal-margin);width:unset}#cc-main .cm--left{left:var(--cc-modal-margin);margin-right:var(--cc-modal-margin)}#cc-main .cm--right{margin-left:var(--cc-modal-margin);right:var(--cc-modal-margin)}#cc-main .cm__body{display:flex;flex-direction:column;justify-content:space-between;position:relative}#cc-main .cm__btns,#cc-main .cm__links{padding:1rem 1.3rem;width:unset}#cc-main .cm__texts{display:flex;flex:1;flex-direction:column;justify-content:center;padding:1rem 0 0}#cc-main .cm__desc,#cc-main .cm__title{padding:0 1.3rem}#cc-main .cm__title{font-size:1.05em}#cc-main .cm__title+.cm__desc{margin-top:1.1em}#cc-main .cm__desc{color:var(--cc-secondary-color);font-size:.9em;line-height:1.5;max-height:40vh;overflow-x:visible;overflow-y:auto;padding-bottom:1em}#cc-main .cm__btns{border-top:1px solid var(--cc-separator-border-color);display:flex;flex-direction:column;justify-content:center}#cc-main .cm__btn-group{display:grid;grid-auto-columns:minmax(0,1fr)}#cc-main .cm__btn+.cm__btn,#cc-main .cm__btn-group+.cm__btn-group{margin-top:.375rem}#cc-main .cm--flip .cm__btn+.cm__btn,#cc-main .cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:.375rem;margin-top:0}#cc-main .cm--inline .cm__btn+.cm__btn{margin-left:.375rem;margin-top:0}#cc-main .cm--inline.cm--flip .cm__btn+.cm__btn{margin-bottom:0;margin-left:0;margin-right:.375rem}#cc-main .cm--inline.cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:.375rem;margin-right:0}#cc-main .cm--wide .cm__btn+.cm__btn,#cc-main .cm--wide .cm__btn-group+.cm__btn-group{margin-left:.375rem;margin-top:0}#cc-main .cm--wide.cm--flip .cm__btn+.cm__btn,#cc-main .cm--wide.cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:0;margin-right:.375rem}#cc-main .cm--bar:not(.cm--inline) .cm__btn-group--uneven,#cc-main .cm--wide .cm__btn-group--uneven{display:flex;flex:1;justify-content:space-between}#cc-main .cm--bar:not(.cm--inline).cm--flip .cm__btn-group--uneven,#cc-main .cm--wide.cm--flip .cm__btn-group--uneven{flex-direction:row-reverse}#cc-main .cm__btn{background:var(--cc-btn-primary-bg);border:1px solid var(--cc-btn-primary-border-color);border-radius:var(--cc-btn-border-radius);color:var(--cc-btn-primary-color);font-size:.82em;font-weight:600;min-height:42px;padding:.5em 1em;text-align:center}#cc-main .cm__btn:hover{background:var(--cc-btn-primary-hover-bg);border-color:var(--cc-btn-primary-hover-border-color);color:var(--cc-btn-primary-hover-color)}#cc-main .cm__btn--secondary{background:var(--cc-btn-secondary-bg);border-color:var(--cc-btn-secondary-border-color);color:var(--cc-btn-secondary-color)}#cc-main .cm__btn--secondary:hover{background:var(--cc-btn-secondary-hover-bg);border-color:var(--cc-btn-secondary-hover-border-color);color:var(--cc-btn-secondary-hover-color)}#cc-main .cm__btn--close{border-radius:0;border-bottom-left-radius:var(--cc-btn-border-radius);border-right:none;border-top:none;display:none;font-size:1em;height:42px;min-width:auto!important;overflow:hidden;padding:0!important;position:absolute;right:0;top:0;width:42px}#cc-main .cm__btn--close svg{stroke:var(--cc-btn-primary-color);transform:scale(.5);transition:stroke .15s ease}#cc-main .cm__btn--close:hover svg{stroke:var(--cc-btn-primary-hover-color)}#cc-main .cm__btn--close.cm__btn--secondary svg{stroke:var(--cc-btn-secondary-color)}#cc-main .cm__btn--close.cm__btn--secondary:hover svg{stroke:var(--cc-btn-secondary-hover-color)}#cc-main .cm__btn--close+.cm__texts .cm__title{padding-right:3rem}#cc-main .cm--inline .cm__btn-group{grid-auto-flow:column}#cc-main .cm__footer{background:var(--cc-footer-bg);border-top:1px solid var(--cc-footer-border-color);color:var(--cc-footer-color);padding:.4em 0 .5em}#cc-main .cm__links{display:flex;flex-direction:row;padding-bottom:0;padding-top:0}#cc-main .cm__link-group{display:flex;flex-direction:row;font-size:.8em;width:100%}#cc-main .cm__link-group>*+*{margin-left:1.3rem}#cc-main .cm--flip .cm__btn:last-child{grid-row:1}#cc-main .cm--inline.cm--flip .cm__btn:last-child{grid-column:1}#cc-main .cm--box .cm__btn--close{display:block}#cc-main .cm--box.cm--flip .cm__btns{flex-direction:column-reverse}#cc-main .cm--box.cm--wide{max-width:36em}#cc-main .cm--box.cm--wide .cm__btns{flex-direction:row;justify-content:space-between}#cc-main .cm--box.cm--wide .cm__btn-group{grid-auto-flow:column}#cc-main .cm--box.cm--wide .cm__btn{min-width:120px;padding-left:1.8em;padding-right:1.8em}#cc-main .cm--box.cm--wide.cm--flip .cm__btns{flex-direction:row-reverse}#cc-main .cm--box.cm--wide.cm--flip .cm__btn:last-child{grid-column:1}#cc-main .cm--cloud{max-width:54em;width:unset}#cc-main .cm--cloud .cm__body{flex-direction:row}#cc-main .cm--cloud .cm__texts{flex:1}#cc-main .cm--cloud .cm__desc{max-height:9.4em}#cc-main .cm--cloud .cm__btns{border-left:1px solid var(--cc-separator-border-color);border-top:none;max-width:23em}#cc-main .cm--cloud .cm__btn-group{flex-direction:column}#cc-main .cm--cloud .cm__btn{min-width:19em}#cc-main .cm--cloud.cm--flip .cm__btn-group,#cc-main .cm--cloud.cm--flip .cm__btns{flex-direction:column-reverse}#cc-main .cm--cloud.cm--inline .cm__btn-group{flex-direction:row}#cc-main .cm--cloud.cm--inline .cm__btn{min-width:10em}#cc-main .cm--cloud.cm--inline.cm--flip .cm__btn-group{flex-direction:row-reverse}#cc-main .cm--bar{border-radius:0;left:0;margin:0;max-width:unset;opacity:1;right:0;transform:translateY(0);width:100vw;--cc-modal-transition-duration:.35s}#cc-main .cm--bar.cm--top{top:0;transform:translateY(-100%)}#cc-main .cm--bar.cm--bottom{bottom:0;transform:translateY(100%)}#cc-main .cm--bar .cm__body,#cc-main .cm--bar .cm__links{margin:0 auto;max-width:55em;width:100%}#cc-main .cm--bar .cm__body{padding:.5em 0 .9em}#cc-main .cm--bar .cm__btns{border-top:none;flex-direction:row;justify-content:space-between}#cc-main .cm--bar .cm__btn-group{grid-auto-flow:column}#cc-main .cm--bar:not(.cm--inline) .cm__btn+.cm__btn,#cc-main .cm--bar:not(.cm--inline) .cm__btn-group+.cm__btn-group{margin-left:.375rem;margin-top:0}#cc-main .cm--bar .cm__btn{min-width:120px;padding-left:2em;padding-right:2em}#cc-main .cm--bar.cm--flip:not(.cm--inline) .cm__btn+.cm__btn,#cc-main .cm--bar.cm--flip:not(.cm--inline) .cm__btn-group+.cm__btn-group{margin-bottom:0;margin-left:0;margin-right:.375rem}#cc-main .cm--bar.cm--flip .cm__btns{flex-direction:row-reverse}#cc-main .cm--bar.cm--flip .cm__btn:last-child{grid-column:1}#cc-main .cm--bar.cm--inline .cm__body,#cc-main .cm--bar.cm--inline .cm__links{max-width:74em}#cc-main .cm--bar.cm--inline .cm__body{flex-direction:row;padding:0}#cc-main .cm--bar.cm--inline .cm__btns{flex-direction:column;justify-content:center;max-width:23em}#cc-main .cm--bar.cm--inline.cm--flip .cm__btns{flex-direction:column-reverse}#cc-main .cc--anim .cm,#cc-main .cc--anim.cm-wrapper:before{transition:opacity var(--cc-modal-transition-duration) ease,visibility var(--cc-modal-transition-duration) ease,transform var(--cc-modal-transition-duration) ease}#cc-main .cc--anim .cm__btn,#cc-main .cc--anim .cm__close{transition:background-color .15s ease,border-color .15s ease,color .15s ease}.disable--interaction #cc-main .cm-wrapper:before{background:var(--cc-overlay-bg);bottom:0;content:"";left:0;opacity:0;position:fixed;right:0;top:0;visibility:hidden;z-index:0}.show--consent #cc-main .cc--anim .cm{opacity:1;transform:translateY(0);visibility:visible!important}.show--consent #cc-main .cc--anim .cm--middle{transform:translateY(-50%)}.show--consent #cc-main .cc--anim .cm--bar{transform:translateY(0)}.show--consent #cc-main .cc--anim.cm-wrapper:before{opacity:1;visibility:visible}#cc-main.cc--rtl .cm__btn--close{border-bottom-left-radius:unset;border-bottom-right-radius:var(--cc-btn-border-radius);left:0;right:unset}#cc-main.cc--rtl .cm__btn--close+.cm__texts .cm__title{padding-left:3rem!important;padding-right:1.3rem}#cc-main.cc--rtl .cm--inline .cm__btn+.cm__btn{margin-left:0;margin-right:.375rem}#cc-main.cc--rtl .cm--inline.cm--flip .cm__btn+.cm__btn{margin-left:.375rem;margin-right:0}#cc-main.cc--rtl .cm:not(.cm--inline).cm--bar .cm__btn+.cm__btn,#cc-main.cc--rtl .cm:not(.cm--inline).cm--bar .cm__btn-group+.cm__btn-group,#cc-main.cc--rtl .cm:not(.cm--inline).cm--wide .cm__btn+.cm__btn,#cc-main.cc--rtl .cm:not(.cm--inline).cm--wide .cm__btn-group+.cm__btn-group{margin-left:0;margin-right:.375rem}#cc-main.cc--rtl .cm:not(.cm--inline).cm--bar.cm--flip .cm__btn+.cm__btn,#cc-main.cc--rtl .cm:not(.cm--inline).cm--wide.cm--flip .cm__btn+.cm__btn{margin-left:.375rem;margin-right:0}#cc-main.cc--rtl .cm__link-group>*+*{margin-left:0;margin-right:1.3rem}@media screen and (max-width:640px){#cc-main{--cc-modal-margin:.5em}#cc-main .cm{max-width:none!important;width:auto!important}#cc-main .cm__body{flex-direction:column!important;padding:0!important}#cc-main .cm__btns,#cc-main .cm__desc,#cc-main .cm__links,#cc-main .cm__title{padding-left:1.1rem!important;padding-right:1.1rem!important}#cc-main .cm__btns{border-left:none!important;border-top:1px solid var(--cc-separator-border-color)!important;flex-direction:column!important;max-width:none!important;min-width:auto!important}#cc-main .cm__btn+.cm__btn,#cc-main .cm__btn-group+.cm__btn-group{margin:.375rem 0 0!important}#cc-main .cm--flip .cm__btn+.cm__btn,#cc-main .cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:.375rem!important;margin-top:0!important}#cc-main .cm__btn-group{display:flex!important;flex-direction:column!important;min-width:auto!important}#cc-main .cm__btn{flex:auto!important}#cc-main .cm__link-group{justify-content:center!important}#cc-main .cm--flip .cm__btn-group,#cc-main .cm--flip .cm__btns{flex-direction:column-reverse!important}}#cc-main .pm-wrapper{position:relative;z-index:2}#cc-main .pm{background:var(--cc-bg);border-radius:var(--cc-modal-border-radius);box-shadow:0 .625em 1.875em rgba(0,0,2,.3);display:flex;flex-direction:column;opacity:0;overflow:hidden;position:fixed;visibility:hidden;width:100%;width:unset;z-index:1}#cc-main svg{fill:none;width:100%}#cc-main .pm__body,#cc-main .pm__footer,#cc-main .pm__header{padding:1em 1.4em}#cc-main .pm__header{align-items:center;border-bottom:1px solid var(--cc-separator-border-color);display:flex;justify-content:space-between}#cc-main .pm__title{align-items:center;display:flex;flex:1;font-weight:600;margin-right:2em}#cc-main .pm__close-btn{background:var(--cc-btn-secondary-bg);border:1px solid var(--cc-btn-secondary-border-color);border-radius:var(--cc-btn-border-radius);height:40px;position:relative;transition:all .15s ease;width:40px}#cc-main .pm__close-btn span{display:flex;height:100%;width:100%}#cc-main .pm__close-btn svg{stroke:var(--cc-btn-secondary-color);transform:scale(.5);transition:stroke .15s ease}#cc-main .pm__close-btn:hover{background:var(--cc-btn-secondary-hover-bg);border-color:var(--cc-btn-secondary-hover-border-color)}#cc-main .pm__close-btn:hover svg{stroke:var(--cc-btn-secondary-hover-color)}#cc-main .pm__body{flex:1;overflow-y:auto;overflow-y:overlay}#cc-main .pm__section,#cc-main .pm__section--toggle{border-radius:var(--cc-btn-border-radius);display:flex;flex-direction:column;margin-bottom:.5em}#cc-main .pm__section--toggle .pm__section-desc-wrapper{border:1px solid var(--cc-cookie-category-block-border);border-radius:var(--cc-btn-border-radius);border-top:none;border-top-left-radius:0;border-top-right-radius:0;display:none;margin-top:0!important;overflow:hidden}#cc-main .pm__section{border:1px solid var(--cc-separator-border-color);padding:1em;transition:background-color .25s ease,border-color .25s ease}#cc-main .pm__section:first-child{border:none;margin-bottom:2em;margin-top:0;padding:0;transition:none}#cc-main .pm__section:not(:first-child):hover{background:var(--cc-cookie-category-block-bg);border-color:var(--cc-cookie-category-block-border)}#cc-main .pm__section-toggles+.pm__section{margin-top:2em}#cc-main .pm__section--toggle{background:var(--cc-cookie-category-block-bg);border-top:none;margin-bottom:.375rem}#cc-main .pm__section--toggle .pm__section-title{align-items:center;background:var(--cc-cookie-category-block-bg);border:1px solid var(--cc-cookie-category-block-border);display:flex;justify-content:space-between;min-height:58px;padding:1.1em 5.4em 1.1em 1.2em;position:relative;transition:background-color .25s ease,border-color .25s ease;width:100%}#cc-main .pm__section--toggle .pm__section-title:hover{background:var(--cc-cookie-category-block-hover-bg);border-color:var(--cc-cookie-category-block-hover-border)}#cc-main .pm__section--toggle .pm__section-desc{margin-top:0;padding:1em}#cc-main .pm__section--toggle.is-expanded{--cc-cookie-category-block-bg:var(--cc-cookie-category-expanded-block-bg);--cc-cookie-category-block-border:var(--cc-cookie-category-expanded-block-hover-bg)}#cc-main .pm__section--toggle.is-expanded .pm__section-title{border-bottom-left-radius:0;border-bottom-right-radius:0}#cc-main .pm__section--toggle.is-expanded .pm__section-arrow svg{transform:scale(.5) rotate(180deg)}#cc-main .pm__section--toggle.is-expanded .pm__section-desc-wrapper{display:flex}#cc-main .pm__section--expandable .pm__section-title{cursor:pointer;padding-left:3.4em}#cc-main .pm__section--expandable .pm__section-arrow{background:var(--cc-toggle-readonly-bg);border-radius:100%;display:flex;height:20px;justify-content:center;left:18px;pointer-events:none;position:absolute;width:20px}#cc-main .pm__section--expandable .pm__section-arrow svg{stroke:var(--cc-btn-secondary-color);transform:scale(.5)}#cc-main .pm__section-title-wrapper{align-items:center;display:flex;position:relative}#cc-main .pm__section-title-wrapper+.pm__section-desc-wrapper{margin-top:.85em}#cc-main .pm__section-title{border-radius:var(--cc-btn-border-radius);font-size:.95em;font-weight:600}#cc-main .pm__badge{align-items:center;background:var(--cc-btn-secondary-bg);border-radius:5em;color:var(--cc-secondary-color);display:flex;flex:none;font-size:.8em;font-weight:600;height:23px;justify-content:center;margin-left:1em;min-width:23px;overflow:hidden;padding:0 .6em 1px;position:relative;text-align:center;white-space:nowrap;width:auto}#cc-main .pm__service-counter{background:var(--cc-btn-primary-bg);color:var(--cc-btn-primary-color);padding:0;width:23px}#cc-main .pm__service-counter[data-counterlabel]{padding:0 .6em 1px;width:auto}#cc-main .section__toggle,#cc-main .section__toggle-wrapper,#cc-main .toggle__icon,#cc-main .toggle__label{border-radius:var(--cc-pm-toggle-border-radius);height:23px;transform:translateZ(0);width:50px}#cc-main .section__toggle-wrapper{cursor:pointer;position:absolute;right:18px;z-index:1}#cc-main .toggle-service{height:19px;position:relative;right:0;width:42px}#cc-main .toggle-service .section__toggle,#cc-main .toggle-service .toggle__icon,#cc-main .toggle-service .toggle__label{height:19px;width:42px}#cc-main .toggle-service .toggle__icon{position:relative}#cc-main .toggle-service .toggle__icon-circle{height:19px;width:19px}#cc-main .toggle-service .section__toggle:checked~.toggle__icon .toggle__icon-circle{transform:translateX(23px)}#cc-main .pm__section--toggle:nth-child(2) .section__toggle-wrapper:after{display:none!important}#cc-main .section__toggle{border:0;cursor:pointer;display:block;left:0;margin:0;position:absolute;top:0}#cc-main .section__toggle:disabled{cursor:not-allowed}#cc-main .toggle__icon{background:var(--cc-toggle-off-bg);box-shadow:0 0 0 1px var(--cc-toggle-off-bg);display:flex;flex-direction:row;pointer-events:none;position:absolute;transition:all .25s ease}#cc-main .toggle__icon-circle{background:var(--cc-toggle-off-knob-bg);border:none;border-radius:var(--cc-pm-toggle-border-radius);box-shadow:0 1px 2px rgba(24,32,3,.36);display:block;height:23px;left:0;position:absolute;top:0;transition:transform .25s ease,background-color .25s ease;width:23px}#cc-main .toggle__icon-off,#cc-main .toggle__icon-on{height:100%;position:absolute;transition:opacity .15s ease;width:100%}#cc-main .toggle__icon-on{opacity:0;transform:rotate(45deg)}#cc-main .toggle__icon-on svg{stroke:var(--cc-toggle-on-bg);transform:scale(.55) rotate(-45deg)}#cc-main .toggle__icon-off{opacity:1}#cc-main .toggle__icon-off svg{stroke:var(--cc-toggle-off-bg);transform:scale(.55)}#cc-main .section__toggle:checked~.toggle__icon{background:var(--cc-toggle-on-bg);box-shadow:0 0 0 1px var(--cc-toggle-on-bg)}#cc-main .section__toggle:checked~.toggle__icon .toggle__icon-circle{background-color:var(--cc-toggle-on-knob-bg);transform:translateX(27px)}#cc-main .section__toggle:checked~.toggle__icon .toggle__icon-on{opacity:1}#cc-main .section__toggle:checked~.toggle__icon .toggle__icon-off{opacity:0}#cc-main .section__toggle:checked:disabled~.toggle__icon{background:var(--cc-toggle-readonly-bg);box-shadow:0 0 0 1px var(--cc-toggle-readonly-bg)}#cc-main .section__toggle:checked:disabled~.toggle__icon .toggle__icon-circle{background:var(--cc-toggle-readonly-knob-bg);box-shadow:none}#cc-main .section__toggle:checked:disabled~.toggle__icon svg{stroke:var(--cc-toggle-readonly-knob-icon-color)}#cc-main .toggle__label{opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;z-index:-1}#cc-main .pm__section-desc-wrapper{color:var(--cc-secondary-color);display:flex;flex-direction:column;font-size:.9em}#cc-main .pm__section-desc-wrapper>:not(:last-child){border-bottom:1px solid var(--cc-cookie-category-block-border)}#cc-main .pm__section-services{display:flex;flex-direction:column}#cc-main .pm__service{align-items:center;display:flex;justify-content:space-between;padding:.4em 1.2em;position:relative;transition:background-color .15s ease}#cc-main .pm__service:hover{background-color:var(--cc-cookie-category-block-hover-bg)}#cc-main .pm__service-header{align-items:center;display:flex;margin-right:1em;width:100%}#cc-main .pm__service-icon{border:2px solid;border-radius:100%;height:8px;margin-left:6px;margin-right:20px;margin-top:1px;min-width:8px}#cc-main .pm__service-title{font-size:.95em;width:100%;word-break:break-word}#cc-main .pm__section-desc{line-height:1.5em}#cc-main .pm__section-table{border-collapse:collapse;font-size:.9em;margin:0;overflow:hidden;padding:0;text-align:left;width:100%}#cc-main .pm__table-caption{text-align:left}#cc-main .pm__table-caption,#cc-main .pm__table-head>tr{border-bottom:1px dashed var(--cc-separator-border-color);color:var(--cc-primary-color);font-weight:600}#cc-main .pm__table-tr{transition:background-color .15s ease}#cc-main .pm__table-tr:hover{background:var(--cc-cookie-category-block-hover-bg)}#cc-main .pm__table-caption,#cc-main .pm__table-td,#cc-main .pm__table-th{padding:.625em .625em .625em 1.2em;vertical-align:top}#cc-main .pm__footer{border-top:1px solid var(--cc-separator-border-color);display:flex;justify-content:space-between}#cc-main .pm__btn-group{display:flex}#cc-main .pm__btn+.pm__btn,#cc-main .pm__btn-group+.pm__btn-group{margin-left:.375rem}#cc-main .pm--flip .pm__btn+.pm__btn,#cc-main .pm--flip .pm__btn-group+.pm__btn-group{margin-left:0;margin-right:.375rem}#cc-main .pm__btn{background:var(--cc-btn-primary-bg);border:1px solid var(--cc-btn-primary-border-color);border-radius:var(--cc-btn-border-radius);color:var(--cc-btn-primary-color);flex:auto;font-size:.82em;font-weight:600;min-height:42px;min-width:110px;padding:.5em 1.5em;text-align:center;transition:background-color .15s ease,border-color .15s ease,color .15s ease}#cc-main .pm__btn:hover{background:var(--cc-btn-primary-hover-bg);border-color:var(--cc-btn-primary-hover-border-color);color:var(--cc-btn-primary-hover-color)}#cc-main .pm__btn--secondary{background:var(--cc-btn-secondary-bg);border-color:var(--cc-btn-secondary-border-color);color:var(--cc-btn-secondary-color)}#cc-main .pm__btn--secondary:hover{background:var(--cc-btn-secondary-hover-bg);border-color:var(--cc-btn-secondary-hover-border-color);color:var(--cc-btn-secondary-hover-color)}#cc-main .pm--box{height:calc(100% - 2em);left:var(--cc-modal-margin);margin:0 auto;max-height:37.5em;max-width:43em;right:var(--cc-modal-margin);top:50%;transform:translateY(calc(-50% + 1.6em))}#cc-main .pm--box.pm--flip .pm__btn-group,#cc-main .pm--box.pm--flip .pm__footer{flex-direction:row-reverse}#cc-main .pm--bar{border-radius:0;bottom:0;height:100%;margin:0;max-height:none;max-width:29em;opacity:1;top:0;width:100%;--cc-modal-transition-duration:.35s}#cc-main .pm--bar .pm__section-table,#cc-main .pm--bar .pm__table-body,#cc-main .pm--bar .pm__table-td,#cc-main .pm--bar .pm__table-th,#cc-main .pm--bar .pm__table-tr{display:block}#cc-main .pm--bar .pm__table-head{display:none}#cc-main .pm--bar .pm__table-caption{display:block}#cc-main .pm--bar .pm__table-tr:not(:last-child){border-bottom:1px solid var(--cc-separator-border-color)}#cc-main .pm--bar .pm__table-td{display:flex;justify-content:space-between}#cc-main .pm--bar .pm__table-td:before{color:var(--cc-primary-color);content:attr(data-column);flex:1;font-weight:600;min-width:100px;overflow:hidden;padding-right:2em;text-overflow:ellipsis}#cc-main .pm--bar .pm__table-td>div{flex:3}#cc-main .pm--bar:not(.pm--wide) .pm__body,#cc-main .pm--bar:not(.pm--wide) .pm__footer,#cc-main .pm--bar:not(.pm--wide) .pm__header{padding:1em 1.3em}#cc-main .pm--bar:not(.pm--wide) .pm__btn-group,#cc-main .pm--bar:not(.pm--wide) .pm__footer{flex-direction:column}#cc-main .pm--bar:not(.pm--wide) .pm__btn+.pm__btn,#cc-main .pm--bar:not(.pm--wide) .pm__btn-group+.pm__btn-group{margin:.375rem 0 0}#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__btn-group,#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__footer{flex-direction:column-reverse}#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__btn+.pm__btn,#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__btn-group+.pm__btn-group{margin-bottom:.375rem;margin-top:0}#cc-main .pm--bar:not(.pm--wide) .pm__badge{display:none}#cc-main .pm--bar.pm--left{left:0;transform:translateX(-100%)}#cc-main .pm--bar.pm--right{right:0;transform:translateX(100%)}#cc-main .pm--bar.pm--wide{max-width:35em}#cc-main .pm--bar.pm--wide .pm__body,#cc-main .pm--bar.pm--wide .pm__footer,#cc-main .pm--bar.pm--wide .pm__header{padding:1em 1.4em}#cc-main .pm--bar.pm--wide.pm--flip .pm__btn-group,#cc-main .pm--bar.pm--wide.pm--flip .pm__footer{flex-direction:row-reverse}#cc-main .pm-overlay{background:var(--cc-overlay-bg);bottom:0;content:"";left:0;opacity:0;position:fixed;right:0;top:0;visibility:hidden;z-index:1}#cc-main .cc--anim .pm,#cc-main .cc--anim .pm-overlay{transition:opacity var(--cc-modal-transition-duration) ease,visibility var(--cc-modal-transition-duration) ease,transform var(--cc-modal-transition-duration) ease}.show--preferences #cc-main .cc--anim .pm{opacity:1;visibility:visible!important}.show--preferences #cc-main .cc--anim .pm--box{transform:translateY(-50%)}.show--preferences #cc-main .cc--anim .pm--bar{transform:translateX(0)}.show--preferences #cc-main .cc--anim .pm-overlay{opacity:1;visibility:visible}#cc-main.cc--rtl .pm__service-header{margin-left:1em;margin-right:0}#cc-main.cc--rtl .pm__section-arrow{left:unset;right:18px}#cc-main.cc--rtl .section__toggle-wrapper{left:18px;right:unset;transform-origin:left}#cc-main.cc--rtl .toggle-service{left:0}#cc-main.cc--rtl .pm__service-icon{margin-left:20px;margin-right:5px}#cc-main.cc--rtl .pm__section--toggle .pm__section-title{padding-left:5.4em;padding-right:1.2em}#cc-main.cc--rtl .pm__section--expandable .pm__section-title{padding-right:3.4em}#cc-main.cc--rtl .pm__badge{margin-left:unset;margin-right:1em}#cc-main.cc--rtl .toggle__icon-circle{transform:translateX(27px)}#cc-main.cc--rtl .toggle-service .toggle__icon-circle{transform:translateX(23px)}#cc-main.cc--rtl .section__toggle:checked~.toggle__icon .toggle__icon-circle{transform:translateX(0)}#cc-main.cc--rtl .pm__table-td,#cc-main.cc--rtl .pm__table-th{padding-left:unset;padding-right:1.2em;text-align:right}#cc-main.cc--rtl .pm__table-td{padding-left:unset;padding-right:1.2em}#cc-main.cc--rtl .pm__table-td:before{padding-left:2em;padding-right:unset}#cc-main.cc--rtl .pm__btn+.pm__btn,#cc-main.cc--rtl .pm__btn-group+.pm__btn-group{margin-left:0;margin-right:.375rem}#cc-main.cc--rtl .pm--flip .pm__btn+.pm__btn,#cc-main.cc--rtl .pm--flip .pm__btn-group+.pm__btn-group{margin-left:.375rem;margin-right:0}#cc-main.cc--rtl .pm--flip.pm--bar:not(.pm--wide) .pm__btn+.pm__btn,#cc-main.cc--rtl .pm--flip.pm--bar:not(.pm--wide) .pm__btn-group+.pm__btn-group{margin-left:0}@media screen and (max-width:640px){#cc-main .pm{border-radius:0;bottom:0;height:auto;left:0;max-height:100%;max-width:none!important;right:0;top:0;transform:translateY(1.6em)}#cc-main .pm__body,#cc-main .pm__footer,#cc-main .pm__header{padding:.9em!important}#cc-main .pm__badge{display:none}#cc-main .pm__section-table,#cc-main .pm__table-body,#cc-main .pm__table-caption,#cc-main .pm__table-td,#cc-main .pm__table-th,#cc-main .pm__table-tr{display:block}#cc-main .pm__table-head{display:none}#cc-main .pm__table-tr:not(:last-child){border-bottom:1px solid var(--cc-separator-border-color)}#cc-main .pm__table-td{display:flex;justify-content:space-between}#cc-main .pm__table-td:before{color:var(--cc-primary-color);content:attr(data-column);flex:1;font-weight:600;min-width:100px;overflow:hidden;padding-right:2em;text-overflow:ellipsis}#cc-main .pm__table-td>div{flex:3}#cc-main .pm__btn-group,#cc-main .pm__footer{flex-direction:column!important}#cc-main .pm__btn-group{display:flex!important}#cc-main .pm__btn+.pm__btn,#cc-main .pm__btn-group+.pm__btn-group{margin:.375rem 0 0!important}#cc-main .pm--flip .pm__btn+.pm__btn,#cc-main .pm--flip .pm__btn-group+.pm__btn-group{margin-bottom:.375rem!important;margin-top:0!important}#cc-main .pm--flip .pm__btn-group,#cc-main .pm--flip .pm__footer{flex-direction:column-reverse!important}.show--preferences #cc-main .cc--anim .pm{transform:translateY(0)!important}}
}
@layer components{
@layer components {
  /*
   * Turley overrides for vanilla-cookieconsent.
   * Tweak these variables to match brand styling.
   */
  #cc-main {
    --cc-font-family: var(--font-family-ttnorms);
    --cc-modal-border-radius: 0;
    --cc-btn-border-radius: 0;
    --cc-bg: var(--color-canvas);
    --cc-primary-color: var(--color-ink);
    --cc-secondary-color: color-mix(in oklch, var(--color-ink) 72%, transparent);
    --cc-btn-primary-bg: var(--color-steel-500);
    --cc-btn-primary-color: var(--color-canvas);
    --cc-btn-primary-border-color: var(--color-steel-500);
    --cc-btn-primary-hover-bg: var(--color-steel-700);
    --cc-btn-primary-hover-color: var(--color-canvas);
    --cc-btn-primary-hover-border-color: var(--color-steel-700);
    --cc-btn-secondary-bg: color-mix(in oklch, var(--color-steel-200) 65%, var(--color-canvas));
    --cc-btn-secondary-color: var(--color-ink);
    --cc-btn-secondary-border-color: color-mix(in oklch, var(--color-steel-300) 55%, var(--color-canvas));
    --cc-btn-secondary-hover-bg: color-mix(in oklch, var(--color-steel-300) 55%, var(--color-canvas));
    --cc-btn-secondary-hover-color: var(--color-ink);
    --cc-btn-secondary-hover-border-color: color-mix(in oklch, var(--color-steel-400) 45%, var(--color-canvas));
    --cc-separator-border-color: color-mix(in oklch, var(--color-ink) 12%, transparent);
    --cc-toggle-on-bg: var(--color-steel-500);
    --cc-toggle-off-bg: var(--color-steel-300);
    --cc-cookie-category-block-bg: color-mix(in oklch, var(--color-steel-100) 55%, var(--color-canvas));
    --cc-cookie-category-block-border: color-mix(in oklch, var(--color-ink) 10%, transparent);
    --cc-cookie-category-block-hover-bg: color-mix(in oklch, var(--color-steel-200) 45%, var(--color-canvas));
    --cc-cookie-category-block-hover-border: color-mix(in oklch, var(--color-ink) 14%, transparent);
    --cc-footer-bg: color-mix(in oklch, var(--color-steel-100) 40%, var(--color-canvas));
    --cc-footer-border-color: color-mix(in oklch, var(--color-ink) 10%, transparent);
    --cc-footer-color: var(--cc-secondary-color);
    --cc-link-color: var(--color-steel-700);
  }

  #cc-main .cm__btn,
  #cc-main .pm__btn {
    text-transform: uppercase;
    letter-spacing: 0.025em;
    font-weight: 600;
  }

  .footer__utility-links .footer__utility-link {
    background: none;
    border: 0;
    color: var(--color-canvas);
    cursor: pointer;
    font: inherit;
    padding: 0;
    text-decoration: none;
  }

  .footer__utility-links .footer__utility-link:hover,
  .footer__utility-links .footer__utility-link:focus-visible {
    color: var(--color-canvas);
  }
}
}
@layer components{

/*
 * SlimSelect copies class names from the native <select> onto .ss-main and
 * .ss-content. The dropdown panel is appended to document.body, so content
 * rules must not require a .projects-index / .podcast-index ancestor.
 *
 * Imported via main.css layer(components) — do not wrap in @layer here (avoids
 * nested components.components sublayer losing to flat SlimSelect rules).
 */

/* Always on the combobox — suppresses slimselect .ss-main:focus box-shadow glow */
.ss-main.projects-index__filter-select,
.ss-main.podcast-index__filter-select {
  --ss-focus-color: transparent;
  overflow: visible;
}

.projects-index .ss-main.projects-index__filter-select,
.contact-index .ss-main.projects-index__filter-select,
.podcast-index .ss-main.podcast-index__filter-select {
  --filter-select-chevron-size: 0.625rem;
  --filter-select-focus-ring: var(
    --color-focus,
    var(--color-teal-400, #00b3a6)
  );

  position: relative;
  --ss-border-radius: 0;
  --ss-main-height: auto;
  --ss-spacing-s: 0;
  --ss-spacing-m: 0;

  width: 100%;
  min-height: 1.5em;
  margin-bottom: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  font-size: var(--fs--1);
  line-height: inherit;
  background-color: transparent;
  cursor: pointer;
  overflow: visible;
}

.projects-index .ss-main.projects-index__filter-select,
.contact-index .ss-main.projects-index__filter-select {
  --ss-bg-color: transparent;
  --ss-font-color: var(--color-ink);
  --ss-border-color: transparent;
  --ss-primary-color: var(--color-ink);
  --ss-highlight-color: color-mix(in oklch, var(--color-ink) 8%, transparent);
  --ss-disabled-color: color-mix(in oklch, var(--color-ink) 20%, transparent);
  --filter-select-caret-color: var(--color-ink);
}

.podcast-index .ss-main.podcast-index__filter-select {
  --ss-bg-color: transparent;
  --ss-font-color: var(--color-text-page, var(--color-ink));
  --ss-border-color: transparent;
  --ss-primary-color: var(--color-text-page, var(--color-ink));
  --ss-highlight-color: color-mix(
    in oklch,
    var(--color-text-page, var(--color-ink)) 12%,
    transparent
  );
  --ss-disabled-color: var(--color-text-muted, var(--color-grey));
  --filter-select-caret-color: var(--color-text-page, var(--color-ink));
  color-scheme: light dark;
}

/* SlimSelect SVG chevron — stroke chevron, not a filled CSS border triangle */
.projects-index .ss-main.projects-index__filter-select .ss-arrow,
.contact-index .ss-main.projects-index__filter-select .ss-arrow,
.podcast-index .ss-main.podcast-index__filter-select .ss-arrow {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--filter-select-chevron-size);
  height: var(--filter-select-chevron-size);
  margin: 0.4rem 0 0 0;
  margin-inline-start: 0.75rem;
}

.projects-index .ss-main.projects-index__filter-select .ss-arrow path,
.contact-index .ss-main.projects-index__filter-select .ss-arrow path,
.podcast-index .ss-main.podcast-index__filter-select .ss-arrow path {
  stroke: var(--filter-select-caret-color);
  stroke-width: 14;
}

.projects-index .ss-main.projects-index__filter-select .ss-values .ss-single,
.contact-index .ss-main.projects-index__filter-select .ss-values .ss-single,
.podcast-index .ss-main.podcast-index__filter-select .ss-values .ss-single {
  margin: 0;
  padding: 0;
  max-width: 100%;
}

.podcast-index .ss-main.podcast-index__filter-select .ss-values .ss-single {
  color: var(--color-text-page, var(--color-ink));
}

/* Dropdown panel — portaled to document.body */
.ss-content.projects-index__filter-select {
  --ss-bg-color: var(--color-canvas, #fff);
  --ss-font-color: var(--color-ink);
  --ss-border-color: var(--color-ink);
  --ss-primary-color: var(--color-ink);
  --ss-highlight-color: color-mix(in oklch, var(--color-ink) 8%, transparent);
  --ss-disabled-color: color-mix(in oklch, var(--color-ink) 35%, transparent);
  --ss-border-radius: 0;
  --ss-content-height: min(40vh, 320px);
  z-index: 20;
}

.ss-content.podcast-index__filter-select {
  --ss-bg-color: var(--color-surface-page, var(--color-canvas));
  --ss-font-color: var(--color-text-page, var(--color-ink));
  --ss-border-color: var(
    --color-border-overlay,
    var(--color-text-page, var(--color-ink))
  );
  --ss-primary-color: var(--color-text-page, var(--color-ink));
  --ss-highlight-color: color-mix(
    in oklch,
    var(--color-text-page, var(--color-ink)) 12%,
    transparent
  );
  --ss-border-radius: 0;
  --ss-content-height: min(40vh, 320px);
  z-index: 20;
  color-scheme: light dark;
}

.ss-content.projects-index__filter-select .ss-list .ss-option,
.ss-content.podcast-index__filter-select .ss-list .ss-option {
  font-size: var(--fs--1);
  line-height: inherit;
  padding-block: 0.625rem;
  /* padding-inline: 0; */
}

.ss-content.projects-index__filter-select
  .ss-list
  .ss-option:hover:not(.ss-disabled),
.ss-content.projects-index__filter-select .ss-list .ss-option.ss-highlighted {
  color: var(--color-ink);
  background-color: color-mix(in oklch, var(--color-ink) 8%, transparent);
  border-left: none;
}

.ss-content.projects-index__filter-select .ss-list .ss-option.ss-selected {
  color: var(--color-ink);
  background-color: transparent;
}

.ss-content.projects-index__filter-select .ss-list .ss-option.ss-disabled {
  color: var(--ss-disabled-color);
  background-color: transparent;
  cursor: not-allowed;
}

.ss-content.podcast-index__filter-select
  .ss-list
  .ss-option:hover:not(.ss-disabled),
.ss-content.podcast-index__filter-select .ss-list .ss-option.ss-highlighted {
  color: var(--color-text-page, var(--color-ink));
  background-color: color-mix(
    in oklch,
    var(--color-text-page, var(--color-ink)) 12%,
    transparent
  );
  border-left: none;
}

.ss-content.podcast-index__filter-select .ss-list .ss-option.ss-disabled {
  color: var(--color-text-muted, var(--color-grey));
  background-color: transparent;
}

.ss-content.podcast-index__filter-select .ss-list .ss-option.ss-selected {
  color: var(--color-text-page, var(--color-ink));
  background-color: transparent;
}
}
/*
 * Unlayered — beats SlimSelect `.ss-main:focus` inside @layer components.
 * JS toggles .filter-select--focused on focus/blur (see filter-select.ts).
 */
.ss-main.filter-select.filter-select--focused {
  outline: none;
  box-shadow: inset 0 0 0 3px var(--color-focus, var(--color-teal-400, #00b3a6));
}
