:root {
  --orange: #e87722;
  --orange-deep: #d66a1a;
  --orange-rgb: 232 119 34;
  --ink: #4a4a4a;
  --ink-soft: #5c5c5c;
  --white: #ffffff;
  --page: #ffffff;
  --serif: "Roboto Slab", Rockwell, "Rockwell Nova", serif;
  --sans: "Roboto Slab", Rockwell, "Rockwell Nova", serif;
  --header-h: 7.5rem;
  --max: 72rem;
  --scene-bg-position: center 74%;
  --pillar-icon-w: 4.9rem;
  --pillar-selected-h: calc(var(--pillar-icon-w) * 282.13 / 233.72);
  --pillar-preselect-h: calc(var(--pillar-icon-w) * 102.61 / 233.72);
  --pillar-label-size: clamp(0.72rem, 1.35vw, 0.95rem);
  /* Match .pillars total height: top pad + label + gap + icon + half preselect */
  --orange-band-h: calc(
    2.4rem + (var(--pillar-label-size) * 1.2) + 0.55rem + var(--pillar-selected-h) +
      (var(--pillar-preselect-h) / 2)
  );
  --page-content-gap: clamp(2rem, 4.5vh, 3rem);
  --panel-gap: clamp(2rem, 5vw, 4rem);
  --panel-width: 34.5rem;
  --field-bg: #fdf1e9;
  --frosted-panel-fill: rgb(90 90 90 / 15%);
  --frosted-panel-blur: 5px;
}

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

html {
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: rgb(74 74 74 / 35%) transparent;
}

/* Invisible scrollbars — scroll still works via wheel / touch. */
html:has(body.page-team),
html:has(body.page-resources),
html:has(body.page-contact),
html:has(body.page-membership),
html:has(body.page-partners) {
  scrollbar-gutter: auto;
  scrollbar-width: none;
}

html:has(body.page-team)::-webkit-scrollbar,
html:has(body.page-resources)::-webkit-scrollbar,
html:has(body.page-contact)::-webkit-scrollbar,
html:has(body.page-membership)::-webkit-scrollbar,
html:has(body.page-partners)::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

html.has-page-scroll:not(:has(body.page-team)):not(:has(body.page-resources)):not(:has(body.page-contact)):not(:has(body.page-membership)):not(:has(body.page-partners)) {
  scrollbar-gutter: stable;
}

html::-webkit-scrollbar {
  width: 10px;
}

html::-webkit-scrollbar-track {
  background: transparent;
}

html::-webkit-scrollbar-thumb {
  background: rgb(74 74 74 / 35%);
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
}

html::-webkit-scrollbar-thumb:hover {
  background: rgb(74 74 74 / 50%);
  background-clip: padding-box;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--sans);
  font-weight: 400;
  color: var(--ink);
  background: var(--page);
  display: flex;
  flex-direction: column;
}

/* Side switcher: Desktop Web / Phone Web */
.version-rail {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  transform: translateY(-50%);
  pointer-events: none;
}

.version-rail__item {
  pointer-events: auto;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  padding: 0.85rem 0.4rem;
  font-family: var(--serif);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--white);
  background: rgb(74 74 74 / 72%);
  border-radius: 0.35rem 0 0 0.35rem;
  transition: background 160ms ease, color 160ms ease;
}

.version-rail__item:hover,
.version-rail__item:focus-visible {
  background: var(--ink);
  outline: none;
}

.version-rail__item.is-active {
  background: var(--orange);
  pointer-events: none;
}

.version-rail--phone .version-rail__item.is-active {
  background: var(--orange);
}

.version-rail--desktop .version-rail__item.is-active {
  background: var(--ink);
}

/* Prefer wraps that avoid single-word last lines in body copy */
main p,
.page-band__inner p,
.programme-row__blurb,
.programme-row__story-p,
.about-card > p,
.about-block p,
.about-values__proverb,
.contact-info p,
.contact-thanks p,
.contact-form__note,
.gallery-subtitle {
  text-wrap: pretty;
  orphans: 2;
  widows: 2;
}

/* Home — white header strip; photo fills the area below */
body.page-home {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--white);
}

.home-hero {
  position: relative;
  flex: 1;
  min-height: 0;
  background-color: #1a1a1a;
  background-image: url("assets/optimized/home-bg-Hero.webp");
  background-size: cover;
  background-position: var(--scene-bg-position);
  background-repeat: no-repeat;
}

/* Lock Programmes page to one viewport — no vertical scroll */
body.page-programmes {
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  overflow: hidden;
}

body.page-programmes .site-header {
  position: relative;
  z-index: 20;
  background: var(--white);
}

body.page-programmes .pillars {
  z-index: 20;
}

body.page-programmes .programmes {
  min-height: 0;
  overflow: hidden;
}

/*
  Tuck listings under the orange band’s peak zone so a real cutout
  reveals programme content through the notch (not a white fill).
*/
body.page-programmes.has-pillar-selection .programmes {
  margin-top: calc(var(--pillar-preselect-h) / -2);
  z-index: 1;
}

body.page-programmes .programmes__visual {
  min-height: 0;
  overflow: hidden;
}

body.page-programmes.has-pillar-selection {
  overflow: hidden;
}

body.page-programmes.has-pillar-selection .programme-listings {
  overflow-y: auto;
}

strong,
b,
h1,
h2,
h3 {
  font-weight: 400;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
}

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

/* —— Header —— */
.site-header {
  width: min(100% - 3rem, 92rem);
  margin: 0 auto;
  min-height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(2rem, 12vw, calc(400px + 4rem));
  padding: 1.6rem 0;
}

.brand {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: auto;
}

.brand__logo {
  width: auto;
  height: clamp(3.1rem, 6.2vw, 4.25rem);
  max-width: 26rem;
  object-fit: contain;
  object-position: left center;
  flex-shrink: 0;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(0.7rem, 1.6vw, 1.65rem);
  flex: 0 1 auto;
  margin-left: auto;
  justify-content: flex-end;
  flex-wrap: nowrap;
  min-width: 0;
}

.site-nav a {
  position: relative;
  font-size: clamp(0.95rem, 1.4vw, 1.08rem);
  font-weight: 400;
  color: var(--ink);
  padding: 0.35rem 0;
  white-space: nowrap;
  flex: 0 0 auto;
}

.site-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.15rem;
  height: 2px;
  background: transparent;
  border-radius: 0;
  transition: background 160ms ease;
}

.site-nav a[aria-current="page"] {
  color: var(--orange);
}

.site-nav a[aria-current="page"]::after,
.site-nav a:hover::after {
  background: var(--orange);
}

.site-nav__shop {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0.15rem 0;
  line-height: 0;
}

.site-nav__shop img {
  display: block;
  width: clamp(2.25rem, 3.2vw, 2.75rem);
  max-width: none;
  height: auto;
}

.site-nav__shop::after,
.site-nav__shop:hover::after,
.site-nav__shop[aria-current="page"]::after {
  display: none;
}

.nav-toggle {
  display: none;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  gap: 0.28rem;
  flex-direction: column;
}

.nav-toggle__bar {
  display: block;
  width: 1.35rem;
  height: 2px;
  background: var(--ink);
}

