@font-face {
  font-family: "Mulish";
  src: url("../fonts/Mulish-Variable.ttf") format("truetype-variations");
  font-display: swap;
  font-style: normal;
  font-weight: 400 700;
}

@font-face {
  font-family: "Nunito";
  src: url("../fonts/Nunito-Variable.ttf") format("truetype-variations");
  font-display: swap;
  font-style: normal;
  font-weight: 700 900;
}

:root {
  --link-ink: #22303a;
  --link-teal: #1d5d7a;
  --link-teal-aa: #114158;
  --link-coral: #f4772e;
  --link-coral-text: #a44607;
  --link-sun: #f5b840;
  --link-sky: #3fa39c;
  --link-cream: #fdfbf7;
  --link-mist: #f3f1ea;
  --link-white: #fff;
  --link-teal-tint: #e9f3f8;
  --link-coral-tint: #ffefe7;
  --link-sky-tint: #e6f4f2;
  --link-sun-tint: #fdf3dc;
  --link-control-border: #6f8386;
  --link-muted: #4a5760;
  --link-radius-small: 8px;
  --link-radius-card: 28px;
  --link-radius-panel: 32px;
  --link-radius-hero: 32px;
  --link-radius-pill: 999px;
  --link-shadow-soft: 0 12px 32px rgb(34 48 58 / 16%);
  --link-shadow-card: 0 3px 10px rgb(34 48 58 / 14%);
  --link-wrap: min(calc(100% - 2rem), 1480px);
  --link-wrap-narrow: min(calc(100% - 2rem), 1180px);
  --link-header-height: 80px;
  --link-transition: 180ms ease;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--link-header-height) + 2rem);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  overflow-wrap: break-word;
  background: var(--link-cream);
  color: var(--link-ink);
  font-family: "Mulish", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.menu-is-open {
  overflow: hidden;
}

img,
svg,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

iframe {
  max-width: 100%;
}

figure,
blockquote,
dl,
dd {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  color: inherit;
  font-family: "Nunito", Arial, sans-serif;
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.1;
}

p {
  margin-block: 0 1em;
}

ul,
ol {
  margin-block: 0 1em;
}

a {
  color: inherit;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.2em;
}

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
}

button,
a,
summary {
  -webkit-tap-highlight-color: transparent;
}

[hidden] {
  display: none !important;
}

[id] {
  scroll-margin-top: calc(var(--link-header-height) + 2rem);
}

:focus-visible {
  outline: 3px solid var(--link-ink);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--link-white);
}

.site-footer :focus-visible,
.page-hero--ink :focus-visible,
.page-hero--teal :focus-visible,
.hub-banner :focus-visible,
.approach-strip :focus-visible,
.mission-strip :focus-visible {
  outline-color: var(--link-sun);
  box-shadow: 0 0 0 6px var(--link-ink);
}

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

.screen-reader-text:focus,
.sr-only:focus {
  top: 0.5rem;
  left: 0.5rem;
  z-index: 100000;
  width: auto !important;
  height: auto !important;
  padding: 0.75rem 1rem !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  background: var(--link-white);
  color: var(--link-ink);
}

.skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 10000;
  padding: 0.75rem 1.125rem;
  border-radius: var(--link-radius-pill);
  background: var(--link-ink);
  color: var(--link-white);
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-180%);
  transition: transform var(--link-transition);
}

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

.site-shell {
  min-height: 100vh;
  overflow: clip;
}

#main-content {
  min-height: 45vh;
}

.wrap,
.site-header__inner,
.page-hero__inner,
.section__inner,
.link-section__inner,
.home-hero__inner,
.front-hero__inner,
.hub-banner__inner,
.mission-strip__inner,
.approach-strip__inner {
  width: var(--link-wrap);
  margin-inline: auto;
}

.wrap--narrow,
.entry-content,
.record-detail,
.single-record,
.managed-content {
  width: var(--link-wrap-narrow);
  margin-inline: auto;
}

.alignwide {
  width: var(--link-wrap);
  max-width: 1480px;
  margin-right: auto;
  margin-left: auto;
}

.alignfull {
  width: 100vw;
  max-width: none;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
}

/* Header and navigation */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgb(34 48 58 / 10%);
  background: rgb(253 251 247 / 95%);
  backdrop-filter: blur(18px);
  transition: box-shadow var(--link-transition), background var(--link-transition);
}

.site-header.is-scrolled,
.site-header.has-open-menu {
  background: rgb(253 251 247 / 98%);
  box-shadow: 0 12px 34px rgb(34 48 58 / 8%);
}

.admin-bar .site-header {
  top: 32px;
}

.site-header__inner {
  display: flex;
  min-height: var(--link-header-height);
  align-items: center;
  gap: 1.5rem;
}

.brand {
  display: inline-flex;
  width: 160px;
  flex: 0 0 auto;
  align-items: center;
  border-radius: 12px;
  text-decoration: none;
}

.brand img,
.brand .custom-logo,
.brand .custom-logo-link {
  display: block;
  width: 100%;
  height: auto;
}

.main-nav {
  display: none;
  margin-left: auto;
}

.main-nav .menu,
.mobile-nav .menu,
.footer-menu,
.main-nav .sub-menu,
.mobile-nav .sub-menu {
  padding: 0;
  margin: 0;
  list-style: none;
}

.main-nav > .menu {
  display: flex;
  align-items: center;
  gap: clamp(0.8rem, 1.5vw, 1.5rem);
}

.main-nav .menu-item {
  position: relative;
}

.main-nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: color var(--link-transition), background var(--link-transition);
}

.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav a[aria-current="page"],
.main-nav .current-menu-item > a,
.main-nav .current-menu-ancestor > a {
  color: var(--link-teal-aa);
}

.main-nav .sub-menu {
  position: absolute;
  top: calc(100% - 0.125rem);
  left: -1rem;
  display: grid;
  min-width: 230px;
  gap: 0.125rem;
  padding: 0.75rem;
  visibility: hidden;
  border: 1px solid rgb(34 48 58 / 10%);
  border-radius: 20px;
  opacity: 0;
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
  transform: translateY(0.5rem);
  transition: opacity var(--link-transition), transform var(--link-transition), visibility var(--link-transition);
}

.main-nav .menu-item:hover > .sub-menu,
.main-nav .menu-item:focus-within > .sub-menu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.main-nav .sub-menu a {
  width: 100%;
  padding: 0.65rem 0.75rem;
}

.main-nav .sub-menu a:hover,
.main-nav .sub-menu a:focus-visible {
  background: var(--link-mist);
}

.header-actions {
  display: flex;
  margin-left: auto;
  align-items: center;
  gap: 0.5rem;
}

.language-link {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--link-radius-pill);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background var(--link-transition), color var(--link-transition);
}

.language-link:hover {
  background: var(--link-white);
  color: var(--link-teal-aa);
}

.menu-toggle {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 1rem;
  border: 1px solid rgb(34 48 58 / 18%);
  border-radius: var(--link-radius-pill);
  background: var(--link-white);
  color: var(--link-ink);
  font-size: 0.875rem;
  font-weight: 700;
}

.no-js .menu-toggle {
  display: none;
}

.no-js .mobile-nav[hidden] {
  display: block !important;
}

.menu-toggle__icon {
  position: relative;
  display: block;
  width: 18px;
  height: 14px;
}

.menu-toggle__icon span {
  position: absolute;
  left: 0;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: currentcolor;
  transition: top var(--link-transition), transform var(--link-transition);
}

.menu-toggle__icon span:first-child {
  top: 3px;
}

