@charset "UTF-8";
:root {
  --table-background-stripe: color-mix(in srgb, var(--color-bg) 94%, var(--color-background-text) 6%);
  --table-primary-stripe: transparent;
  --table-secondary-stripe: transparent;
  --table-surface-stripe: color-mix(in srgb, var(--color-surface) 94%, var(--color-surface-text) 6%);
  --table-note-stripe: color-mix(in srgb, var(--color-note-background, color-mix(in srgb, var(--color-note) 10%, #fff)) 94%, var(--color-note-text) 6%);
  --table-important-stripe: color-mix(in srgb, var(--color-important-background, color-mix(in srgb, var(--color-important) 10%, #fff)) 94%, var(--color-important-text) 6%);
  --table-warning-stripe: color-mix(in srgb, var(--color-warning-background, color-mix(in srgb, var(--color-warning) 10%, #fff)) 94%, var(--color-warning-text) 6%);
  --table-caution-stripe: color-mix(in srgb, var(--color-caution-background, color-mix(in srgb, var(--color-caution) 10%, #fff)) 94%, var(--color-caution-text) 6%);
  --table-row-stripe: var(--table-background-stripe);
  --table-header-background: var(--color-secondary);
  --table-header-text: var(--color-secondary-text);
  --font-body: Tahoma, Inter, Arial, Helvetica, sans-serif;
  --font-heading: Tahoma, Inter, Arial, Helvetica, sans-serif;
  --font-size-scale: 1;
  --body-font-size: 1rem;
  --body-line-height: 1.65;
  --body-letter-spacing: 0;
  --heading-line-height: 1.15;
  --heading-letter-spacing: 0;
  --font-weight-regular: 400;
  --font-weight-bold: 700;
  --font-weight-emphasis: 700;
  --font-weight-heavy: 900;
  --heading-font-weight: 700;
  --compact-line-height: 1.4;
  --hero-heading-line-height: 1.1;
  --hero-text-line-height: 1.55;
  --display-line-height: 1;
  --card-heading-line-height: 1.2;
  --label-letter-spacing: 0.09em;
  --color-primary: #c10015;
  --color-primary-text: #FFFFFF;
  --color-primary-link: #FFFFFF;
  --color-secondary: #273256;
  --color-secondary-text: #FFFFFF;
  --color-secondary-link: #FFFFFF;
  --color-text: var(--color-background-text);
  --color-link: var(--color-background-link);
  --color-heading: #344054;
  --color-bg: #F4F6F3;
  --color-background-text: #344054;
  --color-background-link: #c10015;
  --color-surface: #FFFFFF;
  --color-surface-text: #344054;
  --color-surface-link: #c10015;
  --color-note: #354F52;
  --color-note-text: #354F52;
  --color-note-link: #354F52;
  --color-important: #527C66;
  --color-important-text: #354F52;
  --color-important-link: #354F52;
  --color-warning: #C83B35;
  --color-warning-text: #354F52;
  --color-warning-link: #922C27;
  --color-caution: #A86A2B;
  --color-caution-text: #354F52;
  --color-caution-link: #75471A;
  --color-border: #D0D5DD;
  --partner-logo-max-height: 4rem;
  --partner-logo-max-items-per-row: 4;
  --image-gallery-max-items-per-row: 3;
  --image-radius: 0.5rem;
  --image-max-height: 22rem;
  --image-max-height-mobile: 17.5rem;
  --content-image-max-height: var(--image-max-height);
  --button-radius: 0.35rem;
  --content-width: 68rem;
  --site-main-inline-padding: clamp(1.25rem, 5vw, 5rem);
  --block-spacing: 2.5rem;
  --inline-block-spacing: 2rem;
  --compact-block-spacing: 1.25rem; }

* {
  box-sizing: border-box; }

button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  border-radius: var(--button-radius); }

html {
  font-size: calc(100% * var(--font-size-scale)); }

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-primary);
  font-family: var(--font-body);
  font-size: var(--body-font-size);
  font-weight: var(--font-weight-regular);
  letter-spacing: var(--body-letter-spacing);
  line-height: var(--body-line-height); }

img {
  display: block;
  max-width: 100%;
  border-radius: var(--image-radius); }

a {
  color: var(--color-link); }

a:hover {
  color: var(--color-link);
  text-decoration-thickness: 0.15em; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: 1rem;
  z-index: 10;
  transform: translateY(-150%);
  background: var(--color-primary);
  color: var(--color-primary-link);
  padding: 0.5rem 0.75rem;
  border-radius: 0.25rem; }

.skip-link:focus {
  transform: translateY(0); }

.menu-toggle-icon {
  position: relative;
  display: block;
  width: 1.35rem;
  height: 0.9rem; }

.menu-toggle-icon::before,
.menu-toggle-icon::after,
.menu-toggle-icon {
  border-top: 2px solid currentColor; }

.menu-toggle-icon::before,
.menu-toggle-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%; }

.menu-toggle-icon::before {
  top: 0.35rem; }

.menu-toggle-icon::after {
  top: 0.75rem; }

.site-main {
  width: min(100%, calc(var(--content-width) + 10rem));
  min-width: 0;
  padding: 4rem var(--site-main-inline-padding);
  background: var(--color-bg); }

.page {
  width: min(100%, var(--content-width)); }

.breadcrumbs {
  margin-bottom: 1.25rem;
  color: var(--color-text);
  font-size: 0.9rem;
  font-weight: var(--font-weight-bold); }

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none; }

.breadcrumbs li {
  display: flex;
  align-items: center;
  min-width: 0; }

.breadcrumbs li + li::before {
  content: "/";
  margin-right: 0.35rem;
  color: var(--color-border); }

.breadcrumbs a {
  color: var(--color-link);
  text-decoration: none; }

.breadcrumbs a:hover {
  color: var(--color-link);
  text-decoration: underline; }

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

.page-header {
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 0.25rem solid var(--color-primary); }

.page-header + .breadcrumbs {
  margin-top: -1.25rem;
  margin-bottom: 2.5rem; }

.eyebrow {
  margin: 0 0 0.7rem;
  color: var(--color-primary);
  font-size: 0.8rem;
  font-weight: var(--font-weight-emphasis);
  letter-spacing: var(--heading-letter-spacing);
  text-transform: uppercase; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-weight: var(--heading-font-weight);
  color: var(--color-heading);
  line-height: var(--heading-line-height);
  letter-spacing: var(--heading-letter-spacing); }

.page-header h1,
.prose h1 {
  margin: 0;
  color: var(--color-primary);
  font-size: clamp(2.35rem, 7vw, 2.75rem); }

.prose h1 {
  max-width: 12ch;
  color: var(--color-heading); }

.prose h1 {
  margin: 1.6rem 0 0.9rem; }

h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.65rem, 4vw, 2.15rem); }

.prose > h1 {
  margin-top: 2.5rem; }

.prose > h2 {
  margin-top: 2rem; }

.prose > h3 {
  margin-top: 1.5rem; }

.prose > h4 {
  margin-top: 1.25rem; }

.prose > h5 {
  margin-top: 1rem; }

.prose > h6 {
  margin-top: 0.75rem; }

h3 {
  margin: 0 0 0.65rem;
  font-size: 1.17rem; }

.prose h1[id],
.prose h2[id],
.prose h3[id],
.prose h4[id],
.prose h5[id],
.prose h6[id] {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  width: fit-content;
  max-width: 100%; }

.heading-anchor {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0.35rem;
  color: var(--color-link);
  background: transparent;
  border: 0;
  border-radius: 0.2rem;
  cursor: pointer;
  opacity: 0; }

.heading-anchor svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round; }

.prose :is(h1, h2, h3, h4, h5, h6):hover .heading-anchor,
.heading-anchor:focus-visible,
.heading-anchor.is-feedback {
  opacity: 1; }

.heading-anchor:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px; }

.heading-anchor-tooltip {
  display: none;
  position: absolute;
  bottom: calc(100% + 0.3rem);
  left: 0;
  padding: 0.25rem 0.5rem;
  color: var(--color-surface-text);
  background: var(--color-surface);
  border: 1px solid currentColor;
  border-radius: 0.2rem;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: var(--font-weight-regular);
  line-height: var(--compact-line-height);
  white-space: nowrap; }

.heading-anchor.is-feedback .heading-anchor-tooltip {
  display: block; }

.heading-copy-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0; }

.page-lead {
  max-width: 42rem;
  margin: 1rem 0 0;
  color: var(--color-text);
  font-size: 1.2rem; }

.content-block, .jcu-block {
  margin-top: var(--block-spacing); }

.content-block--bg-secondary, .jcu-bg-secondary {
  --color-text: var(--color-secondary-text);
  --color-link: var(--color-secondary-link);
  --color-heading: var(--color-secondary-text);
  position: relative;
  color: var(--color-secondary-text); }

.content-block--bg-secondary .eyebrow, .jcu-bg-secondary .eyebrow {
  color: var(--color-secondary-text); }

.content-block--bg-secondary.content-block--bg-block, .content-block--bg-secondary.jcu-bg-primary, .jcu-bg-secondary {
  padding: 2rem 1.5rem 1.5rem;
  border-radius: 0.5rem; }

.content-block--bg-secondary.content-block--bg-block::before, .content-block--bg-secondary.jcu-bg-primary::before, .jcu-bg-secondary::before,
.content-block--bg-secondary.content-block--bg-behind::before,
.content-block--bg-behind.jcu-bg-secondary::before {
  content: "";
  position: absolute;
  z-index: -1;
  background: var(--color-secondary);
  border-radius: 0.5rem; }

.content-block--bg-secondary.content-block--bg-block, .content-block--bg-secondary.jcu-bg-primary, .jcu-bg-secondary,
.content-block--bg-secondary.content-block--bg-behind,
.content-block--bg-behind.jcu-bg-secondary {
  z-index: 0; }

.content-block--bg-secondary.content-block--bg-block::before, .content-block--bg-secondary.jcu-bg-primary::before, .jcu-bg-secondary::before {
  inset: 0; }

.content-block--bg-secondary.content-block--bg-behind::before, .content-block--bg-behind.jcu-bg-secondary::before {
  inset: -1.5rem -2rem; }

.block-separators--line .content-block + .content-block, .block-separators--line .jcu-block + .content-block, .block-separators--line .content-block + .jcu-block, .block-separators--line .jcu-block + .jcu-block {
  padding-top: 2rem;
  border-top: 1px solid var(--color-border); }

.block-separators--accent .content-block + .content-block, .block-separators--accent .jcu-block + .content-block, .block-separators--accent .content-block + .jcu-block, .block-separators--accent .jcu-block + .jcu-block {
  position: relative;
  padding-top: 2.25rem; }

.block-separators--accent .content-block + .content-block::before, .block-separators--accent .jcu-block + .content-block::before, .block-separators--accent .content-block + .jcu-block::before, .block-separators--accent .jcu-block + .jcu-block::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 5rem;
  height: 0.25rem;
  background: var(--color-primary);
  border-radius: 999px; }

.block-separators--band .content-block, .block-separators--band .jcu-block {
  padding: 1.5rem;
  border-radius: 0.5rem; }

.block-separators--band .content-block:nth-of-type(even), .block-separators--band .jcu-block:nth-of-type(even) {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  --color-heading: var(--color-surface-text);
  background: var(--color-surface);
  color: var(--color-surface-text); }

.block-separators--band .content-block--bg-secondary, .block-separators--band .jcu-bg-secondary {
  --color-text: var(--color-secondary-text);
  --color-link: var(--color-secondary-link);
  --color-heading: var(--color-secondary-text);
  background: var(--color-secondary);
  color: var(--color-secondary-text); }

.block-separators--none .content-block + .content-block, .block-separators--none .jcu-block + .content-block, .block-separators--none .content-block + .jcu-block, .block-separators--none .jcu-block + .jcu-block {
  padding-top: 0;
  border-top: 0; }

.block-separators .content-block--bg-secondary.content-block--bg-block, .block-separators .content-block--bg-secondary.jcu-bg-primary, .block-separators .jcu-bg-primary.jcu-bg-secondary, .block-separators .jcu-bg-secondary {
  padding-top: 2rem; }

.content-block--bg-primary.content-block--bg-block, .jcu-bg-primary, .content-block--bg-primary.jcu-bg-secondary,
.block-separators .content-block--bg-primary.content-block--bg-block,
.block-separators .jcu-bg-primary,
.block-separators .content-block--bg-primary.jcu-bg-secondary,
.block-separators .jcu-bg-secondary.jcu-bg-primary {
  --color-text: var(--color-primary-text);
  --color-link: var(--color-primary-link);
  --color-heading: var(--color-primary-text);
  padding: 2rem 1.5rem 1.5rem;
  color: var(--color-primary-text);
  background: var(--color-primary);
  border-radius: 0.5rem; }

.content-block--single {
  max-width: 48rem; }

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

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

.prose p,
.prose li {
  color: var(--color-text); }

.prose ol > li {
  padding-inline-start: 0.35rem; }

.prose ul:not(.task-list) {
  list-style-type: "– "; }

.prose li > ol,
.prose li > ul {
  padding-inline-start: 1.1em; }

.prose blockquote:not([class]) {
  margin-block: 1rem;
  margin-inline: 2.5rem 0;
  padding-inline-start: 1.25rem;
  border-inline-start: 0.2rem solid currentColor; }

.prose blockquote:not([class]) > :first-child {
  margin-top: 0; }

.prose blockquote:not([class]) > :last-child {
  margin-bottom: 0; }

.prose dt {
  color: var(--color-heading);
  font-weight: var(--font-weight-emphasis); }

.prose dd {
  margin: 0 0 0.8rem 1.25rem; }

.prose .footnotes {
  margin-top: 2.5rem;
  padding-top: 1rem;
  border-top: 1px solid currentColor; }

.prose .footnotes > ol > li {
  margin-block: 0.5rem;
  padding: 0.75rem 1rem;
  border-radius: 0.35rem;
  scroll-margin-top: 7rem; }

.prose .footnotes > ol > li > :first-child {
  margin-top: 0; }

.prose .footnotes > ol > li > :last-child {
  margin-bottom: 0; }

.prose .footnotes > ol > li > ul {
  padding-inline-start: 2.5rem; }

.prose .footnotes > ol > li > ol {
  padding-inline-start: 2.5rem; }

.prose .footnotes > ol > li:target {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  color: var(--color-surface-text);
  background: var(--color-surface);
  box-shadow: inset 0.2rem 0 0 currentColor;
  outline: 1px solid currentColor; }

.prose table {
  --table-line-color: color-mix(in srgb, var(--color-secondary) 34%, #fff);
  width: 100%;
  margin-top: var(--inline-block-spacing);
  border-collapse: collapse;
  font-size: 0.95rem; }

.prose th,
.prose td {
  padding: 0.75rem 0.9rem;
  text-align: left;
  vertical-align: top; }

.prose thead th {
  color: var(--table-header-text);
  background: var(--table-header-background);
  font-weight: var(--font-weight-emphasis); }

.prose thead th:first-child {
  border-top-left-radius: 0.35rem; }

.prose thead th:last-child {
  border-top-right-radius: 0.35rem; }

.prose tbody tr {
  border-top: 1px solid var(--table-line-color); }

.prose tbody tr:nth-child(even) {
  background: var(--table-row-stripe, transparent); }

.prose th + th,
.prose td + td {
  border-left: 1px solid var(--table-line-color); }

.prose > .jcu-block + :not(.jcu-block),
.prose > .jcu-alert + :not(.jcu-alert),
.prose > .jcu-partner-logos + :not(.jcu-partner-logos),
.prose > .jcu-image-gallery + :not(.jcu-image-gallery),
.prose > .colour-samples + *,
.prose > .image-gallery + *,
.prose > .jcu-gallery + *,
.prose > .partner-logos + * {
  margin-top: var(--inline-block-spacing); }

.jcu-alert {
  --jcu-alert-color: var(--color-note);
  --jcu-alert-background: var(--color-note-background, color-mix(in srgb, var(--color-note) 10%, #fff));
  --color-text: var(--color-note-text);
  --color-link: var(--color-note-link);
  --color-heading: var(--color-note-text);
  color: var(--color-text);
  display: block;
  margin: var(--compact-block-spacing) 0 0;
  padding: 1rem 1.25rem;
  background: var(--jcu-alert-background);
  border: 1px solid var(--color-border);
  border-left: 0.25rem solid var(--jcu-alert-color);
  border-radius: 0.5rem; }

.jcu-partner-logos {
  --partner-logo-grid-min: 12rem;
  --partner-logo-grid-item-width: calc((100% - ((var(--partner-logo-max-items-per-row) - 1) * 1rem)) / var(--partner-logo-max-items-per-row));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--partner-logo-grid-min), var(--partner-logo-grid-item-width))), 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-top: var(--inline-block-spacing); }

.jcu-partner-logos > a,
.jcu-partner-logos > img {
  min-width: 0;
  min-height: calc(var(--partner-logo-max-height) + 1rem);
  padding: 0.5rem;
  border: 0; }

.jcu-partner-logos > a {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }

.jcu-partner-logos > a:hover {
  transform: translateY(-0.1rem); }

.jcu-partner-logos img {
  width: auto;
  max-width: 100%;
  max-height: var(--partner-logo-max-height);
  object-fit: contain; }

.jcu-partner-logos > img {
  width: 100%;
  height: calc(var(--partner-logo-max-height) + 1rem); }

.jcu-image-gallery {
  --image-gallery-grid-min: 12rem;
  --image-gallery-grid-item-width: calc((100% - ((var(--image-gallery-max-items-per-row) - 1) * 1rem)) / var(--image-gallery-max-items-per-row));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--image-gallery-grid-min), var(--image-gallery-grid-item-width))), 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-top: var(--inline-block-spacing); }