/* —— Pillars bar ——
   Locked-in: orange is painted on ::before with a real curved peak
   cutout (clip-path from preselect.svg shoulders). Page/listings show
   through the hole — never a white overlay triangle.
*/
.pillars {
  --cutout-x: 50%;
  --cutout-show: 0;
  --cutout-h: calc(var(--pillar-preselect-h) / 2);
  --band-clip: none;
  background: transparent;
  padding: 2.4rem 1rem 0;
  overflow: visible;
  position: relative;
  z-index: 2;
}

/* Orange paint layer — curved peak cutout (same shoulders as preselect.svg) */
.pillars::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--orange);
  pointer-events: none;
  z-index: 0;
  clip-path: var(--band-clip);
}

.pillars__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 68rem);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.35rem;
  align-items: stretch;
}

.pillar {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  color: var(--white);
  /*
    Reserve peak height in the orange band so the clip-path notch
    and selected pin tip meet at the bottom edge.
  */
  padding-bottom: calc(var(--pillar-preselect-h) / 2);
}

.pillar__label {
  position: relative;
  z-index: 2;
  font-size: var(--pillar-label-size);
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.pillar__icon {
  position: relative;
  width: var(--pillar-icon-w);
  height: var(--pillar-selected-h);
  display: grid;
  place-items: start center;
  z-index: 2;
  margin-bottom: 0;
}

.pillar__icon img {
  width: var(--pillar-icon-w);
  height: auto;
  object-fit: contain;
  object-position: top center;
  display: block;
}

/* Never paint the old white overlay — cutout is clip-path only */
.pillar__preselect {
  display: none !important;
}

.pillar:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 4px;
  border-radius: 0.5rem;
}

/* —— Main —— */
.programmes {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  min-height: 0;
}

body.page-programmes:not(.has-pillar-selection) .programmes {
  background: transparent;
}

.programmes__home {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  position: relative;
  background: transparent;
}

.programmes__home::before {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  /* Match Sky.png aspect ratio (8064×3632) at full width — no vertical crop */
  height: calc(100vw * 3632 / 8064);
  z-index: -1;
  background-color: var(--white);
  background-image: url("assets/optimized/Sky.webp");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
}

.programmes__home[hidden],
.programme-listings[hidden] {
  display: none !important;
}

body.has-pillar-selection .programmes__home {
  display: none !important;
}

.programmes__intro {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  justify-self: center;
  width: 100%;
  max-width: 58rem;
  text-align: center;
  padding: clamp(3.25rem, 7vw, 4.75rem) 1.25rem 0;
  margin: 0;
  z-index: 2;
  pointer-events: none;
  background: transparent;
}

.programmes__intro h1 {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  color: var(--orange);
  letter-spacing: 0.01em;
}

.programmes__intro p {
  margin: 0;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.programmes__intro p + p {
  margin-top: 0.35rem;
}

.programmes__intro p:last-of-type {
  margin-top: 0.65rem;
}

.programmes__intro p:first-of-type {
  white-space: normal;
}

.programmes__intro strong {
  font-weight: 400;
  color: var(--ink);
}

/* Three lanes: boy | blurb | girl — text never overlaps figures */
.programmes__visual {
  flex: 1;
  display: grid;
  /* Side lanes keep heroes clear; centre can grow to the old 58rem blurb width */
  grid-template-columns: minmax(6rem, 1fr) minmax(0, 58rem) minmax(6rem, 1fr);
  align-items: end;
  column-gap: clamp(0.35rem, 1.2vw, 1rem);
  min-height: 0;
  margin-top: 0;
  padding: 0 clamp(1rem, 4vw, 3.5rem);
  pointer-events: none;
  background: transparent;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.programmes__hero-slot {
  grid-row: 1;
  min-width: 0;
  height: 100%;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.programmes__hero-slot--boy {
  grid-column: 1;
  justify-content: flex-end; /* hug the blurb lane — closer without covering text */
}

.programmes__hero-slot--girl {
  grid-column: 3;
  justify-content: flex-start;
}

.programmes__hero {
  position: relative;
  z-index: 1;
  width: auto;
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center bottom;
  user-select: none;
  transform-origin: center bottom;
}

.programmes__hero--boy {
  height: calc(100% - 80px);
  max-height: calc(100% - 80px);
  transform: scale(1.1);
  transform-origin: right bottom;
  object-position: right bottom;
}

.programmes__hero--girl {
  transform: scale(1.07);
  transform-origin: left bottom;
  object-position: left bottom;
}

/* —— Selected pillar programme listings —— */
.programme-listings {
  flex: 1;
  min-height: 0;
  width: 100%;
  background: transparent;
  position: relative;
  z-index: 1;
}

.programme-listings__bg {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  /* Same placement as .programmes__home::before / Sky.png */
  height: calc(100vw * 3632 / 8064);
  z-index: 0;
  pointer-events: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  opacity: 0;
  transition: opacity 200ms ease;
}

.programme-listings__bg.is-visible {
  opacity: 1;
  z-index: 0;
}

/* City skyline behind category + ALL listings */
.programme-listings::before {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(100vw * 3632 / 8064);
  z-index: -1;
  background-color: var(--white);
  background-image: url("assets/optimized/Sky.webp");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
}

.programme-listings__list {
  position: relative;
  z-index: 1;
  width: min(100% - 3rem, 58rem);
  margin: 0 auto;
  /* Top gap owned by intro margin so blurb is vertically centred in the white band */
  padding: 0 0 clamp(2rem, 5vh, 3.5rem);
}

.programme-listings__intro {
  margin: calc(clamp(1.35rem, 3.2vh, 2rem) + 10px) 0 clamp(1.35rem, 3.2vh, 2rem);
  max-width: none;
  width: 100%;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  font-weight: 400;
  line-height: 1.45;
  color: var(--orange);
  text-align: center;
  text-wrap: wrap;
}

.programme-listings__intro-line {
  display: block;
  white-space: nowrap;
}

.programme-listings__list--all {
  width: min(100% - 2rem, 88rem);
}

.programme-listings--all .programme-listings__bg {
  display: none;
}

.programme-all-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: clamp(1.25rem, 2.8vh, 1.65rem) clamp(1.1rem, 2.4vw, 1.5rem) clamp(1.35rem, 3vh, 1.85rem);
  box-sizing: border-box;
  background: rgb(90 90 90 / 15%);
  border-radius: 1.25rem;
  -webkit-backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
  backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
}

.programme-listings__list--all > .programme-listings__intro {
  margin: calc(clamp(1.35rem, 3.2vh, 2rem) + 10px) auto clamp(1.35rem, 3.2vh, 2rem);
  width: min(100%, 58rem);
}

.programme-all-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  padding: 0;
  align-items: stretch;
}

.programme-all-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(0.75rem, 1.8vw, 1.1rem);
  align-items: center;
  width: 100%;
  min-height: 0;
  height: auto;
  padding: 1.45rem 1.55rem;
  box-sizing: border-box;
  text-align: left;
  background: var(--white);
  border-radius: 0.85rem;
  box-shadow: 0 8px 28px rgb(0 0 0 / 0.06);
}

.programme-all-card__logo {
  display: grid;
  place-items: center;
  width: clamp(3.6rem, 6.5vw, 4.5rem);
  height: clamp(3.6rem, 6.5vw, 4.5rem);
  flex: 0 0 auto;
  --logo-scale: 1;
}