.menu-toggle__icon span:last-child {
  top: 10px;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:first-child {
  top: 6px;
  transform: rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:last-child {
  top: 6px;
  transform: rotate(-45deg);
}

.mobile-nav {
  max-height: calc(100vh - var(--link-header-height));
  padding: 0.5rem 1rem 1rem;
  overflow-y: auto;
  border-top: 1px solid rgb(34 48 58 / 8%);
}

.mobile-nav > .menu {
  display: grid;
  width: min(100%, 720px);
  gap: 0.25rem;
  padding: 0.5rem;
  margin-left: auto;
  border: 1px solid rgb(34 48 58 / 10%);
  border-radius: 24px;
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
}

.mobile-nav a {
  display: flex;
  min-height: 48px;
  align-items: center;
  padding: 0.65rem 1rem;
  border-radius: 16px;
  font-weight: 700;
  text-decoration: none;
}

.mobile-nav a:hover,
.mobile-nav a:focus-visible,
.mobile-nav a[aria-current="page"],
.mobile-nav .current-menu-item > a,
.mobile-nav .current-menu-ancestor > a {
  background: var(--link-mist);
  color: var(--link-teal-aa);
}

.mobile-nav .sub-menu {
  display: grid;
  gap: 0.15rem;
  padding: 0 0 0.5rem 1rem;
}

.mobile-nav .sub-menu a {
  min-height: 42px;
  font-size: 0.95rem;
}

.mobile-nav__contact {
  width: min(calc(100% - 1rem), 704px);
  margin: 0.5rem auto 0;
  justify-content: center;
  background: var(--link-teal);
  color: var(--link-white);
}

.mobile-nav__contact:hover,
.mobile-nav__contact:focus-visible {
  background: var(--link-ink) !important;
  color: var(--link-white) !important;
}

/* Buttons and inline actions */
.link-button,
.wp-element-button,
.wp-block-button__link {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 0.85rem 1.5rem;
  border: 0;
  border-radius: var(--link-radius-pill);
  background: var(--link-teal);
  color: var(--link-white);
  box-shadow: 0 12px 24px rgb(29 93 122 / 18%);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: color var(--link-transition), background var(--link-transition), box-shadow var(--link-transition), transform var(--link-transition);
}

.link-button:hover,
.wp-element-button:hover,
.wp-block-button__link:hover {
  background: var(--link-ink);
  color: var(--link-white);
  box-shadow: 0 16px 30px rgb(34 48 58 / 20%);
  transform: translateY(-2px);
}

.link-button--small,
.link-button-small {
  min-height: 44px;
  padding: 0.625rem 1.2rem;
  font-size: 0.9375rem;
}

.link-button--coral,
.link-button-coral,
.is-style-coral .wp-block-button__link {
  background: var(--link-coral);
  color: var(--link-ink);
  box-shadow: 0 12px 24px rgb(244 119 46 / 17%);
}

.link-button--sun,
.link-button-sun,
.is-style-sun .wp-block-button__link {
  background: var(--link-sun);
  color: var(--link-ink);
  box-shadow: none;
}

.link-button--white,
.link-button-white,
.link-button--light,
.is-style-white .wp-block-button__link {
  background: var(--link-white);
  color: var(--link-ink);
  box-shadow: none;
}

.link-button--outline,
.link-button-outline,
.link-button--secondary,
.link-button--outline-light,
.link-button--outline-dark,
.is-style-outline > .wp-block-button__link {
  border: 1px solid rgb(34 48 58 / 24%);
  background: transparent;
  color: var(--link-ink);
  box-shadow: none;
}

.link-button--outline:hover,
.link-button-outline:hover,
.link-button--secondary:hover,
.link-button--outline-light:hover,
.link-button--outline-dark:hover,
.is-style-outline > .wp-block-button__link:hover {
  border-color: var(--link-coral);
  background: var(--link-white);
  color: var(--link-teal-aa);
}

.link-button--static,
.link-button--static:hover {
  cursor: default;
  box-shadow: none;
  transform: none;
}

.link-button--light:hover {
  background: var(--link-sun);
  color: var(--link-ink);
  box-shadow: none;
}

.link-button--outline-light {
  border-color: rgb(255 255 255 / 48%);
  background: transparent;
  color: var(--link-white);
}

.link-button--outline-light:hover {
  border-color: rgb(255 255 255 / 72%);
  background: rgb(255 255 255 / 10%);
  color: var(--link-white);
  box-shadow: none;
}

.page-hero--coral .link-button--outline-light,
.page-hero--sky .link-button--outline-light {
  border-color: rgb(34 48 58 / 38%);
  color: var(--link-ink);
}

.page-hero--coral .link-button--outline-light:hover,
.page-hero--sky .link-button--outline-light:hover {
  border-color: var(--link-ink);
  background: rgb(255 255 255 / 36%);
  color: var(--link-ink);
}

.link-button--sun:not(.link-button--static):hover {
  background: var(--link-white);
  color: var(--link-ink);
  box-shadow: none;
}

.link-button--static.link-button--sun:hover {
  background: var(--link-sun);
  color: var(--link-ink);
}

.text-link,
.record-card__link,
.section-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--link-teal-aa);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.3em;
  transition: color var(--link-transition), text-decoration-color var(--link-transition);
}

.text-link:hover,
.record-card__link:hover,
.section-link:hover {
  color: var(--link-ink);
  text-decoration-color: var(--link-coral);
}

.eyebrow,
.section__eyebrow,
.record-card__eyebrow,
.archive-header__eyebrow,
.record-detail__eyebrow {
  margin: 0;
  color: var(--link-teal-aa);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

/* Home hero */
:is(.home-hero, .front-hero) {
  position: relative;
  overflow: hidden;
  background: var(--link-cream);
}

:is(.home-hero__inner, .front-hero__inner) {
  display: grid;
  min-height: 720px;
  align-items: center;
  gap: clamp(3rem, 5vw, 5rem);
  padding-block: clamp(3.5rem, 6vw, 5rem);
}

:is(.home-hero__copy, .front-hero__copy) {
  position: relative;
  z-index: 2;
}

:is(.home-hero__copy, .front-hero__copy) h1 {
  max-width: 880px;
  margin-top: 1.5rem;
  font-size: clamp(3.35rem, 7vw, 7.2rem);
  letter-spacing: -0.06em;
  line-height: 0.93;
}

:is(.home-hero__lead, .front-hero__lead) {
  max-width: 760px;
  margin: 2rem 0 0;
  color: rgb(34 48 58 / 78%);
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  line-height: 1.6;
}

:is(.home-hero__actions, .front-hero__actions, .hero-actions, .button-row) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-top: 2.25rem;
}

:is(.home-hero__trust, .front-hero__trust, .trust-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.75rem;
  margin-top: 2.5rem;
  color: var(--link-teal-aa);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

:is(.home-hero__trust, .front-hero__trust, .trust-row) span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

:is(.home-hero__trust, .front-hero__trust, .trust-row) span::before {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--link-coral);
  content: "";
}

:is(.home-hero__visual, .front-hero__visual, .home-hero__media) {
  position: relative;
  min-height: 500px;
  overflow: hidden;
  border-radius: var(--link-radius-hero);
  background: var(--link-ink);
  box-shadow: 0 28px 80px rgb(34 48 58 / 16%);
  isolation: isolate;
}

:is(.home-hero__visual, .front-hero__visual, .home-hero__media)::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(to top, rgb(34 48 58 / 78%), transparent 65%);
  content: "";
}

:is(.home-hero__visual, .front-hero__visual) > img,
:is(.home-hero__media) > img,
:is(.home-hero__image, .front-hero__image) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

:is(.home-hero__visual, .front-hero__visual, .home-hero__media):hover > img {
  transform: scale(1.025);
}