.jcu-image-gallery > a,
.jcu-image-gallery > img {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: var(--color-surface);
  border-radius: var(--image-radius); }

.jcu-image-gallery > a {
  display: block; }

.jcu-image-gallery > a::after {
  content: attr(data-label);
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 1rem;
  color: #fff;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.72));
  font-weight: var(--font-weight-emphasis);
  opacity: 0;
  transform: translateY(0.5rem);
  transition: opacity 180ms ease, transform 180ms ease; }

.jcu-image-gallery > a:hover::after,
.jcu-image-gallery > a:focus-visible::after {
  opacity: 1;
  transform: translateY(0); }

.jcu-image-gallery img {
  width: 100%;
  height: 100%;
  min-height: 12rem;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 180ms ease; }

.jcu-image-gallery > a:hover img {
  transform: scale(1.04); }

.jcu-alert > :first-child {
  margin-top: 0; }

.jcu-alert > :last-child {
  margin-bottom: 0; }

.jcu-alert > p:first-child strong {
  color: var(--color-heading); }

.jcu-alert--note {
  --jcu-alert-color: var(--color-note);
  --jcu-alert-background: var(--color-note-background, color-mix(in srgb, var(--color-note) 10%, #fff));
  --color-text: var(--color-note-text);
  --color-link: var(--color-note-link);
  --color-heading: var(--color-note-text); }

.jcu-alert--important {
  --jcu-alert-color: var(--color-important);
  --jcu-alert-background: var(--color-important-background, color-mix(in srgb, var(--color-important) 10%, #fff));
  --color-text: var(--color-important-text);
  --color-link: var(--color-important-link);
  --color-heading: var(--color-important-text); }

.jcu-alert--warning {
  --jcu-alert-color: var(--color-warning);
  --jcu-alert-background: var(--color-warning-background, color-mix(in srgb, var(--color-warning) 10%, #fff));
  --color-text: var(--color-warning-text);
  --color-link: var(--color-warning-link);
  --color-heading: var(--color-warning-text); }

.jcu-alert--caution {
  --jcu-alert-color: var(--color-caution);
  --jcu-alert-background: var(--color-caution-background, color-mix(in srgb, var(--color-caution) 10%, #fff));
  --color-text: var(--color-caution-text);
  --color-link: var(--color-caution-link);
  --color-heading: var(--color-caution-text); }

.content-block > .jcu-alert, .jcu-block > .jcu-alert {
  margin-top: 0; }

.jcu-alert-title, .jcu-alert > h2 {
  font-size: 1.17rem;
  margin: 0 0 0.65rem; }

.image-text, .jcu-image-text {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 40%);
  gap: 1.5rem;
  align-items: start; }

.image-text--left, .jcu-image-left {
  grid-template-columns: minmax(14rem, 40%) minmax(0, 1fr); }

.image-text--left .image-text-content, .jcu-image-left .image-text-content, .image-text--left .jcu-text, .jcu-image-left .jcu-text {
  order: 2; }

.image-text--left.content-block--bg-secondary:not(.image-text--no-image), .image-text--left.jcu-bg-secondary:not(.image-text--no-image), .jcu-bg-secondary.jcu-image-left:not(.image-text--no-image), .content-block--bg-secondary.jcu-image-left:not(.image-text--no-image) {
  padding-left: 0; }

.image-text--right.content-block--bg-secondary:not(.image-text--no-image), .image-text--right.jcu-bg-secondary:not(.image-text--no-image), .jcu-bg-secondary.jcu-image-right:not(.image-text--no-image), .content-block--bg-secondary.jcu-image-right:not(.image-text--no-image) {
  padding-right: 0; }

.image-text--left.content-block--bg-secondary .image-text-media figcaption, .image-text--left.jcu-bg-secondary .image-text-media figcaption, .jcu-bg-secondary.jcu-image-left .image-text-media figcaption, .content-block--bg-secondary.jcu-image-left .image-text-media figcaption, .image-text--left.content-block--bg-secondary .jcu-media figcaption, .image-text--left.jcu-bg-secondary .jcu-media figcaption, .jcu-bg-secondary.jcu-image-left .jcu-media figcaption, .content-block--bg-secondary.jcu-image-left .jcu-media figcaption {
  padding-left: 1.5rem; }

.image-text--right.content-block--bg-secondary .image-text-media figcaption, .image-text--right.jcu-bg-secondary .image-text-media figcaption, .jcu-bg-secondary.jcu-image-right .image-text-media figcaption, .content-block--bg-secondary.jcu-image-right .image-text-media figcaption, .image-text--right.content-block--bg-secondary .jcu-media figcaption, .image-text--right.jcu-bg-secondary .jcu-media figcaption, .jcu-bg-secondary.jcu-image-right .jcu-media figcaption, .content-block--bg-secondary.jcu-image-right .jcu-media figcaption {
  padding-right: 1.5rem; }

.image-text--left .image-text-media, .jcu-image-left .image-text-media, .image-text--left .jcu-media, .jcu-image-left .jcu-media {
  order: 1; }

.image-text--small, .jcu-image-small {
  grid-template-columns: minmax(0, 1fr) minmax(10rem, 25%); }

.image-text--small.image-text--left, .image-text--small.jcu-image-left, .jcu-image-left.jcu-image-small, .image-text--left.jcu-image-small {
  grid-template-columns: minmax(10rem, 25%) minmax(0, 1fr); }

.image-text--large, .jcu-image-large {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 50%); }

.image-text--large.image-text--left, .image-text--large.jcu-image-left, .jcu-image-left.jcu-image-large, .image-text--left.jcu-image-large {
  grid-template-columns: minmax(18rem, 50%) minmax(0, 1fr); }

.image-text--no-image {
  display: block;
  max-width: none; }

.image-text-content, .jcu-text,
.image-text-media,
.jcu-media {
  min-width: 0; }

.image-text-media, .jcu-media {
  margin: 0; }

.image-text-media img, .jcu-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover; }

.image-text-media figcaption, .jcu-media figcaption {
  margin-top: 0.55rem;
  color: var(--color-text);
  font-size: 0.9rem; }

.two-column, .jcu-two-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem; }

.column-panel, .jcu-column {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  --color-heading: var(--color-surface-text);
  min-width: 0;
  padding: 1.25rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  color: var(--color-surface-text); }

.column-panel h3, .jcu-column h3 {
  color: var(--color-surface-text); }

.colour-samples {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: var(--inline-block-spacing); }

.colour-sample {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  --color-heading: var(--color-surface-text);
  min-width: 0;
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  color: var(--color-surface-text); }

.colour-sample--pair {
  grid-template-columns: minmax(11rem, 30%) minmax(0, 1fr); }

.colour-swatch {
  min-height: 100%;
  border-right: 1px solid var(--color-border); }

.colour-swatch--pair {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem;
  font-weight: var(--font-weight-emphasis); }

.colour-sample-body {
  min-width: 0;
  padding: 1rem; }

.colour-sample h2 {
  margin-bottom: 0.75rem;
  color: var(--color-surface-text);
  font-size: 1.15rem; }

.colour-sample dl {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.85rem; }

.colour-sample dt {
  color: var(--color-text);
  font-weight: var(--font-weight-emphasis); }

.colour-sample dd {
  min-width: 0;
  margin: 0; }

.colour-sample code {
  overflow-wrap: anywhere; }

.colour-sample p {
  margin: 0;
  font-weight: var(--font-weight-emphasis); }

.image-gallery, .jcu-gallery {
  --image-gallery-grid-min: 12rem;
  --image-gallery-grid-item-width: calc((100% - ((var(--image-gallery-max-items-per-row) - 1) * 1rem)) / var(--image-gallery-max-items-per-row));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--image-gallery-grid-min), var(--image-gallery-grid-item-width))), 1fr));
  gap: 1rem; }