.programme-all-card__logo img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform: scale(calc(var(--logo-scale) * 0.82));
  transform-origin: center center;
}

.programme-all-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  min-width: 0;
  height: auto;
}

.programme-all-card__title {
  margin: 0;
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  font-weight: 400;
  line-height: 1.25;
  color: var(--orange);
  text-align: left;
}

.programme-all-card__blurb {
  margin: 0;
  font-size: clamp(0.84rem, 1.25vw, 0.94rem);
  line-height: 1.4;
  color: var(--ink-soft);
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.programme-all-card__more {
  display: inline-block;
  margin-top: 0.4rem;
  border: 0;
  cursor: pointer;
  background: #5a5a5a;
  color: var(--white);
  font-family: var(--sans);
  font-size: clamp(0.86rem, 1.2vw, 0.95rem);
  font-weight: 400;
  padding: 0.55rem 1.15rem;
  border-radius: 0.15rem;
  text-decoration: none;
  transition: background 180ms ease;
}

.programme-all-card__more:hover,
.programme-all-card__more:focus-visible {
  background: var(--orange);
  color: var(--white);
}

.programme-all-card:hover .programme-all-card__more,
.programme-all-card:focus-within .programme-all-card__more {
  background: var(--orange);
}

@media (max-width: 900px) {
  .programme-all-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .programme-all-grid {
    grid-template-columns: 1fr;
  }

  .programme-all-card {
    grid-template-columns: auto 1fr;
  }

  .programme-all-card__logo {
    width: 3.75rem;
    height: 3.75rem;
  }
}

.programme-category-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.programme-cell {
  position: relative;
  z-index: 1;
  width: calc(100% - 4.5rem);
  margin-inline: auto;
  padding: clamp(1rem, 2.2vw, 1.35rem);
  box-sizing: border-box;
  background: rgb(90 90 90 / 15%);
  border-radius: 1.25rem;
  -webkit-backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
  backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
  transition: width 200ms ease, margin 200ms ease;
}

.programme-cell:has(.programme-row.is-expanded) {
  width: 100%;
  margin-inline: 0;
  z-index: 2;
}

.programme-row {
  display: grid;
  grid-template-columns: minmax(9rem, 10.5rem) 1fr;
  gap: clamp(2.75rem, 6vw, 5rem);
  align-items: start;
  padding: clamp(2.75rem, 5.5vh, 3.75rem) clamp(1.75rem, 3.5vw, 2.5rem);
  border: 0;
  margin: 0;
  position: relative;
  background: var(--white);
  border-radius: 0.85rem;
  box-shadow: 0 8px 28px rgb(0 0 0 / 0.06);
  box-sizing: border-box;
}

.programme-row__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.25rem;
  height: 10.25rem;
  text-align: center;
  position: relative;
}

.programme-row__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 8.5rem;
  max-height: 8.5rem;
  object-fit: contain;
  transform: scale(var(--logo-scale, 1));
  transform-origin: center center;
  filter: grayscale(1) brightness(0) invert(0.38);
  transition: filter 180ms ease, opacity 180ms ease;
}

.programme-row:hover .programme-row__logo img,
.programme-row:focus-within .programme-row__logo img,
.programme-row.is-expanded .programme-row__logo img {
  filter: none;
}

/* Custom grey/color swap (e.g. Puataunofo) — skip CSS filter */
.programme-row__logo--dual img {
  filter: none;
}

.programme-row__logo--dual .programme-row__logo-img--grey,
.programme-row__logo--dual .programme-row__logo-img--color {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(var(--logo-scale, 1));
  transform-origin: center center;
}

.programme-row__logo--dual .programme-row__logo-img--color {
  opacity: 0;
}

.programme-row:hover .programme-row__logo--dual .programme-row__logo-img--color,
.programme-row:focus-within .programme-row__logo--dual .programme-row__logo-img--color,
.programme-row.is-expanded .programme-row__logo--dual .programme-row__logo-img--color {
  opacity: 1;
}

.programme-row:hover .programme-row__logo--dual .programme-row__logo-img--grey,
.programme-row:focus-within .programme-row__logo--dual .programme-row__logo-img--grey,
.programme-row.is-expanded .programme-row__logo--dual .programme-row__logo-img--grey {
  opacity: 0;
}

.programme-row__content {
  min-width: 0;
}

.programme-row__title {
  margin: 0 0 0.75rem;
  font-family: var(--serif);
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  font-weight: 400;
  line-height: 1.15;
  color: #5a5a5a;
  transition: color 180ms ease;
}

.programme-row:hover .programme-row__title,
.programme-row:focus-within .programme-row__title,
.programme-row.is-expanded .programme-row__title {
  color: var(--orange);
}