:is(.home-hero__caption, .front-hero__caption, .home-hero__media figcaption) {
  position: absolute;
  z-index: 3;
  right: 1.75rem;
  bottom: 1.75rem;
  left: 1.75rem;
  max-width: 640px;
  margin: 0;
  color: var(--link-white);
  font-family: "Nunito", Arial, sans-serif;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  line-height: 1.35;
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) {
  position: absolute;
  z-index: 3;
  top: 1.75rem;
  right: 1.75rem;
  width: 176px;
  height: 112px;
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) span {
  position: absolute;
  width: 96px;
  height: 80px;
  border-radius: 55% 48% 52% 47%;
  box-shadow: 0 0 38px rgb(29 93 122 / 42%);
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) span:first-child {
  top: 0;
  left: 0;
  background: var(--link-teal);
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) span:last-child {
  right: 0;
  bottom: 0;
  background: var(--link-coral);
  box-shadow: 0 0 38px rgb(244 119 46 / 38%);
}

.approach-strip,
.mission-strip {
  background: var(--link-ink);
  color: var(--link-white);
}

.approach-strip__inner,
.mission-strip__inner,
.approach-strip > .wrap,
.mission-strip > .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  padding-block: 2.5rem;
  font-family: "Nunito", Arial, sans-serif;
  font-size: clamp(1.25rem, 2.5vw, 2.25rem);
  font-weight: 700;
}

.approach-strip .accent,
.mission-strip .accent,
.approach-strip__separator,
.mission-strip__separator,
.approach-strip b,
.mission-strip b {
  color: var(--link-coral);
}

.approach-strip strong,
.mission-strip strong {
  color: var(--link-sun);
}

/* Page heroes */
.page-hero {
  position: relative;
  overflow: hidden;
  background: var(--link-teal);
  color: var(--link-white);
  isolation: isolate;
}

.page-hero::before {
  position: absolute;
  z-index: -1;
  top: -6rem;
  right: -4rem;
  width: 20rem;
  height: 20rem;
  border: 54px solid rgb(255 255 255 / 8%);
  border-radius: 50%;
  content: none;
}

.page-hero::after {
  position: absolute;
  z-index: -1;
  right: 22%;
  bottom: -7rem;
  width: 15rem;
  height: 15rem;
  border-radius: 50%;
  background: rgb(245 184 64 / 16%);
  content: none;
}

.page-hero--ink {
  background: var(--link-ink);
}

.page-hero--teal {
  background: var(--link-teal);
}

.page-hero--coral {
  background: var(--link-coral);
  color: var(--link-ink);
}

.page-hero--sky {
  background: var(--link-sky-tint);
  color: var(--link-ink);
}

.page-hero__inner {
  position: relative;
  z-index: 1;
  display: block;
  padding-block: clamp(5rem, 9vw, 8rem);
}

.page-hero__copy {
  align-self: center;
}

.page-hero .eyebrow {
  color: inherit;
}

.page-hero--ink .eyebrow {
  color: var(--link-sun);
}

.page-hero--sky .eyebrow {
  color: var(--link-teal-aa);
}

.page-hero h1 {
  max-width: 1080px;
  margin-top: 1.25rem;
  font-size: clamp(2.75rem, 7vw, 6.6rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.page-hero__lead {
  max-width: 820px;
  margin: 1.75rem 0 0;
  color: inherit;
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  line-height: 1.6;
  opacity: 0.9;
}

.page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.25rem;
}

.page-hero__media {
  margin-top: 3rem;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 20%);
  border-radius: var(--link-radius-panel);
  background: rgb(255 255 255 / 8%);
  box-shadow: 0 28px 80px rgb(34 48 58 / 18%);
}

.page-hero__media img {
  width: 100%;
  max-height: 34rem;
  object-fit: cover;
}

.page-hero__mark {
  position: absolute;
  top: 50%;
  right: 4%;
  width: min(30vw, 340px);
  aspect-ratio: 1.45;
  opacity: 0.17;
  transform: translateY(-50%);
}

.page-hero__decor {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.page-hero__decor span {
  position: absolute;
  border-radius: 50%;
}

.page-hero__decor span:first-child {
  top: -6rem;
  right: -4rem;
  width: 20rem;
  height: 20rem;
  border: 54px solid rgb(255 255 255 / 8%);
}

.page-hero__decor span:last-child {
  right: 22%;
  bottom: -7rem;
  width: 15rem;
  height: 15rem;
  background: rgb(245 184 64 / 16%);
}

.page-hero__mark span {
  position: absolute;
  width: 65%;
  height: 72%;
  border: 3px solid currentcolor;
  border-radius: 52% 48% 50% 49%;
}

.page-hero__mark span:first-child {
  top: 0;
  left: 0;
}

.page-hero__mark span:last-child {
  right: 0;
  bottom: 0;
}

/* Section system */
.section,
.link-section,
.content-section {
  position: relative;
}

.section--muted,
.link-section--muted,
.content-section--muted,
.has-mist-background-color {
  background: rgb(243 241 234 / 55%);
}

.section__inner,
.link-section__inner,
.content-section__inner {
  display: grid;
  gap: 1.75rem;
  padding-block: clamp(4rem, 7vw, 6rem);
}

.section__header h2,
.link-section__header h2,
.content-section__header h2,
.section-heading h2 {
  max-width: 720px;
  margin-top: 0.75rem;
  font-size: clamp(2rem, 4vw, 4.15rem);
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.section__intro,
.link-section__intro,
.content-section__intro,
.section-heading > p,
.section-heading p:not(.eyebrow) {
  max-width: 620px;
  margin: 1.25rem 0 0;
  color: rgb(34 48 58 / 76%);
  font-size: 1.125rem;
  line-height: 1.7;
}

.section__body > :first-child,
.link-section__body > :first-child,
.content-section__body > :first-child,
.entry-content > :first-child {
  margin-top: 0;
}

.section__body > :last-child,
.link-section__body > :last-child,
.content-section__body > :last-child,
.entry-content > :last-child {
  margin-bottom: 0;
}

.section--full .section__inner,
.section--one-column .section__inner {
  display: block;
}

.section-cta {
  margin-top: 2rem;
}

.info-grid + .text-link,
.section-button {
  margin-top: 2rem;
}

.link-section__inner > .section-button,
.content-section__inner > .section-button {
  width: fit-content;
  justify-self: start;
}

.section-notice,
.listing-section__notice {
  margin-top: 2rem;
}

.prose-stack {
  display: grid;
  gap: 1.25rem;
  color: rgb(34 48 58 / 80%);
  font-size: 1.125rem;
  line-height: 1.75;
}

.prose-stack p {
  margin: 0;
}

.lead-copy {
  max-width: 900px;
  margin: 0;
  color: rgb(34 48 58 / 80%);
  font-size: 1.25rem;
  line-height: 1.7;
}

/* Card and grid system */
.card-grid,
.info-grid,
.record-grid,
.topic-grid,
.commitment-grid,
.project-grid,
.resource-grid,
.news-grid,
.team-grid {
  display: grid;
  gap: 1.25rem;
}

.info-card,
.topic-card,
.feature-card {
  display: flex;
  min-height: 256px;
  flex-direction: column;
  padding: 1.75rem;
  border-radius: var(--link-radius-card);
  background: var(--link-white);
  box-shadow: 0 16px 45px rgb(34 48 58 / 6%);
  text-decoration: none;
  transition: box-shadow 200ms ease, transform 200ms ease;
}

a.info-card:hover,
a.topic-card:hover,
a.feature-card:hover {
  box-shadow: 0 22px 50px rgb(34 48 58 / 12%);
  transform: translateY(-4px);
}

.info-card--teal,
.topic-card--teal,
.card--teal {
  background: var(--link-teal-tint);
}

.info-card--coral,
.topic-card--coral,
.card--coral {
  background: var(--link-coral-tint);
}

.info-card--sky,
.topic-card--sky,
.card--sky {
  background: var(--link-sky-tint);
}

.info-card--sun,
.topic-card--sun,
.card--sun {
  background: var(--link-sun-tint);
}

.info-card__number,
.topic-card__number,
.card-number {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--link-white);
  color: var(--link-teal-aa);
  font-size: 0.875rem;
  font-weight: 700;
}

.info-card h3,
.topic-card h3,
.feature-card h3,
.info-card__title {
  margin-top: 1.75rem;
  font-size: 1.5rem;
  letter-spacing: -0.025em;
  line-height: 1.22;
}

.info-card:not(:has(.info-card__number)) h3,
.topic-card:not(:has(.topic-card__number)) h3,
.feature-card:not(:has(.card-number)) h3 {
  margin-top: 0;
}

.info-card p,
.topic-card p,
.feature-card p,
.info-card__text {
  margin: 1rem 0 0;
  color: rgb(34 48 58 / 78%);
  font-size: 1.0625rem;
  line-height: 1.65;
}

.info-card__link,
.topic-card__link {
  margin-top: auto;
  padding-top: 1.75rem;
  color: var(--link-teal-aa);
  font-weight: 700;
}

.anchor-card,
.anchor-card > .info-card {
  height: 100%;
}

.record-grid {
  align-items: stretch;
  gap: 1.5rem;
}

.record-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 1.75rem;
  overflow: hidden;
  border: 1px solid rgb(34 48 58 / 10%);
  border-radius: var(--link-radius-panel);
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
}