.gallery-item, .jcu-gallery > a {
  position: relative;
  display: grid;
  min-height: 13rem;
  overflow: hidden;
  color: var(--color-primary-link);
  background: var(--color-primary);
  border-radius: var(--image-radius);
  text-decoration: none; }

.gallery-item:hover, .jcu-gallery > a:hover {
  color: var(--color-primary-link); }

.gallery-item img, .jcu-gallery > a img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 180ms ease; }

.gallery-item span, .jcu-gallery > a span {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 1rem;
  color: #fff;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.72));
  font-weight: var(--font-weight-emphasis); }

.gallery-item:hover img, .jcu-gallery > a:hover img {
  transform: scale(1.04); }

.partner-logos-intro {
  max-width: 48rem;
  margin-bottom: 1rem; }

.partner-logos {
  --partner-logo-grid-min: 12rem;
  --partner-logo-grid-item-width: calc((100% - ((var(--partner-logo-max-items-per-row) - 1) * 1rem)) / var(--partner-logo-max-items-per-row));
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--partner-logo-grid-min), var(--partner-logo-grid-item-width))), 1fr));
  gap: 1rem;
  align-items: stretch; }

.partner-logo {
  min-height: calc(var(--partner-logo-max-height) + 1rem);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border: 0; }

a.partner-logo {
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }

a.partner-logo:hover {
  transform: translateY(-0.1rem); }

.partner-logo img {
  width: auto;
  max-width: 100%;
  max-height: var(--partner-logo-max-height);
  object-fit: contain; }

.page-cards-intro {
  max-width: 48rem;
  margin-bottom: 1rem; }

.page-cards, .jcu-cards {
  display: grid;
  grid-template-columns: repeat(var(--page-card-columns), minmax(0, 1fr));
  gap: 1rem; }

.page-card, .jcu-card {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  --color-heading: var(--color-surface-text);
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--image-radius);
  color: var(--color-surface-text); }

.page-card-image, .jcu-card-image {
  display: block;
  overflow: hidden;
  background: var(--color-surface); }

.page-card-image img, .jcu-card-image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform 180ms ease; }

.page-card-image:hover img, .jcu-card-image:hover img {
  transform: scale(1.04); }

.page-card-body, .jcu-card-body {
  min-width: 0;
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.25rem; }

.page-card-body h3, .jcu-card-body h3 {
  color: var(--color-surface-text); }

.page-card-body p, .jcu-card-body p {
  margin: 0 0 1rem; }

.page-card-link, .jcu-card-link {
  margin-top: auto;
  font-weight: var(--font-weight-emphasis); }

.page-card-text {
  margin-bottom: 1rem; }

.page-card-text > :last-child {
  margin-bottom: 0; }

.page-cards--single, .jcu-cards.jcu-columns-1 {
  grid-template-columns: 1fr; }

.page-cards--single .page-card, .jcu-cards.jcu-columns-1 .page-card, .page-cards--single .jcu-card, .jcu-cards.jcu-columns-1 .jcu-card {
  display: grid;
  grid-template-columns: minmax(12rem, 32%) minmax(0, 1fr); }

.page-cards--single .page-card--no-image, .jcu-cards.jcu-columns-1 .page-card--no-image {
  display: flex; }

.page-cards--single .page-card-image img, .jcu-cards.jcu-columns-1 .page-card-image img, .page-cards--single .jcu-card-image img, .jcu-cards.jcu-columns-1 .jcu-card-image img {
  height: 100%;
  min-height: 13rem;
  aspect-ratio: auto; }

.layout-landing-page .site-shell {
  display: block;
  background: var(--color-bg); }

.layout-landing-page .site-main {
  width: 100%;
  padding: 0;
  background: var(--color-bg); }

.landing-page {
  --landing-inline-padding: var(--site-main-inline-padding);
  width: 100%;
  overflow: hidden; }

.landing-hero {
  --hero-background-color: transparent;
  --hero-overlay-opacity: 20%;
  width: min(100%, calc(var(--content-width) + 12rem));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(16rem, 0.72fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: stretch;
  min-height: min(36rem, calc(100vh - 8rem));
  padding: clamp(3rem, 7vw, 5rem) var(--landing-inline-padding) 2rem;
  background-color: var(--hero-background-color);
  color: var(--hero-text-color, var(--color-text)); }

.landing-hero--split {
  row-gap: 1.25rem;
  align-content: start; }

.landing-hero--split .landing-hero-content {
  align-self: start; }

.landing-hero--split .landing-hero-lead {
  margin-top: 0; }

.landing-hero.landing-hero--bg-primary {
  --hero-background-color: var(--color-primary);
  --hero-text-color: var(--color-primary-text);
  --hero-link-color: var(--color-primary-link); }

.landing-hero.landing-hero--bg-secondary {
  --hero-background-color: var(--color-secondary);
  --hero-text-color: var(--color-secondary-text);
  --hero-link-color: var(--color-secondary-link); }

.landing-hero--split.landing-hero--bg-primary,
.landing-hero--split.landing-hero--bg-secondary {
  position: relative;
  z-index: 0;
  background-color: transparent; }

.landing-hero--background {
  --hero-background-color: var(--color-bg);
  position: relative;
  z-index: 0;
  grid-template-columns: minmax(0, 1fr);
  background-color: transparent; }

.landing-hero--split.landing-hero--bg-primary::before,
.landing-hero--split.landing-hero--bg-secondary::before,
.landing-hero--background::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  z-index: -1;
  background-color: var(--hero-background-color); }

.landing-hero--background.landing-hero--with-background-image::before {
  background-image: linear-gradient(color-mix(in srgb, var(--hero-background-color) var(--hero-overlay-opacity), transparent), color-mix(in srgb, var(--hero-background-color) var(--hero-overlay-opacity), transparent)), var(--hero-background-image);
  background-position: center, center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat; }