.programme-row__blurb-wrap {
  margin: 0 0 1.1rem;
  max-width: 36rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

.programme-row.is-expanded .programme-row__blurb-wrap {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
  max-width: 42rem;
  margin-bottom: 0;
}

.programme-row__blurb {
  margin: 0;
  font-size: clamp(0.95rem, 1.5vw, 1.08rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.programme-row__blurb + .programme-row__blurb {
  margin-top: 0.85rem;
}

.programme-row.is-expanded .programme-row__blurb {
  max-width: 42rem;
}

.programme-row__toggle {
  display: inline-block;
  margin-top: 1.1rem;
  background: #5a5a5a;
  color: var(--white);
  font-family: var(--sans);
  font-size: clamp(0.92rem, 1.35vw, 1rem);
  font-weight: 400;
  padding: 0.65rem 1.35rem;
  border-radius: 0.15rem;
  transition: background 180ms ease;
}

.programme-row.is-expanded .programme-row__toggle {
  margin-top: clamp(1.85rem, 3.5vh, 2.5rem);
}

.programme-row:hover .programme-row__toggle,
.programme-row:focus-within .programme-row__toggle,
.programme-row.is-expanded .programme-row__toggle {
  background: var(--orange);
}

.programme-row:hover .programme-row__toggle:hover,
.programme-row:focus-within .programme-row__toggle:hover,
.programme-row.is-expanded .programme-row__toggle:hover {
  background: var(--orange-deep);
}

.programme-row__details {
  max-width: 42rem;
}

.programme-row__story {
  margin: 0;
}

.programme-row__story-heading {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  font-weight: 400;
  line-height: 1.3;
  color: var(--orange);
}

.programme-row__story-p {
  margin: 0;
  font-size: clamp(0.95rem, 1.5vw, 1.08rem);
  line-height: 1.55;
  color: var(--ink);
}

.programme-row__story-p + .programme-row__story-p {
  margin-top: 0.85rem;
}

.programme-row.is-expanded .programme-row__details {
  margin-top: clamp(1rem, 2vh, 1.5rem);
  margin-bottom: 0.15rem;
}

.programme-row__meta {
  margin-top: clamp(1.25rem, 2.5vh, 1.75rem);
  text-align: left;
  width: 100%;
}

.programme-row__story + .programme-row__meta {
  margin-top: 1rem;
}

.programme-row__help {
  margin: 0 0 0.25rem;
}

.programme-row__help + .programme-row__meta {
  margin-top: 1.15rem;
}

.programme-row__help + .programme-row__story {
  margin-top: 1.15rem;
}

.programme-row__help-heading {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  font-weight: 400;
  line-height: 1.3;
  color: var(--orange);
}

.programme-row__help-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.programme-row__help-item {
  margin: 0;
}

.programme-row__help-item--bullet {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
}

.programme-row__help-item--bullet::before {
  content: "•";
  flex-shrink: 0;
  color: var(--orange);
  font-size: 1.05em;
  line-height: 1.4;
}

.programme-row__help-list:has(.programme-row__help-item--bullet) {
  gap: 0.35rem;
}

.programme-row__help-title {
  margin: 0 0 0.2rem;
  font-size: clamp(0.95rem, 1.5vw, 1.08rem);
  font-weight: 400;
  line-height: 1.4;
  color: var(--orange);
}

.programme-row__help-item--bullet .programme-row__help-title {
  margin: 0;
  color: var(--ink);
}

.programme-row__help-body {
  margin: 0;
  font-size: clamp(0.95rem, 1.5vw, 1.08rem);
  line-height: 1.55;
  color: var(--ink);
}

.programme-row__next-start {
  margin: 0 0 1rem;
  font-size: clamp(0.88rem, 1.35vw, 1rem);
  line-height: 1.55;
  color: var(--ink);
}

.programme-row__next-start strong {
  font-weight: 400;
  color: var(--orange);
}

.programme-row__web {
  margin: 0 0 1rem;
  font-size: clamp(0.88rem, 1.35vw, 1rem);
  line-height: 1.55;
  color: var(--ink);
}

.programme-row__web strong {
  font-weight: 400;
  color: var(--orange);
}

.programme-row__web-link {
  color: var(--ink);
  text-decoration: none;
}

.programme-row__web-link:hover,
.programme-row__web-link:focus-visible {
  color: var(--orange);
}

.programme-row__reserve-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--ink);
  text-decoration: none;
}

.programme-row__reserve-link:hover,
.programme-row__reserve-link:focus-visible {
  color: var(--orange);
}

.programme-row__reserve-link.is-flying {
  pointer-events: none;
}

.programme-row__social-block {
  margin-top: 1rem;
  align-self: flex-start;
}

.programme-row__social-intro {
  margin: 0 0 0.75rem;
  font-size: clamp(0.88rem, 1.35vw, 1rem);
  line-height: 1.55;
  color: var(--ink);
}

.programme-row__social {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 1rem;
  margin: 0;
  padding-left: 0;
}

.programme-social__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  text-decoration: none;
  flex: 0 0 auto;
}

.programme-social__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.programme-social__name {
  flex: 0 0 auto;
  align-self: center;
  min-width: 5.5rem;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(0.92rem, 1.4vw, 1.05rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--ink-soft);
  opacity: 0;
  transition: opacity 160ms ease;
  pointer-events: none;
  white-space: nowrap;
}

.programme-row__social:has(.programme-social__link:is(:hover, :focus-visible)) .programme-social__name {
  opacity: 1;
}

.programme-row__social:has(.programme-social__link--facebook:is(:hover, :focus-visible)) .programme-social__name::before {
  content: "Facebook";
}

.programme-row__social:has(.programme-social__link--instagram:is(:hover, :focus-visible)) .programme-social__name::before {
  content: "Instagram";
}

.programme-row__social:has(.programme-social__link--linkedin:is(:hover, :focus-visible)) .programme-social__name::before {
  content: "LinkedIn";
}

.programme-row__social:has(.programme-social__link--youtube:is(:hover, :focus-visible)) .programme-social__name::before {
  content: "YouTube";
}

.programme-row__social:has(.programme-social__link--shop:is(:hover, :focus-visible)) .programme-social__name::before {
  content: "Shop";
}

.programme-social__link--shop {
  width: 3.35rem;
  height: 3.35rem;
}

.programme-row__enquiry {
  margin: 0 0 0.25rem;
  font-size: clamp(0.88rem, 1.35vw, 1rem);
  line-height: 1.55;
}

.programme-row__enquiry-label {
  color: var(--orange);
}

.programme-row__enquiry-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--ink-soft);
  text-decoration: none;
}

.programme-row__enquiry-plane {
  display: block;
  width: auto;
  height: calc(0.95em * 3.5);
  flex: 0 0 auto;
}

.programme-row__enquiry-link.is-flying {
  pointer-events: none;
}

.programme-row__enquiry-plane.is-flying {
  z-index: 10000;
  pointer-events: none;
  max-width: none;
}

.programme-row__enquiry-link:hover,
.programme-row__enquiry-link:focus-visible {
  color: var(--ink);
  text-decoration: underline;
}

.pillar-panel {
  display: none;
}

/* —— Shared page chrome (Team / About / Contact) —— */
body.page-team,
body.page-about,
body.page-membership,
body.page-partners,
body.page-contact,
body.page-resources {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--white);
}

.page-resources .content-page__panel,
.resources-page__panel {
  width: min(100% - 3rem, calc((44rem - 50px) * 2 + var(--panel-gap)));
  overflow: visible;
}

.resources-columns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: var(--panel-gap);
  width: 100%;
}

.page-resources .about-group__list {
  overflow: visible;
  gap: 0;
}

.page-resources .about-group {
  width: min(100%, calc(44rem - 50px));
  overflow: visible;
  padding-bottom: 1.35rem;
}

.page-resources .about-card--resource {
  padding: 1rem 0 0;
}

.about-card--news {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  padding: 0.85rem;
  background: var(--frosted-panel-fill);
  -webkit-backdrop-filter: blur(var(--frosted-panel-blur));
  backdrop-filter: blur(var(--frosted-panel-blur));
  border-radius: 0.85rem;
}

.news-year {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.news-year__heading {
  margin: 0;
  padding: 0 0.35rem;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.8vw, 1.2rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--orange);
}

.news-year__list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.news-year + .news-year {
  padding-top: 0.35rem;
  border-top: 1px solid rgb(255 255 255 / 45%);
}

.news-article {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0.85rem;
  align-items: start;
  text-align: left;
  text-decoration: none;
  color: inherit;
  padding: 0.35rem;
  border-radius: 0.65rem;
}

.news-article:hover,
.news-article:focus-visible {
  background: rgb(255 255 255 / 55%);
}

.news-article:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

.news-article__thumb {
  display: block;
  width: 7.5rem;
  height: 5rem;
  object-fit: cover;
  border-radius: 0.45rem;
  background: var(--field-bg);
}

.news-article__copy {
  min-width: 0;
}

.news-article__title {
  margin: 0 0 0.35rem;
  font-family: var(--serif);
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  font-weight: 400;
  line-height: 1.3;
  color: var(--orange);
}

.news-article__blurb {
  margin: 0 0 0.4rem;
  font-size: clamp(0.86rem, 1.3vw, 0.96rem);
  line-height: 1.45;
  color: var(--ink);
}

.news-article__cta {
  font-size: 0.86rem;
  color: var(--ink-soft);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.news-article:hover .news-article__cta,
.news-article:focus-visible .news-article__cta {
  color: var(--orange);
}

@media (max-width: 760px) {
  .news-article {
    grid-template-columns: 1fr;
  }

  .news-article__thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
  }
}