.record-card__image {
  display: block;
  margin: -0.25rem -0.25rem 1.5rem;
  overflow: hidden;
  border-radius: 18px;
  background: var(--link-mist);
}

.record-card__image img {
  width: 100%;
  height: 192px;
  object-fit: cover;
  transition: transform 500ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.record-card:hover .record-card__image img {
  transform: scale(1.025);
}

.record-card__meta,
.record-detail__meta,
.single-record__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.status-pill {
  display: inline-flex;
  width: fit-content;
  padding: 0.25rem 0.75rem;
  border-radius: var(--link-radius-pill);
  background: var(--link-sun-tint);
  color: var(--link-ink);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.5;
}

.record-card h2,
.record-card h3 {
  margin-top: 1.5rem;
  font-size: clamp(1.65rem, 2.5vw, 1.9rem);
  line-height: 1.2;
}

.record-card h2 a,
.record-card h3 a {
  text-decoration: none;
}

.record-card h2 a:hover,
.record-card h3 a:hover {
  color: var(--link-teal-aa);
}

.record-card > p,
.record-card__summary {
  margin: 1rem 0 0;
  color: rgb(34 48 58 / 74%);
  font-size: 1.0625rem;
  line-height: 1.65;
}

.tag-list,
.record-detail__tags,
.single-record__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

.tag-list span,
.tag-list a,
.record-detail__tags span,
.record-detail__tags a,
.single-record__tags span,
.single-record__tags a {
  display: inline-flex;
  padding: 0.3rem 0.75rem;
  border-radius: var(--link-radius-pill);
  background: var(--link-mist);
  color: var(--link-ink);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
}

.record-card__link {
  margin-top: auto;
  padding-top: 2rem;
}

/* Notices and editorial panels */
.link-notice,
.wp-block-quote {
  padding: 1.75rem;
  border: 0;
  border-left: 6px solid var(--link-teal);
  border-radius: var(--link-radius-card);
  background: var(--link-teal-tint);
  color: var(--link-ink);
}

.link-notice--coral {
  border-left-color: var(--link-coral);
  background: var(--link-coral-tint);
}

.link-notice--sun {
  border-left-color: var(--link-sun);
  background: var(--link-sun-tint);
}

.link-notice h2,
.link-notice h3 {
  font-size: 1.25rem;
}

.link-notice__content,
.link-notice > div {
  margin-top: 0.75rem;
  color: rgb(34 48 58 / 80%);
  line-height: 1.65;
}

.link-notice :last-child {
  margin-bottom: 0;
}

.managed-content {
  display: grid;
  gap: 1.5rem;
  padding-block: clamp(3.5rem, 6vw, 5rem);
}

.managed-content__section,
.managed-content__panel,
.content-panel,
.editorial-card,
.record-detail__section,
.single-record__section {
  padding: clamp(1.75rem, 4vw, 2.5rem);
  border-radius: var(--link-radius-panel);
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
}

.managed-content__section h2,
.managed-content__panel h2,
.content-panel h2,
.editorial-card h2,
.record-detail__section h2,
.single-record__section h2 {
  font-size: clamp(1.75rem, 3vw, 2.2rem);
}

.managed-content__section p,
.managed-content__panel p,
.content-panel p,
.editorial-card p,
.record-detail__section p,
.single-record__section p {
  max-width: 900px;
  margin: 1.25rem 0 0;
  color: rgb(34 48 58 / 78%);
  line-height: 1.7;
}

.managed-content__section ul,
.managed-content__panel ul,
.content-panel ul,
.editorial-card ul,
.record-detail__section ul,
.single-record__section ul {
  display: grid;
  gap: 0.75rem;
  padding-left: 1.35rem;
  margin: 1.5rem 0 0;
}

.managed-content__section li::marker,
.managed-content__panel li::marker,
.content-panel li::marker,
.editorial-card li::marker,
.record-detail__section li::marker,
.single-record__section li::marker,
.entry-content li::marker {
  color: var(--link-coral);
}

/* Archives, breadcrumbs and details */
.archive-main,
.archive-content,
.page-content {
  padding-block: clamp(4rem, 7vw, 6rem);
}

.listing-section {
  padding-block: clamp(4rem, 7vw, 6rem);
}

.listing-section .section-title {
  margin-bottom: 2rem;
  font-size: clamp(2rem, 4vw, 4.15rem);
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.archive-header {
  width: var(--link-wrap);
  margin-inline: auto;
  padding-block: clamp(4rem, 7vw, 6rem) 2rem;
}

.archive-header h1 {
  max-width: 1000px;
  margin-top: 1rem;
  font-size: clamp(2.8rem, 7vw, 6.4rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.archive-header__lead,
.archive-description {
  max-width: 760px;
  margin: 1.5rem 0 0;
  color: rgb(34 48 58 / 74%);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  line-height: 1.65;
}

.archive-empty,
.no-results {
  padding: 2rem;
  border-left: 6px solid var(--link-sun);
  border-radius: var(--link-radius-card);
  background: var(--link-sun-tint);
}

.status-region {
  padding-top: 2rem;
}

.breadcrumbs {
  padding-top: 2rem;
  color: rgb(34 48 58 / 74%);
  font-size: 0.875rem;
}

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

.breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.breadcrumbs a {
  color: var(--link-teal-aa);
  font-weight: 700;
  text-decoration: none;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.record-detail,
.single-record {
  padding-block: clamp(3rem, 6vw, 5rem);
}

.record-detail__header,
.single-record__header {
  margin-bottom: 2.5rem;
}

.record-detail h1,
.single-record h1,
.entry-header h1 {
  max-width: 1080px;
  margin-top: 1.5rem;
  font-size: clamp(2.8rem, 7vw, 6.4rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.record-detail__lead,
.single-record__lead,
.entry-summary {
  max-width: 820px;
  margin: 1.75rem 0 0;
  color: rgb(34 48 58 / 74%);
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  line-height: 1.65;
}

.record-detail__media,
.single-record__media,
.entry-featured-image {
  margin-top: 2.5rem;
  overflow: hidden;
  border-radius: var(--link-radius-panel);
  background: var(--link-mist);
  box-shadow: 0 18px 55px rgb(34 48 58 / 8%);
}

.record-detail__media img,
.single-record__media img,
.entry-featured-image img {
  width: 100%;
  max-height: 610px;
  object-fit: cover;
}

.record-detail__media figcaption,
.single-record__media figcaption,
.entry-featured-image figcaption {
  padding: 0.75rem 1rem;
  color: var(--link-muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

.record-detail__meta time,
.single-record__meta time {
  color: var(--link-muted);
  font-size: 0.875rem;
}

.record-detail__content,
.single-record__content {
  display: grid;
  gap: 1.75rem;
  margin-top: 3.5rem;
}

.record-detail__cta,
.single-record__cta {
  margin-top: 2.5rem;
}

.pagination,
.nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-top: 3rem;
}

.pagination > ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.pagination a.page-numbers,
.pagination span.page-numbers,
.nav-links a.page-numbers,
.nav-links span.page-numbers {
  display: inline-grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0.4rem 0.8rem;
  border-radius: var(--link-radius-pill);
  background: var(--link-white);
  color: var(--link-ink);
  font-weight: 700;
  text-decoration: none;
}

.pagination .page-numbers.current,
.pagination a.page-numbers:hover,
.nav-links .page-numbers.current,
.nav-links a.page-numbers:hover {
  background: var(--link-teal);
  color: var(--link-white);
}

.post-navigation {
  display: grid;
  gap: 1rem;
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.post-navigation > div:last-child {
  text-align: right;
}

.post-navigation a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  padding: 0.7rem 1rem;
  border-radius: 18px;
  background: var(--link-white);
  color: var(--link-teal-aa);
  font-weight: 700;
  text-decoration: none;
}

.post-navigation a:hover {
  color: var(--link-ink);
  box-shadow: var(--link-shadow-card);
}

/* Forms */
.link-form,
.link-public-form,
.link-core-form,
.contact-form,
.newsletter-form:not(.site-footer .newsletter-form),
.wp-block-form {
  display: grid;
  gap: 1.25rem;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  border-radius: var(--link-radius-panel);
  background: var(--link-white);
  box-shadow: 0 20px 60px rgb(34 48 58 / 7%);
}

fieldset {
  min-width: 0;
  padding: 0;
  border: 0;
  margin: 0;
}

legend {
  padding: 0;
  margin-bottom: 0.75rem;
  font-family: "Nunito", Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
}

.form-grid,
.link-form__row,
.link-form__grid,
.link-public-form__grid,
.link-core-form__grid {
  display: grid;
  gap: 1.25rem;
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) label,
.form-label {
  font-weight: 700;
}

.link-form__field,
.link-public-form__field,
.link-core-form__field,
.standalone-form label:has(> input:not([type="checkbox"]):not([type="radio"])),
.standalone-form label:has(> select),
.standalone-form label:has(> textarea),
.site-footer label:has(> input:not([type="checkbox"]):not([type="radio"])) {
  display: grid;
  gap: 0.5rem;
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) select,
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) textarea {
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 1rem;
  border: 1px solid var(--link-control-border);
  border-radius: var(--link-radius-small);
  background: var(--link-cream);
  color: var(--link-ink);
  font-weight: 400;
  line-height: 1.4;
  transition: border-color var(--link-transition), box-shadow var(--link-transition), background var(--link-transition);
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) textarea {
  min-height: 160px;
  resize: vertical;
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) input::placeholder,
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) textarea::placeholder {
  color: rgb(34 48 58 / 68%);
  opacity: 1;
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) input:hover,
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) select:hover,
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) textarea:hover {
  border-color: var(--link-ink);
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) input:focus-visible,
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) select:focus-visible,
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) textarea:focus-visible {
  border-color: var(--link-teal-aa);
  background: var(--link-white);
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) input[aria-invalid="true"],
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) select[aria-invalid="true"],
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .search-form, .site-footer) textarea[aria-invalid="true"],
.has-error input,
.has-error select,
.has-error textarea {
  border-color: var(--link-coral);
  border-width: 2px;
}

:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .site-footer) input[type="checkbox"],
:is(.link-form, .link-public-form, .link-core-form, .standalone-form, .site-footer) input[type="radio"] {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  accent-color: var(--link-teal);
}

.consent-field,
.checkbox-field,
.link-consent,
.link-form__consent,
.link-public-form__consent,
.link-core-form__consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  color: rgb(34 48 58 / 76%);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.6;
}

.form-status,
.form-message,
.link-form__status,
.link-public-form__status,
.link-core-form__status {
  padding: 1rem 1.25rem;
  border-left: 5px solid var(--link-teal);
  border-radius: 16px;
  background: var(--link-teal-tint);
}

.form-status--error,
.form-message--error,
.link-form__status--error,
.link-public-form__status--error,
.link-core-form__status--error {
  border-left-color: var(--link-coral);
  background: var(--link-coral-tint);
}

.form-help,
.form-note,
.link-form__help,
.link-form__note,
.link-public-form__help,
.link-core-form__help {
  margin: 0;
  color: var(--link-muted);
  font-size: 0.875rem;
  line-height: 1.55;
}

.form-error,
.link-form__error,
.link-public-form__error,
.link-core-form__error {
  margin: 0;
  color: #963726;
  font-size: 0.875rem;
  font-weight: 700;
}

.link-form__honeypot,
.link-public-form__honeypot,
.link-core-form__honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.newsletter-inline,
.newsletter-form--compact,
.link-form--compact,
.link-newsletter-form,
.site-footer form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.standalone-form {
  padding: clamp(1.5rem, 4vw, 2rem);
  border-radius: var(--link-radius-panel);
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
}

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

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

.standalone-form .link-form,
.standalone-form .newsletter-form,
.standalone-form .link-public-form,
.standalone-form .link-core-form {
  padding: 0;
  margin: 0;
  background: transparent;
  box-shadow: none;
}

.newsletter-inline input,
.newsletter-form--compact input,
.link-form--compact input[type="email"],
.link-newsletter-form input[type="email"],
.site-footer form input[type="email"] {
  min-width: min(100%, 240px);
  flex: 1 1 240px;
  border-radius: var(--link-radius-pill);
  background: var(--link-white);
}

.newsletter-inline button,
.newsletter-form--compact button,
.link-form--compact button,
.link-newsletter-form button,
.site-footer form button,
.site-footer form input[type="submit"] {
  flex: 0 0 auto;
  background: var(--link-coral);
  color: var(--link-ink);
  box-shadow: none;
}

/* LINK Hub */
.hub-banner,
.hub-hero,
.hub-feature,
.hub-promo {
  background: var(--link-teal);
  color: var(--link-white);
}

.hub-banner__inner,
.hub-hero__inner,
.hub-feature__inner,
.hub-promo__inner {
  display: grid;
  gap: 2.5rem;
  padding-block: clamp(4rem, 7vw, 6rem);
}

.hub-banner .eyebrow,
.hub-hero .eyebrow,
.hub-feature .eyebrow,
.hub-promo .eyebrow {
  color: var(--link-white);
}

.hub-banner h2,
.hub-hero h1,
.hub-feature h2,
.hub-promo h2 {
  max-width: 1000px;
  margin-top: 1rem;
  font-size: clamp(2.5rem, 5vw, 5.2rem);
  letter-spacing: -0.05em;
  line-height: 1;
}

.hub-banner p,
.hub-hero p,
.hub-feature p,
.hub-promo p {
  max-width: 820px;
  color: var(--link-white);
  font-size: 1.125rem;
  line-height: 1.7;
}