.landing-hero--simple {
  grid-template-columns: 1fr;
  min-height: 0; }

.landing-hero-heading {
  grid-column: 1 / -1;
  align-self: end; }

.landing-hero-heading--center {
  text-align: center; }

.landing-hero-heading--right {
  text-align: right; }

.landing-hero-content {
  align-self: center; }

.landing-hero h1,
.landing-hero h2 {
  margin: 0;
  color: var(--hero-text-color, var(--color-primary));
  font-size: clamp(2rem, 4.5vw, 2.65rem);
  line-height: var(--hero-heading-line-height); }

.landing-hero-heading--center h1,
.landing-hero-heading--center h2 {
  margin-inline: auto; }

.landing-hero-heading--right h1,
.landing-hero-heading--right h2 {
  margin-left: auto; }

.landing-hero .eyebrow {
  color: var(--hero-text-color, var(--color-primary)); }

.landing-hero-lead {
  max-width: 42rem;
  margin: 1.25rem 0 0;
  color: var(--hero-text-color, var(--color-text));
  font-size: clamp(1.12rem, 2.4vw, 1.35rem);
  line-height: var(--hero-text-line-height); }

.landing-hero-lead a {
  color: var(--hero-link-color, var(--color-link)); }

.landing-hero-lead > :first-child,
.landing-section-lead > :first-child,
.landing-card-text > :first-child,
.landing-achievement-text > :first-child,
.landing-carousel-slide figcaption > :first-child {
  margin-top: 0; }

.landing-hero-lead > :last-child,
.landing-section-lead > :last-child,
.landing-card-text > :last-child,
.landing-achievement-text > :last-child,
.landing-carousel-slide figcaption > :last-child {
  margin-bottom: 0; }

.landing-block--separator {
  padding-bottom: clamp(2rem, 5vw, 3rem);
  border-bottom: 0.25rem solid var(--color-primary); }

.landing-section--bg-primary.landing-block--separator,
.landing-hero--bg-primary.landing-block--separator {
  border-bottom-color: color-mix(in srgb, var(--color-primary) 65%, var(--color-primary-text)); }

.landing-hero-media {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--color-surface);
  border-radius: var(--image-radius); }

.landing-hero-media img {
  width: 100%;
  height: 100%;
  min-height: 24rem;
  object-fit: cover; }

.landing-hero-media--contain {
  align-self: center;
  background: transparent; }

.landing-hero-media--contain img {
  height: auto;
  min-height: 0;
  object-fit: contain; }

.landing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem; }

.landing-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.7rem 1rem;
  color: var(--color-surface-link);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--button-radius);
  font-weight: var(--font-weight-emphasis);
  text-decoration: none; }

.landing-button:hover {
  color: var(--color-surface-link);
  border-color: var(--color-border);
  text-decoration: underline; }

.landing-button--primary {
  color: var(--color-primary-link);
  background: var(--color-primary);
  border-color: var(--color-primary); }

.landing-button--primary:hover {
  color: var(--color-primary-link);
  background: var(--color-primary);
  border-color: var(--color-primary);
  text-decoration: underline; }

.landing-button--secondary {
  color: var(--color-surface-link);
  background: var(--color-surface);
  border-color: var(--color-border); }

.landing-button--secondary:hover {
  color: var(--color-surface-link);
  background: var(--color-surface);
  border-color: var(--color-border);
  text-decoration: underline; }

.landing-section {
  width: min(100%, calc(var(--content-width) + 12rem));
  margin-right: auto;
  margin-left: auto;
  margin-top: clamp(3rem, 7vw, 5rem);
  padding-right: var(--landing-inline-padding);
  padding-left: var(--landing-inline-padding); }

.landing-section-header {
  max-width: 44rem;
  margin-bottom: 1.25rem; }

.landing-section-lead {
  margin: 0;
  color: var(--color-text);
  font-size: 1.08rem; }

.landing-section--intro {
  max-width: 48rem; }

.landing-section--with-media {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.25rem, 4vw, 2.5rem);
  align-items: center; }

.landing-section--image-left .landing-section-body {
  order: 2; }

.landing-section--image-left .landing-section-media {
  order: 1; }

.landing-section--bg-secondary,
.landing-section--bg-primary {
  position: relative;
  padding-top: clamp(2rem, 5vw, 3.25rem);
  padding-bottom: clamp(2rem, 5vw, 3.25rem);
  z-index: 0; }

.landing-section--bg-secondary {
  --color-text: var(--color-secondary-text);
  --color-link: var(--color-secondary-link);
  --color-heading: var(--color-secondary-text);
  color: var(--color-secondary-text); }

.landing-section--bg-primary {
  --color-text: var(--color-primary-text);
  --color-link: var(--color-primary-link);
  --color-heading: var(--color-primary-text);
  color: var(--color-primary-text); }

.landing-section--bg-secondary::before,
.landing-section--bg-primary::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  z-index: -1; }

.landing-section--bg-secondary::before {
  background: var(--color-secondary); }

.landing-section--bg-primary::before {
  background: var(--color-primary); }

.landing-section--bg-secondary > .landing-section-body h2,
.landing-section--bg-secondary > .landing-section-body h3,
.landing-section--bg-secondary > .landing-section-body .eyebrow,
.landing-section--bg-secondary > .landing-section-body p,
.landing-section--bg-secondary > .landing-section-body li {
  color: var(--color-secondary-text); }

.landing-section--bg-secondary > .landing-section-body a:not(.landing-button) {
  color: var(--color-secondary-link);
  text-decoration-color: currentColor; }

.landing-section--bg-secondary > .landing-section-body a:not(.landing-button):hover {
  color: var(--color-secondary-link); }

.landing-section--bg-primary > .landing-section-body h2,
.landing-section--bg-primary > .landing-section-body h3,
.landing-section--bg-primary > .landing-section-body .eyebrow,
.landing-section--bg-primary > .landing-section-body p,
.landing-section--bg-primary > .landing-section-body li {
  color: var(--color-primary-text); }

.landing-section--bg-primary > .landing-section-body a:not(.landing-button) {
  color: var(--color-primary-link);
  text-decoration-color: currentColor; }

.landing-section--bg-primary > .landing-section-body a:not(.landing-button):hover {
  color: var(--color-primary-link); }

.landing-section--bg-secondary + .landing-section--bg-secondary,
.landing-section--bg-secondary + .landing-section--bg-primary,
.landing-section--bg-primary + .landing-section--bg-secondary,
.landing-section--bg-primary + .landing-section--bg-primary {
  margin-top: 0; }

.landing-section--bg-secondary .landing-section-body,
.landing-section--bg-primary .landing-section-body {
  padding-block: clamp(0.75rem, 2vw, 1.5rem); }

.landing-section-media {
  margin: 0;
  overflow: hidden;
  background: var(--color-surface);
  border-radius: var(--image-radius); }

.landing-section-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover; }

/* Preserve the full source proportions for maps, diagrams and logos. */
.landing-section-media--contain img {
  aspect-ratio: auto;
  height: auto;
  object-fit: contain; }

.landing-section-media > a {
  display: block; }

.landing-text-link {
  display: inline-flex;
  margin-top: 1rem;
  color: var(--color-link);
  font-weight: var(--font-weight-emphasis); }

.landing-section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem; }

.landing-section-actions .landing-button {
  min-width: 9rem; }

.landing-section > .landing-section-body ~ .landing-card-grid {
  margin-top: 1.5rem; }

.landing-section > .landing-section-body:not(:has(.prose, .landing-text-link, .landing-section-actions)) ~ .landing-card-grid {
  margin-top: 0.5rem; }

.landing-card-grid,
.landing-achievement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem; }