body.page-gallery {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--white);
}

.page-beach-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background: var(--white);
}

.page-beach-bg picture {
  position: absolute;
  inset: 0;
  display: block;
}

.page-beach-bg__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  filter: saturate(90%);
  image-rendering: auto;
  transform: none;
  opacity: 1;
}

.page-chrome {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--white);
}

.page-band {
  background: var(--orange);
  height: var(--orange-band-h);
  box-sizing: border-box;
  padding: 0 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  overflow: hidden;
}

.page-band__inner {
  width: min(100% - 2rem, 52rem);
  margin: 0 auto;
  text-align: center;
  color: var(--white);
}

.page-band__inner h1 {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  color: var(--white);
  line-height: 1.2;
}

.page-band__inner p {
  margin: 0;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: rgb(255 255 255 / 60%);
}

body.page-team .page-band__inner p {
  white-space: nowrap;
}

/* —— Our Team —— */
.team-page {
  position: relative;
  z-index: 1;
  flex: 1;
  width: 100%;
  margin: 0;
  padding: var(--page-content-gap) clamp(1.5rem, 3vw, 3rem) clamp(3rem, 6vh, 4.5rem);
}

.team-page__panel {
  position: relative;
  z-index: 1;
  width: min(100% - 3rem, 110rem);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 3vw, 2rem);
  background: transparent;
}

.content-page {
  position: relative;
  z-index: 1;
  flex: 1;
  width: 100%;
  margin: 0;
  padding: var(--page-content-gap) clamp(1.5rem, 3vw, 3rem) clamp(3rem, 6vh, 4.5rem);
}

.content-page__panel {
  position: relative;
  z-index: 1;
  width: min(100% - 3rem, 40rem);
  margin: 0 auto;
  text-align: center;
}

.content-page__panel p {
  margin: 0;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.about-page__panel {
  width: min(100% - 3rem, 88rem);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 3vw, 2rem);
  text-align: left;
}

.membership-page__panel {
  width: min(100% - 2rem, 88rem);
  margin: 0 auto;
  padding: 0;
  text-align: left;
}

.membership-page__panel .programme-listings__list--all {
  width: 100%;
  margin: 0;
  padding: 0 0 clamp(1rem, 3vh, 2rem);
}

.membership-page .programme-all-panel {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  background: var(--frosted-panel-fill);
  -webkit-backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
  backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
}

.membership-page .programme-intro-card--membership {
  width: 100%;
  margin: 0;
  padding: clamp(0.65rem, 1.4vh, 0.85rem) clamp(1.35rem, 3vw, 2rem);
  box-sizing: border-box;
  background: var(--orange);
  border-radius: 0.85rem;
  box-shadow: none;
}

.membership-page .programme-intro-card--membership .programme-listings__intro {
  margin: 0;
  width: 100%;
  max-width: none;
  color: var(--white);
}

.partners-page__panel {
  --partners-cell-width: min(56rem, calc((100% - var(--panel-gap)) / 2));
  width: min(100% - 1.5rem, calc(56rem * 2 + var(--panel-gap)));
  margin: 0 auto;
  padding: 0 clamp(0.75rem, 1.5vw, 1.25rem);
  text-align: left;
}

.partners-page__panel .about-sections {
  width: 100%;
  gap: var(--panel-gap);
  align-items: stretch;
}

.partners-page__panel .about-group,
.partners-page__panel .about-sections > .about-group {
  width: var(--partners-cell-width);
  max-width: var(--partners-cell-width);
  flex: 1 1 var(--partners-cell-width);
  min-height: min(82vh, 54rem);
}

.partners-page__panel .about-group__list {
  align-items: stretch;
  flex: 1 1 auto;
}

.partners-card {
  width: 100%;
  max-width: none;
}

.partners-page__panel .about-sections .about-card,
.home-menu__panel .about-sections .about-card.partners-card {
  flex: 1 1 auto;
}

.partners-page__panel .partners-logo-grid,
.home-menu__panel .partners-logo-grid,
.partners-page__panel .partners-logo-grid--collab,
.home-menu__panel .partners-logo-grid--collab {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 0.55rem;
  row-gap: 0.55rem;
  height: 100%;
  align-content: space-evenly;
  justify-items: stretch;
}

.partners-page__panel .partners-logo-grid li,
.home-menu__panel .partners-logo-grid li,
.partners-page__panel .partners-logo-grid--collab li,
.home-menu__panel .partners-logo-grid--collab li {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: auto;
  min-width: 0;
  height: auto;
  aspect-ratio: auto;
  padding: 0.15rem 0.2rem;
  box-sizing: border-box;
  overflow: visible;
}

.partners-page__panel .partners-logo-grid--collab .partners-logo-link,
.home-menu__panel .partners-logo-grid--collab .partners-logo-link,
.partners-page__panel .partners-logo-grid .partners-logo-link,
.home-menu__panel .partners-logo-grid .partners-logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto;
}

.partners-page__panel .partners-logo-grid img,
.home-menu__panel .partners-logo-grid img,
.partners-page__panel .partners-logo-grid--collab img,
.home-menu__panel .partners-logo-grid--collab img {
  display: block;
  width: 70%;
  max-width: 70%;
  height: auto;
  max-height: none;
  aspect-ratio: 900 / 420;
  object-fit: contain;
  object-position: center;
  transform: none;
}

.partners-card__subheading {
  margin: clamp(1.35rem, 2.6vh, 1.85rem) 0 1.15rem;
  padding: clamp(0.65rem, 1.4vh, 0.85rem) clamp(1.35rem, 3vw, 2rem);
  box-sizing: border-box;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  font-weight: 400;
  line-height: 1.45;
  color: var(--white);
  text-align: center;
  background: var(--orange);
  border-radius: 0.85rem;
}

.partners-card__subheading:first-child {
  margin-top: 0;
}

.partners-logo-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 0.55rem;
  row-gap: 0.55rem;
  align-items: stretch;
  justify-items: stretch;
  width: 100%;
}

.partners-logo-grid--collab {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 0.55rem;
  row-gap: 0.55rem;
  align-items: stretch;
  justify-items: stretch;
  width: 100%;
}

.partners-logo-grid--collab li {
  flex: none;
  width: auto;
  min-width: 0;
  height: auto;
  overflow: visible;
}

.partners-logo-grid--collab .partners-logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.partners-logo-grid--collab img {
  display: block;
  width: 70%;
  max-width: 70%;
  height: auto;
  max-height: none;
  aspect-ratio: 900 / 420;
  object-fit: contain;
  transform: none;
}

.partners-logo-grid li {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: auto;
  padding: 0.15rem 0.2rem;
  box-sizing: border-box;
  text-align: center;
  overflow: visible;
}

.partners-logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: 0;
  text-decoration: none;
  color: inherit;
  border-radius: 0.5rem;
  transition: opacity 160ms ease;
}

.partners-logo-link:hover {
  opacity: 0.85;
}

.partners-logo-link:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 4px;
}

.partners-logo-grid img {
  display: block;
  width: 70%;
  max-width: 70%;
  height: auto;
  max-height: none;
  aspect-ratio: 900 / 420;
  object-fit: contain;
  object-position: center;
  transform: none;
}