.hub-panel,
.hub-challenge,
.hub-safety,
.hub-promo__card {
  padding: clamp(1.75rem, 4vw, 2.25rem);
  border-radius: 36px;
  background: rgb(255 255 255 / 10%);
}

.hub-promo__card .link-button {
  margin-top: 1.75rem;
}

.hub-grid,
.participation-grid,
.mentor-grid {
  display: grid;
  gap: 1.25rem;
}

.hub-rule-list,
.safeguarding-list {
  display: grid;
  gap: 1rem;
  padding: 0;
  list-style: none;
}

.hub-rule-list li,
.safeguarding-list li {
  padding: 1.25rem;
  border-radius: 20px;
  background: var(--link-white);
  color: var(--link-ink);
}

.split-cards {
  display: grid;
  gap: 1.25rem;
}

.plain-card {
  padding: 1.75rem;
  border-radius: var(--link-radius-card);
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
}

.plain-card h3 {
  font-size: 1.5rem;
}

.plain-card ul {
  display: grid;
  gap: 0.75rem;
  padding-left: 1.25rem;
  margin: 1.25rem 0 0;
}

.plain-card li::marker {
  color: var(--link-coral);
}

.rule-list,
.activity-list,
.number-list,
.case-list {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.rule-list li,
.activity-list li,
.number-list li,
.case-list li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  border-radius: 24px;
  background: var(--link-white);
  box-shadow: 0 12px 35px rgb(34 48 58 / 5%);
  line-height: 1.65;
}

.number-list li > span,
.case-list li > span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--link-coral-tint);
  color: var(--link-ink);
  font-size: 0.875rem;
  font-weight: 700;
}

.case-list li > span {
  background: transparent;
  color: var(--link-coral);
}

.number-list li p {
  padding-top: 0.25rem;
  margin: 0;
}

.activity-list li > span {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  margin-top: 0.55em;
  border-radius: 50%;
  background: var(--link-coral);
}

.link-mode-child .page-hero h1 {
  letter-spacing: -0.045em;
}

.link-mode-child .info-card,
.link-mode-child .case-list li,
.link-mode-child .game-badge {
  box-shadow: 0 16px 40px rgb(34 48 58 / 8%);
}

.link-mode-institutional .page-hero--ink {
  background: var(--link-ink);
}

/* Child-mode game */
.game-page,
.page-template-page-game {
  --game-radius: 32px;
}

.game-page .page-hero,
.page-template-page-game .page-hero {
  background: var(--link-teal);
}

.game-steps,
.case-grid,
.game-cases,
.badge-grid,
.game-badges {
  display: grid;
  gap: 1.25rem;
}

.case-card,
.game-case {
  padding: 1.5rem;
  border-radius: 24px;
  background: var(--link-white);
  box-shadow: 0 12px 35px rgb(34 48 58 / 5%);
  font-weight: 700;
}

.case-card__number,
.game-case__number {
  margin-right: 0.75rem;
  color: var(--link-coral);
}

.detective-badge,
.game-badge {
  display: grid;
  min-height: 160px;
  place-items: center;
  padding: 2rem;
  border: 10px solid var(--link-mist);
  border-radius: 50%;
  background: var(--link-white);
  font-family: "Nunito", Arial, sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

.detective-badge small,
.game-badge small {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--link-teal-aa);
  font-family: "Mulish", Arial, sans-serif;
  font-size: 0.8rem;
}

/* Transparency and documents */
.document-list,
.transparency-list {
  display: grid;
  gap: 1rem;
}

.document-card,
.document-row,
.transparency-item,
.document-list > article {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.25rem;
  border-radius: 18px;
  background: var(--link-white);
}

.document-card h3,
.document-row h3,
.transparency-item h3,
.document-list > article h3 {
  font-size: 1.25rem;
}

.document-card__status,
.document-row__status,
.document-status {
  display: inline-flex;
  width: fit-content;
  padding: 0.25rem 0.75rem;
  border-radius: var(--link-radius-pill);
  background: var(--link-sun-tint);
  font-size: 0.875rem;
  font-weight: 700;
}

/* WordPress-authored content */
.entry-content {
  padding-block: clamp(3.5rem, 6vw, 5rem);
  font-size: 1.125rem;
}

.managed-content__panel.entry-content,
.record-detail__content.entry-content,
.single-record__content.entry-content {
  width: 100%;
  padding-block: 0;
}

.entry-content > * {
  max-width: 900px;
}

.entry-content > .alignwide,
.entry-content > .alignfull,
.entry-content > .wp-block-columns,
.entry-content > .wp-block-group {
  max-width: none;
}

.entry-content h2 {
  margin: 2.75rem 0 1.25rem;
  font-size: clamp(2rem, 4vw, 3.5rem);
  letter-spacing: -0.045em;
  line-height: 1.05;
}

.entry-content h3 {
  margin: 2.25rem 0 1rem;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.entry-content h4 {
  margin: 2rem 0 0.75rem;
  font-size: 1.25rem;
}

.entry-content p,
.entry-content li {
  line-height: 1.75;
}

.entry-content a:not(.wp-element-button):not(.wp-block-button__link) {
  color: var(--link-teal-aa);
  font-weight: 700;
}

.entry-content a:not(.wp-element-button):not(.wp-block-button__link):hover {
  color: var(--link-ink);
  text-decoration-color: var(--link-coral);
}

.entry-content ul,
.entry-content ol {
  padding-left: 1.4em;
}

.wp-block-columns {
  gap: 1.5rem;
}

.wp-block-image,
.wp-block-gallery,
.wp-block-cover,
.wp-block-media-text {
  margin-block: 2rem;
}

.wp-block-image img,
.wp-block-cover,
.wp-block-media-text__media img {
  border-radius: var(--link-radius-card);
}

.wp-block-image figcaption,
.wp-element-caption {
  color: var(--link-muted);
  font-size: 0.875rem;
  text-align: left;
}

.wp-block-pullquote {
  padding: clamp(2rem, 5vw, 4rem);
  border-top: 4px solid var(--link-coral);
  border-bottom: 4px solid var(--link-coral);
  color: var(--link-ink);
}

.wp-block-pullquote blockquote {
  max-width: 900px;
  margin-inline: auto;
}

.wp-block-pullquote p {
  font-family: "Nunito", Arial, sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  font-weight: 700;
  line-height: 1.25;
}

.wp-block-separator {
  width: 100%;
  margin-block: 3rem;
  border: 0;
  border-top: 1px solid rgb(34 48 58 / 16%);
}

.wp-block-table {
  overflow-x: auto;
}

.wp-block-table table {
  width: 100%;
  border-collapse: collapse;
}

.wp-block-table th,
.wp-block-table td {
  padding: 0.85rem 1rem;
  border: 1px solid rgb(34 48 58 / 18%);
  text-align: left;
  vertical-align: top;
}

.wp-block-table th {
  background: var(--link-mist);
  font-weight: 700;
}

.wp-block-file {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-radius: 18px;
  background: var(--link-white);
}

.wp-block-file__button {
  margin-left: auto;
}

.post-password-form,
.search-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  width: var(--link-wrap-narrow);
  margin: 3rem auto;
}

.search-form {
  display: grid;
  max-width: 760px;
  gap: 0.5rem;
  margin: 0 0 2.5rem;
}

.search-form > div {
  display: flex;
  gap: 0.75rem;
}

.search-form input[type="search"] {
  min-width: 0;
  flex: 1 1 auto;
  border-radius: var(--link-radius-pill);
  background: var(--link-white);
}

.search-form button {
  flex: 0 0 auto;
}