.landing-card-grid {
  grid-template-columns: repeat(var(--landing-card-columns, 3), minmax(0, 1fr)); }

.landing-card-grid--single .landing-card {
  display: grid;
  grid-template-columns: minmax(12rem, 32%) minmax(0, 1fr); }

.landing-card-grid--single .landing-card--no-image {
  display: block; }

.landing-card-grid--single .landing-card > img {
  height: 100%;
  min-height: 13rem;
  aspect-ratio: auto; }

.landing-card,
.landing-achievement {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  --color-heading: var(--color-surface-text);
  min-width: 0;
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--image-radius);
  color: var(--color-surface-text); }

.landing-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover; }

.landing-card-body,
.landing-achievement {
  padding: 1.25rem; }

.landing-card h3,
.landing-achievement h3 {
  color: var(--color-surface-text); }

.landing-card p,
.landing-achievement p {
  margin: 0; }

.landing-card-body > a {
  display: inline-flex;
  margin-top: 1rem;
  font-weight: var(--font-weight-emphasis); }

.landing-achievement {
  display: grid;
  align-content: start;
  gap: 0.55rem; }

.landing-achievement-icon {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  color: var(--color-surface-text);
  background: transparent;
  font-weight: var(--font-weight-heavy); }

.landing-achievement img {
  width: 3rem;
  height: 3rem;
  border-radius: var(--image-radius);
  object-fit: cover; }

.landing-achievement > strong {
  color: var(--color-surface-text);
  font-size: 2rem;
  line-height: var(--display-line-height); }

.landing-carousel-frame {
  position: relative; }

.landing-carousel-track {
  display: grid; }

.landing-carousel-slide {
  --color-text: var(--color-surface-text);
  --color-link: var(--color-surface-link);
  grid-area: 1 / 1;
  margin: 0;
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--image-radius);
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease; }

.landing-carousel-slide.is-active {
  opacity: 1;
  pointer-events: auto; }

.landing-carousel-slide img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover; }

.landing-carousel-slide figcaption {
  padding: 1rem;
  color: var(--color-surface-text);
  font-weight: var(--font-weight-bold); }

.landing-carousel-controls {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: center;
  margin-top: 1rem; }

.landing-carousel-controls button {
  display: inline-grid;
  place-items: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
  color: var(--color-surface-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--button-radius);
  font: inherit;
  font-weight: var(--font-weight-heavy);
  cursor: pointer; }

.landing-carousel-controls button:hover,
.landing-carousel-controls button[aria-current="true"] {
  color: var(--color-primary-text);
  background: var(--color-primary);
  border-color: var(--color-primary); }

.landing-carousel-dots {
  display: flex;
  gap: 0.45rem; }

.landing-carousel-dots button {
  min-width: 0.85rem;
  min-height: 0.85rem;
  padding: 0;
  border-radius: var(--button-radius); }

@media (max-width: 900px) {
  :root {
    --site-main-inline-padding: 1rem; }

  .site-main {
    width: 100%;
    padding: 2rem var(--site-main-inline-padding) 3rem; }

  .layout-landing-page .site-main {
    padding: 0; }

  .two-column, .jcu-two-column,
  .colour-samples {
    grid-template-columns: 1fr; }

  .page-cards, .jcu-cards {
    grid-template-columns: 1fr; }

  .landing-card-grid--single .landing-card,
  .page-cards--single .page-card,
  .jcu-cards.jcu-columns-1 .page-card,
  .page-cards--single .jcu-card,
  .jcu-cards.jcu-columns-1 .jcu-card {
    grid-template-columns: 1fr; }

  .landing-card-grid--single .landing-card > img,
  .page-cards--single .page-card-image img,
  .jcu-cards.jcu-columns-1 .page-card-image img,
  .page-cards--single .jcu-card-image img,
  .jcu-cards.jcu-columns-1 .jcu-card-image img {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9; }

  .landing-hero,
  .landing-section--with-media {
    grid-template-columns: 1fr; }

  .landing-hero {
    min-height: 0; }

  .landing-hero-media img {
    min-height: 16rem; }

  .landing-hero-media {
    grid-column: 1;
    grid-row: auto; }

  .landing-section--image-left .landing-section-body,
  .landing-section--image-left .landing-section-media {
    order: initial; }

  .landing-card-grid,
  .landing-achievement-grid {
    grid-template-columns: 1fr; }

  h1 {
    max-width: 100%; } }
@media (max-width: 640px) {
  .image-text, .jcu-image-text,
  .image-text--left,
  .jcu-image-left,
  .image-text--small,
  .jcu-image-small,
  .image-text--small.image-text--left,
  .image-text--small.jcu-image-left,
  .jcu-image-left.jcu-image-small,
  .image-text--left.jcu-image-small,
  .image-text--large,
  .jcu-image-large,
  .image-text--large.image-text--left,
  .image-text--large.jcu-image-left,
  .jcu-image-left.jcu-image-large,
  .image-text--left.jcu-image-large {
    grid-template-columns: minmax(0, 1fr); }

  .image-text--left .image-text-content, .jcu-image-left .image-text-content, .image-text--left .jcu-text, .jcu-image-left .jcu-text,
  .image-text--left .image-text-media,
  .jcu-image-left .image-text-media,
  .image-text--left .jcu-media,
  .jcu-image-left .jcu-media {
    order: initial; }

  .image-text.content-block--bg-secondary:not(.image-text--no-image), .image-text.jcu-bg-secondary:not(.image-text--no-image), .jcu-bg-secondary.jcu-image-text:not(.image-text--no-image), .content-block--bg-secondary.jcu-image-text:not(.image-text--no-image) {
    padding-inline: 1.5rem; }

  .image-text.content-block--bg-secondary .image-text-media, .image-text.jcu-bg-secondary .image-text-media, .jcu-bg-secondary.jcu-image-text .image-text-media, .content-block--bg-secondary.jcu-image-text .image-text-media, .image-text.content-block--bg-secondary .jcu-media, .image-text.jcu-bg-secondary .jcu-media, .jcu-bg-secondary.jcu-image-text .jcu-media, .content-block--bg-secondary.jcu-image-text .jcu-media {
    margin-inline: -1.5rem; }

  .image-text.content-block--bg-secondary .image-text-media figcaption, .image-text.jcu-bg-secondary .image-text-media figcaption, .jcu-bg-secondary.jcu-image-text .image-text-media figcaption, .content-block--bg-secondary.jcu-image-text .image-text-media figcaption, .image-text.content-block--bg-secondary .jcu-media figcaption, .image-text.jcu-bg-secondary .jcu-media figcaption, .jcu-bg-secondary.jcu-image-text .jcu-media figcaption, .content-block--bg-secondary.jcu-image-text .jcu-media figcaption {
    padding-inline: 1.5rem; } }
@media (max-width: 520px) {
  .colour-sample {
    grid-template-columns: 1fr; }

  .colour-swatch {
    min-height: 5rem;
    border-right: 0;
    border-bottom: 1px solid var(--color-border); }

  .jcu-partner-logos,
  .partner-logos {
    grid-template-columns: 1fr;
    justify-items: center; }

  .jcu-image-gallery,
  .image-gallery,
  .jcu-gallery {
    grid-template-columns: 1fr;
    justify-items: center; }

  .jcu-partner-logos > a,
  .jcu-partner-logos > img,
  .partner-logo {
    width: min(100%, 24rem); }

  .jcu-image-gallery > a,
  .jcu-image-gallery > img,
  .gallery-item,
  .jcu-gallery > a {
    width: min(100%, 24rem); }

  .partner-logo {
    min-height: calc(var(--partner-logo-max-height) + 1.5rem);
    padding: 0.75rem; } }
/* Shared header navigation */
.site-shell,
.layout-landing-page .site-shell {
  min-height: 100vh;
  display: block;
  background: var(--color-bg); }