.partners-logo-grid img[src*="manavaofa"],
.partners-logo-grid img[src*="papas-cakes"],
.partners-page__panel .partners-logo-grid img[src*="manavaofa"],
.partners-page__panel .partners-logo-grid img[src*="papas-cakes"],
.home-menu__panel .partners-logo-grid img[src*="manavaofa"],
.home-menu__panel .partners-logo-grid img[src*="papas-cakes"] {
  width: 109%;
  max-width: 109%;
  aspect-ratio: auto;
  overflow: visible;
}

.partners-logo-grid img[src*="ace-aotearoa"],
.partners-logo-grid img[src*="48-boutique"],
.partners-page__panel .partners-logo-grid img[src*="ace-aotearoa"],
.partners-page__panel .partners-logo-grid img[src*="48-boutique"],
.home-menu__panel .partners-logo-grid img[src*="ace-aotearoa"],
.home-menu__panel .partners-logo-grid img[src*="48-boutique"] {
  width: 92.65%;
  max-width: 92.65%;
  aspect-ratio: auto;
  overflow: visible;
}

.partners-logo-grid img[src*="tatou-collective"],
.partners-logo-grid img[src*="pipa-puataunofo"],
.partners-page__panel .partners-logo-grid img[src*="tatou-collective"],
.partners-page__panel .partners-logo-grid img[src*="pipa-puataunofo"],
.home-menu__panel .partners-logo-grid img[src*="tatou-collective"],
.home-menu__panel .partners-logo-grid img[src*="pipa-puataunofo"] {
  width: 87.5%;
  max-width: 87.5%;
  aspect-ratio: auto;
}

.partners-logo-grid li:has(img[src*="manavaofa"]),
.partners-logo-grid li:has(img[src*="papas-cakes"]),
.partners-logo-grid li:has(img[src*="ace-aotearoa"]),
.partners-logo-grid li:has(img[src*="48-boutique"]),
.partners-logo-grid li:has(img[src*="tatou-collective"]),
.partners-logo-grid li:has(img[src*="pipa-puataunofo"]) {
  overflow: visible;
}

.partners-logo-grid span:not(.partners-logo-link) {
  display: none;
}

@media (max-width: 900px) {
  .partners-logo-grid,
  .partners-logo-grid--collab {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 0.45rem;
    row-gap: 0.45rem;
  }

  .partners-logo-grid li,
  .partners-logo-grid--collab li {
    height: auto;
    padding: 0.1rem 0.15rem;
  }

  .partners-logo-grid img,
  .partners-logo-grid--collab img {
    width: 70%;
    max-width: 70%;
    max-height: none;
    transform: none;
  }
}

@media (max-width: 560px) {
  .partners-logo-grid,
  .partners-logo-grid--collab {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 0.4rem;
    row-gap: 0.4rem;
  }

  .partners-logo-grid li,
  .partners-logo-grid--collab li {
    height: auto;
    padding: 0.1rem 0.15rem;
  }

  .partners-logo-grid img,
  .partners-logo-grid--collab img {
    width: 70%;
    max-width: 70%;
    max-height: none;
    transform: none;
  }
}

.gallery-page__panel {
  width: min(100% - 3rem, 52rem);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 3vw, 2rem);
  text-align: left;
}

.gallery-page__note {
  color: var(--ink-soft);
}

.about-sections {
  display: flex;
  gap: var(--panel-gap);
  align-items: stretch;
  justify-content: center;
}

.about-group {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: min(100%, var(--panel-width));
  padding: clamp(1.25rem, 2.8vh, 1.65rem) clamp(1.1rem, 2.4vw, 1.5rem) clamp(1.35rem, 3vh, 1.85rem);
  box-sizing: border-box;
  background: var(--frosted-panel-fill);
  border-radius: 1.25rem;
  -webkit-backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
  backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
}

.about-group__heading {
  margin: 0;
  padding: clamp(0.65rem, 1.4vh, 0.85rem) clamp(1.35rem, 3vw, 2rem);
  box-sizing: border-box;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  font-weight: 400;
  line-height: 1.45;
  color: var(--white);
  text-align: center;
  background: var(--orange);
  border-radius: 0.85rem;
}

.about-group__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}

.about-card {
  width: 100%;
  padding: 1.45rem 1.55rem;
  box-sizing: border-box;
  text-align: left;
  background: var(--white);
  border-radius: 0.85rem;
}

/* After .about-card so partners logo padding wins over the default card padding */
.about-card.partners-card {
  padding: 1rem 1.1rem 1.15rem;
}

.about-card--resource {
  --report-size: 0.88;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 1rem 0 0;
  text-align: center;
  background: rgb(90 90 90 / 60%);
  border-radius: 0.85rem;
  overflow: visible;
}

.about-card__resource-link {
  display: block;
  width: calc(min(100vw - 3rem, 52rem) * var(--report-size));
  max-width: none;
  margin-inline: auto;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  flex-shrink: 0;
  z-index: 1;
  line-height: 0;
  text-decoration: none;
  color: inherit;
}

.about-card__resource-link:first-child {
  margin-top: calc(-14px * var(--report-size));
}

.about-card__resource-link:nth-child(1) { z-index: 6; }
.about-card__resource-link:nth-child(2) { z-index: 5; }
.about-card__resource-link:nth-child(3) { z-index: 4; }
.about-card__resource-link:nth-child(4) { z-index: 3; }
.about-card__resource-link:nth-child(5) { z-index: 2; }
.about-card__resource-link:nth-child(6) { z-index: 1; }

.about-card__resource-link + .about-card__resource-link {
  margin-top: calc(-5.5rem * var(--report-size));
}

.about-card__resource-link:focus-visible {
  outline: 3px solid var(--white);
  outline-offset: 4px;
}

.about-card__resource-image {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

.about-sections > .about-group {
  flex: 1 1 var(--panel-width);
  max-width: var(--panel-width);
  display: flex;
  flex-direction: column;
}

.about-sections .about-group__list {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
}

.about-sections .about-card {
  flex: 1 1 auto;
}

.about-card > p {
  margin: 0 0 1rem;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.about-card > p:last-child {
  margin-bottom: 0;
}

.about-card > p strong {
  font-weight: 400;
  color: var(--orange);
}

.about-block {
  margin: 0;
}

.about-card > .about-block + .about-block {
  margin-top: clamp(0.85rem, 2vh, 1.15rem);
}

.about-block p {
  margin: 0 0 0.75rem;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.about-block p:last-child {
  margin-bottom: 0;
}

.about-block__heading {
  margin: 0 0 0.35rem;
  padding-left: 1.1rem;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 400;
  line-height: 1.25;
  color: var(--orange);
  position: relative;
}

.about-block__heading::before {
  content: "•";
  position: absolute;
  left: 0;
}

.about-values__proverb {
  margin-top: 0.35rem;
  font-style: italic;
}

.about-values__list {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 2rem;
  color: var(--ink-soft);
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
}

.about-values__list li {
  position: relative;
  padding-left: 1.1rem;
}

.about-values__list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--ink-soft);
}

@media (max-width: 560px) {
  .about-values__list {
    grid-template-columns: 1fr;
  }
}

.contact-page__panel {
  width: min(100% - 3rem, 88rem);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 3vw, 2rem);
  text-align: left;
}