.search-results {
  display: grid;
  gap: 1.25rem;
}

.search-result {
  padding: clamp(1.5rem, 4vw, 2rem);
  border-radius: var(--link-radius-card);
  background: var(--link-white);
  box-shadow: var(--link-shadow-card);
}

.search-result h2 {
  margin-top: 0.75rem;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.search-result h2 a {
  text-decoration: none;
}

.search-result h2 a:hover {
  color: var(--link-teal-aa);
}

.search-result > p:last-child {
  max-width: 820px;
  margin: 1rem 0 0;
  color: rgb(34 48 58 / 76%);
  line-height: 1.7;
}

.post-password-form label,
.search-form label {
  flex: 1 1 260px;
}

.error-404,
.not-found {
  width: var(--link-wrap-narrow);
  min-height: 55vh;
  padding-block: clamp(5rem, 10vw, 9rem);
}

.not-found-help {
  padding-block: clamp(3rem, 6vw, 5rem);
}

.not-found-help h2 {
  font-size: clamp(1.75rem, 4vw, 3rem);
}

.error-404 h1,
.not-found h1 {
  max-width: 900px;
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: 0.95;
}

.error-404 p,
.not-found p {
  max-width: 700px;
  margin-top: 1.5rem;
  font-size: 1.25rem;
}

.legal-note {
  max-width: 680px;
  margin: 1.25rem 0 0;
  color: var(--link-muted);
  font-size: 0.875rem;
  line-height: 1.6;
}

/* Footer */
.site-footer {
  margin-top: clamp(5rem, 8vw, 7rem);
  background: var(--link-ink);
  color: var(--link-white);
}

.site-footer__inner {
  display: grid;
  gap: 2.5rem;
  padding-block: clamp(4rem, 7vw, 5rem);
}

.site-footer h2 {
  margin-bottom: 1rem;
  color: var(--link-white);
  font-size: 1.15rem;
  letter-spacing: -0.015em;
}

.site-footer p {
  color: rgb(255 255 255 / 78%);
  line-height: 1.65;
}

.site-footer a {
  color: var(--link-white);
}

.site-footer a:hover {
  color: var(--link-sun);
}

.site-footer__brand img {
  width: min(100%, 176px);
  max-height: 78px;
  object-fit: contain;
  object-position: left center;
}

.site-footer__logo-tile {
  display: inline-flex;
  width: fit-content;
  padding: 0.75rem;
  border-radius: 16px;
  background: var(--link-white);
  text-decoration: none;
}

.site-footer__brand p {
  max-width: 360px;
  margin-top: 1.5rem;
  font-size: 1.125rem;
}

.site-footer__email {
  display: inline-flex;
  margin-top: 0.25rem;
  color: var(--link-sun) !important;
  font-weight: 700;
  text-decoration-color: transparent;
}

.site-footer__email:hover {
  text-decoration-color: currentcolor;
}

.footer-menu {
  display: grid;
  gap: 0.6rem;
}

.footer-menu a {
  text-decoration: none;
}

.site-footer__contact a {
  color: var(--link-sun);
  font-weight: 700;
}

.site-footer__newsletter {
  padding: 1.5rem;
  border-radius: var(--link-radius-panel);
  background: rgb(255 255 255 / 7%);
}

.site-footer__newsletter .eyebrow {
  color: var(--link-sky);
}

.site-footer__newsletter h2 {
  max-width: 680px;
  margin: 0.75rem 0 0;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.site-footer__newsletter > .link-button {
  margin-top: 1.25rem;
}

.site-footer__newsletter > p {
  margin-bottom: 0;
}

.site-footer__hint {
  margin-top: 0.75rem;
  color: rgb(255 255 255 / 66%) !important;
  font-size: 0.875rem;
}

.site-footer__legal-border {
  border-top: 1px solid rgb(255 255 255 / 12%);
}

.site-footer__legal {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-block: 1.5rem;
  border-top: 0;
  color: rgb(255 255 255 / 68%);
  font-size: 0.875rem;
}

.site-footer__legal nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
}

.site-footer__legal nav a {
  color: inherit;
  text-decoration: none;
}

.site-footer__legal p {
  margin: 0;
  color: inherit;
}

/* Organic identity adaptation.
 * The existing LINK logo geometry remains untouched; only its palette changes.
 * The rounded link forms below are a supporting pattern used only in page decoration.
 */
.main-nav a,
.mobile-nav a,
.language-link,
.menu-toggle,
.link-button,
.wp-element-button,
.wp-block-button__link,
.text-link,
.record-card__link,
.section-link,
.eyebrow,
.section__eyebrow,
.record-card__eyebrow,
.archive-header__eyebrow,
.record-detail__eyebrow,
.status-pill,
.tag-list,
.breadcrumbs,
.pagination,
.nav-links {
  font-family: "Nunito", Arial, sans-serif;
  font-weight: 800;
}

:is(.home-hero__copy, .front-hero__copy) h1 {
  font-size: clamp(3.25rem, 6.4vw, 5.6rem);
  letter-spacing: -0.025em;
  line-height: 0.98;
}

.page-hero h1,
.archive-header h1,
.record-detail h1,
.single-record h1,
.entry-header h1 {
  font-size: clamp(2.75rem, 6.4vw, 5.4rem);
  letter-spacing: -0.022em;
  line-height: 1;
}

.section__header h2,
.link-section__header h2,
.content-section__header h2,
.section-heading h2,
.listing-section .section-title {
  font-size: clamp(2rem, 4vw, 3.4rem);
  letter-spacing: -0.018em;
  line-height: 1.08;
}

.info-card,
.topic-card,
.feature-card,
.record-card,
.managed-content__section,
.managed-content__panel,
.content-panel,
.editorial-card,
.record-detail__section,
.single-record__section,
.plain-card,
.link-form,
.link-public-form,
.link-core-form,
.contact-form,
.newsletter-form:not(.site-footer .newsletter-form) {
  border: 1px solid rgb(34 48 58 / 8%);
  box-shadow: var(--link-shadow-card);
}

a.info-card:hover,
a.topic-card:hover,
a.feature-card:hover,
.record-card:hover {
  box-shadow: var(--link-shadow-soft);
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) span {
  width: 112px;
  height: 48px;
  border: 5px solid currentcolor;
  border-radius: var(--link-radius-pill);
  background: transparent;
  box-shadow: none;
  transform: rotate(-36deg);
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) span:first-child {
  top: 8px;
  color: var(--link-sky);
  background: transparent;
}

:is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) span:last-child {
  right: 0;
  bottom: 8px;
  color: var(--link-coral);
  background: transparent;
  box-shadow: none;
}

.page-hero__mark span {
  width: 70%;
  height: 38%;
  border-width: 8px;
  border-radius: var(--link-radius-pill);
  transform: rotate(-36deg);
}

.page-hero__decor span:first-child {
  border-radius: var(--link-radius-pill);
  transform: rotate(-28deg);
}

.page-hero__decor span:last-child {
  height: 8rem;
  border-radius: var(--link-radius-pill);
  transform: rotate(-28deg);
}

.link-mode-child .page-hero,
.game-page .page-hero,
.page-template-page-game .page-hero {
  background: var(--link-coral);
  color: var(--link-ink);
}

.link-mode-child .page-hero .eyebrow {
  color: var(--link-ink);
}

.link-mode-child .game-badge,
.link-mode-child .detective-badge {
  border-color: var(--link-sky-tint);
  background: var(--link-sun-tint);
}

.link-mode-institutional .page-hero--ink {
  background: var(--link-ink);
}

.case-list li > span,
.case-card__number,
.game-case__number {
  color: var(--link-coral-text);
}

.site-footer__newsletter .eyebrow {
  color: var(--link-white);
}