.site-header {
  --header-text-color: var(--color-primary-text);
  --header-link-color: var(--color-primary-link);
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 0.75rem var(--site-main-inline-padding);
  font-family: var(--font-body);
  background: var(--color-primary);
  backdrop-filter: blur(10px); }

.site-header-inner {
  width: min(100%, calc(var(--content-width) + 12rem));
  min-height: 3.5rem;
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto; }

.site-header-brand {
  min-width: 0;
  display: flex;
  gap: 0.75rem;
  align-items: center;
  color: var(--header-link-color);
  font-family: var(--font-body);
  font-weight: var(--font-weight-heavy);
  line-height: var(--card-heading-line-height);
  text-decoration: none; }

.site-header-brand:hover {
  color: var(--header-link-color);
  text-decoration: underline; }

.site-header-brand img {
  width: auto;
  max-width: 9rem;
  height: 2.75rem;
  object-fit: contain; }

.site-header-brand span {
  max-width: 18rem; }

.header-menu-toggle {
  display: none; }

.header-nav {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  justify-content: flex-end; }

.header-nav-group {
  position: relative; }

.header-nav-parent {
  display: flex;
  align-items: stretch; }

.header-nav-link,
.header-submenu a {
  font-weight: var(--font-weight-emphasis);
  text-decoration: none; }

.header-nav-link {
  color: var(--header-link-color); }

.header-nav-link {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.55rem 0.7rem;
  border-radius: var(--button-radius);
  font-size: 0.92rem; }

.header-submenu-trigger {
  background: transparent;
  border: 0;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  gap: 0.75rem; }

.header-submenu-chevron {
  display: none;
  width: 0.45rem;
  height: 0.45rem;
  flex-shrink: 0;
  margin-left: auto;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.15rem) rotate(45deg); }

.header-submenu-trigger[aria-expanded="true"] .header-submenu-chevron {
  transform: translateY(0.15rem) rotate(225deg); }

@media (hover: hover) and (pointer: fine) {
  .header-nav-link:hover {
    color: var(--color-surface-link);
    background: var(--color-surface);
    text-decoration: underline; } }
.header-nav-link[aria-current="page"],
.header-nav-group.is-active > .header-nav-parent .header-nav-link {
  color: var(--color-surface-link);
  background: var(--color-surface);
  border: 0; }

.header-submenu {
  --color-text: var(--color-primary-text);
  --color-link: var(--color-primary-link);
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 14rem;
  display: none;
  padding: 0.4rem;
  background: var(--color-primary);
  border: 1px solid var(--color-border);
  border-radius: 0.35rem;
  box-shadow: 0 0.8rem 2rem rgba(16, 24, 40, 0.14); }

.header-submenu a {
  display: block;
  padding: 0.65rem 0.75rem;
  color: var(--header-link-color);
  border-radius: var(--button-radius);
  font-size: 0.9rem; }

.header-submenu a[aria-current="page"] {
  color: var(--color-surface-link);
  background: var(--color-surface);
  border: 0; }

@media (hover: hover) and (pointer: fine) {
  .header-submenu a:hover {
    color: var(--color-surface-link);
    background: var(--color-surface);
    border: 0;
    text-decoration: underline; } }
.header-nav-group.is-submenu-open > .header-submenu {
  display: block; }

.site-main,
.layout-landing-page .site-main {
  width: 100%;
  min-width: 0;
  margin: 0 auto;
  padding: 4rem var(--site-main-inline-padding);
  background: var(--color-bg); }

.layout-landing-page .site-main {
  padding: 0; }

.layout-jcudl-catalog.catalog-full-width .site-main {
  padding: 0; }

.content-align-center .site-main {
  text-align: center; }

.content-align-center .breadcrumbs ol,
.content-align-center .landing-actions,
.content-align-center .landing-section-actions {
  justify-content: center; }

.content-align-center .landing-section-header,
.content-align-center .content-block--single {
  margin-right: auto;
  margin-left: auto; }

.page {
  margin-right: auto;
  margin-left: auto; }

@media (max-width: 1040px) {
  .header-submenu-chevron {
    display: block; }

  .site-header-inner {
    flex-wrap: wrap;
    gap: 0.75rem 1rem; }

  .header-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 2.75rem;
    padding: 0.6rem 0.75rem;
    color: var(--header-text-color);
    background: var(--color-primary);
    border: 0;
    border-radius: var(--button-radius);
    font: inherit;
    font-weight: var(--font-weight-emphasis);
    cursor: pointer; }

  .header-menu-toggle[aria-expanded="true"] .menu-toggle-icon {
    border-color: transparent; }

  .header-menu-toggle:hover .header-menu-label {
    text-decoration: underline; }

  .header-menu-toggle[aria-expanded="true"] .menu-toggle-icon::before {
    top: 0.4rem;
    transform: rotate(45deg); }

  .header-menu-toggle[aria-expanded="true"] .menu-toggle-icon::after {
    top: 0.4rem;
    transform: rotate(-45deg); }

  .header-nav {
    width: 100%;
    display: none;
    align-items: stretch;
    flex-direction: column;
    padding-top: 0.5rem;
    border-top: 1px solid color-mix(in srgb, var(--header-text-color) 30%, transparent); }

  .site-header.is-menu-open .header-nav {
    display: flex; }

  .header-nav-parent {
    width: 100%; }

  .header-nav-link {
    flex: 1; }

  .header-submenu {
    position: static;
    min-width: 0;
    margin: 0.2rem 0 0.5rem 1rem;
    padding: 0 0 0 0.75rem;
    background: transparent;
    border: 0;
    border-left: 2px solid color-mix(in srgb, var(--header-text-color) 35%, transparent);
    border-radius: 0;
    box-shadow: none; } }
@media (max-width: 520px) {
  .site-header {
    padding: 0.65rem 1rem; }

  .site-header-inner {
    min-height: 3rem; }

  .site-header-brand img {
    max-width: 6.5rem;
    height: 2.25rem; }

  .site-header-brand span {
    max-width: 10rem;
    font-size: 0.9rem; }

  .header-menu-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap; } }
/* Markdown block classes reuse the YAML block styles. */
.jcu-block {
  max-width: none;
  margin-right: 0;
  margin-left: 0;
  margin-bottom: 0; }

.prose .jcu-page-navigation {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-block: 2rem 0; }

.jcu-page-navigation > a {
  min-width: 0;
  overflow-wrap: anywhere; }

.jcu-page-navigation > a:last-child:not(:first-child) {
  margin-inline-start: auto;
  text-align: right; }

.jcu-text,
.jcu-media,
.jcu-column,
.jcu-card,
.jcu-card-body,
.jcu-card-image {
  margin: 0;
  min-width: 0; }

.jcu-media > :first-child,
.jcu-card-image > p {
  margin: 0; }

.jcu-media > p + p {
  margin-top: 0.55rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 0.9rem; }

.jcu-image-left.jcu-bg-secondary .jcu-media > p + p {
  padding-left: 1.5rem; }

.jcu-image-right.jcu-bg-secondary .jcu-media > p + p {
  padding-right: 1.5rem; }

.jcu-two-column > :not(.jcu-column),
.jcu-cards > :not(.jcu-card) {
  grid-column: 1 / -1;
  margin: 0; }

.jcu-column > :last-child {
  margin-bottom: 0; }

.jcu-gallery {
  --image-gallery-max-items-per-row: var(--jcu-columns, 3);
  margin: 0; }

.jcu-gallery > a strong {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 1rem;
  color: #fff;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.72));
  font-weight: var(--font-weight-emphasis); }

.jcu-partner-logos {
  --partner-logo-max-items-per-row: var(--jcu-columns, 4);
  margin: 0; }

.jcu-cards {
  --page-card-columns: var(--jcu-columns, 3); }

.jcu-card-link {
  margin-bottom: 0; }

.jcu-cards.jcu-columns-1 > .jcu-card:not(:has(> .jcu-card-image)) {
  display: flex; }