.contact-thanks {
  width: min(100%, var(--panel-width));
  margin: 0 auto;
}

.contact-thanks[hidden] {
  display: none !important;
}

.contact-thanks__card {
  text-align: center;
}

.contact-thanks__card p {
  margin: 0;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.contact-thanks__card strong {
  font-weight: 400;
  color: var(--orange);
}

.contact-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, var(--panel-width)));
  gap: var(--panel-gap);
  justify-content: center;
  align-items: start;
}

.contact-layout[hidden] {
  display: none !important;
}

.contact-layout > .about-group,
.contact-layout__stack {
  width: 100%;
}

.contact-layout__stack {
  display: flex;
  flex-direction: column;
  gap: var(--panel-gap);
}

.contact-layout__stack .about-group {
  width: 100%;
}

.contact-offices--stacked {
  grid-template-columns: 1fr;
  gap: 1.25rem;
}


.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.contact-form__label {
  font-size: clamp(0.92rem, 1.45vw, 1.05rem);
  line-height: 1.4;
  color: #5c3d2e;
}

.contact-form__label-hint {
  color: var(--orange);
  font-weight: 400;
}

.contact-form__input,
.contact-form__select,
.contact-form__textarea {
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 0;
  border-radius: 0.5rem;
  font: inherit;
  color: var(--ink);
  background: var(--field-bg);
  box-sizing: border-box;
  outline: none;
  box-shadow: none;
}

.contact-form__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: none;
}

.contact-form__select-wrap {
  position: relative;
}

.contact-form__select--native {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.contact-form__select-trigger {
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 0;
  border-radius: 0.5rem;
  font: inherit;
  text-align: left;
  color: var(--ink);
  background: var(--field-bg);
  cursor: pointer;
  box-sizing: border-box;
  outline: none;
  box-shadow: none;
}

.contact-form__select-trigger.is-placeholder {
  color: rgb(var(--orange-rgb) / 70%);
}

.contact-form__select-trigger:not(.is-placeholder) {
  background: var(--orange);
  color: var(--white);
}

.contact-form__select-trigger:focus,
.contact-form__select-trigger:focus-visible {
  outline: none;
  border: 0;
  box-shadow: none;
}

.contact-form__select-menu {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  right: 0;
  z-index: 10;
  max-height: 16rem;
  overflow-y: auto;
  border: 0;
  border-radius: 0.5rem;
  background: var(--field-bg);
  box-shadow: 0 4px 16px rgb(0 0 0 / 8%);
  scrollbar-width: thin;
  scrollbar-color: rgb(var(--orange-rgb) / 35%) transparent;
}

.contact-form__select-menu[hidden] {
  display: none;
}

.contact-form__select-group + .contact-form__select-group {
  border-top: 1px solid rgb(var(--orange-rgb) / 15%);
}

.contact-form__select-group-label {
  padding: 0.55rem 0.75rem 0.2rem;
  font-family: var(--serif);
  font-size: clamp(0.92rem, 1.45vw, 1.05rem);
  font-weight: 400;
  line-height: 1.4;
  color: var(--orange);
}

.contact-form__select-option {
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  color: var(--ink);
  cursor: pointer;
}

.contact-form__select-option:hover,
.contact-form__select-option.is-active {
  background: var(--orange);
  color: var(--white);
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
  color: rgb(var(--orange-rgb) / 70%);
  opacity: 1;
}

.contact-form__select:invalid {
  color: rgb(var(--orange-rgb) / 70%);
}

.contact-form__select--native:invalid {
  color: rgb(var(--orange-rgb) / 70%);
}

.contact-form__select option {
  color: var(--ink);
}

.contact-form__input:focus,
.contact-form__input:focus-visible,
.contact-form__select:focus,
.contact-form__select:focus-visible,
.contact-form__textarea:focus,
.contact-form__textarea:focus-visible {
  outline: none;
  border: 0;
  box-shadow: none;
}

.contact-form.about-card {
  overflow: visible;
  padding-bottom: calc(2.5rem + 2px);
}

.contact-form__field--message {
  margin-bottom: 0.5rem;
}

.contact-form__message-wrap {
  position: relative;
  overflow: visible;
}

.contact-form__textarea {
  min-height: 7rem;
  resize: none;
  padding-right: 4rem;
  padding-bottom: 2.5rem;
}

.contact-form__send {
  position: absolute;
  right: -0.45rem;
  bottom: -4rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  width: auto;
  line-height: 1.4;
}

.contact-form__send-label {
  margin: 0;
}

.contact-form__send img,
.contact-form__send-plane {
  display: block;
  width: clamp(5.75rem, 26vw, 8.25rem);
  height: auto;
}

.contact-form__send:hover:not(.is-flying) {
  transform: translateY(-1px);
}

.contact-form__send.is-flying {
  pointer-events: none;
}

.contact-form__send-plane.is-flying {
  z-index: 10000;
  pointer-events: none;
  max-width: none;
}

html.contact-plane-arrival-pending .contact-form__send-plane,
.contact-form__send-plane.is-awaiting-arrival {
  opacity: 0;
}

.contact-form__send-plane.is-landing {
  animation: contact-plane-land-in var(--plane-land-duration, 0.75s) linear forwards;
}

@keyframes contact-plane-land-in {
  from {
    transform: translateX(calc(-1 * var(--plane-land-distance, 100vw)));
    opacity: 1;
  }

  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.contact-form__send:focus,
.contact-form__send:focus-visible {
  outline: none;
}

.contact-form__note {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--ink-soft);
}

.contact-info p {
  margin: 0 0 0.75rem;
  font-size: clamp(0.98rem, 1.6vw, 1.12rem);
  line-height: 1.55;
  color: var(--ink-soft);
}

.contact-info p:last-child {
  margin-bottom: 0;
}

.contact-offices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem 2rem;
  margin-bottom: 1.25rem;
}

.contact-office__city {
  margin: 0 0 0.35rem;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--orange);
}

.contact-donate {
  margin: 0;
}

.contact-register {
  margin: 0.5rem 0 0;
  font-size: clamp(0.92rem, 1.45vw, 1.02rem);
}

@media (max-width: 560px) {
  .contact-offices {
    grid-template-columns: 1fr;
  }
}

.contact-info a {
  color: var(--orange);
  text-decoration: none;
}

.contact-info a:hover {
  color: var(--orange-deep);
}

.team-grid {
  width: 100%;
}

.team-columns {
  display: flex;
  gap: var(--panel-gap);
  align-items: start;
  justify-content: center;
}

.team-column {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: min(100%, var(--panel-width));
  flex: 0 1 var(--panel-width);
  padding: clamp(1.25rem, 2.8vh, 1.65rem) clamp(1.1rem, 2.4vw, 1.5rem) clamp(1.35rem, 3vh, 1.85rem);
  box-sizing: border-box;
  background: var(--frosted-panel-fill);
  border-radius: 1.25rem;
  -webkit-backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
  backdrop-filter: blur(var(--frosted-panel-blur)) saturate(130%);
}

.team-column--staff {
  width: min(100%, calc(var(--panel-width) * 2 + 1rem));
  flex: 0 1 calc(var(--panel-width) * 2 + 1rem);
}