@media (min-width: 640px) {
  .brand {
    width: 176px;
  }

  .card-grid,
  .info-grid,
  .topic-grid,
  .commitment-grid,
  .game-steps,
  .case-grid,
  .game-cases,
  .badge-grid,
  .game-badges,
  .hub-grid,
  .participation-grid,
  .mentor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-grid--two,
  .link-form__row--two,
  .link-form__grid,
  .link-public-form__grid,
  .link-core-form__grid,
  .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .number-list,
  .activity-list,
  .case-list,
  .rule-list,
  .split-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .record-card {
    padding: 2rem;
  }

  .document-card,
  .document-row,
  .transparency-item,
  .document-list > article {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .post-navigation {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (min-width: 1024px) {
  :root {
    --link-header-height: 96px;
  }

  .section__inner,
  .link-section__inner,
  .content-section__inner {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(2.5rem, 5vw, 4rem);
  }

  .section--full .section__inner,
  .section--one-column .section__inner {
    display: block;
  }

  .link-section__inner > .section-notice,
  .content-section__inner > .section-notice {
    grid-column: 2;
  }

  .link-section__inner > .section-button,
  .content-section__inner > .section-button {
    grid-column: 2;
  }

  .record-grid,
  .project-grid,
  .resource-grid,
  .news-grid,
  .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .badge-grid,
  .game-badges {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  :is(.home-hero__inner, .front-hero__inner) {
    grid-template-columns: minmax(0, 0.93fr) minmax(0, 1.07fr);
  }

  :is(.home-hero__visual, .front-hero__visual) {
    min-height: 610px;
  }

  .home-hero__media {
    min-height: 610px;
  }

  .page-hero__inner:has(.page-hero__media) {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    grid-template-areas:
      "eyebrow media"
      "title media"
      "lead media"
      "actions media";
    align-items: center;
    column-gap: clamp(3rem, 6vw, 6rem);
    row-gap: 0;
  }

  .page-hero__inner:has(> .page-hero__media) > .eyebrow {
    grid-area: eyebrow;
    align-self: end;
  }

  .page-hero__inner:has(> .page-hero__media) > h1 {
    grid-area: title;
  }

  .page-hero__inner:has(> .page-hero__media) > .page-hero__lead {
    grid-area: lead;
  }

  .page-hero__inner:has(> .page-hero__media) > .page-hero__actions {
    grid-area: actions;
    align-self: start;
  }

  .page-hero__inner:has(> .page-hero__media) > .page-hero__media {
    grid-area: media;
    margin-top: 0;
  }

  .page-hero__inner:has(.page-hero__media) h1 {
    font-size: clamp(3.25rem, 5.4vw, 5.2rem);
  }

  .info-grid--three,
  .topic-grid,
  .game-steps,
  .case-grid,
  .game-cases,
  .case-list,
  .hub-grid--three,
  .participation-grid,
  .mentor-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hub-banner__inner,
  .hub-hero__inner,
  .hub-feature__inner,
  .hub-promo__inner {
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.8fr);
    align-items: center;
  }

  .site-footer__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  }

  .site-footer__legal {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (min-width: 1280px) {
  .main-nav {
    display: block;
  }

  .header-actions {
    margin-left: 0;
  }

  .menu-toggle,
  .mobile-nav {
    display: none !important;
  }

  .no-js .mobile-nav[hidden] {
    display: none !important;
  }

  body.menu-is-open {
    overflow: visible;
  }

  .record-grid--three,
  .record-grid:not(.record-grid--two),
  .project-grid,
  .news-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .record-grid--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 781px) {
  .admin-bar .site-header {
    top: 46px;
  }

  .page-hero__mark {
    right: -3rem;
    width: 220px;
  }
}

@media (max-width: 639px) {
  body {
    font-size: 17px;
  }

  .header-actions > .link-button {
    display: none;
  }

  .site-header__inner {
    gap: 0.75rem;
  }

  .brand {
    width: 146px;
  }

  .language-link {
    min-width: 40px;
    min-height: 40px;
    padding-inline: 0.4rem;
  }

  .menu-toggle {
    min-height: 40px;
    padding-inline: 0.8rem;
  }

  :is(.home-hero__inner, .front-hero__inner) {
    min-height: 0;
    gap: 2.5rem;
  }

  :is(.home-hero__copy, .front-hero__copy) h1 {
    font-size: clamp(3rem, 15vw, 4.2rem);
  }

  :is(.home-hero__visual, .front-hero__visual) {
    min-height: 390px;
    border-radius: 32px;
  }

  .home-hero__media {
    min-height: 390px;
    border-radius: 32px;
  }

  :is(.home-hero__caption, .front-hero__caption, .home-hero__media figcaption) {
    right: 1.25rem;
    bottom: 1.25rem;
    left: 1.25rem;
  }

  :is(.home-hero__mark, .front-hero__mark, .dialogue-mark, .home-hero__bubbles) {
    top: 1.25rem;
    right: 1.25rem;
    transform: scale(0.8);
    transform-origin: top right;
  }

  .approach-strip__inner,
  .mission-strip__inner,
  .approach-strip > .wrap,
  .mission-strip > .wrap {
    justify-content: flex-start;
  }

  .page-hero__inner {
    padding-block: 4.5rem;
  }

  .page-hero h1 {
    font-size: clamp(2.75rem, 14vw, 4.25rem);
  }

  .page-hero__media {
    border-radius: 24px;
  }

  .info-card,
  .topic-card,
  .feature-card,
  .record-card,
  .managed-content__section,
  .managed-content__panel,
  .content-panel,
  .editorial-card,
  .record-detail__section,
  .single-record__section,
  .link-notice,
  .link-notice {
    padding: 1.5rem;
    border-radius: 24px;
  }

  .newsletter-inline,
  .newsletter-form--compact,
  .link-form--compact,
  .link-newsletter-form,
  .site-footer form {
    flex-direction: column;
  }

  .newsletter-inline button,
  .newsletter-form--compact button,
  .link-form--compact button,
  .link-newsletter-form button,
  .site-footer form button,
  .site-footer form input[type="submit"] {
    width: 100%;
  }

  .wp-block-file {
    align-items: flex-start;
    flex-direction: column;
  }

  .search-form > div {
    align-items: stretch;
    flex-direction: column;
  }

  .search-form button {
    width: 100%;
  }

  .wp-block-file__button {
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media print {
  :root {
    --link-wrap: 100%;
    --link-wrap-narrow: 100%;
  }

  @page {
    margin: 16mm;
  }

  html,
  body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
  }

  .site-header,
  .site-footer,
  .skip-link,
  .breadcrumbs,
  .link-button,
  .wp-block-button,
  .record-detail__cta,
  .single-record__cta,
  form,
  nav.pagination,
  .nav-links {
    display: none !important;
  }

  .site-shell,
  #main-content,
  .page-hero,
  .section,
  .link-section,
  .content-section,
  .record-card,
  .managed-content__section,
  .managed-content__panel,
  .content-panel,
  .record-detail__section,
  .single-record__section {
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
  }

  .page-hero::before,
  .page-hero::after,
  .page-hero__mark,
  .page-hero__decor {
    display: none !important;
  }

  .page-hero__inner,
  .section__inner,
  .link-section__inner,
  .content-section__inner,
  .record-grid,
  .card-grid,
  .info-grid {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
  }

  .record-card,
  .managed-content__section,
  .record-detail__section,
  .single-record__section {
    margin-bottom: 8mm;
    page-break-inside: avoid;
  }

  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    font-weight: 400;
  }

  a[href^="mailto:"]::after,
  .record-card__image::after {
    content: "";
  }
}