.jcu-columns-1 {
  --jcu-columns: 1; }

.jcu-columns-2 {
  --jcu-columns: 2; }

.jcu-columns-3 {
  --jcu-columns: 3; }

.jcu-columns-4 {
  --jcu-columns: 4; }

.jcu-columns-5 {
  --jcu-columns: 5; }

.jcu-columns-6 {
  --jcu-columns: 6; }

.prose > .jcu-block,
.prose > .jcu-alert,
.prose > .content-block,
.prose > .jcu-block {
  margin-top: var(--block-spacing); }

.jcu-block > :last-child {
  margin-bottom: 0; }

.jcu-alert {
  margin-right: 0;
  margin-left: 0; }

@media (max-width: 640px) {
  .jcu-image-text.jcu-bg-secondary .jcu-media > p + p {
    padding-inline: 1.5rem; } }
.prose > .jcu-block.jcu-bg-primary,
.prose > .jcu-block.jcu-bg-secondary {
  padding-top: 2rem; }

.jcu-cards > p,
.jcu-block:has(> .jcu-partner-logos) > p:not(.jcu-partner-logos) {
  max-width: 48rem; }

/* Resolve table stripes at the nearest background container. Nested surface
   cards and alerts override the stripe inherited from their outer panel. */
.content-block--bg-primary, .jcu-bg-primary,
.jcu-bg-primary,
.landing-section--bg-primary {
  --table-row-stripe: var(--table-primary-stripe);
  --table-header-background: var(--color-primary-text);
  --table-header-text: var(--color-primary); }

.content-block--bg-secondary, .jcu-bg-secondary,
.jcu-bg-secondary,
.landing-section--bg-secondary,
.block-separators--band .content-block--bg-secondary,
.block-separators--band .jcu-bg-secondary {
  --table-row-stripe: var(--table-secondary-stripe);
  --table-header-background: var(--color-secondary-text);
  --table-header-text: var(--color-secondary); }

.column-panel, .jcu-column,
.colour-sample,
.page-card,
.jcu-card,
.landing-card,
.landing-achievement,
.jcu-column,
.jcu-card,
.block-separators--band .content-block:nth-of-type(even):not(.content-block--bg-primary):not(.jcu-bg-primary):not(.content-block--bg-secondary):not(.jcu-bg-secondary),
.block-separators--band .jcu-block:nth-of-type(even):not(.content-block--bg-primary):not(.jcu-bg-primary):not(.content-block--bg-secondary):not(.jcu-bg-secondary) {
  --table-row-stripe: var(--table-surface-stripe);
  --table-header-background: var(--color-surface-text);
  --table-header-text: var(--color-surface); }

.jcu-alert,
.jcu-alert--note {
  --table-row-stripe: var(--table-note-stripe);
  --table-header-background: var(--color-note-text);
  --table-header-text: var(--jcu-alert-background); }

.jcu-alert--important {
  --table-row-stripe: var(--table-important-stripe);
  --table-header-background: var(--color-important-text);
  --table-header-text: var(--jcu-alert-background); }

.jcu-alert--warning {
  --table-row-stripe: var(--table-warning-stripe);
  --table-header-background: var(--color-warning-text);
  --table-header-text: var(--jcu-alert-background); }

.jcu-alert--caution {
  --table-row-stripe: var(--table-caution-stripe);
  --table-header-background: var(--color-caution-text);
  --table-header-text: var(--jcu-alert-background); }

.page-card-body .page-card-category, .jcu-card-body .page-card-category, .page-card-body .jcu-card-category, .jcu-card-body .jcu-card-category,
.landing-card-body .page-card-category,
.landing-card-body .jcu-card-category {
  margin: 0 0 0.55rem;
  color: var(--color-surface-text);
  font-size: 0.75rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--label-letter-spacing);
  text-transform: uppercase; }

/* Keep semantic emphasis aligned with the configured body font weights. */
b,
strong {
  font-weight: var(--font-weight-bold); }

/* Keep primary actions visible against their matching section background. */
.landing-section--bg-primary .landing-button--primary,
.landing-hero--bg-primary .landing-button--primary {
  border-color: var(--color-primary-text); }

img.theme-shaped-image.theme-shaped-image.theme-shaped-image {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: var(--image-shape-ratio);
  object-fit: var(--image-fit);
  object-position: var(--image-crop-position); }

.landing-carousel-slide img.theme-shaped-image.theme-shaped-image.theme-shaped-image[data-image-shape="original"] {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: min(32rem, 70vh);
  margin-inline: auto; }

.image-gallery--shaped .gallery-item, .image-gallery--shaped .jcu-gallery > a {
  min-height: 0; }

.image-gallery--shaped .gallery-item img, .image-gallery--shaped .jcu-gallery > a img {
  height: auto;
  min-height: 0; }

.jcu-image-shape-landscape {
  --jcu-image-shape-ratio: 4 / 3; }

.jcu-image-shape-wide {
  --jcu-image-shape-ratio: 16 / 9; }

.jcu-image-shape-square {
  --jcu-image-shape-ratio: 1 / 1; }

.jcu-image-shape-portrait {
  --jcu-image-shape-ratio: 3 / 4; }

.jcu-image-shape-original {
  --jcu-image-shape-ratio: auto; }

.jcu-image-fit-cover {
  --jcu-image-fit: cover; }

.jcu-image-fit-contain {
  --jcu-image-fit: contain; }

.jcu-image-crop-center {
  --jcu-image-crop-position: center; }

.jcu-image-crop-top {
  --jcu-image-crop-position: top; }

.jcu-image-crop-bottom {
  --jcu-image-crop-position: bottom; }

.jcu-image-crop-left {
  --jcu-image-crop-position: left; }

.jcu-image-crop-right {
  --jcu-image-crop-position: right; }

:is(.jcu-gallery, .jcu-image-gallery):is([class*="jcu-image-shape-"], [class*="jcu-image-fit-"], [class*="jcu-image-crop-"]) img,
:is(.jcu-gallery, .jcu-image-gallery) img:is([class*="jcu-image-shape-"], [class*="jcu-image-fit-"], [class*="jcu-image-crop-"]) {
  width: 100%;
  height: auto;
  min-height: 0;
  align-self: start;
  aspect-ratio: var(--jcu-image-shape-ratio, 4/3);
  object-fit: var(--jcu-image-fit, cover);
  object-position: var(--jcu-image-crop-position, center); }

:is(.jcu-gallery, .jcu-image-gallery):is([class*="jcu-image-shape-"], [class*="jcu-image-fit-"], [class*="jcu-image-crop-"]) > a,
:is(.jcu-gallery, .jcu-image-gallery) > a:has(img:is([class*="jcu-image-shape-"], [class*="jcu-image-fit-"], [class*="jcu-image-crop-"])) {
  min-height: 0; }

.prose img:not(:where(.jcu-media img, .jcu-card img, .jcu-card-image img, .jcu-gallery img, .jcu-image-gallery img, .jcu-partner-logos img, .page-card img, .landing-card img, .gallery-item img, .landing-carousel-slide img, .partner-logo img, .theme-shaped-image)),
.image-text-media img:not(.theme-shaped-image),
.jcu-media img:not(.theme-shaped-image),
.landing-section-media img:not(.theme-shaped-image),
.image-text-media img.theme-shaped-image.theme-shaped-image.theme-shaped-image[data-image-shape="original"],
.jcu-media img.theme-shaped-image.theme-shaped-image.theme-shaped-image[data-image-shape="original"],
.landing-section-media img.theme-shaped-image.theme-shaped-image.theme-shaped-image[data-image-shape="original"] {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: var(--content-image-max-height);
  aspect-ratio: auto;
  object-fit: contain;
  margin-inline: auto; }

.landing-section-media {
  background: transparent; }

@media (max-width: 48rem) {
  :root {
    --content-image-max-height: var(--image-max-height-mobile); } }