.team-column__heading {
  margin: 0;
  padding: clamp(0.65rem, 1.4vh, 0.85rem) clamp(1.35rem, 3vw, 2rem);
  box-sizing: border-box;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  font-weight: 400;
  line-height: 1.45;
  color: var(--white);
  text-align: center;
  background: var(--orange);
  border-radius: 0.85rem;
}

.team-column__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}

.team-column--staff .team-column__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.team-column--staff .team-member {
  width: 100%;
}

.team-member {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1rem, 2.5vw, 1.5rem);
  align-items: center;
  width: min(100%, 32rem);
  height: calc(clamp(7rem, 14vw, 9.5rem) + 3.25rem);
  padding: 1.45rem 1.55rem;
  box-sizing: border-box;
  text-align: left;
  background: var(--white);
  border-radius: 0.85rem;
}

.team-member--brand {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(1rem, 2.5vw, 1.5rem);
  grid-column: 1 / -1;
  width: 100%;
  height: auto;
  min-height: calc(clamp(7rem, 14vw, 9.5rem) + 3.25rem);
  background: var(--white);
  text-align: center;
  text-decoration: none;
  color: inherit;
  padding: 1.45rem 1.55rem;
  overflow: hidden;
  box-sizing: border-box;
}

.team-member__brand-logo-wrap {
  display: grid;
  place-items: center;
  width: clamp(7rem, 14vw, 9.5rem);
  aspect-ratio: 1;
  justify-self: start;
  margin-left: 0;
  border-radius: 50%;
  background: var(--orange);
  overflow: hidden;
  box-sizing: border-box;
}

.team-member__brand-logo {
  display: block;
  width: 42%;
  height: auto;
  max-width: none;
  max-height: none;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.team-member__brand-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-width: 0;
}

.team-member__brand-line {
  display: block;
  font-family: var(--serif);
  font-size: clamp(0.98rem, 1.7vw, 1.2rem);
  font-weight: 400;
  line-height: 1.25;
  color: #5c3d2e;
}

.team-member__brand-line:first-child {
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.2;
}

.team-member__brand-line--cta {
  font-size: clamp(0.9rem, 1.35vw, 1rem);
  line-height: 1.4;
  color: var(--orange);
  text-decoration: none;
}

.team-member--brand:hover .team-member__brand-line--cta,
.team-member--brand:focus-visible .team-member__brand-line--cta {
  color: var(--orange-deep);
  text-decoration: underline;
}

.team-member__brand-plane {
  display: block;
  width: auto;
  height: clamp(calc(2.85rem + 30px), calc(5.6vw + 30px), calc(4.25rem + 30px));
  max-width: calc(8.25rem + 30px);
  object-fit: contain;
  justify-self: end;
  position: relative;
  z-index: 1;
  transform-origin: 50% 50%;
}

.team-member__brand-plane.is-flying {
  z-index: 10000;
  pointer-events: none;
  max-width: none;
}

.team-column--staff:has(.team-member--brand.is-flying),
.team-columns:has(.team-member--brand.is-flying),
.team-grid:has(.team-member--brand.is-flying),
.team-page__panel:has(.team-member--brand.is-flying),
.team-page:has(.team-member--brand.is-flying) {
  overflow: visible;
}

.team-member--brand.is-flying {
  pointer-events: none;
  overflow: visible;
  position: relative;
  z-index: 5;
}

.team-member__photo-wrap {
  width: clamp(7rem, 14vw, 9.5rem);
  aspect-ratio: 1;
  flex-shrink: 0;
  margin: 0;
  border-radius: 50%;
  overflow: hidden;
  background: #f5f5f5;
  clip-path: circle(50%);
}

.team-member__photo-wrap--empty {
  background: var(--orange);
}

.team-member__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.team-member__info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.team-member__name {
  margin: 0 0 0.25rem;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 400;
  line-height: 1.2;
  color: #5c3d2e;
}

.team-member__name--long {
  font-size: clamp(1.05rem, 1.95vw, 1.28rem);
  line-height: 1.25;
}

.team-member__role {
  margin: 0 0 0.85rem;
  font-size: clamp(0.82rem, 1.25vw, 0.95rem);
  line-height: 1.4;
  color: #7a5c4a;
}

.team-member__role--long {
  margin-bottom: 0.55rem;
}

.team-member__contact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.team-member__contact a {
  font-size: clamp(0.9rem, 1.35vw, 1rem);
  line-height: 1.4;
  color: var(--orange);
  text-decoration: none;
}

.team-member__contact a:hover {
  color: var(--orange-deep);
  text-decoration: underline;
}

.team-member__bio {
  margin: 0.5rem 0 0;
  font-size: clamp(0.82rem, 1.2vw, 0.92rem);
  line-height: 1.5;
  color: var(--ink);
}

/* —— Responsive —— */
@media (max-width: 760px) {
  .site-header {
    width: calc(100% - 1.25rem);
    flex-wrap: wrap;
    position: relative;
  }

  body.page-team .page-band__inner p {
    white-space: normal;
  }

  .nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .site-nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 0.5rem 0 0.75rem;
  }

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

  .site-nav a {
    width: 100%;
    padding: 0.55rem 0;
  }

  .pillars__inner {
    width: 100%;
    gap: 0.25rem;
  }

  .pillars,
  :root {
    --pillar-icon-w: 3.35rem;
    --pillar-label-size: 0.62rem;
  }

  .pillar__label {
    font-size: var(--pillar-label-size);
  }

  .programme-listings__list {
    width: calc(100% - 1.5rem);
  }

  .programme-all-grid {
    grid-template-columns: 1fr;
  }

  .programme-row {
    grid-template-columns: 1fr;
    gap: 0.85rem;
    text-align: left;
  }

  .programme-row__logo {
    justify-content: flex-start;
    width: 8.75rem;
    height: 8.75rem;
  }

  .programme-row__logo img {
    max-width: 7.25rem;
    max-height: 7.25rem;
  }

  .programme-row__content {
    width: 100%;
  }

  .team-columns {
    flex-direction: column;
    align-items: center;
    gap: var(--panel-gap);
  }

  .team-column,
  .team-column--staff {
    width: min(100%, var(--panel-width));
    flex: 1 1 auto;
  }

  .team-column--staff .team-column__list {
    grid-template-columns: 1fr;
  }

  .team-member--brand {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0.85rem;
    text-align: center;
  }

  .team-member__brand-logo-wrap,
  .team-member__brand-plane {
    justify-self: center;
  }

  .team-member__brand-logo-wrap {
    margin-left: 0;
  }

  .contact-layout {
    grid-template-columns: minmax(0, var(--panel-width));
    gap: 2.5rem;
  }

  .contact-layout__stack {
    display: contents;
  }

  .about-sections {
    flex-direction: column;
    align-items: center;
    gap: 2.5rem;
  }

  .about-sections > .about-group {
    flex: 1 1 auto;
    width: min(100%, var(--panel-width));
  }
}

@media (max-width: 420px) {
  .brand__logo {
    height: 2.35rem;
    max-width: 12.5rem;
  }

  .pillars {
    padding-inline: 0.4rem;
  }

  .page-band {
    padding-inline: 0.4rem;
  }
}
